H264VideoStreamDiscreteFramer Class Reference

#include <H264VideoStreamDiscreteFramer.hh>

Inheritance diagram for H264VideoStreamDiscreteFramer:

Inheritance graph
[legend]
Collaboration diagram for H264VideoStreamDiscreteFramer:

Collaboration graph
[legend]

Public Types

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

Public Member Functions

void getVPSandSPSandPPS (u_int8_t *&vps, unsigned &vpsSize, u_int8_t *&sps, unsigned &spsSize, u_int8_t *&pps, unsigned &ppsSize) const
void setVPSandSPSandPPS (u_int8_t *vps, unsigned vpsSize, u_int8_t *sps, unsigned spsSize, u_int8_t *pps, unsigned ppsSize)
u_int32_t profileLevelId () const
u_int8_t const * profileTierLevelHeaderBytes () const
BooleanpictureEndMarker ()
void flushInput ()
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 isH265VideoStreamFramer () const
virtual Boolean isDVVideoStreamFramer () const
virtual Boolean isJPEGVideoSource () const
virtual Boolean isAMRAudioSource () 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
virtual Boolean isDarwinInjector () const

Static Public Member Functions

static H264VideoStreamDiscreteFramercreateNew (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

 H264VideoStreamDiscreteFramer (UsageEnvironment &env, FramedSource *inputSource)
virtual ~H264VideoStreamDiscreteFramer ()
virtual void doGetNextFrame ()
void afterGettingFrame1 (unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds)
void saveCopyOfVPS (u_int8_t *from, unsigned size)
void saveCopyOfSPS (u_int8_t *from, unsigned size)
void saveCopyOfPPS (u_int8_t *from, unsigned size)
void setPresentationTime ()
Boolean isVPS (u_int8_t nal_unit_type)
Boolean isSPS (u_int8_t nal_unit_type)
Boolean isPPS (u_int8_t nal_unit_type)
Boolean isVCL (u_int8_t nal_unit_type)
void computePresentationTime (unsigned numAdditionalPictures)
void setTimeCode (unsigned hours, unsigned minutes, unsigned seconds, unsigned pictures, unsigned picturesSinceLastGOP)
virtual char const * MIMEtype () const
virtual void getAttributes () const
virtual void doStopGettingFrames ()
TaskTokennextTask ()

Static Protected Member Functions

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

Protected Attributes

int fHNumber
u_int8_t * fLastSeenVPS
unsigned fLastSeenVPSSize
u_int8_t * fLastSeenSPS
unsigned fLastSeenSPSSize
u_int8_t * fLastSeenPPS
unsigned fLastSeenPPSSize
u_int32_t fProfileLevelId
u_int8_t fProfileTierLevelHeaderBytes [12]
timeval fNextPresentationTime
double fFrameRate
unsigned fPictureCount
Boolean fPictureEndMarker
timeval fPresentationTimeBase
MPEGVideoStreamParserfParser
FramedSourcefInputSource
unsigned char * fTo
unsigned fMaxSize
unsigned fFrameSize
unsigned fNumTruncatedBytes
timeval fPresentationTime
unsigned fDurationInMicroseconds

Private Member Functions

virtual Boolean isH264VideoStreamFramer () const

Friends

class H264or5VideoStreamParser
class MPEGVideoStreamParser
class MediaLookupTable

Detailed Description

Definition at line 31 of file H264VideoStreamDiscreteFramer.hh.


Member Typedef Documentation

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

Definition at line 36 of file FramedSource.hh.

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

Definition at line 40 of file FramedSource.hh.


Constructor & Destructor Documentation

H264VideoStreamDiscreteFramer::H264VideoStreamDiscreteFramer ( UsageEnvironment env,
FramedSource inputSource 
) [protected]

Definition at line 32 of file H264VideoStreamDiscreteFramer.cpp.

Referenced by createNew().

H264VideoStreamDiscreteFramer::~H264VideoStreamDiscreteFramer (  )  [protected, virtual]

Definition at line 36 of file H264VideoStreamDiscreteFramer.cpp.

00036                                                               {
00037 }


Member Function Documentation

H264VideoStreamDiscreteFramer * H264VideoStreamDiscreteFramer::createNew ( UsageEnvironment env,
FramedSource inputSource 
) [static]

Definition at line 27 of file H264VideoStreamDiscreteFramer.cpp.

References env, H264VideoStreamDiscreteFramer(), and FramedFilter::inputSource().

Referenced by MatroskaFile::createSourceForStreaming().

00027                                                                                          {
00028   return new H264VideoStreamDiscreteFramer(env, inputSource);
00029 }

Boolean H264VideoStreamDiscreteFramer::isH264VideoStreamFramer (  )  const [private, virtual]

Reimplemented from MediaSource.

Definition at line 39 of file H264VideoStreamDiscreteFramer.cpp.

References True.

00039                                                                      {
00040   return True;
00041 }

void H264or5VideoStreamDiscreteFramer::doGetNextFrame (  )  [protected, virtual, inherited]

Reimplemented from MPEGVideoStreamFramer.

Definition at line 34 of file H264or5VideoStreamDiscreteFramer.cpp.

References H264or5VideoStreamDiscreteFramer::afterGettingFrame(), FramedFilter::fInputSource, FramedSource::fMaxSize, FramedSource::fTo, FramedSource::getNextFrame(), and FramedSource::handleClosure().

00034                                                       {
00035   // Arrange to read data (which should be a complete H.264 or H.265 NAL unit)
00036   // from our data source, directly into the client's input buffer.
00037   // After reading this, we'll do some parsing on the frame.
00038   fInputSource->getNextFrame(fTo, fMaxSize,
00039                              afterGettingFrame, this,
00040                              FramedSource::handleClosure, this);
00041 }

void H264or5VideoStreamDiscreteFramer::afterGettingFrame ( void *  clientData,
unsigned  frameSize,
unsigned  numTruncatedBytes,
struct timeval  presentationTime,
unsigned  durationInMicroseconds 
) [static, protected, inherited]

Definition at line 44 of file H264or5VideoStreamDiscreteFramer.cpp.

References source.

Referenced by H264or5VideoStreamDiscreteFramer::doGetNextFrame().

00047                                                      {
00048   H264or5VideoStreamDiscreteFramer* source = (H264or5VideoStreamDiscreteFramer*)clientData;
00049   source->afterGettingFrame1(frameSize, numTruncatedBytes, presentationTime, durationInMicroseconds);
00050 }

void H264or5VideoStreamDiscreteFramer::afterGettingFrame1 ( unsigned  frameSize,
unsigned  numTruncatedBytes,
struct timeval  presentationTime,
unsigned  durationInMicroseconds 
) [protected, inherited]

Definition at line 53 of file H264or5VideoStreamDiscreteFramer.cpp.

References FramedSource::afterGetting(), Medium::envir(), FramedSource::fDurationInMicroseconds, FramedSource::fFrameSize, H264or5VideoStreamFramer::fHNumber, FramedSource::fNumTruncatedBytes, MPEGVideoStreamFramer::fPictureEndMarker, FramedSource::fPresentationTime, FramedSource::fTo, H264or5VideoStreamFramer::isPPS(), H264or5VideoStreamFramer::isSPS(), H264or5VideoStreamFramer::isVCL(), H264or5VideoStreamFramer::isVPS(), H264or5VideoStreamFramer::saveCopyOfPPS(), H264or5VideoStreamFramer::saveCopyOfSPS(), H264or5VideoStreamFramer::saveCopyOfVPS(), and True.

00055                                                       {
00056   // Get the "nal_unit_type", to see if this NAL unit is one that we want to save a copy of:
00057   u_int8_t nal_unit_type;
00058   if (fHNumber == 264 && frameSize >= 1) {
00059     nal_unit_type = fTo[0]&0x1F;
00060   } else if (fHNumber == 265 && frameSize >= 2) {
00061     nal_unit_type = (fTo[0]&0x7E)>>1;
00062   } else {
00063     // This is too short to be a valid NAL unit, so just assume a bogus nal_unit_type
00064     nal_unit_type = 0xFF;
00065   }
00066 
00067   // Begin by checking for a (likely) common error: NAL units that (erroneously) begin with a
00068   // 0x00000001 or 0x000001 'start code'.  (Those start codes should only be in byte-stream data;
00069   // *not* data that consists of discrete NAL units.)
00070   // Once again, to be clear: The NAL units that you feed to a "H264or5VideoStreamDiscreteFramer"
00071   // MUST NOT include start codes.
00072   if (frameSize >= 4 && fTo[0] == 0 && fTo[1] == 0 && ((fTo[2] == 0 && fTo[3] == 1) || fTo[2] == 1)) {
00073     envir() << "H264or5VideoStreamDiscreteFramer error: MPEG 'start code' seen in the input\n";
00074   } else if (isVPS(nal_unit_type)) { // Video parameter set (VPS)
00075     saveCopyOfVPS(fTo, frameSize);
00076   } else if (isSPS(nal_unit_type)) { // Sequence parameter set (SPS)
00077     saveCopyOfSPS(fTo, frameSize);
00078   } else if (isPPS(nal_unit_type)) { // Picture parameter set (PPS)
00079     saveCopyOfPPS(fTo, frameSize);
00080   }
00081 
00082   // Next, check whether this NAL unit ends the current 'access unit' (basically, a video frame).
00083   //  Unfortunately, we can't do this reliably, because we don't yet know anything about the
00084   // *next* NAL unit that we'll see.  So, we guess this as best as we can, by assuming that
00085   // if this NAL unit is a VCL NAL unit, then it ends the current 'access unit'.
00086   if (isVCL(nal_unit_type)) fPictureEndMarker = True;
00087 
00088   // Finally, complete delivery to the client:
00089   fFrameSize = frameSize;
00090   fNumTruncatedBytes = numTruncatedBytes;
00091   fPresentationTime = presentationTime;
00092   fDurationInMicroseconds = durationInMicroseconds;
00093   afterGetting(this);
00094 }

void H264or5VideoStreamFramer::getVPSandSPSandPPS ( u_int8_t *&  vps,
unsigned &  vpsSize,
u_int8_t *&  sps,
unsigned &  spsSize,
u_int8_t *&  pps,
unsigned &  ppsSize 
) const [inline, inherited]

Definition at line 30 of file H264or5VideoStreamFramer.hh.

References H264or5VideoStreamFramer::fLastSeenPPS, H264or5VideoStreamFramer::fLastSeenPPSSize, H264or5VideoStreamFramer::fLastSeenSPS, H264or5VideoStreamFramer::fLastSeenSPSSize, H264or5VideoStreamFramer::fLastSeenVPS, and H264or5VideoStreamFramer::fLastSeenVPSSize.

Referenced by H265VideoRTPSink::auxSDPLine(), and H264VideoRTPSink::auxSDPLine().

00032                                                                    {
00033     // Returns pointers to copies of the most recently seen VPS (video parameter set)
00034     // SPS (sequence parameter set) and PPS (picture parameter set) NAL units.
00035     // (NULL pointers are returned if the NAL units have not yet been seen.)
00036     vps = fLastSeenVPS; vpsSize = fLastSeenVPSSize;
00037     sps = fLastSeenSPS; spsSize = fLastSeenSPSSize;
00038     pps = fLastSeenPPS; ppsSize = fLastSeenPPSSize;
00039   }

void H264or5VideoStreamFramer::setVPSandSPSandPPS ( u_int8_t *  vps,
unsigned  vpsSize,
u_int8_t *  sps,
unsigned  spsSize,
u_int8_t *  pps,
unsigned  ppsSize 
) [inline, inherited]

Definition at line 41 of file H264or5VideoStreamFramer.hh.

References H264or5VideoStreamFramer::saveCopyOfPPS(), H264or5VideoStreamFramer::saveCopyOfSPS(), and H264or5VideoStreamFramer::saveCopyOfVPS().

00043                                                            {
00044     // Assigns copies of the VPS, SPS and PPS NAL units.  If this function is not called,
00045     // then these NAL units are assigned only if/when they appear in the input stream.
00046     saveCopyOfVPS(vps, vpsSize);
00047     saveCopyOfSPS(sps, spsSize);
00048     saveCopyOfPPS(pps, ppsSize);
00049   }

u_int32_t H264or5VideoStreamFramer::profileLevelId (  )  const [inline, inherited]

Definition at line 51 of file H264or5VideoStreamFramer.hh.

References H264or5VideoStreamFramer::fProfileLevelId.

Referenced by H264VideoRTPSink::auxSDPLine().

00051 { return fProfileLevelId; }

u_int8_t const* H264or5VideoStreamFramer::profileTierLevelHeaderBytes (  )  const [inline, inherited]

Definition at line 53 of file H264or5VideoStreamFramer.hh.

References H264or5VideoStreamFramer::fProfileTierLevelHeaderBytes.

Referenced by H265VideoRTPSink::auxSDPLine().

00053 { return fProfileTierLevelHeaderBytes; }

void H264or5VideoStreamFramer::saveCopyOfVPS ( u_int8_t *  from,
unsigned  size 
) [protected, inherited]

Definition at line 95 of file H264or5VideoStreamFramer.cpp.

References H264or5VideoStreamFramer::fLastSeenVPS, H264or5VideoStreamFramer::fLastSeenVPSSize, H264or5VideoStreamFramer::fProfileTierLevelHeaderBytes, NULL, removeH264or5EmulationBytes(), and VPS_MAX_SIZE.

Referenced by H264or5VideoStreamDiscreteFramer::afterGettingFrame1(), H264or5VideoStreamParser::parse(), and H264or5VideoStreamFramer::setVPSandSPSandPPS().

00095                                                                           {
00096   if (from == NULL) return;
00097   delete[] fLastSeenVPS;
00098   fLastSeenVPS = new u_int8_t[size];
00099   memmove(fLastSeenVPS, from, size);
00100 
00101   fLastSeenVPSSize = size;
00102 
00103   // We also make another copy - without 'emulation bytes', to extract parameters that we need:
00104   u_int8_t vps[VPS_MAX_SIZE];
00105   unsigned vpsSize
00106     = removeH264or5EmulationBytes(vps, VPS_MAX_SIZE, fLastSeenVPS, fLastSeenVPSSize);
00107 
00108   // Extract the first 12 'profile_tier_level' bytes:
00109   if (vpsSize >= 6/*'profile_tier_level' offset*/ + 12/*num 'profile_tier_level' bytes*/) {
00110     memmove(fProfileTierLevelHeaderBytes, &vps[6], 12);
00111   }
00112 }

void H264or5VideoStreamFramer::saveCopyOfSPS ( u_int8_t *  from,
unsigned  size 
) [protected, inherited]

Definition at line 116 of file H264or5VideoStreamFramer.cpp.

References H264or5VideoStreamFramer::fHNumber, H264or5VideoStreamFramer::fLastSeenSPS, H264or5VideoStreamFramer::fLastSeenSPSSize, H264or5VideoStreamFramer::fProfileLevelId, H264or5VideoStreamFramer::fProfileTierLevelHeaderBytes, NULL, removeH264or5EmulationBytes(), and SPS_MAX_SIZE.

Referenced by H264or5VideoStreamDiscreteFramer::afterGettingFrame1(), H264or5VideoStreamParser::parse(), and H264or5VideoStreamFramer::setVPSandSPSandPPS().

00116                                                                           {
00117   if (from == NULL) return;
00118   delete[] fLastSeenSPS;
00119   fLastSeenSPS = new u_int8_t[size];
00120   memmove(fLastSeenSPS, from, size);
00121 
00122   fLastSeenSPSSize = size;
00123 
00124   // We also make another copy - without 'emulation bytes', to extract parameters that we need:
00125   u_int8_t sps[SPS_MAX_SIZE];
00126   unsigned spsSize
00127     = removeH264or5EmulationBytes(sps, SPS_MAX_SIZE, fLastSeenSPS, fLastSeenSPSSize);
00128   if (fHNumber == 264) {
00129     // Extract the first 3 bytes of the SPS (after the nal_unit_header byte) as 'profile_level_id'
00130     if (spsSize >= 1/*'profile_level_id' offset within SPS*/ + 3/*num bytes needed*/) {
00131       fProfileLevelId = (sps[1]<<16) | (sps[2]<<8) | sps[3];
00132     }
00133   } else { // 265
00134     // Extract the first 12 'profile_tier_level' bytes:
00135     if (spsSize >= 3/*'profile_tier_level' offset*/ + 12/*num 'profile_tier_level' bytes*/) {
00136       memmove(fProfileTierLevelHeaderBytes, &sps[3], 12);
00137     }
00138   }
00139 }

void H264or5VideoStreamFramer::saveCopyOfPPS ( u_int8_t *  from,
unsigned  size 
) [protected, inherited]

Definition at line 141 of file H264or5VideoStreamFramer.cpp.

References H264or5VideoStreamFramer::fLastSeenPPS, H264or5VideoStreamFramer::fLastSeenPPSSize, and NULL.

Referenced by H264or5VideoStreamDiscreteFramer::afterGettingFrame1(), H264or5VideoStreamParser::parse(), and H264or5VideoStreamFramer::setVPSandSPSandPPS().

00141                                                                           {
00142   if (from == NULL) return;
00143   delete[] fLastSeenPPS;
00144   fLastSeenPPS = new u_int8_t[size];
00145   memmove(fLastSeenPPS, from, size);
00146 
00147   fLastSeenPPSSize = size;
00148 }

void H264or5VideoStreamFramer::setPresentationTime (  )  [inline, protected, inherited]

Definition at line 67 of file H264or5VideoStreamFramer.hh.

References H264or5VideoStreamFramer::fNextPresentationTime, and FramedSource::fPresentationTime.

Referenced by H264or5VideoStreamParser::parse().

Boolean H264or5VideoStreamFramer::isVPS ( u_int8_t  nal_unit_type  )  [protected, inherited]

Definition at line 150 of file H264or5VideoStreamFramer.cpp.

References H264or5VideoStreamFramer::fHNumber.

Referenced by H264or5VideoStreamDiscreteFramer::afterGettingFrame1(), and H264or5VideoStreamParser::isVPS().

00150                                                               {
00151   // VPS NAL units occur in H.265 only:
00152   return fHNumber == 265 && nal_unit_type == 32;
00153 }

Boolean H264or5VideoStreamFramer::isSPS ( u_int8_t  nal_unit_type  )  [protected, inherited]

Definition at line 155 of file H264or5VideoStreamFramer.cpp.

References H264or5VideoStreamFramer::fHNumber.

Referenced by H264or5VideoStreamDiscreteFramer::afterGettingFrame1(), and H264or5VideoStreamParser::isSPS().

00155                                                               {
00156   return fHNumber == 264 ? nal_unit_type == 7 : nal_unit_type == 33;
00157 }

Boolean H264or5VideoStreamFramer::isPPS ( u_int8_t  nal_unit_type  )  [protected, inherited]

Definition at line 159 of file H264or5VideoStreamFramer.cpp.

References H264or5VideoStreamFramer::fHNumber.

Referenced by H264or5VideoStreamDiscreteFramer::afterGettingFrame1(), and H264or5VideoStreamParser::isPPS().

00159                                                               {
00160   return fHNumber == 264 ? nal_unit_type == 8 : nal_unit_type == 34;
00161 }

Boolean H264or5VideoStreamFramer::isVCL ( u_int8_t  nal_unit_type  )  [protected, inherited]

Definition at line 163 of file H264or5VideoStreamFramer.cpp.

References H264or5VideoStreamFramer::fHNumber.

Referenced by H264or5VideoStreamDiscreteFramer::afterGettingFrame1(), and H264or5VideoStreamParser::isVCL().

00163                                                               {
00164   return fHNumber == 264
00165     ? (nal_unit_type <= 5 && nal_unit_type > 0)
00166     : (nal_unit_type <= 31);
00167 }

Boolean& MPEGVideoStreamFramer::pictureEndMarker (  )  [inline, inherited]

Definition at line 40 of file MPEGVideoStreamFramer.hh.

References MPEGVideoStreamFramer::fPictureEndMarker.

Referenced by MPEG4ESVideoRTPSink::doSpecialFrameHandling(), MPEG1or2VideoRTPSink::doSpecialFrameHandling(), and H264or5VideoRTPSink::doSpecialFrameHandling().

00040 { return fPictureEndMarker; }

void MPEGVideoStreamFramer::flushInput (  )  [inherited]

Definition at line 53 of file MPEGVideoStreamFramer.cpp.

References StreamParser::flushInput(), MPEGVideoStreamFramer::fParser, NULL, and MPEGVideoStreamFramer::reset().

Referenced by MPEG1or2DemuxedServerMediaSubsession::seekStreamSource().

00053                                        {
00054   reset();
00055   if (fParser != NULL) fParser->flushInput();
00056 }

void MPEGVideoStreamFramer::computePresentationTime ( unsigned  numAdditionalPictures  )  [protected, inherited]

Definition at line 74 of file MPEGVideoStreamFramer.cpp.

References TimeCode::days, MPEGVideoStreamFramer::fCurGOPTimeCode, MPEGVideoStreamFramer::fFrameRate, MPEGVideoStreamFramer::fPicturesAdjustment, MPEGVideoStreamFramer::fPictureTimeBase, FramedSource::fPresentationTime, MPEGVideoStreamFramer::fPresentationTimeBase, MPEGVideoStreamFramer::fTcSecsBase, TimeCode::hours, TimeCode::minutes, TimeCode::pictures, and TimeCode::seconds.

Referenced by MPEG1or2VideoStreamParser::parseGOPHeader(), MPEG4VideoStreamParser::parseGroupOfVideoObjectPlane(), MPEG1or2VideoStreamParser::parsePictureHeader(), MPEG1or2VideoStreamParser::parseSlice(), MPEG4VideoStreamParser::parseVideoObjectLayer(), MPEG4VideoStreamParser::parseVideoObjectPlane(), MPEG1or2VideoStreamParser::parseVideoSequenceHeader(), MPEG4VideoStreamParser::parseVisualObject(), and MPEG4VideoStreamParser::parseVisualObjectSequence().

00074                                                         {
00075   // Computes "fPresentationTime" from the most recent GOP's
00076   // time_code, along with the "numAdditionalPictures" parameter:
00077   TimeCode& tc = fCurGOPTimeCode;
00078 
00079   unsigned tcSecs
00080     = (((tc.days*24)+tc.hours)*60+tc.minutes)*60+tc.seconds - fTcSecsBase;
00081   double pictureTime = fFrameRate == 0.0 ? 0.0
00082     : (tc.pictures + fPicturesAdjustment + numAdditionalPictures)/fFrameRate;
00083   while (pictureTime < fPictureTimeBase) { // "if" should be enough, but just in case
00084     if (tcSecs > 0) tcSecs -= 1;
00085     pictureTime += 1.0;
00086   }
00087   pictureTime -= fPictureTimeBase;
00088   if (pictureTime < 0.0) pictureTime = 0.0; // sanity check
00089   unsigned pictureSeconds = (unsigned)pictureTime;
00090   double pictureFractionOfSecond = pictureTime - (double)pictureSeconds;
00091 
00092   fPresentationTime = fPresentationTimeBase;
00093   fPresentationTime.tv_sec += tcSecs + pictureSeconds;
00094   fPresentationTime.tv_usec += (long)(pictureFractionOfSecond*1000000.0);
00095   if (fPresentationTime.tv_usec >= 1000000) {
00096     fPresentationTime.tv_usec -= 1000000;
00097     ++fPresentationTime.tv_sec;
00098   }
00099 #ifdef DEBUG
00100   if (firstPT.tv_sec == 0 && firstPT.tv_usec == 0) firstPT = fPresentationTime;
00101   struct timeval diffPT;
00102   diffPT.tv_sec = fPresentationTime.tv_sec - firstPT.tv_sec;
00103   diffPT.tv_usec = fPresentationTime.tv_usec - firstPT.tv_usec;
00104   if (fPresentationTime.tv_usec < firstPT.tv_usec) {
00105     --diffPT.tv_sec;
00106     diffPT.tv_usec += 1000000;
00107   }
00108   fprintf(stderr, "MPEGVideoStreamFramer::computePresentationTime(%d) -> %lu.%06ld [%lu.%06ld]\n", numAdditionalPictures, fPresentationTime.tv_sec, fPresentationTime.tv_usec, diffPT.tv_sec, diffPT.tv_usec);
00109 #endif
00110 }

void MPEGVideoStreamFramer::setTimeCode ( unsigned  hours,
unsigned  minutes,
unsigned  seconds,
unsigned  pictures,
unsigned  picturesSinceLastGOP 
) [protected, inherited]

Definition at line 113 of file MPEGVideoStreamFramer.cpp.

References TimeCode::days, MPEGVideoStreamFramer::fCurGOPTimeCode, MPEGVideoStreamFramer::fFrameRate, MPEGVideoStreamFramer::fHaveSeenFirstTimeCode, MPEGVideoStreamFramer::fPicturesAdjustment, MPEGVideoStreamFramer::fPictureTimeBase, MPEGVideoStreamFramer::fPrevGOPTimeCode, MPEGVideoStreamFramer::fTcSecsBase, TimeCode::hours, TimeCode::minutes, TimeCode::pictures, TimeCode::seconds, and True.

Referenced by MPEG1or2VideoStreamParser::parseGOPHeader(), and MPEG4VideoStreamParser::parseGroupOfVideoObjectPlane().

00114                                                                 {
00115   TimeCode& tc = fCurGOPTimeCode; // abbrev
00116   unsigned days = tc.days;
00117   if (hours < tc.hours) {
00118     // Assume that the 'day' has wrapped around:
00119     ++days;
00120   }
00121   tc.days = days;
00122   tc.hours = hours;
00123   tc.minutes = minutes;
00124   tc.seconds = seconds;
00125   tc.pictures = pictures;
00126   if (!fHaveSeenFirstTimeCode) {
00127     fPictureTimeBase = fFrameRate == 0.0 ? 0.0 : tc.pictures/fFrameRate;
00128     fTcSecsBase = (((tc.days*24)+tc.hours)*60+tc.minutes)*60+tc.seconds;
00129     fHaveSeenFirstTimeCode = True;
00130   } else if (fCurGOPTimeCode == fPrevGOPTimeCode) {
00131     // The time code has not changed since last time.  Adjust for this:
00132     fPicturesAdjustment += picturesSinceLastGOP;
00133   } else {
00134     // Normal case: The time code changed since last time.
00135     fPrevGOPTimeCode = tc;
00136     fPicturesAdjustment = 0;
00137   }
00138 }

FramedSource* FramedFilter::inputSource (  )  const [inline, inherited]

Definition at line 30 of file FramedFilter.hh.

References FramedFilter::fInputSource.

Referenced by AC3AudioStreamFramer::AC3AudioStreamFramer(), MediaSubsession::addFilter(), H265VideoRTPSink::auxSDPLine(), H264VideoRTPSink::auxSDPLine(), EndianSwap24::createNew(), EndianSwap16::createNew(), HostFromNetworkOrder16::createNew(), NetworkFromHostOrder16::createNew(), PCMFromuLawAudioSource::createNew(), QCELPDeinterleaver::createNew(), MPEG4VideoStreamFramer::createNew(), MPEG4VideoStreamDiscreteFramer::createNew(), MPEG2IFrameIndexFromTransportStream::createNew(), MPEG1or2VideoStreamFramer::createNew(), MPEG1or2VideoStreamDiscreteFramer::createNew(), MPEG1or2AudioStreamFramer::createNew(), MP3Transcoder::createNew(), MP3ADUTranscoder::createNew(), MP3ADUdeinterleaver::createNew(), MP3ADUinterleaver::createNew(), MP3FromADUSource::createNew(), ADUFromMP3Source::createNew(), H265VideoStreamDiscreteFramer::createNew(), createNew(), H263plusVideoStreamFramer::createNew(), DVVideoStreamFramer::createNew(), AC3AudioStreamFramer::createNew(), H264or5VideoRTPSink::doSpecialFrameHandling(), MP3AudioFileServerMediaSubsession::getBaseStreams(), MP3ADUinterleaverBase::getInputSource(), H263plusVideoStreamFramer::H263plusVideoStreamFramer(), MPEG1or2VideoStreamFramer::MPEG1or2VideoStreamFramer(), MPEG4VideoStreamFramer::MPEG4VideoStreamFramer(), DVVideoFileServerMediaSubsession::seekStreamSource(), ClientTrickPlayState::setSource(), and DVVideoFileServerMediaSubsession::setStreamSourceDuration().

00030 { return fInputSource; }

void FramedFilter::reassignInputSource ( FramedSource newInputSource  )  [inline, inherited]

Definition at line 32 of file FramedFilter.hh.

References FramedFilter::fInputSource.

Referenced by T140TextRTPSink::continuePlaying(), H264or5VideoRTPSink::continuePlaying(), and FramedFilter::detachInputSource().

00032 { fInputSource = newInputSource; }

void FramedFilter::detachInputSource (  )  [inherited]

Definition at line 26 of file FramedFilter.cpp.

References FramedFilter::fInputSource, NULL, FramedFilter::reassignInputSource(), and FramedSource::stopGettingFrames().

Referenced by H264or5Fragmenter::~H264or5Fragmenter(), and T140IdleFilter::~T140IdleFilter().

00026                                      {
00027   if (fInputSource != NULL) {
00028     fInputSource->stopGettingFrames();
00029     reassignInputSource(NULL);
00030   }
00031 }

char const * FramedFilter::MIMEtype (  )  const [protected, virtual, inherited]

Reimplemented from MediaSource.

Reimplemented in ADUFromMP3Source, and MP3FromADUSource.

Definition at line 46 of file FramedFilter.cpp.

References FramedFilter::fInputSource, MediaSource::MIMEtype(), and NULL.

00046                                          {
00047   if (fInputSource == NULL) return "";
00048 
00049   return fInputSource->MIMEtype();
00050 }

void FramedFilter::getAttributes (  )  const [protected, virtual, inherited]

Reimplemented from MediaSource.

Reimplemented in MP3ADUTranscoder.

Definition at line 52 of file FramedFilter.cpp.

References FramedFilter::fInputSource, MediaSource::getAttributes(), and NULL.

00052                                        {
00053   if (fInputSource != NULL) fInputSource->getAttributes();
00054 }

void FramedFilter::doStopGettingFrames (  )  [protected, virtual, inherited]

Reimplemented from FramedSource.

Reimplemented in MPEG2TransportStreamFramer, MPEG2TransportStreamTrickModeFilter, T140IdleFilter, and QCELPDeinterleaver.

Definition at line 56 of file FramedFilter.cpp.

References FramedSource::doStopGettingFrames(), FramedFilter::fInputSource, NULL, and FramedSource::stopGettingFrames().

Referenced by T140IdleFilter::doStopGettingFrames(), MPEG2TransportStreamTrickModeFilter::doStopGettingFrames(), and MPEG2TransportStreamFramer::doStopGettingFrames().

Boolean FramedSource::lookupByName ( UsageEnvironment env,
char const *  sourceName,
FramedSource *&  resultSource 
) [static, inherited]

Definition at line 41 of file FramedSource.cpp.

References env, False, FramedSource::isFramedSource(), MediaSource::lookupByName(), NULL, source, and True.

Referenced by MP3ADUinterleaverBase::getInputSource().

00042                                                                 {
00043   resultSource = NULL; // unless we succeed
00044 
00045   MediaSource* source;
00046   if (!MediaSource::lookupByName(env, sourceName, source)) return False;
00047 
00048   if (!source->isFramedSource()) {
00049     env.setResultMsg(sourceName, " is not a framed source");
00050     return False;
00051   }
00052 
00053   resultSource = (FramedSource*)source;
00054   return True;
00055 }

Boolean MediaSource::lookupByName ( UsageEnvironment env,
char const *  sourceName,
MediaSource *&  resultSource 
) [static, inherited]

Definition at line 68 of file MediaSource.cpp.

References env, False, Medium::isSource(), Medium::lookupByName(), NULL, and True.

Referenced by RTPSource::lookupByName(), and FramedSource::lookupByName().

00070                                                               {
00071   resultSource = NULL; // unless we succeed
00072 
00073   Medium* medium;
00074   if (!Medium::lookupByName(env, sourceName, medium)) return False;
00075 
00076   if (!medium->isSource()) {
00077     env.setResultMsg(sourceName, " is not a media source");
00078     return False;
00079   }
00080 
00081   resultSource = (MediaSource*)medium;
00082   return True;
00083 }

Boolean Medium::lookupByName ( UsageEnvironment env,
char const *  mediumName,
Medium *&  resultMedium 
) [static, inherited]

Definition at line 41 of file Media.cpp.

References env, False, MediaLookupTable::lookup(), NULL, MediaLookupTable::ourMedia(), UsageEnvironment::setResultMsg(), and True.

Referenced by ServerMediaSession::lookupByName(), RTSPServer::lookupByName(), RTSPClient::lookupByName(), RTCPInstance::lookupByName(), MediaSource::lookupByName(), MediaSink::lookupByName(), MediaSession::lookupByName(), and DarwinInjector::lookupByName().

00042                                                          {
00043   resultMedium = MediaLookupTable::ourMedia(env)->lookup(mediumName);
00044   if (resultMedium == NULL) {
00045     env.setResultMsg("Medium ", mediumName, " does not exist");
00046     return False;
00047   }
00048 
00049   return True;
00050 }

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

Definition at line 57 of file FramedSource.cpp.

References FramedSource::doGetNextFrame(), Medium::envir(), FramedSource::fAfterGettingClientData, FramedSource::fAfterGettingFunc, FramedSource::fDurationInMicroseconds, FramedSource::fIsCurrentlyAwaitingData, FramedSource::fMaxSize, FramedSource::fNumTruncatedBytes, FramedSource::fOnCloseClientData, FramedSource::fOnCloseFunc, FramedSource::fTo, UsageEnvironment::internalError(), and True.

Referenced by MPEG2TransportStreamFramer::afterGettingFrame1(), InputESSourceRecord::askForNewData(), MPEG2TransportStreamFromPESSource::awaitNewBuffer(), DummySink::continuePlaying(), QuickTimeFileSink::continuePlaying(), OggFileSink::continuePlaying(), MFSD_DummySink::continuePlaying(), FileSink::continuePlaying(), AVIFileSink::continuePlaying(), BasicUDPSink::continuePlaying1(), StreamReplicator::deactivateStreamReplica(), StreamReplicator::deliverReceivedFrame(), EndianSwap24::doGetNextFrame(), EndianSwap16::doGetNextFrame(), HostFromNetworkOrder16::doGetNextFrame(), NetworkFromHostOrder16::doGetNextFrame(), PCMFromuLawAudioSource::doGetNextFrame(), uLawFromPCMAudioSource::doGetNextFrame(), T140IdleFilter::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), PresentationTimeSubsessionNormalizer::doGetNextFrame(), MPEG4VideoStreamDiscreteFramer::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG2IFrameIndexFromTransportStream::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MP3ADUTranscoder::doGetNextFrame(), MP3ADUdeinterleaver::doGetNextFrame(), MP3ADUinterleaver::doGetNextFrame(), H264or5VideoStreamDiscreteFramer::doGetNextFrame(), H264or5Fragmenter::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), SegmentQueue::enqueueNewSegment(), StreamParser::ensureValidBytes1(), DVVideoStreamFramer::getAndDeliverData(), StreamReplicator::getNextFrame(), DVVideoStreamFramer::getProfile(), MultiFramedRTPSink::packFrame(), TCPStreamSink::processBuffer(), AC3AudioStreamParser::readAndSaveAFrame(), and MPEG2TransportStreamTrickModeFilter::readTransportPacket().

