live
MPEG2IFrameIndexFromTransportStream Class Reference

#include <MPEG2IndexFromTransportStream.hh>

Inheritance diagram for MPEG2IFrameIndexFromTransportStream:
Collaboration diagram for MPEG2IFrameIndexFromTransportStream:

Public Types

typedef void afterGettingFunc(void *clientData, unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds)
typedef void onCloseFunc(void *clientData)

Public Member Functions

FramedSourceinputSource () const
void reassignInputSource (FramedSource *newInputSource)
void detachInputSource ()
void getNextFrame (unsigned char *to, unsigned maxSize, afterGettingFunc *afterGettingFunc, void *afterGettingClientData, onCloseFunc *onCloseFunc, void *onCloseClientData)
void handleClosure ()
void stopGettingFrames ()
virtual unsigned maxFrameSize () const
Boolean isCurrentlyAwaitingData () const
virtual Boolean isRTPSource () const
virtual Boolean isMPEG1or2VideoStreamFramer () const
virtual Boolean isMPEG4VideoStreamFramer () const
virtual Boolean isH264VideoStreamFramer () const
virtual Boolean isH265VideoStreamFramer () const
virtual Boolean isDVVideoStreamFramer () const
virtual Boolean isJPEGVideoSource () const
virtual Boolean isAMRAudioSource () const
virtual Boolean isMPEG2TransportStreamMultiplexor () const
UsageEnvironmentenvir () const
char const * name () const
virtual Boolean isSink () const
virtual Boolean isRTCPInstance () const
virtual Boolean isRTSPClient () const
virtual Boolean isRTSPServer () const
virtual Boolean isMediaSession () const
virtual Boolean isServerMediaSession () const

Static Public Member Functions

static MPEG2IFrameIndexFromTransportStreamcreateNew (UsageEnvironment &env, FramedSource *inputSource)
static Boolean lookupByName (UsageEnvironment &env, char const *sourceName, FramedSource *&resultSource)
static Boolean lookupByName (UsageEnvironment &env, char const *sourceName, MediaSource *&resultSource)
static Boolean lookupByName (UsageEnvironment &env, char const *mediumName, Medium *&resultMedium)
static void handleClosure (void *clientData)
static void afterGetting (FramedSource *source)
static void close (UsageEnvironment &env, char const *mediumName)
static void close (Medium *medium)

Protected Member Functions

 MPEG2IFrameIndexFromTransportStream (UsageEnvironment &env, FramedSource *inputSource)
virtual ~MPEG2IFrameIndexFromTransportStream ()
virtual char const * MIMEtype () const
virtual void getAttributes () const
virtual void doStopGettingFrames ()
TaskTokennextTask ()

Protected Attributes

FramedSourcefInputSource
unsigned char * fTo
unsigned fMaxSize
unsigned fFrameSize
unsigned fNumTruncatedBytes
struct timeval fPresentationTime
unsigned fDurationInMicroseconds

Private Member Functions

virtual void doGetNextFrame ()
void afterGettingFrame1 (unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds)
void handleInputClosure1 ()
void analyzePAT (unsigned char *pkt, unsigned size)
void analyzePMT (unsigned char *pkt, unsigned size)
Boolean deliverIndexRecord ()
Boolean parseFrame ()
Boolean parseToNextCode (unsigned char &nextCode)
void compactParseBuffer ()
void addToTail (IndexRecord *newIndexRecord)
virtual Boolean isFramedSource () const
virtual Boolean isSource () const

Static Private Member Functions

static void afterGettingFrame (void *clientData, unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds)
static void handleInputClosure (void *clientData)

Private Attributes

