21#ifndef _MPEG_1OR2_DEMUX_HH
22#define _MPEG_1OR2_DEMUX_HH
24#ifndef _FRAMED_SOURCE_HH
38 void* objectToNotify =
NULL);
52 unsigned char* to,
unsigned maxSize,
54 void* afterGettingClientData,
56 void* onCloseClientData);
94 unsigned char* to,
unsigned maxSize,
96 void* afterGettingClientData,
98 void* onCloseClientData);
101 unsigned char* to,
unsigned maxSize,
103 void* afterGettingClientData);
106 unsigned char* ptr,
unsigned size,
107 struct timeval presentationTime);
void MPEG1or2DemuxOnDeletionFunc(void *objectToNotify, class MPEG1or2Demux *demuxBeingDeleted)
void() onCloseFunc(void *clientData)
void() afterGettingFunc(void *clientData, unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds)
MPEG1or2DemuxedElementaryStream * newAudioStream()
unsigned char mpegVersion() const
unsigned char fMPEGversion
void noteElementaryStreamDeletion(MPEG1or2DemuxedElementaryStream *es)
static void continueReadProcessing(void *clientData, unsigned char *ptr, unsigned size, struct timeval presentationTime)
friend class MPEGProgramStreamParser
static MPEG1or2Demux * createNew(UsageEnvironment &env, FramedSource *inputSource, Boolean reclaimWhenLastESDies=False, MPEG1or2DemuxOnDeletionFunc *onDeletionFunc=NULL, void *objectToNotify=NULL)
FramedSource * inputSource() const
MPEG1or2DemuxedElementaryStream * newElementaryStream(u_int8_t streamIdTag)
Boolean fHaveUndeliveredData
MPEG1or2Demux(UsageEnvironment &env, FramedSource *inputSource, Boolean reclaimWhenLastESDies, MPEG1or2DemuxOnDeletionFunc *onDeletionFunc, void *objectToNotify)
class MPEGProgramStreamParser * fParser
void * fOnDeletionObjectToNotify
Boolean fReclaimWhenLastESDies
unsigned fNumOutstandingESs
MPEG1or2DemuxOnDeletionFunc * fOnDeletionFunc
OutputDescriptor_t fOutput[256]
unsigned char fNextAudioStreamNumber
unsigned char fNextVideoStreamNumber
MPEG1or2DemuxedElementaryStream * newRawPESStream()
Boolean useSavedData(u_int8_t streamIdTag, unsigned char *to, unsigned maxSize, FramedSource::afterGettingFunc *afterGettingFunc, void *afterGettingClientData)
static void handleClosure(void *clientData)
void stopGettingFrames(u_int8_t streamIdTag)
void continueReadProcessing()
MPEG1or2DemuxedElementaryStream * newVideoStream()
unsigned fNumPendingReads
void getNextFrame(u_int8_t streamIdTag, unsigned char *to, unsigned maxSize, FramedSource::afterGettingFunc *afterGettingFunc, void *afterGettingClientData, FramedSource::onCloseFunc *onCloseFunc, void *onCloseClientData)
void registerReadInterest(u_int8_t streamIdTag, unsigned char *to, unsigned maxSize, FramedSource::afterGettingFunc *afterGettingFunc, void *afterGettingClientData, FramedSource::onCloseFunc *onCloseFunc, void *onCloseClientData)
FramedSource * fInputSource
struct MPEG1or2Demux::OutputDescriptor OutputDescriptor_t
Boolean isCurrentlyActive
FramedSource::onCloseFunc * fOnCloseFunc
struct timeval presentationTime
SavedData * savedDataHead
void * afterGettingClientData
Boolean isPotentiallyReadable
FramedSource::afterGettingFunc * fAfterGettingFunc
unsigned savedDataTotalSize
SavedData * savedDataTail
Boolean isCurrentlyAwaitingData