00061                                                          {
00062   // Make sure we're not already being read:
00063   if (fIsCurrentlyAwaitingData) {
00064     envir() << "FramedSource[" << this << "]::getNextFrame(): attempting to read more than once at the same time!\n";
00065     envir().internalError();
00066   }
00067 
00068   fTo = to;
00069   fMaxSize = maxSize;
00070   fNumTruncatedBytes = 0; // by default; could be changed by doGetNextFrame()
00071   fDurationInMicroseconds = 0; // by default; could be changed by doGetNextFrame()
00072   fAfterGettingFunc = afterGettingFunc;
00073   fAfterGettingClientData = afterGettingClientData;
00074   fOnCloseFunc = onCloseFunc;
00075   fOnCloseClientData = onCloseClientData;
00076   fIsCurrentlyAwaitingData = True;
00077 
00078   doGetNextFrame();
00079 }

void FramedSource::handleClosure ( void *  clientData  )  [static, inherited]

Definition at line 95 of file FramedSource.cpp.

References FramedSource::handleClosure(), and source.

Referenced by SegmentQueue::enqueueNewSegment(), StreamReplicator::getNextFrame(), FramedSource::handleClosure(), OggDemux::handleEndOfFile(), MatroskaDemux::handleEndOfFile(), StreamReplicator::onSourceClosure(), and ProxyServerMediaSubsession::subsessionByeHandler().