Boolean fIsH264
Boolean fIsH265
unsigned long fInputTransportPacketCounter
unsigned fClosureNumber
u_int8_t fLastContinuityCounter
float fFirstPCR
float fLastPCR
Boolean fHaveSeenFirstPCR
u_int16_t fPMT_PID
u_int16_t fVideo_PID
unsigned char fInputBuffer [TRANSPORT_PACKET_SIZE]
unsigned char * fParseBuffer
unsigned fParseBufferSize
unsigned fParseBufferFrameStart
unsigned fParseBufferParseEnd
unsigned fParseBufferDataEnd
IndexRecord * fHeadIndexRecord
IndexRecord * fTailIndexRecord
afterGettingFuncfAfterGettingFunc
void * fAfterGettingClientData
onCloseFuncfOnCloseFunc
void * fOnCloseClientData
Boolean fIsCurrentlyAwaitingData
UsageEnvironmentfEnviron
char fMediumName [mediumNameMaxLen]
TaskToken fNextTask

Detailed Description

Definition at line 38 of file MPEG2IndexFromTransportStream.hh.

Member Typedef Documentation

◆ afterGettingFunc

typedef void FramedSource::afterGettingFunc(void *clientData, unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds)
inherited

Definition at line 36 of file FramedSource.hh.

◆ onCloseFunc

typedef void FramedSource::onCloseFunc(void *clientData)
inherited

Definition at line 40 of file FramedSource.hh.

Constructor & Destructor Documentation

◆ MPEG2IFrameIndexFromTransportStream()

MPEG2IFrameIndexFromTransportStream::MPEG2IFrameIndexFromTransportStream ( UsageEnvironment & env,
FramedSource * inputSource )
protected

◆ ~MPEG2IFrameIndexFromTransportStream()

virtual MPEG2IFrameIndexFromTransportStream::~MPEG2IFrameIndexFromTransportStream ( )
protectedvirtual

Member Function Documentation

◆ addToTail()

void MPEG2IFrameIndexFromTransportStream::addToTail ( IndexRecord * newIndexRecord)
private

◆ afterGetting()

void FramedSource::afterGetting ( FramedSource * source)
staticinherited

References FramedSource().

◆ afterGettingFrame()

void MPEG2IFrameIndexFromTransportStream::afterGettingFrame ( void * clientData,
unsigned frameSize,
unsigned numTruncatedBytes,
struct timeval presentationTime,
unsigned durationInMicroseconds )
staticprivate

◆ afterGettingFrame1()

void MPEG2IFrameIndexFromTransportStream::afterGettingFrame1 ( unsigned frameSize,
unsigned numTruncatedBytes,
struct timeval presentationTime,
unsigned durationInMicroseconds )
private

◆ analyzePAT()

void MPEG2IFrameIndexFromTransportStream::analyzePAT ( unsigned char * pkt,
unsigned size )
private

◆ analyzePMT()

void MPEG2IFrameIndexFromTransportStream::analyzePMT ( unsigned char * pkt,
unsigned size )
private

◆ close() [1/2]

void Medium::close ( Medium * medium)
staticinherited

References Medium().

◆ close() [2/2]

void Medium::close ( UsageEnvironment & env,
char const * mediumName )
staticinherited

◆ compactParseBuffer()

void MPEG2IFrameIndexFromTransportStream::compactParseBuffer ( )
private

◆ createNew()

MPEG2IFrameIndexFromTransportStream * MPEG2IFrameIndexFromTransportStream::createNew ( UsageEnvironment & env,
FramedSource * inputSource )
static

◆ deliverIndexRecord()

Boolean MPEG2IFrameIndexFromTransportStream::deliverIndexRecord ( )
private

◆ detachInputSource()

void FramedFilter::detachInputSource ( )
inherited

◆ doGetNextFrame()

virtual void MPEG2IFrameIndexFromTransportStream::doGetNextFrame ( )
privatevirtual

Implements FramedSource.

◆ doStopGettingFrames()

virtual void FramedFilter::doStopGettingFrames ( )
protectedvirtualinherited

◆ envir()

UsageEnvironment & Medium::envir ( ) const
inlineinherited

Definition at line 59 of file Media.hh.

59{return fEnviron;}
UsageEnvironment & fEnviron
Definition Media.hh:82

References fEnviron.

Referenced by MediaSubsession::env(), GenericMediaServer::ClientConnection::envir(), GenericMediaServer::ClientSession::envir(), and RTPInterface::envir().

