Mercurial > mplayer.hg
view libmpdemux/demux_rtp_internal.h @ 25376:382aeacc771f
The buffer used for pread need be aligned, but currently it got an offset 23
to the structure head. This will cause the pread always got random data
on some machines (such as my iMac G5 PPC with 10.5 os) so can not play vcd.
I also tried use DKIOCCDREAD ioctl call, but the result is same -- buffer need
be aligned. It could be a bug of os x or its dev lib.
Now fix this problem by move the buffer to a good aligned position in structure.
author | ulion |
---|---|
date | Sat, 15 Dec 2007 12:17:51 +0000 |
parents | 3f0d00abc073 |
children | 3baf6a2283da |
line wrap: on
line source
#ifndef DEMUX_RTP_INTERNAL_H #define DEMUX_RTP_INTERNAL_H #include <stdlib.h> extern "C" { #ifndef STREAM_H #include "stream/stream.h" #endif #ifndef DEMUXER_H #include "demuxer.h" #endif #ifdef USE_LIBAVCODEC_SO #include <ffmpeg/avcodec.h> #elif defined(USE_LIBAVCODEC) #include "libavcodec/avcodec.h" #endif } #ifndef _LIVEMEDIA_HH #undef STREAM_SEEK #include <liveMedia.hh> #endif // Codec-specific initialization routines: void rtpCodecInitialize_video(demuxer_t* demuxer, MediaSubsession* subsession, unsigned& flags); void rtpCodecInitialize_audio(demuxer_t* demuxer, MediaSubsession* subsession, unsigned& flags); // Flags that may be set by the above routines: #define RTPSTATE_IS_MPEG12_VIDEO 0x1 // is a MPEG-1 or 2 video stream #define RTPSTATE_IS_MULTIPLEXED 0x2 // is a combined audio+video stream // A routine to wait for the first packet of a RTP stream to arrive. // (For some RTP payload formats, codecs cannot be fully initialized until // we've started receiving data.) Boolean awaitRTPPacket(demuxer_t* demuxer, demux_stream_t* ds, unsigned char*& packetData, unsigned& packetDataLen, float& pts); // "streamType": 0 => video; 1 => audio // This routine returns False if the input stream has closed #endif