00095                                                  {
00096   FramedSource* source = (FramedSource*)clientData;
00097   source->handleClosure();
00098 }

void FramedSource::handleClosure (  )  [inherited]

Definition at line 100 of file FramedSource.cpp.

References False, FramedSource::fIsCurrentlyAwaitingData, FramedSource::fOnCloseClientData, FramedSource::fOnCloseFunc, and NULL.

Referenced by MPEG2TransportStreamFramer::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), InputESSourceRecord::askForNewData(), MPEG2TransportStreamFromPESSource::awaitNewBuffer(), WAVAudioFileSource::doGetNextFrame(), EndianSwap24::doGetNextFrame(), EndianSwap16::doGetNextFrame(), HostFromNetworkOrder16::doGetNextFrame(), NetworkFromHostOrder16::doGetNextFrame(), PCMFromuLawAudioSource::doGetNextFrame(), uLawFromPCMAudioSource::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), PresentationTimeSubsessionNormalizer::doGetNextFrame(), MPEG4VideoStreamDiscreteFramer::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MPEG1or2DemuxedElementaryStream::doGetNextFrame(), MP3FileSource::doGetNextFrame(), MP3ADUTranscoder::doGetNextFrame(), MP3ADUdeinterleaver::doGetNextFrame(), MP3ADUinterleaver::doGetNextFrame(), ADUFromMP3Source::doGetNextFrame(), H264or5VideoStreamDiscreteFramer::doGetNextFrame(), H264or5Fragmenter::doGetNextFrame(), DeviceSource::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), ByteStreamFileSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), SegmentQueue::enqueueNewSegment(), DVVideoStreamFramer::getAndDeliverData(), DVVideoStreamFramer::getProfile(), MPEG2IFrameIndexFromTransportStream::handleInputClosure1(), T140IdleFilter::onSourceClosure(), and MPEG2TransportStreamTrickModeFilter::onSourceClosure1().