◆ getAttributes()

virtual void FramedFilter::getAttributes ( ) const
protectedvirtualinherited

Reimplemented from MediaSource.

Reimplemented in MP3ADUTranscoder.

◆ getNextFrame()

void FramedSource::getNextFrame ( unsigned char * to,
unsigned maxSize,
afterGettingFunc * afterGettingFunc,
void * afterGettingClientData,
onCloseFunc * onCloseFunc,
void * onCloseClientData )
inherited

◆ handleClosure() [1/2]

void FramedSource::handleClosure ( )
inherited

◆ handleClosure() [2/2]

void FramedSource::handleClosure ( void * clientData)
staticinherited

◆ handleInputClosure()

void MPEG2IFrameIndexFromTransportStream::handleInputClosure ( void * clientData)
staticprivate

◆ handleInputClosure1()

void MPEG2IFrameIndexFromTransportStream::handleInputClosure1 ( )
private

◆ inputSource()

FramedSource * FramedFilter::inputSource ( ) const
inlineinherited

Definition at line 30 of file FramedFilter.hh.

30{ return fInputSource; }
FramedSource * fInputSource

References fInputSource, and FramedSource::FramedSource().

Referenced by AC3AudioStreamFramer::AC3AudioStreamFramer(), ADTSAudioStreamDiscreteFramer::ADTSAudioStreamDiscreteFramer(), ADUFromMP3Source::ADUFromMP3Source(), AC3AudioStreamFramer::createNew(), ADTSAudioStreamDiscreteFramer::createNew(), ADUFromMP3Source::createNew(), DVVideoStreamFramer::createNew(), EndianSwap16::createNew(), EndianSwap24::createNew(), H263plusVideoStreamFramer::createNew(), H264VideoStreamDiscreteFramer::createNew(), H264VideoStreamFramer::createNew(), H265VideoStreamDiscreteFramer::createNew(), H265VideoStreamFramer::createNew(), HostFromNetworkOrder16::createNew(), MP3ADUdeinterleaver::createNew(), MP3ADUinterleaver::createNew(), MP3ADUTranscoder::createNew(), MP3FromADUSource::createNew(), MP3Transcoder::createNew(), MPEG1or2AudioStreamFramer::createNew(), MPEG1or2VideoStreamDiscreteFramer::createNew(), MPEG1or2VideoStreamFramer::createNew(), MPEG2IFrameIndexFromTransportStream::createNew(), MPEG2TransportStreamAccumulator::createNew(), MPEG2TransportStreamFramer::createNew(), MPEG2TransportStreamTrickModeFilter::createNew(), MPEG4VideoStreamDiscreteFramer::createNew(), MPEG4VideoStreamFramer::createNew(), NetworkFromHostOrder16::createNew(), PCMFromuLawAudioSource::createNew(), uLawFromPCMAudioSource::createNew(), DVVideoStreamFramer::DVVideoStreamFramer(), EndianSwap16::EndianSwap16(), EndianSwap24::EndianSwap24(), FramedFilter(), H263plusVideoStreamFramer::H263plusVideoStreamFramer(), H264or5VideoStreamDiscreteFramer::H264or5VideoStreamDiscreteFramer(), H264or5VideoStreamFramer::H264or5VideoStreamFramer(), H264VideoStreamDiscreteFramer::H264VideoStreamDiscreteFramer(), H264VideoStreamFramer::H264VideoStreamFramer(), H265VideoStreamDiscreteFramer::H265VideoStreamDiscreteFramer(), H265VideoStreamFramer::H265VideoStreamFramer(), HostFromNetworkOrder16::HostFromNetworkOrder16(), MP3ADUdeinterleaver::MP3ADUdeinterleaver(), MP3ADUinterleaver::MP3ADUinterleaver(), MP3ADUinterleaverBase::MP3ADUinterleaverBase(), MP3ADUTranscoder::MP3ADUTranscoder(), MP3FromADUSource::MP3FromADUSource(), MPEG1or2AudioStreamFramer::MPEG1or2AudioStreamFramer(), MPEG1or2VideoStreamDiscreteFramer::MPEG1or2VideoStreamDiscreteFramer(), MPEG1or2VideoStreamFramer::MPEG1or2VideoStreamFramer(), MPEG2IFrameIndexFromTransportStream::MPEG2IFrameIndexFromTransportStream(), MPEG2TransportStreamAccumulator::MPEG2TransportStreamAccumulator(), MPEG2TransportStreamFramer::MPEG2TransportStreamFramer(), MPEG2TransportStreamTrickModeFilter::MPEG2TransportStreamTrickModeFilter(), MPEG4VideoStreamDiscreteFramer::MPEG4VideoStreamDiscreteFramer(), MPEG4VideoStreamFramer::MPEG4VideoStreamFramer(), MPEGVideoStreamFramer::MPEGVideoStreamFramer(), NetworkFromHostOrder16::NetworkFromHostOrder16(), PCMFromuLawAudioSource::PCMFromuLawAudioSource(), PresentationTimeSubsessionNormalizer::PresentationTimeSubsessionNormalizer(), T140IdleFilter::T140IdleFilter(), and uLawFromPCMAudioSource::uLawFromPCMAudioSource().