00100                                  {
00101   fIsCurrentlyAwaitingData = False; // because we got a close instead
00102   if (fOnCloseFunc != NULL) {
00103     (*fOnCloseFunc)(fOnCloseClientData);
00104   }
00105 }

void FramedSource::stopGettingFrames (  )  [inherited]

Definition at line 107 of file FramedSource.cpp.

References FramedSource::doStopGettingFrames(), FramedSource::fAfterGettingFunc, False, FramedSource::fIsCurrentlyAwaitingData, FramedSource::fOnCloseFunc, and NULL.

Referenced by FileSink::afterGettingFrame(), StreamReplicator::deactivateStreamReplica(), FramedFilter::detachInputSource(), QCELPDeinterleaver::doStopGettingFrames(), MPEG2TransportStreamFromPESSource::doStopGettingFrames(), FramedFilter::doStopGettingFrames(), AMRDeinterleaver::doStopGettingFrames(), MediaSink::stopPlaying(), AVIFileSink::~AVIFileSink(), and QuickTimeFileSink::~QuickTimeFileSink().

00107                                      {
00108   fIsCurrentlyAwaitingData = False; // indicates that we can be read again
00109   fAfterGettingFunc = NULL;
00110   fOnCloseFunc = NULL;
00111 
00112   // Perform any specialized action now:
00113   doStopGettingFrames();
00114 }

unsigned FramedSource::maxFrameSize (  )  const [virtual, inherited]

Reimplemented in MPEG1or2DemuxedElementaryStream.

Definition at line 122 of file FramedSource.cpp.

Referenced by StreamParser::ensureValidBytes1().

00122                                           {
00123   // By default, this source has no maximum frame size.
00124   return 0;
00125 }

Boolean FramedSource::isCurrentlyAwaitingData (  )  const [inline, inherited]

Definition at line 61 of file FramedSource.hh.

References FramedSource::fIsCurrentlyAwaitingData.

Referenced by T140IdleFilter::afterGettingFrame(), afterPlaying(), InputESSourceRecord::askForNewData(), MPEG2TransportStreamFromESSource::awaitNewBuffer(), OggFileParser::continueParsing(), MatroskaFileParser::continueParsing(), QuickTimeFileSink::continuePlaying(), AVIFileSink::continuePlaying(), StreamReplicator::deactivateStreamReplica(), DeviceSource::deliverFrame(), MatroskaFileParser::deliverFrameWithinBlock(), OggFileParser::deliverPacketWithinPage(), T140IdleFilter::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), WAVAudioFileSource::fileReadableHandler(), ByteStreamFileSource::fileReadableHandler(), StreamReplicator::getNextFrame(), BasicUDPSource::incomingPacketHandler1(), and TCPStreamSink::processBuffer().

00061 {return fIsCurrentlyAwaitingData;}

void FramedSource::afterGetting ( FramedSource source  )  [static, inherited]

Definition at line 81 of file FramedSource.cpp.

References FramedSource::fAfterGettingClientData, FramedSource::fAfterGettingFunc, False, FramedSource::fDurationInMicroseconds, FramedSource::fFrameSize, FramedSource::fIsCurrentlyAwaitingData, FramedSource::fNumTruncatedBytes, FramedSource::fPresentationTime, NULL, and source.

Referenced by PresentationTimeSubsessionNormalizer::afterGettingFrame(), ByteStreamMultiFileSource::afterGettingFrame(), EndianSwap24::afterGettingFrame1(), EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264or5VideoStreamDiscreteFramer::afterGettingFrame1(), MPEG2TransportStreamTrickModeFilter::attemptDeliveryToClient(), MPEGVideoStreamFramer::continueReadProcessing(), MPEG1or2AudioStreamFramer::continueReadProcessing(), H263plusVideoStreamFramer::continueReadProcessing(), T140IdleFilter::deliverEmptyFrame(), DeviceSource::deliverFrame(), MatroskaFileParser::deliverFrameBytes(), MatroskaFileParser::deliverFrameWithinBlock(), T140IdleFilter::deliverFromBuffer(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), OggFileParser::deliverPacketWithinPage(), StreamReplicator::deliverReceivedFrame(), QCELPDeinterleaver::doGetNextFrame(), MPEG2TransportStreamTrickModeFilter::doGetNextFrame(), MPEG2TransportStreamMultiplexor::doGetNextFrame(), MP3FileSource::doGetNextFrame(), MP3ADUdeinterleaver::doGetNextFrame(), MP3ADUinterleaver::doGetNextFrame(), MP3FromADUSource::doGetNextFrame(), H264or5Fragmenter::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), BasicUDPSource::incomingPacketHandler1(), and AC3AudioStreamFramer::parseNextFrame().

00081                                                     {
00082   source->fIsCurrentlyAwaitingData = False;
00083       // indicates that we can be read again
00084       // Note that this needs to be done here, in case the "fAfterFunc"
00085       // called below tries to read another frame (which it usually will)
00086 
00087   if (source->fAfterGettingFunc != NULL) {
00088     (*(source->fAfterGettingFunc))(source->fAfterGettingClientData,
00089                                    source->fFrameSize, source->fNumTruncatedBytes,
00090                                    source->fPresentationTime,
00091                                    source->fDurationInMicroseconds);
00092   }
00093 }

Boolean MediaSource::isRTPSource (  )  const [virtual, inherited]

Reimplemented in RTPSource.

Definition at line 43 of file MediaSource.cpp.

References False.

Referenced by RTPSource::lookupByName().

00043                                        {
00044   return False; // default implementation
00045 }

Boolean MediaSource::isMPEG1or2VideoStreamFramer (  )  const [virtual, inherited]

Reimplemented in MPEG1or2VideoStreamFramer.

Definition at line 46 of file MediaSource.cpp.

References False.

Referenced by MPEG1or2VideoRTPSink::sourceIsCompatibleWithUs().

00046                                                        {
00047   return False; // default implementation
00048 }

Boolean MediaSource::isMPEG4VideoStreamFramer (  )  const [virtual, inherited]

Reimplemented in MPEG4VideoStreamFramer.

Definition at line 49 of file MediaSource.cpp.

References False.

Referenced by MPEG4ESVideoRTPSink::sourceIsCompatibleWithUs().

00049                                                     {
00050   return False; // default implementation
00051 }

Boolean MediaSource::isH265VideoStreamFramer (  )  const [virtual, inherited]

Reimplemented in H265VideoStreamDiscreteFramer, and H265VideoStreamFramer.

Definition at line 55 of file MediaSource.cpp.

References False.

Referenced by H265VideoRTPSink::sourceIsCompatibleWithUs().

00055                                                    {
00056   return False; // default implementation
00057 }

Boolean MediaSource::isDVVideoStreamFramer (  )  const [virtual, inherited]

Reimplemented in DVVideoStreamFramer.

Definition at line 58 of file MediaSource.cpp.

References False.

Referenced by DVVideoRTPSink::sourceIsCompatibleWithUs().

00058                                                  {
00059   return False; // default implementation
00060 }

Boolean MediaSource::isJPEGVideoSource (  )  const [virtual, inherited]

Reimplemented in JPEGVideoSource.

Definition at line 61 of file MediaSource.cpp.

References False.

Referenced by JPEGVideoRTPSink::sourceIsCompatibleWithUs().

00061                                              {
00062   return False; // default implementation
00063 }

Boolean MediaSource::isAMRAudioSource (  )  const [virtual, inherited]

Reimplemented in AMRAudioSource.

Definition at line 64 of file MediaSource.cpp.

References False.

Referenced by AMRAudioRTPSink::sourceIsCompatibleWithUs(), and AMRAudioFileSink::sourceIsCompatibleWithUs().

00064                                             {
00065   return False; // default implementation
00066 }

void Medium::close ( UsageEnvironment env,
char const *  mediumName 
) [static, inherited]

Definition at line 52 of file Media.cpp.

References env, MediaLookupTable::ourMedia(), and MediaLookupTable::remove().

Referenced by afterPlaying(), Medium::close(), closeMediaSinks(), OnDemandServerMediaSubsession::closeStreamSource(), continueAfterClientCreation0(), continueAfterTEARDOWN(), WAVAudioFileSource::createNew(), QuickTimeFileSink::createNew(), QCELPAudioRTPSource::createNew(), MP3FileSource::createNew(), AVIFileSink::createNew(), AMRAudioRTPSource::createNew(), WAVAudioFileServerMediaSubsession::createNewStreamSource(), MPEG1or2DemuxedServerMediaSubsession::createNewStreamSource(), MediaSubsession::deInitiate(), ServerMediaSession::deleteAllSubsessions(), RTSPServerSupportingHTTPStreaming::RTSPClientConnectionSupportingHTTPStreaming::handleHTTPCmd_StreamingGET(), MPEG1or2ProgramStreamFileDuration(), MPEG1or2Demux::noteElementaryStreamDeletion(), ByteStreamMultiFileSource::onSourceClosure1(), StreamState::reclaim(), registerResponseHandler(), RTSPServer::removeServerMediaSession(), ProxyServerMediaSession::resetDESCRIBEState(), OnDemandServerMediaSubsession::sdpLines(), shutdownStream(), subsessionAfterPlaying(), ClientTrickPlayState::updateStateOnScaleChange(), AMRDeinterleaver::~AMRDeinterleaver(), ByteStreamMultiFileSource::~ByteStreamMultiFileSource(), DarwinInjector::~DarwinInjector(), FramedFilter::~FramedFilter(), H264or5VideoRTPSink::~H264or5VideoRTPSink(), InputESSourceRecord::~InputESSourceRecord(), MatroskaFileParser::~MatroskaFileParser(), MatroskaFileServerDemux::~MatroskaFileServerDemux(), MPEG1or2Demux::~MPEG1or2Demux(), MPEG1or2FileServerDemux::~MPEG1or2FileServerDemux(), MPEG2TransportFileServerMediaSubsession::~MPEG2TransportFileServerMediaSubsession(), MPEG2TransportStreamFromPESSource::~MPEG2TransportStreamFromPESSource(), OggFileParser::~OggFileParser(), OggFileServerDemux::~OggFileServerDemux(), ProxyServerMediaSession::~ProxyServerMediaSession(), RTSPServerSupportingHTTPStreaming::RTSPClientConnectionSupportingHTTPStreaming::~RTSPClientConnectionSupportingHTTPStreaming(), ServerMediaSubsession::~ServerMediaSubsession(), StreamClientState::~StreamClientState(), StreamReplicator::~StreamReplicator(), and T140TextRTPSink::~T140TextRTPSink().

00052                                                           {
00053   MediaLookupTable::ourMedia(env)->remove(name);
00054 }

void Medium::close ( Medium medium  )  [static, inherited]

Definition at line 56 of file Media.cpp.

References Medium::close(), Medium::envir(), Medium::name(), and NULL.

00056                                  {
00057   if (medium == NULL) return;
00058 
00059   close(medium->envir(), medium->name());
00060 }

UsageEnvironment& Medium::envir (  )  const [inline, inherited]

Definition at line 59 of file Media.hh.

References Medium::fEnviron.