◆ isAMRAudioSource()

virtual Boolean MediaSource::isAMRAudioSource ( ) const
virtualinherited

Reimplemented in AMRAudioSource.

◆ isCurrentlyAwaitingData()

Boolean FramedSource::isCurrentlyAwaitingData ( ) const
inlineinherited

Definition at line 61 of file FramedSource.hh.

Boolean fIsCurrentlyAwaitingData

References fIsCurrentlyAwaitingData.

◆ isDVVideoStreamFramer()

virtual Boolean MediaSource::isDVVideoStreamFramer ( ) const
virtualinherited

Reimplemented in DVVideoStreamFramer.

◆ isFramedSource()

virtual Boolean FramedSource::isFramedSource ( ) const
privatevirtualinherited

Reimplemented from MediaSource.

◆ isH264VideoStreamFramer()

virtual Boolean MediaSource::isH264VideoStreamFramer ( ) const
virtualinherited

◆ isH265VideoStreamFramer()

virtual Boolean MediaSource::isH265VideoStreamFramer ( ) const
virtualinherited

◆ isJPEGVideoSource()

virtual Boolean MediaSource::isJPEGVideoSource ( ) const
virtualinherited

Reimplemented in JPEGVideoSource.

◆ isMediaSession()

virtual Boolean Medium::isMediaSession ( ) const
virtualinherited

Reimplemented in MediaSession.

◆ isMPEG1or2VideoStreamFramer()

virtual Boolean MediaSource::isMPEG1or2VideoStreamFramer ( ) const
virtualinherited

Reimplemented in MPEG1or2VideoStreamFramer.

◆ isMPEG2TransportStreamMultiplexor()

virtual Boolean MediaSource::isMPEG2TransportStreamMultiplexor ( ) const
virtualinherited

◆ isMPEG4VideoStreamFramer()

virtual Boolean MediaSource::isMPEG4VideoStreamFramer ( ) const
virtualinherited

Reimplemented in MPEG4VideoStreamFramer.

◆ isRTCPInstance()

virtual Boolean Medium::isRTCPInstance ( ) const
virtualinherited

Reimplemented in RTCPInstance.

◆ isRTPSource()

virtual Boolean MediaSource::isRTPSource ( ) const
virtualinherited

Reimplemented in RTPSource.

◆ isRTSPClient()

virtual Boolean Medium::isRTSPClient ( ) const
virtualinherited

Reimplemented in RTSPClient.

◆ isRTSPServer()

virtual Boolean Medium::isRTSPServer ( ) const
virtualinherited

Reimplemented in RTSPServer.

◆ isServerMediaSession()

virtual Boolean Medium::isServerMediaSession ( ) const
virtualinherited

Reimplemented in ServerMediaSession.

◆ isSink()