Referenced by QuickTimeFileSink::addArbitraryString(), FileSink::addData(), RTCPInstance::addStreamSocket(), MPEG2IFrameIndexFromTransportStream::addToTail(), StreamParser::afterGettingBytes1(), DummySink::afterGettingFrame(), TCPStreamSink::afterGettingFrame(), T140IdleFilter::afterGettingFrame(), FileSink::afterGettingFrame(), MultiFramedRTPSink::afterGettingFrame1(), InputESSourceRecord::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG2IFrameIndexFromTransportStream::afterGettingFrame1(), H264or5VideoStreamDiscreteFramer::afterGettingFrame1(), BasicUDPSink::afterGettingFrame1(), MPEG4VideoFileServerMediaSubsession::afterPlayingDummy1(), H265VideoFileServerMediaSubsession::afterPlayingDummy1(), H264VideoFileServerMediaSubsession::afterPlayingDummy1(), MPEG4VideoStreamParser::analyzeVOLHeader(), announceStream(), RTSPServer::RTSPClientConnection::changeClientInputSocket(), MPEG4VideoFileServerMediaSubsession::checkForAuxSDPLine1(), H265VideoFileServerMediaSubsession::checkForAuxSDPLine1(), H264VideoFileServerMediaSubsession::checkForAuxSDPLine1(), Medium::close(), ProxyServerMediaSubsession::closeStreamSource(), MPEG2IFrameIndexFromTransportStream::compactParseBuffer(), RTSPClient::connectionHandler1(), RTSPClient::connectToServer(), ProxyServerMediaSession::continueAfterDESCRIBE(), ProxyRTSPClient::continueAfterLivenessCommand(), ProxyRTSPClient::continueAfterSETUP(), T140TextRTPSink::continuePlaying(), QuickTimeFileSink::continuePlaying(), H264or5VideoRTPSink::continuePlaying(), AVIFileSink::continuePlaying(), ProxyServerMediaSubsession::createNewRTPSink(), MPEG4VideoFileServerMediaSubsession::createNewRTPSink(), MPEG2TransportUDPServerMediaSubsession::createNewRTPSink(), MPEG2TransportFileServerMediaSubsession::createNewRTPSink(), MPEG1or2VideoFileServerMediaSubsession::createNewRTPSink(), MPEG1or2DemuxedServerMediaSubsession::createNewRTPSink(), MP3AudioFileServerMediaSubsession::createNewRTPSink(), H265VideoFileServerMediaSubsession::createNewRTPSink(), H264VideoFileServerMediaSubsession::createNewRTPSink(), H263plusVideoFileServerMediaSubsession::createNewRTPSink(), DVVideoFileServerMediaSubsession::createNewRTPSink(), AMRAudioFileServerMediaSubsession::createNewRTPSink(), ADTSAudioFileServerMediaSubsession::createNewRTPSink(), AC3AudioFileServerMediaSubsession::createNewRTPSink(), HandlerServerForREGISTERCommand::createNewRTSPClient(), ProxyServerMediaSubsession::createNewStreamSource(), MPEG4VideoFileServerMediaSubsession::createNewStreamSource(), MPEG2TransportUDPServerMediaSubsession::createNewStreamSource(), MPEG2TransportFileServerMediaSubsession::createNewStreamSource(), MPEG1or2VideoFileServerMediaSubsession::createNewStreamSource(), MPEG1or2DemuxedServerMediaSubsession::createNewStreamSource(), MP3AudioFileServerMediaSubsession::createNewStreamSource(), H265VideoFileServerMediaSubsession::createNewStreamSource(), H264VideoFileServerMediaSubsession::createNewStreamSource(), H263plusVideoFileServerMediaSubsession::createNewStreamSource(), DVVideoFileServerMediaSubsession::createNewStreamSource(), AMRAudioFileServerMediaSubsession::createNewStreamSource(), ADTSAudioFileServerMediaSubsession::createNewStreamSource(), AC3AudioFileServerMediaSubsession::createNewStreamSource(), OggFile::createRTPSinkForTrackNumber(), MatroskaFile::createRTPSinkForTrackNumber(), MatroskaFile::createSourceForStreaming(), AMRDeinterleavingBuffer::deliverIncomingFrame(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), SegmentQueue::dequeue(), DeviceSource::DeviceSource(), WAVAudioFileSource::doGetNextFrame(), T140IdleFilter::doGetNextFrame(), MPEG2TransportStreamMultiplexor::doGetNextFrame(), MPEG2IFrameIndexFromTransportStream::doGetNextFrame(), MP3FileSource::doGetNextFrame(), H264or5Fragmenter::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamFileSource::doGetNextFrame(), BasicUDPSource::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), SIPClient::doInviteStateMachine(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), MPEG1or2VideoRTPSink::doSpecialFrameHandling(), MP3ADURTPSink::doSpecialFrameHandling(), H263plusVideoRTPSink::doSpecialFrameHandling(), WAVAudioFileSource::doStopGettingFrames(), T140IdleFilter::doStopGettingFrames(), MultiFramedRTPSource::doStopGettingFrames(), FramedSource::doStopGettingFrames(), ByteStreamFileSource::doStopGettingFrames(), BasicUDPSource::doStopGettingFrames(), SegmentQueue::enqueueNewSegment(), StreamParser::ensureValidBytes1(), MediaSubsession::env(), SubsessionIOState::envir(), RTSPServer::RTSPClientSession::envir(), RTSPServer::RTSPClientConnection::envir(), RTPInterface::envir(), AVISubsessionIOState::envir(), ServerMediaSession::generateSDPDescription(), RTPSource::getAttributes(), MP3FileSource::getAttributes(), MP3ADUTranscoder::getAttributes(), MediaSource::getAttributes(), MPEG4VideoFileServerMediaSubsession::getAuxSDPLine(), H265VideoFileServerMediaSubsession::getAuxSDPLine(), H264VideoFileServerMediaSubsession::getAuxSDPLine(), getMPEG1or2TimeCode(), FramedSource::getNextFrame(), getOptions(), DVVideoStreamFramer::getProfile(), SIPClient::getResponse(), SIPClient::getResponseCode(), getSDPDescription(), OnDemandServerMediaSubsession::getStreamParameters(), RTSPClient::handleAlternativeRequestByte1(), RTSPServer::RTSPClientConnection::handleCmd_REGISTER(), RTSPClient::handleGET_PARAMETERResponse(), RTSPServerSupportingHTTPStreaming::RTSPClientConnectionSupportingHTTPStreaming::handleHTTPCmd_StreamingGET(), RTSPClient::handleIncomingRequest(), RTSPClient::handlePLAYResponse(), RTSPClient::handleRequestError(), RTSPClient::handleResponseBytes(), RTSPClient::handleSETUPResponse(), RTSPServerWithREGISTERProxying::implementCmd_REGISTER(), RTSPServer::incomingConnectionHandler(), RTSPClient::incomingDataHandler1(), RTCPInstance::incomingReportHandler1(), MP3FileSource::initializeStream(), MediaSession::initializeWithSDP(), MediaSession::initiateByMediaType(), SIPClient::invite1(), DynamicRTSPServer::lookupServerMediaSession(), MatroskaDemux::MatroskaDemux(), MatroskaFile::MatroskaFile(), MPEG4GenericRTPSource::MPEG4GenericRTPSource(), MultiFramedRTPSource::networkReadHandler1(), OggDemux::newDemuxedTrack(), OggDemux::newDemuxedTrackByTrackNumber(), MatroskaDemux::newDemuxedTrackByTrackNumber(), MPEG1or2FileServerDemux::newElementaryStream(), MPEG1or2Demux::newElementaryStream(), MPEG4GenericBufferedPacket::nextEnclosedFrameSize(), AMRBufferedPacket::nextEnclosedFrameSize(), OggDemux::OggDemux(), OggFile::OggFile(), T140IdleFilter::onSourceClosure(), MediaSink::onSourceClosure(), RTSPClient::openConnection(), MPEG2TransportStreamIndexFile::openFid(), MPEG2IFrameIndexFromTransportStream::parseFrame(), AC3AudioStreamParser::parseFrame(), MPEGProgramStreamParser::parsePackHeader(), MPEGProgramStreamParser::parsePESPacket(), SIPClient::parseResponseCode(), MediaSession::parseSDPLine(), MPEG1or2VideoStreamParser::parseSlice(), MatroskaFileParser::parseStartOfFile(), MPEGProgramStreamParser::parseSystemHeader(), MPEG4VideoStreamParser::parseVideoObjectLayer(), MPEG4VideoStreamParser::parseVideoObjectPlane(), MPEG4VideoStreamParser::parseVisualObject(), TCPStreamSink::processBuffer(), SIPClient::processURL(), AC3AudioStreamParser::readAndSaveAFrame(), MPEG1or2Demux::registerReadInterest(), RTCPInstance::reschedule(), RTSPClient::resendCommand(), ProxyRTSPClient::reset(), RTSPClient::resetTCPSockets(), RTSPClient::responseHandlerForHTTP_GET1(), RTSPClient::RTSPClient(), RTSPServer::rtspURLPrefix(), RTCPInstance::schedule(), ProxyRTSPClient::scheduleDESCRIBECommand(), ProxyRTSPClient::scheduleLivenessCommand(), OnDemandServerMediaSubsession::sdpLines(), SIPClient::sendACK(), SIPClient::sendBYE(), RTSPClient::sendDummyUDPPackets(), SIPClient::sendINVITE(), MultiFramedRTPSink::sendPacketIfNecessary(), SIPClient::sendRequest(), RTSPClient::sendRequest(), DarwinInjector::setDestination(), RTSPClient::setRequestFields(), RTSPClient::setupHTTPTunneling1(), setupNextSubsession(), RTSPServer::setUpTunnelingOverHTTP(), QuickTimeFileSink::setWord(), AVIFileSink::setWord(), QuickTimeFileSink::setWord64(), shutdownStream(), SIPClient::SIPClient(), TCPStreamSink::socketWritableHandler1(), AMRAudioRTPSink::sourceIsCompatibleWithUs(), QuickTimeFileSink::startPlaying(), StreamState::startPlaying(), MediaSink::startPlaying(), AVIFileSink::startPlaying(), startPlayingSession(), PassiveServerMediaSubsession::startStream(), MediaSink::stopPlaying(), ProxyServerMediaSubsession::subsessionByeHandler(), tearDownSession(), SIPClient::timerAHandler(), SIPClient::timerBHandler(), SIPClient::timerDHandler(), ClientTrickPlayState::updateStateOnScaleChange(), MPEG2TransportStreamFramer::updateTSPacketDurationEstimate(), BasicUDPSource::~BasicUDPSource(), ByteStreamFileSource::~ByteStreamFileSource(), DeviceSource::~DeviceSource(), ProxyServerMediaSession::~ProxyServerMediaSession(), ProxyServerMediaSubsession::~ProxyServerMediaSubsession(), RTSPClient::~RTSPClient(), RTSPServer::~RTSPServer(), StreamClientState::~StreamClientState(), T140IdleFilter::~T140IdleFilter(), TCPStreamSink::~TCPStreamSink(), and WAVAudioFileSource::~WAVAudioFileSource().

00059 {return fEnviron;}

char const* Medium::name (  )  const [inline, inherited]

Definition at line 61 of file Media.hh.

References Medium::fMediumName.

Referenced by QuickTimeFileSink::addAtom_hdlr2(), Medium::close(), MP3ADUTranscoder::createNew(), MP3FromADUSource::createNew(), ADUFromMP3Source::createNew(), and MP3FileSource::initializeStream().

00061 {return fMediumName;}

Boolean Medium::isSink (  )  const [virtual, inherited]

Reimplemented in MediaSink.

Definition at line 66 of file Media.cpp.

References False.

Referenced by MediaSink::lookupByName().

00066                              {
00067   return False; // default implementation
00068 }

Boolean Medium::isRTCPInstance (  )  const [virtual, inherited]

Reimplemented in RTCPInstance.

Definition at line 70 of file Media.cpp.

References False.

Referenced by RTCPInstance::lookupByName().

00070                                      {
00071   return False; // default implementation
00072 }

Boolean Medium::isRTSPClient (  )  const [virtual, inherited]

Reimplemented in RTSPClient.

Definition at line 74 of file Media.cpp.

References False.

Referenced by RTSPClient::lookupByName().

00074                                    {
00075   return False; // default implementation
00076 }

Boolean Medium::isRTSPServer (  )  const [virtual, inherited]

Reimplemented in RTSPServer.

Definition at line 78 of file Media.cpp.

References False.

Referenced by RTSPServer::lookupByName().

00078                                    {
00079   return False; // default implementation
00080 }

Boolean Medium::isMediaSession (  )  const [virtual, inherited]

Reimplemented in MediaSession.

Definition at line 82 of file Media.cpp.

References False.

Referenced by MediaSession::lookupByName().

00082                                      {
00083   return False; // default implementation
00084 }

Boolean Medium::isServerMediaSession (  )  const [virtual, inherited]

Reimplemented in ServerMediaSession.

Definition at line 86 of file Media.cpp.

References False.

Referenced by ServerMediaSession::lookupByName().

00086                                            {
00087   return False; // default implementation
00088 }

Boolean Medium::isDarwinInjector (  )  const [virtual, inherited]

Reimplemented in DarwinInjector.

Definition at line 90 of file Media.cpp.

References False.

Referenced by DarwinInjector::lookupByName().

00090                                        {
00091   return False; // default implementation
00092 }

TaskToken& Medium::nextTask (  )  [inline, protected, inherited]

Definition at line 78 of file Media.hh.

References Medium::fNextTask.

Referenced by BasicUDPSink::afterGettingFrame1(), MPEG4VideoFileServerMediaSubsession::afterPlayingDummy1(), H265VideoFileServerMediaSubsession::afterPlayingDummy1(), H264VideoFileServerMediaSubsession::afterPlayingDummy1(), MPEG4VideoFileServerMediaSubsession::checkForAuxSDPLine1(), H265VideoFileServerMediaSubsession::checkForAuxSDPLine1(), H264VideoFileServerMediaSubsession::checkForAuxSDPLine1(), MP3FileSource::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), WAVAudioFileSource::doStopGettingFrames(), MultiFramedRTPSource::doStopGettingFrames(), FramedSource::doStopGettingFrames(), ByteStreamFileSource::doStopGettingFrames(), MediaSink::onSourceClosure(), RTCPInstance::reschedule(), RTCPInstance::schedule(), MultiFramedRTPSink::sendPacketIfNecessary(), and MediaSink::stopPlaying().

00078                         {
00079         return fNextTask;
00080   }


Friends And Related Function Documentation

friend class H264or5VideoStreamParser [friend, inherited]

Definition at line 85 of file H264or5VideoStreamFramer.hh.

friend class MPEGVideoStreamParser [friend, inherited]

Definition at line 74 of file MPEGVideoStreamFramer.hh.

friend class MediaLookupTable [friend, inherited]

Definition at line 74 of file Media.hh.


Field Documentation

int H264or5VideoStreamFramer::fHNumber [protected, inherited]

Definition at line 75 of file H264or5VideoStreamFramer.hh.

Referenced by H264or5VideoStreamDiscreteFramer::afterGettingFrame1(), H264or5VideoStreamFramer::isPPS(), H264or5VideoStreamFramer::isSPS(), H264or5VideoStreamFramer::isVCL(), H264or5VideoStreamFramer::isVPS(), and H264or5VideoStreamFramer::saveCopyOfSPS().

u_int8_t* H264or5VideoStreamFramer::fLastSeenVPS [protected, inherited]

Definition at line 76 of file H264or5VideoStreamFramer.hh.

Referenced by H264or5VideoStreamFramer::getVPSandSPSandPPS(), H264or5VideoStreamFramer::saveCopyOfVPS(), and H264or5VideoStreamFramer::~H264or5VideoStreamFramer().

unsigned H264or5VideoStreamFramer::fLastSeenVPSSize [protected, inherited]

Definition at line 77 of file H264or5VideoStreamFramer.hh.

Referenced by H264or5VideoStreamFramer::getVPSandSPSandPPS(), and H264or5VideoStreamFramer::saveCopyOfVPS().

u_int8_t* H264or5VideoStreamFramer::fLastSeenSPS [protected, inherited]

Definition at line 78 of file H264or5VideoStreamFramer.hh.

Referenced by H264or5VideoStreamFramer::getVPSandSPSandPPS(), H264or5VideoStreamFramer::saveCopyOfSPS(), and H264or5VideoStreamFramer::~H264or5VideoStreamFramer().

unsigned H264or5VideoStreamFramer::fLastSeenSPSSize [protected, inherited]

Definition at line 79 of file H264or5VideoStreamFramer.hh.

Referenced by H264or5VideoStreamFramer::getVPSandSPSandPPS(), and H264or5VideoStreamFramer::saveCopyOfSPS().

u_int8_t* H264or5VideoStreamFramer::fLastSeenPPS [protected, inherited]

Definition at line 80 of file H264or5VideoStreamFramer.hh.

Referenced by H264or5VideoStreamFramer::getVPSandSPSandPPS(), H264or5VideoStreamFramer::saveCopyOfPPS(), and H264or5VideoStreamFramer::~H264or5VideoStreamFramer().

unsigned H264or5VideoStreamFramer::fLastSeenPPSSize [protected, inherited]

Definition at line 81 of file H264or5VideoStreamFramer.hh.

Referenced by H264or5VideoStreamFramer::getVPSandSPSandPPS(), and H264or5VideoStreamFramer::saveCopyOfPPS().

u_int32_t H264or5VideoStreamFramer::fProfileLevelId [protected, inherited]

Definition at line 82 of file H264or5VideoStreamFramer.hh.

Referenced by H264or5VideoStreamFramer::profileLevelId(), and H264or5VideoStreamFramer::saveCopyOfSPS().

u_int8_t H264or5VideoStreamFramer::fProfileTierLevelHeaderBytes[12] [protected, inherited]

Definition at line 83 of file H264or5VideoStreamFramer.hh.

Referenced by H264or5VideoStreamFramer::profileTierLevelHeaderBytes(), H264or5VideoStreamFramer::saveCopyOfSPS(), and H264or5VideoStreamFramer::saveCopyOfVPS().

struct timeval H264or5VideoStreamFramer::fNextPresentationTime [read, protected, inherited]

Definition at line 84 of file H264or5VideoStreamFramer.hh.

Referenced by H264or5VideoStreamParser::parse(), and H264or5VideoStreamFramer::setPresentationTime().

double MPEGVideoStreamFramer::fFrameRate [protected, inherited]

Definition at line 67 of file MPEGVideoStreamFramer.hh.

Referenced by MPEG1or2VideoStreamDiscreteFramer::afterGettingFrame1(), MPEG4VideoStreamParser::analyzeVOLHeader(), MPEGVideoStreamFramer::computePresentationTime(), MPEGVideoStreamFramer::continueReadProcessing(), H264or5VideoStreamParser::parse(), MPEG1or2VideoStreamParser::parseVideoSequenceHeader(), and MPEGVideoStreamFramer::setTimeCode().

unsigned MPEGVideoStreamFramer::fPictureCount [protected, inherited]

Definition at line 68 of file MPEGVideoStreamFramer.hh.

Referenced by MPEGVideoStreamFramer::continueReadProcessing(), H264or5VideoStreamParser::parse(), MPEG1or2VideoStreamParser::parseSlice(), MPEG4VideoStreamParser::parseVideoObjectPlane(), and MPEGVideoStreamFramer::reset().

Boolean MPEGVideoStreamFramer::fPictureEndMarker [protected, inherited]

Definition at line 69 of file MPEGVideoStreamFramer.hh.

Referenced by MPEG4VideoStreamDiscreteFramer::afterGettingFrame1(), MPEG1or2VideoStreamDiscreteFramer::afterGettingFrame1(), H264or5VideoStreamDiscreteFramer::afterGettingFrame1(), H264or5VideoStreamParser::parse(), MPEG1or2VideoStreamParser::parseSlice(), MPEG4VideoStreamParser::parseVideoObjectPlane(), MPEG4VideoStreamParser::parseVisualObjectSequenceEndCode(), MPEGVideoStreamFramer::pictureEndMarker(), and MPEGVideoStreamFramer::reset().

struct timeval MPEGVideoStreamFramer::fPresentationTimeBase [read, protected, inherited]

Definition at line 70 of file MPEGVideoStreamFramer.hh.

Referenced by MPEGVideoStreamFramer::computePresentationTime(), and MPEGVideoStreamFramer::reset().

class MPEGVideoStreamParser* MPEGVideoStreamFramer::fParser [protected, inherited]

Definition at line 73 of file MPEGVideoStreamFramer.hh.

Referenced by MPEGVideoStreamFramer::continueReadProcessing(), MPEGVideoStreamFramer::doGetNextFrame(), MPEGVideoStreamFramer::flushInput(), MPEG1or2VideoStreamFramer::MPEG1or2VideoStreamFramer(), MPEG4VideoStreamFramer::MPEG4VideoStreamFramer(), and MPEGVideoStreamFramer::~MPEGVideoStreamFramer().

FramedSource* FramedFilter::fInputSource [protected, inherited]

Definition at line 49 of file FramedFilter.hh.