virtual Boolean Medium::isSink ( ) const
virtualinherited

Reimplemented in MediaSink.

◆ isSource()

virtual Boolean MediaSource::isSource ( ) const
privatevirtualinherited

Reimplemented from Medium.

◆ lookupByName() [1/3]

Boolean FramedSource::lookupByName ( UsageEnvironment & env,
char const * sourceName,
FramedSource *& resultSource )
staticinherited

References FramedSource().

◆ lookupByName() [2/3]

Boolean MediaSource::lookupByName ( UsageEnvironment & env,
char const * sourceName,
MediaSource *& resultSource )
staticinherited

References MediaSource().

◆ lookupByName() [3/3]

Boolean Medium::lookupByName ( UsageEnvironment & env,
char const * mediumName,
Medium *& resultMedium )
staticinherited

References Medium().

◆ maxFrameSize()

virtual unsigned FramedSource::maxFrameSize ( ) const
virtualinherited

◆ MIMEtype()

virtual char const * FramedFilter::MIMEtype ( ) const
protectedvirtualinherited

Reimplemented from MediaSource.

Reimplemented in ADUFromMP3Source, and MP3FromADUSource.

◆ name()

char const * Medium::name ( ) const
inlineinherited

Definition at line 61 of file Media.hh.

61{return fMediumName;}
char fMediumName[mediumNameMaxLen]
Definition Media.hh:83

References fMediumName.

Referenced by QuickTimeFileSink::_atom(), RTSPServer::lookupByName(), RTCPInstance::sendAppPacket(), and OnDemandServerMediaSubsession::sendRTCPAppPacket().

◆ nextTask()

TaskToken & Medium::nextTask ( )
inlineprotectedinherited

Definition at line 77 of file Media.hh.

77 {
78 return fNextTask;
79 }
TaskToken fNextTask
Definition Media.hh:84

References fNextTask.

◆ parseFrame()

Boolean MPEG2IFrameIndexFromTransportStream::parseFrame ( )
private

◆ parseToNextCode()

Boolean MPEG2IFrameIndexFromTransportStream::parseToNextCode ( unsigned char & nextCode)
private

◆ reassignInputSource()

void FramedFilter::reassignInputSource ( FramedSource * newInputSource)
inlineinherited

Definition at line 32 of file FramedFilter.hh.

32{ fInputSource = newInputSource; }

References fInputSource, and FramedSource::FramedSource().

◆ stopGettingFrames()

void FramedSource::stopGettingFrames ( )
inherited

Field Documentation

◆ fAfterGettingClientData

void* FramedSource::fAfterGettingClientData
privateinherited

Definition at line 88 of file FramedSource.hh.

◆ fAfterGettingFunc

afterGettingFunc* FramedSource::fAfterGettingFunc
privateinherited

Definition at line 87 of file FramedSource.hh.

◆ fClosureNumber

unsigned MPEG2IFrameIndexFromTransportStream::fClosureNumber
private

Definition at line 79 of file MPEG2IndexFromTransportStream.hh.

◆ fDurationInMicroseconds

unsigned FramedSource::fDurationInMicroseconds
protectedinherited

◆ fEnviron

UsageEnvironment& Medium::fEnviron
privateinherited

Definition at line 82 of file Media.hh.

Referenced by envir().

◆ fFirstPCR

float MPEG2IFrameIndexFromTransportStream::fFirstPCR
private

Definition at line 81 of file MPEG2IndexFromTransportStream.hh.

◆ fFrameSize

unsigned FramedSource::fFrameSize
protectedinherited

◆ fHaveSeenFirstPCR

Boolean MPEG2IFrameIndexFromTransportStream::fHaveSeenFirstPCR
private

Definition at line 82 of file MPEG2IndexFromTransportStream.hh.

◆ fHeadIndexRecord

IndexRecord* MPEG2IFrameIndexFromTransportStream::fHeadIndexRecord
private

Definition at line 91 of file MPEG2IndexFromTransportStream.hh.

◆ fInputBuffer