Referenced by QCELPDeinterleaver::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG2TransportStreamFramer::changeInputSource(), FramedFilter::detachInputSource(), EndianSwap24::doGetNextFrame(), EndianSwap16::doGetNextFrame(), HostFromNetworkOrder16::doGetNextFrame(), NetworkFromHostOrder16::doGetNextFrame(), PCMFromuLawAudioSource::doGetNextFrame(), uLawFromPCMAudioSource::doGetNextFrame(), T140IdleFilter::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), PresentationTimeSubsessionNormalizer::doGetNextFrame(), MPEG4VideoStreamDiscreteFramer::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG2IFrameIndexFromTransportStream::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MP3ADUTranscoder::doGetNextFrame(), MP3ADUdeinterleaver::doGetNextFrame(), MP3ADUinterleaver::doGetNextFrame(), MP3FromADUSource::doGetNextFrame(), ADUFromMP3Source::doGetNextFrame(), H264or5VideoStreamDiscreteFramer::doGetNextFrame(), H264or5Fragmenter::doGetNextFrame(), QCELPDeinterleaver::doStopGettingFrames(), FramedFilter::doStopGettingFrames(), MPEG2TransportStreamTrickModeFilter::forgetInputSource(), DVVideoStreamFramer::getAndDeliverData(), MP3ADUTranscoder::getAttributes(), FramedFilter::getAttributes(), DVVideoStreamFramer::getProfile(), FramedFilter::inputSource(), FramedFilter::MIMEtype(), MPEG2TransportStreamTrickModeFilter::readTransportPacket(), FramedFilter::reassignInputSource(), MPEG2TransportStreamTrickModeFilter::seekToTransportPacket(), and FramedFilter::~FramedFilter().

unsigned char* FramedSource::fTo [protected, inherited]

Definition at line 75 of file FramedSource.hh.

Referenced by DVVideoStreamFramer::afterGettingFrame(), EndianSwap24::afterGettingFrame1(), EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), MPEG4VideoStreamDiscreteFramer::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2VideoStreamDiscreteFramer::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264or5VideoStreamDiscreteFramer::afterGettingFrame1(), MPEG2TransportStreamTrickModeFilter::attemptDeliveryToClient(), StreamReplica::copyReceivedFrame(), StreamReplicator::deactivateStreamReplica(), MPEG2TransportStreamMultiplexor::deliverDataToClient(), DeviceSource::deliverFrame(), T140IdleFilter::deliverFromBuffer(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), StreamReplicator::deliverReceivedFrame(), EndianSwap24::doGetNextFrame(), EndianSwap16::doGetNextFrame(), HostFromNetworkOrder16::doGetNextFrame(), NetworkFromHostOrder16::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), PresentationTimeSubsessionNormalizer::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame(), MPEGVideoStreamFramer::doGetNextFrame(), MPEG4VideoStreamDiscreteFramer::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MPEG1or2DemuxedElementaryStream::doGetNextFrame(), MPEG1or2AudioStreamFramer::doGetNextFrame(), H264or5VideoStreamDiscreteFramer::doGetNextFrame(), H264or5Fragmenter::doGetNextFrame(), H263plusVideoStreamFramer::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), AC3AudioStreamFramer::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), DVVideoStreamFramer::DVVideoStreamFramer(), MP3FromADUSource::generateFrameFromHeadADU(), DVVideoStreamFramer::getAndDeliverData(), StreamReplicator::getNextFrame(), FramedSource::getNextFrame(), BasicUDPSource::incomingPacketHandler1(), MP3ADUdeinterleaver::releaseOutgoingFrame(), MP3ADUinterleaver::releaseOutgoingFrame(), OggDemuxedTrack::to(), and MatroskaDemuxedTrack::to().

unsigned FramedSource::fMaxSize [protected, inherited]

Definition at line 76 of file FramedSource.hh.

Referenced by MPEG1or2VideoStreamDiscreteFramer::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), StreamReplica::copyReceivedFrame(), StreamReplicator::deactivateStreamReplica(), MPEG2TransportStreamMultiplexor::deliverDataToClient(), DeviceSource::deliverFrame(), T140IdleFilter::deliverFromBuffer(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), StreamReplicator::deliverReceivedFrame(), EndianSwap24::doGetNextFrame(), EndianSwap16::doGetNextFrame(), HostFromNetworkOrder16::doGetNextFrame(), NetworkFromHostOrder16::doGetNextFrame(), PCMFromuLawAudioSource::doGetNextFrame(), uLawFromPCMAudioSource::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), PresentationTimeSubsessionNormalizer::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame(), MPEGVideoStreamFramer::doGetNextFrame(), MPEG4VideoStreamDiscreteFramer::doGetNextFrame(), MPEG2TransportStreamTrickModeFilter::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MPEG1or2DemuxedElementaryStream::doGetNextFrame(), MPEG1or2AudioStreamFramer::doGetNextFrame(), H264or5VideoStreamDiscreteFramer::doGetNextFrame(), H264or5Fragmenter::doGetNextFrame(), H263plusVideoStreamFramer::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), AC3AudioStreamFramer::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), DVVideoStreamFramer::getAndDeliverData(), StreamReplicator::getNextFrame(), FramedSource::getNextFrame(), BasicUDPSource::incomingPacketHandler1(), OggDemuxedTrack::maxSize(), MatroskaDemuxedTrack::maxSize(), MP3ADUdeinterleaver::releaseOutgoingFrame(), and MP3ADUinterleaver::releaseOutgoingFrame().

unsigned FramedSource::fFrameSize [protected, inherited]

Definition at line 77 of file FramedSource.hh.

Referenced by FramedSource::afterGetting(), StreamReplicator::afterGettingFrame(), PresentationTimeSubsessionNormalizer::afterGettingFrame(), ByteStreamMultiFileSource::afterGettingFrame(), EndianSwap24::afterGettingFrame1(), EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264or5VideoStreamDiscreteFramer::afterGettingFrame1(), MPEG2TransportStreamTrickModeFilter::attemptDeliveryToClient(), MPEGVideoStreamFramer::continueReadProcessing(), MPEG1or2AudioStreamFramer::continueReadProcessing(), H263plusVideoStreamFramer::continueReadProcessing(), StreamReplica::copyReceivedFrame(), MPEG2TransportStreamMultiplexor::deliverDataToClient(), T140IdleFilter::deliverEmptyFrame(), DeviceSource::deliverFrame(), T140IdleFilter::deliverFromBuffer(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), WAVAudioFileSource::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame(), MPEG2TransportStreamTrickModeFilter::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), H264or5Fragmenter::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), OggDemuxedTrack::frameSize(), MatroskaDemuxedTrack::frameSize(), MP3FromADUSource::generateFrameFromHeadADU(), DVVideoStreamFramer::getAndDeliverData(), BasicUDPSource::incomingPacketHandler1(), AC3AudioStreamFramer::parseNextFrame(), MP3ADUdeinterleaver::releaseOutgoingFrame(), and MP3ADUinterleaver::releaseOutgoingFrame().

unsigned FramedSource::fNumTruncatedBytes [protected, inherited]

Definition at line 78 of file FramedSource.hh.

Referenced by FramedSource::afterGetting(), StreamReplicator::afterGettingFrame(), PresentationTimeSubsessionNormalizer::afterGettingFrame(), ByteStreamMultiFileSource::afterGettingFrame(), EndianSwap24::afterGettingFrame1(), EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264or5VideoStreamDiscreteFramer::afterGettingFrame1(), MPEGVideoStreamFramer::continueReadProcessing(), MPEG1or2AudioStreamFramer::continueReadProcessing(), StreamReplica::copyReceivedFrame(), MPEG2TransportStreamMultiplexor::deliverDataToClient(), T140IdleFilter::deliverEmptyFrame(), DeviceSource::deliverFrame(), T140IdleFilter::deliverFromBuffer(), QCELPDeinterleaver::doGetNextFrame(), H264or5Fragmenter::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), FramedSource::getNextFrame(), OggDemuxedTrack::numTruncatedBytes(), MatroskaDemuxedTrack::numTruncatedBytes(), AC3AudioStreamFramer::parseNextFrame(), MP3ADUdeinterleaver::releaseOutgoingFrame(), and MP3ADUinterleaver::releaseOutgoingFrame().

struct timeval FramedSource::fPresentationTime [read, protected, inherited]

Definition at line 79 of file FramedSource.hh.

Referenced by FramedSource::afterGetting(), StreamReplicator::afterGettingFrame(), PresentationTimeSubsessionNormalizer::afterGettingFrame(), ByteStreamMultiFileSource::afterGettingFrame(), EndianSwap24::afterGettingFrame1(), EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), InputESSourceRecord::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264or5VideoStreamDiscreteFramer::afterGettingFrame1(), H264or5Fragmenter::afterGettingFrame1(), MPEG2TransportStreamTrickModeFilter::attemptDeliveryToClient(), MPEGVideoStreamFramer::computePresentationTime(), MPEGVideoStreamFramer::continueReadProcessing(), MPEG1or2AudioStreamFramer::continueReadProcessing(), H263plusVideoStreamFramer::continueReadProcessing(), StreamReplica::copyReceivedFrame(), T140IdleFilter::deliverEmptyFrame(), DeviceSource::deliverFrame(), T140IdleFilter::deliverFromBuffer(), QCELPDeinterleaver::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), FramedSource::FramedSource(), MP3FromADUSource::generateFrameFromHeadADU(), MPEG1or2VideoStreamFramer::getCurrentPTS(), H264or5VideoStreamParser::parse(), AC3AudioStreamFramer::parseNextFrame(), OggDemuxedTrack::presentationTime(), MatroskaDemuxedTrack::presentationTime(), MP3ADUdeinterleaver::releaseOutgoingFrame(), MP3ADUinterleaver::releaseOutgoingFrame(), and H264or5VideoStreamFramer::setPresentationTime().

unsigned FramedSource::fDurationInMicroseconds [protected, inherited]

Definition at line 80 of file FramedSource.hh.

Referenced by FramedSource::afterGetting(), StreamReplicator::afterGettingFrame(), PresentationTimeSubsessionNormalizer::afterGettingFrame(), ByteStreamMultiFileSource::afterGettingFrame(), EndianSwap24::afterGettingFrame1(), EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264or5VideoStreamDiscreteFramer::afterGettingFrame1(), H264or5Fragmenter::afterGettingFrame1(), MPEGVideoStreamFramer::continueReadProcessing(), MPEG1or2AudioStreamFramer::continueReadProcessing(), H263plusVideoStreamFramer::continueReadProcessing(), StreamReplica::copyReceivedFrame(), T140IdleFilter::deliverFromBuffer(), QCELPDeinterleaver::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), OggDemuxedTrack::durationInMicroseconds(), MatroskaDemuxedTrack::durationInMicroseconds(), MP3FromADUSource::generateFrameFromHeadADU(), FramedSource::getNextFrame(), AC3AudioStreamFramer::parseNextFrame(), MP3ADUdeinterleaver::releaseOutgoingFrame(), and MP3ADUinterleaver::releaseOutgoingFrame().


The documentation for this class was generated from the following files:
Generated on Tue Mar 25 14:39:34 2014 for live by  doxygen 1.5.2