unsigned char MPEG2IFrameIndexFromTransportStream::fInputBuffer[TRANSPORT_PACKET_SIZE]
private

Definition at line 85 of file MPEG2IndexFromTransportStream.hh.

◆ fInputSource

◆ fInputTransportPacketCounter

unsigned long MPEG2IFrameIndexFromTransportStream::fInputTransportPacketCounter
private

Definition at line 78 of file MPEG2IndexFromTransportStream.hh.

◆ fIsCurrentlyAwaitingData

Boolean FramedSource::fIsCurrentlyAwaitingData
privateinherited

Definition at line 92 of file FramedSource.hh.

Referenced by isCurrentlyAwaitingData().

◆ fIsH264

Boolean MPEG2IFrameIndexFromTransportStream::fIsH264
private

Definition at line 76 of file MPEG2IndexFromTransportStream.hh.

◆ fIsH265

Boolean MPEG2IFrameIndexFromTransportStream::fIsH265
private

Definition at line 77 of file MPEG2IndexFromTransportStream.hh.

◆ fLastContinuityCounter

u_int8_t MPEG2IFrameIndexFromTransportStream::fLastContinuityCounter
private

Definition at line 80 of file MPEG2IndexFromTransportStream.hh.

◆ fLastPCR

float MPEG2IFrameIndexFromTransportStream::fLastPCR
private

Definition at line 81 of file MPEG2IndexFromTransportStream.hh.

◆ fMaxSize

unsigned FramedSource::fMaxSize
protectedinherited

◆ fMediumName

char Medium::fMediumName[mediumNameMaxLen]
privateinherited

Definition at line 83 of file Media.hh.

Referenced by name().

◆ fNextTask

TaskToken Medium::fNextTask
privateinherited

Definition at line 84 of file Media.hh.

Referenced by nextTask().

◆ fNumTruncatedBytes

unsigned FramedSource::fNumTruncatedBytes
protectedinherited

◆ fOnCloseClientData

void* FramedSource::fOnCloseClientData
privateinherited

Definition at line 90 of file FramedSource.hh.

◆ fOnCloseFunc

onCloseFunc* FramedSource::fOnCloseFunc
privateinherited

Definition at line 89 of file FramedSource.hh.

◆ fParseBuffer

unsigned char* MPEG2IFrameIndexFromTransportStream::fParseBuffer
private

Definition at line 86 of file MPEG2IndexFromTransportStream.hh.

◆ fParseBufferDataEnd

unsigned MPEG2IFrameIndexFromTransportStream::fParseBufferDataEnd
private

Definition at line 90 of file MPEG2IndexFromTransportStream.hh.

◆ fParseBufferFrameStart

unsigned MPEG2IFrameIndexFromTransportStream::fParseBufferFrameStart
private

Definition at line 88 of file MPEG2IndexFromTransportStream.hh.

◆ fParseBufferParseEnd

unsigned MPEG2IFrameIndexFromTransportStream::fParseBufferParseEnd
private

Definition at line 89 of file MPEG2IndexFromTransportStream.hh.

◆ fParseBufferSize

unsigned MPEG2IFrameIndexFromTransportStream::fParseBufferSize
private

Definition at line 87 of file MPEG2IndexFromTransportStream.hh.

◆ fPMT_PID

u_int16_t MPEG2IFrameIndexFromTransportStream::fPMT_PID
private

Definition at line 83 of file MPEG2IndexFromTransportStream.hh.

◆ fPresentationTime

struct timeval FramedSource::fPresentationTime
protectedinherited

◆ fTailIndexRecord

IndexRecord* MPEG2IFrameIndexFromTransportStream::fTailIndexRecord
private

Definition at line 92 of file MPEG2IndexFromTransportStream.hh.

◆ fTo

unsigned char* FramedSource::fTo
protectedinherited

◆ fVideo_PID

u_int16_t MPEG2IFrameIndexFromTransportStream::fVideo_PID
private

Definition at line 83 of file MPEG2IndexFromTransportStream.hh.


The documentation for this class was generated from the following file: