MultiFramedRTPSource Class Reference

#include <MultiFramedRTPSource.hh>

Inheritance diagram for MultiFramedRTPSource:

Inheritance graph
[legend]
Collaboration diagram for MultiFramedRTPSource:

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

Boolean curPacketMarkerBit () const
unsigned char rtpPayloadFormat () const
virtual Boolean hasBeenSynchronizedUsingRTCP ()
GroupsockRTPgs () const
u_int32_t SSRC () const
unsigned timestampFrequency () const
RTPReceptionStatsDBreceptionStatsDB () const
u_int32_t lastReceivedSSRC () const
BooleanenableRTCPReports ()
void setStreamSocket (int sockNum, unsigned char streamChannelId)
void setServerRequestAlternativeByteHandler (int socketNum, ServerRequestAlternativeByteHandler *handler, void *clientData)
void setAuxilliaryReadHandler (AuxHandlerFunc *handlerFunc, void *handlerClientData)
u_int16_t curPacketRTPSeqNum () const
void getNextFrame (unsigned char *to, unsigned maxSize, afterGettingFunc *afterGettingFunc, void *afterGettingClientData, onCloseFunc *onCloseFunc, void *onCloseClientData)
void stopGettingFrames ()
virtual unsigned maxFrameSize () const
Boolean isCurrentlyAwaitingData () const
virtual char const * MIMEtype () const
virtual Boolean isMPEG1or2VideoStreamFramer () const
virtual Boolean isMPEG4VideoStreamFramer () const
virtual Boolean isH264VideoStreamFramer () 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 Boolean lookupByName (UsageEnvironment &env, char const *sourceName, RTPSource *&resultSource)
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

 MultiFramedRTPSource (UsageEnvironment &env, Groupsock *RTPgs, unsigned char rtpPayloadFormat, unsigned rtpTimestampFrequency, BufferedPacketFactory *packetFactory=NULL)
virtual ~MultiFramedRTPSource ()
virtual Boolean processSpecialHeader (BufferedPacket *packet, unsigned &resultSpecialHeaderSize)
virtual Boolean packetIsUsableInJitterCalculation (unsigned char *packet, unsigned packetSize)
virtual void doStopGettingFrames ()
TaskTokennextTask ()

Protected Attributes

Boolean fCurrentPacketBeginsFrame
Boolean fCurrentPacketCompletesFrame
RTPInterface fRTPInterface
u_int16_t fCurPacketRTPSeqNum
u_int32_t fCurPacketRTPTimestamp
Boolean fCurPacketMarkerBit
Boolean fCurPacketHasBeenSynchronizedUsingRTCP
u_int32_t fLastReceivedSSRC
unsigned char * fTo
unsigned fMaxSize
unsigned fFrameSize
unsigned fNumTruncatedBytes
timeval fPresentationTime
unsigned fDurationInMicroseconds

Private Member Functions

virtual void doGetNextFrame ()
virtual void setPacketReorderingThresholdTime (unsigned uSeconds)
void reset ()
void doGetNextFrame1 ()
void networkReadHandler1 ()

Static Private Member Functions

static void networkReadHandler (MultiFramedRTPSource *source, int)

Private Attributes

Boolean fAreDoingNetworkReads
BufferedPacketfPacketReadInProgress
Boolean fNeedDelivery
Boolean fPacketLossInFragmentedFrame
unsigned char * fSavedTo
unsigned fSavedMaxSize
ReorderingPacketBufferfReorderingBuffer

Friends

class MediaLookupTable

Detailed Description

Definition at line 32 of file MultiFramedRTPSource.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

MultiFramedRTPSource::MultiFramedRTPSource ( UsageEnvironment env,
Groupsock RTPgs,
unsigned char  rtpPayloadFormat,
unsigned  rtpTimestampFrequency,
BufferedPacketFactory packetFactory = NULL 
) [protected]

Definition at line 66 of file MultiFramedRTPSource.cpp.

References env, increaseReceiveBufferTo(), reset(), and Socket::socketNum().

00070   : RTPSource(env, RTPgs, rtpPayloadFormat, rtpTimestampFrequency) {
00071   reset();
00072   fReorderingBuffer = new ReorderingPacketBuffer(packetFactory);
00073 
00074   // Try to use a big receive buffer for RTP:
00075   increaseReceiveBufferTo(env, RTPgs->socketNum(), 50*1024);
00076 }

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

Definition at line 87 of file MultiFramedRTPSource.cpp.

References fReorderingBuffer, RTPSource::fRTPInterface, and RTPInterface::stopNetworkReading().

00087                                             {
00088   fRTPInterface.stopNetworkReading();
00089   delete fReorderingBuffer;
00090 }


Member Function Documentation

Boolean MultiFramedRTPSource::processSpecialHeader ( BufferedPacket packet,
unsigned &  resultSpecialHeaderSize 
) [protected, virtual]

Reimplemented in RawAMRRTPSource, AC3AudioRTPSource, DVVideoRTPSource, H261VideoRTPSource, H263plusVideoRTPSource, H264VideoRTPSource, JPEGVideoRTPSource, MPEG1or2AudioRTPSource, MPEG1or2VideoRTPSource, MPEG4ESVideoRTPSource, MPEG4GenericRTPSource, MPEG4LATMAudioRTPSource, QuickTimeGenericRTPSource, SimpleRTPSource, VorbisAudioRTPSource, VP8VideoRTPSource, and RawQCELPRTPSource.

Definition at line 93 of file MultiFramedRTPSource.cpp.

References True.

Referenced by doGetNextFrame1().

00094                                                           {
00095   // Default implementation: Assume no special header:
00096   resultSpecialHeaderSize = 0;
00097   return True;
00098 }

Boolean MultiFramedRTPSource::packetIsUsableInJitterCalculation ( unsigned char *  packet,
unsigned  packetSize 
) [protected, virtual]

Reimplemented in MPEG1or2VideoRTPSource.

Definition at line 101 of file MultiFramedRTPSource.cpp.

References True.

Referenced by networkReadHandler1().

00102                                                              {
00103   // Default implementation:
00104   return True;
00105 }

void MultiFramedRTPSource::doStopGettingFrames (  )  [protected, virtual]

Reimplemented from FramedSource.

Definition at line 107 of file MultiFramedRTPSource.cpp.

References Medium::envir(), fReorderingBuffer, RTPSource::fRTPInterface, Medium::nextTask(), reset(), ReorderingPacketBuffer::reset(), RTPInterface::stopNetworkReading(), UsageEnvironment::taskScheduler(), and TaskScheduler::unscheduleDelayedTask().

void MultiFramedRTPSource::doGetNextFrame (  )  [private, virtual]

Implements FramedSource.

Definition at line 114 of file MultiFramedRTPSource.cpp.

References doGetNextFrame1(), fAreDoingNetworkReads, FramedSource::fFrameSize, FramedSource::fMaxSize, fNeedDelivery, RTPSource::fRTPInterface, fSavedMaxSize, fSavedTo, FramedSource::fTo, networkReadHandler(), RTPInterface::startNetworkReading(), and True.

00114                                           {
00115   if (!fAreDoingNetworkReads) {
00116     // Turn on background read handling of incoming packets:
00117     fAreDoingNetworkReads = True;
00118     TaskScheduler::BackgroundHandlerProc* handler
00119       = (TaskScheduler::BackgroundHandlerProc*)&networkReadHandler;
00120     fRTPInterface.startNetworkReading(handler);
00121   }
00122 
00123   fSavedTo = fTo;
00124   fSavedMaxSize = fMaxSize;
00125   fFrameSize = 0; // for now
00126   fNeedDelivery = True;
00127   doGetNextFrame1();
00128 }

void MultiFramedRTPSource::setPacketReorderingThresholdTime ( unsigned  uSeconds  )  [private, virtual]

Implements RTPSource.

Definition at line 215 of file MultiFramedRTPSource.cpp.

References fReorderingBuffer, and ReorderingPacketBuffer::setThresholdTime().

Referenced by networkReadHandler1().

00215                                                     {
00216   fReorderingBuffer->setThresholdTime(uSeconds);
00217 }

void MultiFramedRTPSource::reset (  )  [private]

Definition at line 78 of file MultiFramedRTPSource.cpp.

References False, fAreDoingNetworkReads, fCurrentPacketBeginsFrame, fCurrentPacketCompletesFrame, fNeedDelivery, fPacketLossInFragmentedFrame, fPacketReadInProgress, NULL, and True.

Referenced by doStopGettingFrames().

00078                                  {
00079   fCurrentPacketBeginsFrame = True; // by default
00080   fCurrentPacketCompletesFrame = True; // by default
00081   fAreDoingNetworkReads = False;
00082   fPacketReadInProgress = NULL;
00083   fNeedDelivery = False;
00084   fPacketLossInFragmentedFrame = False;
00085 }

void MultiFramedRTPSource::doGetNextFrame1 (  )  [private]

Definition at line 130 of file MultiFramedRTPSource.cpp.

References FramedSource::afterGetting(), Medium::envir(), False, RTPSource::fCurPacketHasBeenSynchronizedUsingRTCP, RTPSource::fCurPacketMarkerBit, RTPSource::fCurPacketRTPSeqNum, RTPSource::fCurPacketRTPTimestamp, fCurrentPacketBeginsFrame, fCurrentPacketCompletesFrame, FramedSource::fFrameSize, FramedSource::fMaxSize, fNeedDelivery, FramedSource::fNumTruncatedBytes, fPacketLossInFragmentedFrame, FramedSource::fPresentationTime, frameSize, fReorderingBuffer, fSavedMaxSize, fSavedTo, FramedSource::fTo, ReorderingPacketBuffer::getNextCompletedPacket(), BufferedPacket::hasUsableData(), ReorderingPacketBuffer::isEmpty(), Medium::nextTask(), NULL, processSpecialHeader(), ReorderingPacketBuffer::releaseUsedPacket(), TaskScheduler::scheduleDelayedTask(), BufferedPacket::skip(), UsageEnvironment::taskScheduler(), True, BufferedPacket::use(), and BufferedPacket::useCount().

Referenced by doGetNextFrame(), and networkReadHandler1().

00130                                            {
00131   while (fNeedDelivery) {
00132     // If we already have packet data available, then deliver it now.
00133     Boolean packetLossPrecededThis;
00134     BufferedPacket* nextPacket
00135       = fReorderingBuffer->getNextCompletedPacket(packetLossPrecededThis);
00136     if (nextPacket == NULL) break;
00137 
00138     fNeedDelivery = False;
00139 
00140     if (nextPacket->useCount() == 0) {
00141       // Before using the packet, check whether it has a special header
00142       // that needs to be processed:
00143       unsigned specialHeaderSize;
00144       if (!processSpecialHeader(nextPacket, specialHeaderSize)) {
00145         // Something's wrong with the header; reject the packet:
00146         fReorderingBuffer->releaseUsedPacket(nextPacket);
00147         fNeedDelivery = True;
00148         break;
00149       }
00150       nextPacket->skip(specialHeaderSize);
00151     }
00152 
00153     // Check whether we're part of a multi-packet frame, and whether
00154     // there was packet loss that would render this packet unusable:
00155     if (fCurrentPacketBeginsFrame) {
00156       if (packetLossPrecededThis || fPacketLossInFragmentedFrame) {
00157         // We didn't get all of the previous frame.
00158         // Forget any data that we used from it:
00159         fTo = fSavedTo; fMaxSize = fSavedMaxSize;
00160         fFrameSize = 0;
00161       }
00162       fPacketLossInFragmentedFrame = False;
00163     } else if (packetLossPrecededThis) {
00164       // We're in a multi-packet frame, with preceding packet loss
00165       fPacketLossInFragmentedFrame = True;
00166     }
00167     if (fPacketLossInFragmentedFrame) {
00168       // This packet is unusable; reject it:
00169       fReorderingBuffer->releaseUsedPacket(nextPacket);
00170       fNeedDelivery = True;
00171       break;
00172     }
00173 
00174     // The packet is usable. Deliver all or part of it to our caller:
00175     unsigned frameSize;
00176     nextPacket->use(fTo, fMaxSize, frameSize, fNumTruncatedBytes,
00177                     fCurPacketRTPSeqNum, fCurPacketRTPTimestamp,
00178                     fPresentationTime, fCurPacketHasBeenSynchronizedUsingRTCP,
00179                     fCurPacketMarkerBit);
00180     fFrameSize += frameSize;
00181 
00182     if (!nextPacket->hasUsableData()) {
00183       // We're completely done with this packet now
00184       fReorderingBuffer->releaseUsedPacket(nextPacket);
00185     }
00186 
00187     if (fCurrentPacketCompletesFrame) {
00188       // We have all the data that the client wants.
00189       if (fNumTruncatedBytes > 0) {
00190         envir() << "MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size ("
00191                 << fSavedMaxSize << ").  "
00192                 << fNumTruncatedBytes << " bytes of trailing data will be dropped!\n";
00193       }
00194       // Call our own 'after getting' function, so that the downstream object can consume the data:
00195       if (fReorderingBuffer->isEmpty()) {
00196         // Common case optimization: There are no more queued incoming packets, so this code will not get
00197         // executed again without having first returned to the event loop.  Call our 'after getting' function
00198         // directly, because there's no risk of a long chain of recursion (and thus stack overflow):
00199         afterGetting(this);
00200       } else {
00201         // Special case: Call our 'after getting' function via the event loop.
00202         nextTask() = envir().taskScheduler().scheduleDelayedTask(0,
00203                                                                  (TaskFunc*)FramedSource::afterGetting, this);
00204       }
00205     } else {
00206       // This packet contained fragmented data, and does not complete
00207       // the data that the client wants.  Keep getting data:
00208       fTo += frameSize; fMaxSize -= frameSize;
00209       fNeedDelivery = True;
00210     }
00211   }
00212 }

void MultiFramedRTPSource::networkReadHandler ( MultiFramedRTPSource source,
int   
) [static, private]

Definition at line 221 of file MultiFramedRTPSource.cpp.

References networkReadHandler1().

Referenced by doGetNextFrame().

00221                                                                                         {
00222   source->networkReadHandler1();
00223 }

void MultiFramedRTPSource::networkReadHandler1 (  )  [private]

Definition at line 225 of file MultiFramedRTPSource.cpp.

References ADVANCE, BufferedPacket::assignMiscParams(), BufferedPacket::bytesAvailable(), BufferedPacket::data(), BufferedPacket::dataSize(), doGetNextFrame1(), Medium::envir(), False, BufferedPacket::fillInData(), RTPSource::fLastReceivedSSRC, fPacketReadInProgress, ReorderingPacketBuffer::freePacket(), fReorderingBuffer, RTPSource::fRTPInterface, ReorderingPacketBuffer::getFreePacket(), RTPReceptionStatsDB::noteIncomingPacket(), NULL, our_random(), packetIsUsableInJitterCalculation(), RTPSource::receptionStatsDB(), BufferedPacket::removePadding(), ReorderingPacketBuffer::resetHaveSeenFirstPacket(), RTPSource::rtpPayloadFormat(), setPacketReorderingThresholdTime(), ReorderingPacketBuffer::storePacket(), RTPSource::timestampFrequency(), and True.

Referenced by networkReadHandler().

00225                                                {
00226   BufferedPacket* bPacket = fPacketReadInProgress;
00227   if (bPacket == NULL) {
00228     // Normal case: Get a free BufferedPacket descriptor to hold the new network packet:
00229     bPacket = fReorderingBuffer->getFreePacket(this);
00230   }
00231 
00232   // Read the network packet, and perform sanity checks on the RTP header:
00233   Boolean readSuccess = False;
00234   do {
00235     Boolean packetReadWasIncomplete = fPacketReadInProgress != NULL;
00236     if (!bPacket->fillInData(fRTPInterface, packetReadWasIncomplete)) {
00237       if (bPacket->bytesAvailable() == 0) {
00238         envir() << "MultiFramedRTPSource error: Hit limit when reading incoming packet over TCP. Increase \"MAX_PACKET_SIZE\"\n";
00239       }
00240       fPacketReadInProgress = NULL;
00241       break;
00242     }
00243     if (packetReadWasIncomplete) {
00244       // We need additional read(s) before we can process the incoming packet:
00245       fPacketReadInProgress = bPacket;
00246       return;
00247     } else {
00248       fPacketReadInProgress = NULL;
00249     }
00250 #ifdef TEST_LOSS
00251     setPacketReorderingThresholdTime(0);
00252        // don't wait for 'lost' packets to arrive out-of-order later
00253     if ((our_random()%10) == 0) break; // simulate 10% packet loss
00254 #endif
00255 
00256     // Check for the 12-byte RTP header:
00257     if (bPacket->dataSize() < 12) break;
00258     unsigned rtpHdr = ntohl(*(u_int32_t*)(bPacket->data())); ADVANCE(4);
00259     Boolean rtpMarkerBit = (rtpHdr&0x00800000) != 0;
00260     unsigned rtpTimestamp = ntohl(*(u_int32_t*)(bPacket->data()));ADVANCE(4);
00261     unsigned rtpSSRC = ntohl(*(u_int32_t*)(bPacket->data())); ADVANCE(4);
00262 
00263     // Check the RTP version number (it should be 2):
00264     if ((rtpHdr&0xC0000000) != 0x80000000) break;
00265 
00266     // Skip over any CSRC identifiers in the header:
00267     unsigned cc = (rtpHdr>>24)&0xF;
00268     if (bPacket->dataSize() < cc) break;
00269     ADVANCE(cc*4);
00270 
00271     // Check for (& ignore) any RTP header extension
00272     if (rtpHdr&0x10000000) {
00273       if (bPacket->dataSize() < 4) break;
00274       unsigned extHdr = ntohl(*(u_int32_t*)(bPacket->data())); ADVANCE(4);
00275       unsigned remExtSize = 4*(extHdr&0xFFFF);
00276       if (bPacket->dataSize() < remExtSize) break;
00277       ADVANCE(remExtSize);
00278     }
00279 
00280     // Discard any padding bytes:
00281     if (rtpHdr&0x20000000) {
00282       if (bPacket->dataSize() == 0) break;
00283       unsigned numPaddingBytes
00284         = (unsigned)(bPacket->data())[bPacket->dataSize()-1];
00285       if (bPacket->dataSize() < numPaddingBytes) break;
00286       bPacket->removePadding(numPaddingBytes);
00287     }
00288     // Check the Payload Type.
00289     if ((unsigned char)((rtpHdr&0x007F0000)>>16)
00290         != rtpPayloadFormat()) {
00291       break;
00292     }
00293 
00294     // The rest of the packet is the usable data.  Record and save it:
00295     if (rtpSSRC != fLastReceivedSSRC) {
00296       // The SSRC of incoming packets has changed.  Unfortunately we don't yet handle streams that contain multiple SSRCs,
00297       // but we can handle a single-SSRC stream where the SSRC changes occasionally:
00298       fLastReceivedSSRC = rtpSSRC;
00299       fReorderingBuffer->resetHaveSeenFirstPacket();
00300     }
00301     unsigned short rtpSeqNo = (unsigned short)(rtpHdr&0xFFFF);
00302     Boolean usableInJitterCalculation
00303       = packetIsUsableInJitterCalculation((bPacket->data()),
00304                                                   bPacket->dataSize());
00305     struct timeval presentationTime; // computed by:
00306     Boolean hasBeenSyncedUsingRTCP; // computed by:
00307     receptionStatsDB()
00308       .noteIncomingPacket(rtpSSRC, rtpSeqNo, rtpTimestamp,
00309                           timestampFrequency(),
00310                           usableInJitterCalculation, presentationTime,
00311                           hasBeenSyncedUsingRTCP, bPacket->dataSize());
00312 
00313     // Fill in the rest of the packet descriptor, and store it:
00314     struct timeval timeNow;
00315     gettimeofday(&timeNow, NULL);
00316     bPacket->assignMiscParams(rtpSeqNo, rtpTimestamp, presentationTime,
00317                               hasBeenSyncedUsingRTCP, rtpMarkerBit,
00318                               timeNow);
00319     if (!fReorderingBuffer->storePacket(bPacket)) break;
00320 
00321     readSuccess = True;
00322   } while (0);
00323   if (!readSuccess) fReorderingBuffer->freePacket(bPacket);
00324 
00325   doGetNextFrame1();
00326   // If we didn't get proper data this time, we'll get another chance
00327 }

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

Definition at line 26 of file RTPSource.cpp.

References env, False, MediaSource::isRTPSource(), MediaSource::lookupByName(), NULL, and True.

00028                                                           {
00029   resultSource = NULL; // unless we succeed
00030 
00031   MediaSource* source;
00032   if (!MediaSource::lookupByName(env, sourceName, source)) return False;
00033 
00034   if (!source->isRTPSource()) {
00035     env.setResultMsg(sourceName, " is not a RTP source");
00036     return False;
00037   }
00038 
00039   resultSource = (RTPSource*)source;
00040   return True;
00041 }

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

Definition at line 41 of file FramedSource.cpp.

References env, False, MediaSource::isFramedSource(), MediaSource::lookupByName(), NULL, 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 65 of file MediaSource.cpp.

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

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

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

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 }

Boolean RTPSource::curPacketMarkerBit (  )  const [inline, inherited]

Definition at line 38 of file RTPSource.hh.

References RTPSource::fCurPacketMarkerBit.

Referenced by PresentationTimeSubsessionNormalizer::afterGettingFrame(), and SubsessionIOState::useFrameForHinting().

00038 { return fCurPacketMarkerBit; }

unsigned char RTPSource::rtpPayloadFormat (  )  const [inline, inherited]

Definition at line 40 of file RTPSource.hh.

References RTPSource::fRTPPayloadFormat.

Referenced by QuickTimeFileSink::addAtom_hdlr2(), networkReadHandler1(), and SubsessionIOState::useFrameForHinting().

00040 { return fRTPPayloadFormat; }

Boolean RTPSource::hasBeenSynchronizedUsingRTCP (  )  [virtual, inherited]

Reimplemented in RawAMRRTPSource, and RawQCELPRTPSource.

Definition at line 43 of file RTPSource.cpp.

References RTPSource::fCurPacketHasBeenSynchronizedUsingRTCP.

Referenced by DummySink::afterGettingFrame(), checkForPacketArrival(), PresentationTimeSessionNormalizer::normalizePresentationTime(), RawQCELPRTPSource::processSpecialHeader(), SubsessionIOState::syncOK(), and SubsessionIOState::useFrame().

00043                                                 {
00044   return fCurPacketHasBeenSynchronizedUsingRTCP;
00045 }

Groupsock* RTPSource::RTPgs (  )  const [inline, inherited]

Definition at line 44 of file RTPSource.hh.

References RTPSource::fRTPInterface, and RTPInterface::gs().

Referenced by continueAfterDESCRIBE(), VP8VideoRTPSource::createNew(), VorbisAudioRTPSource::createNew(), SimpleRTPSource::createNew(), QuickTimeGenericRTPSource::createNew(), RawQCELPRTPSource::createNew(), MPEG4LATMAudioRTPSource::createNew(), MPEG4GenericRTPSource::createNew(), MPEG4ESVideoRTPSource::createNew(), MPEG1or2VideoRTPSource::createNew(), MPEG1or2AudioRTPSource::createNew(), MP3ADURTPSource::createNew(), JPEGVideoRTPSource::createNew(), H264VideoRTPSource::createNew(), H263plusVideoRTPSource::createNew(), H261VideoRTPSource::createNew(), DVVideoRTPSource::createNew(), RawAMRRTPSource::createNew(), AC3AudioRTPSource::createNew(), and RTSPClient::handleSETUPResponse().

00044 { return fRTPInterface.gs(); }

u_int32_t RTPSource::SSRC (  )  const [inline, inherited]

Definition at line 49 of file RTPSource.hh.

References RTPSource::fSSRC.

Referenced by RTCPInstance::addBYE(), RTCPInstance::addRR(), and RTCPInstance::addSDES().

00049 { return fSSRC; }

unsigned RTPSource::timestampFrequency (  )  const [inline, inherited]

Definition at line 53 of file RTPSource.hh.

References RTPSource::fTimestampFrequency.

Referenced by QuickTimeFileSink::addAtom_hdlr2(), and networkReadHandler1().

00053 {return fTimestampFrequency;}

RTPReceptionStatsDB& RTPSource::receptionStatsDB (  )  const [inline, inherited]

Definition at line 55 of file RTPSource.hh.

References RTPSource::fReceptionStatsDB.

Referenced by checkForPacketArrival(), checkInterPacketGaps(), RTCPInstance::enqueueCommonReportSuffix(), RTCPInstance::incomingReportHandler1(), networkReadHandler1(), printQOSData(), qosMeasurementRecord::qosMeasurementRecord(), and RTCPInstance::removeSSRC().

00055                                                 {
00056     return *fReceptionStatsDB;
00057   }

u_int32_t RTPSource::lastReceivedSSRC (  )  const [inline, inherited]

Definition at line 59 of file RTPSource.hh.

References RTPSource::fLastReceivedSSRC.

00059 { return fLastReceivedSSRC; }

Boolean& RTPSource::enableRTCPReports (  )  [inline, inherited]

Definition at line 62 of file RTPSource.hh.

References RTPSource::fEnableRTCPReports.

Referenced by RTSPClient::handlePLAYResponse(), and RTSPClient::handleSETUPResponse().

00062 { return fEnableRTCPReports; }

void RTPSource::setStreamSocket ( int  sockNum,
unsigned char  streamChannelId 
) [inline, inherited]

Definition at line 64 of file RTPSource.hh.

References RTPSource::fRTPInterface, and RTPInterface::setStreamSocket().

Referenced by RTSPClient::handleSETUPResponse().

00064                                                                    {
00065     // hack to allow sending RTP over TCP (RFC 2236, section 10.12)
00066     fRTPInterface.setStreamSocket(sockNum, streamChannelId);
00067   }

void RTPSource::setServerRequestAlternativeByteHandler ( int  socketNum,
ServerRequestAlternativeByteHandler handler,
void *  clientData 
) [inline, inherited]

Definition at line 68 of file RTPSource.hh.

References RTPSource::fRTPInterface, and RTPInterface::setServerRequestAlternativeByteHandler().

Referenced by RTSPClient::handleSETUPResponse().

00068                                                                                                                              {
00069     fRTPInterface.setServerRequestAlternativeByteHandler(socketNum, handler, clientData);
00070   }

void RTPSource::setAuxilliaryReadHandler ( AuxHandlerFunc handlerFunc,
void *  handlerClientData 
) [inline, inherited]

Definition at line 72 of file RTPSource.hh.

References RTPSource::fRTPInterface, and RTPInterface::setAuxilliaryReadHandler().

00073                                                          {
00074     fRTPInterface.setAuxilliaryReadHandler(handlerFunc,
00075                                            handlerClientData);
00076   }

u_int16_t RTPSource::curPacketRTPSeqNum (  )  const [inline, inherited]

Definition at line 81 of file RTPSource.hh.

References RTPSource::fCurPacketRTPSeqNum.

Referenced by SubsessionIOState::afterGettingFrame(), AVISubsessionIOState::afterGettingFrame(), QCELPDeinterleaver::afterGettingFrame1(), and AMRDeinterleavingBuffer::deliverIncomingFrame().

00081 { return fCurPacketRTPSeqNum; }

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(), 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(), H264VideoStreamDiscreteFramer::doGetNextFrame(), H264FUAFragmenter::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 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(), H264VideoStreamDiscreteFramer::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), DeviceSource::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), ByteStreamFileSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), SegmentQueue::enqueueNewSegment(), DVVideoStreamFramer::getAndDeliverData(), StreamReplicator::getNextFrame(), DVVideoStreamFramer::getProfile(), MatroskaDemux::handleEndOfFile(), MPEG2IFrameIndexFromTransportStream::handleInputClosure1(), T140IdleFilter::onSourceClosure(), StreamReplicator::onSourceClosure(), MPEG2TransportStreamTrickModeFilter::onSourceClosure1(), and ProxyServerMediaSubsession::subsessionByeHandler().

00095                                                  {
00096   FramedSource* source = (FramedSource*)clientData;
00097   source->fIsCurrentlyAwaitingData = False; // because we got a close instead
00098   if (source->fOnCloseFunc != NULL) {
00099     (*(source->fOnCloseFunc))(source->fOnCloseClientData);
00100   }
00101 }

void FramedSource::stopGettingFrames (  )  [inherited]

Definition at line 103 of file FramedSource.cpp.

References FramedSource::doStopGettingFrames(), False, and FramedSource::fIsCurrentlyAwaitingData.

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

00103                                      {
00104   fIsCurrentlyAwaitingData = False; // indicates that we can be read again
00105 
00106   // Perform any specialized action now:
00107   doStopGettingFrames();
00108 }

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

Reimplemented in MPEG1or2DemuxedElementaryStream.

Definition at line 116 of file FramedSource.cpp.

Referenced by StreamParser::ensureValidBytes1().

00116                                           {
00117   // By default, this source has no maximum frame size.
00118   return 0;
00119 }

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

Definition at line 60 of file FramedSource.hh.

References FramedSource::fIsCurrentlyAwaitingData.

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

00060 {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, and NULL.

Referenced by PresentationTimeSubsessionNormalizer::afterGettingFrame(), ByteStreamMultiFileSource::afterGettingFrame(), EndianSwap24::afterGettingFrame1(), EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264VideoStreamDiscreteFramer::afterGettingFrame1(), MPEG2TransportStreamTrickModeFilter::attemptDeliveryToClient(), MPEGVideoStreamFramer::continueReadProcessing(), MPEG1or2AudioStreamFramer::continueReadProcessing(), H263plusVideoStreamFramer::continueReadProcessing(), T140IdleFilter::deliverEmptyFrame(), DeviceSource::deliverFrame(), MatroskaFileParser::deliverFrameBytes(), T140IdleFilter::deliverFromBuffer(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), StreamReplicator::deliverReceivedFrame(), QCELPDeinterleaver::doGetNextFrame(), MPEG2TransportStreamTrickModeFilter::doGetNextFrame(), MPEG2TransportStreamMultiplexor::doGetNextFrame(), MP3FileSource::doGetNextFrame(), MP3ADUdeinterleaver::doGetNextFrame(), MP3ADUinterleaver::doGetNextFrame(), MP3FromADUSource::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), 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 }

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

Reimplemented in RawAMRRTPSource, AC3AudioRTPSource, AMRAudioSource, DVVideoRTPSource, FramedFilter, H261VideoRTPSource, H263plusVideoRTPSource, H264VideoRTPSource, JPEGVideoRTPSource, ADUFromMP3Source, MP3FromADUSource, MP3ADURTPSource, MP3FileSource, MPEG1or2AudioRTPSource, MPEG1or2DemuxedElementaryStream, MPEG1or2VideoRTPSource, MPEG4ESVideoRTPSource, MPEG4GenericRTPSource, MPEG4LATMAudioRTPSource, QuickTimeGenericRTPSource, SimpleRTPSource, VorbisAudioRTPSource, VP8VideoRTPSource, MatroskaDemuxedTrack, and RawQCELPRTPSource.

Definition at line 36 of file MediaSource.cpp.

Referenced by MP3ADUTranscoder::createNew(), MP3FromADUSource::createNew(), ADUFromMP3Source::createNew(), MP3ADUinterleaverBase::getInputSource(), MediaSession::initiateByMediaType(), SimpleRTPSource::MIMEtype(), QuickTimeGenericRTPSource::MIMEtype(), FramedFilter::MIMEtype(), and MPEG1or2DemuxedElementaryStream::MPEG1or2DemuxedElementaryStream().

00036                                         {
00037   return "application/OCTET-STREAM"; // default type
00038 }

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::isH264VideoStreamFramer (  )  const [virtual, inherited]

Reimplemented in H264VideoStreamFramer.

Definition at line 52 of file MediaSource.cpp.

References False.

Referenced by H264VideoRTPSink::sourceIsCompatibleWithUs().

00052                                                    {
00053   return False; // default implementation
00054 }

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

Reimplemented in DVVideoStreamFramer.

Definition at line 55 of file MediaSource.cpp.

References False.

Referenced by DVVideoRTPSink::sourceIsCompatibleWithUs().

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

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

Reimplemented in JPEGVideoSource.

Definition at line 58 of file MediaSource.cpp.

References False.

Referenced by JPEGVideoRTPSink::sourceIsCompatibleWithUs().

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

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

Reimplemented in AMRAudioSource.

Definition at line 61 of file MediaSource.cpp.

References False.

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

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

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(), 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(), MediaSubsession::initiate(), MPEG1or2ProgramStreamFileDuration(), MPEG1or2Demux::noteElementaryStreamDeletion(), ByteStreamMultiFileSource::onSourceClosure1(), StreamState::reclaim(), RTSPServer::removeServerMediaSession(), ProxyServerMediaSession::resetDESCRIBEState(), OnDemandServerMediaSubsession::sdpLines(), shutdownStream(), subsessionAfterPlaying(), ClientTrickPlayState::updateStateOnScaleChange(), AMRDeinterleaver::~AMRDeinterleaver(), ByteStreamMultiFileSource::~ByteStreamMultiFileSource(), DarwinInjector::~DarwinInjector(), FramedFilter::~FramedFilter(), H264VideoRTPSink::~H264VideoRTPSink(), InputESSourceRecord::~InputESSourceRecord(), MatroskaFileParser::~MatroskaFileParser(), MatroskaFileServerDemux::~MatroskaFileServerDemux(), MPEG1or2Demux::~MPEG1or2Demux(), MPEG1or2FileServerDemux::~MPEG1or2FileServerDemux(), MPEG2TransportFileServerMediaSubsession::~MPEG2TransportFileServerMediaSubsession(), MPEG2TransportStreamFromPESSource::~MPEG2TransportStreamFromPESSource(), 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(), H264VideoStreamDiscreteFramer::afterGettingFrame1(), BasicUDPSink::afterGettingFrame1(), MPEG4VideoFileServerMediaSubsession::afterPlayingDummy1(), H264VideoFileServerMediaSubsession::afterPlayingDummy1(), MPEG4VideoStreamParser::analyzeVOLHeader(), announceStream(), RTSPServer::RTSPClientConnection::changeClientInputSocket(), MPEG4VideoFileServerMediaSubsession::checkForAuxSDPLine1(), H264VideoFileServerMediaSubsession::checkForAuxSDPLine1(), Medium::close(), ProxyServerMediaSubsession::closeStreamSource(), MPEG2IFrameIndexFromTransportStream::compactParseBuffer(), RTSPClient::connectionHandler1(), RTSPClient::connectToServer(), ProxyServerMediaSession::continueAfterDESCRIBE(), ProxyRTSPClient::continueAfterLivenessCommand(), ProxyRTSPClient::continueAfterSETUP(), T140TextRTPSink::continuePlaying(), QuickTimeFileSink::continuePlaying(), H264VideoRTPSink::continuePlaying(), AVIFileSink::continuePlaying(), VP8VideoMatroskaFileServerMediaSubsession::createNewRTPSink(), VorbisAudioMatroskaFileServerMediaSubsession::createNewRTPSink(), T140TextMatroskaFileServerMediaSubsession::createNewRTPSink(), ProxyServerMediaSubsession::createNewRTPSink(), MPEG4VideoFileServerMediaSubsession::createNewRTPSink(), MPEG2TransportUDPServerMediaSubsession::createNewRTPSink(), MPEG2TransportFileServerMediaSubsession::createNewRTPSink(), MPEG1or2VideoFileServerMediaSubsession::createNewRTPSink(), MPEG1or2DemuxedServerMediaSubsession::createNewRTPSink(), MP3AudioFileServerMediaSubsession::createNewRTPSink(), H264VideoFileServerMediaSubsession::createNewRTPSink(), H263plusVideoFileServerMediaSubsession::createNewRTPSink(), DVVideoFileServerMediaSubsession::createNewRTPSink(), AMRAudioFileServerMediaSubsession::createNewRTPSink(), ADTSAudioFileServerMediaSubsession::createNewRTPSink(), AC3AudioMatroskaFileServerMediaSubsession::createNewRTPSink(), AC3AudioFileServerMediaSubsession::createNewRTPSink(), AACAudioMatroskaFileServerMediaSubsession::createNewRTPSink(), ProxyServerMediaSubsession::createNewStreamSource(), MPEG4VideoFileServerMediaSubsession::createNewStreamSource(), MPEG2TransportUDPServerMediaSubsession::createNewStreamSource(), MPEG2TransportFileServerMediaSubsession::createNewStreamSource(), MPEG1or2VideoFileServerMediaSubsession::createNewStreamSource(), MPEG1or2DemuxedServerMediaSubsession::createNewStreamSource(), MP3AudioFileServerMediaSubsession::createNewStreamSource(), H264VideoMatroskaFileServerMediaSubsession::createNewStreamSource(), H264VideoFileServerMediaSubsession::createNewStreamSource(), H263plusVideoFileServerMediaSubsession::createNewStreamSource(), DVVideoFileServerMediaSubsession::createNewStreamSource(), AMRAudioFileServerMediaSubsession::createNewStreamSource(), ADTSAudioFileServerMediaSubsession::createNewStreamSource(), AC3AudioFileServerMediaSubsession::createNewStreamSource(), AMRDeinterleavingBuffer::deliverIncomingFrame(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), SegmentQueue::dequeue(), DeviceSource::DeviceSource(), WAVAudioFileSource::doGetNextFrame(), T140IdleFilter::doGetNextFrame(), MPEG2TransportStreamMultiplexor::doGetNextFrame(), MPEG2IFrameIndexFromTransportStream::doGetNextFrame(), MP3FileSource::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamFileSource::doGetNextFrame(), BasicUDPSource::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), SIPClient::doInviteStateMachine(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), MPEG1or2VideoRTPSink::doSpecialFrameHandling(), MP3ADURTPSink::doSpecialFrameHandling(), H263plusVideoRTPSink::doSpecialFrameHandling(), WAVAudioFileSource::doStopGettingFrames(), T140IdleFilter::doStopGettingFrames(), 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(), H264VideoFileServerMediaSubsession::getAuxSDPLine(), getMPEG1or2TimeCode(), FramedSource::getNextFrame(), getOptions(), DVVideoStreamFramer::getProfile(), SIPClient::getResponse(), SIPClient::getResponseCode(), getSDPDescription(), OnDemandServerMediaSubsession::getStreamParameters(), RTSPClient::handleAlternativeRequestByte1(), RTSPClient::handleGET_PARAMETERResponse(), RTSPServerSupportingHTTPStreaming::RTSPClientConnectionSupportingHTTPStreaming::handleHTTPCmd_StreamingGET(), RTSPClient::handleIncomingRequest(), RTSPClient::handlePLAYResponse(), RTSPClient::handleRequestError(), RTSPClient::handleResponseBytes(), RTSPClient::handleSETUPResponse(), RTSPServer::incomingConnectionHandler(), RTSPClient::incomingDataHandler1(), RTCPInstance::incomingReportHandler1(), MP3FileSource::initializeStream(), MediaSession::initializeWithSDP(), MediaSession::initiateByMediaType(), SIPClient::invite1(), DynamicRTSPServer::lookupServerMediaSession(), MatroskaDemux::MatroskaDemux(), MatroskaFile::MatroskaFile(), MPEG4GenericRTPSource::MPEG4GenericRTPSource(), networkReadHandler1(), MatroskaDemux::newDemuxedTrack(), MPEG1or2FileServerDemux::newElementaryStream(), MPEG1or2Demux::newElementaryStream(), MPEG4GenericBufferedPacket::nextEnclosedFrameSize(), AMRBufferedPacket::nextEnclosedFrameSize(), T140IdleFilter::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(), RTSPServer::rtspURLPrefix(), RTCPInstance::schedule(), ProxyRTSPClient::scheduleDESCRIBECommand(), ProxyRTSPClient::scheduleLivenessCommand(), OnDemandServerMediaSubsession::sdpLines(), SIPClient::sendACK(), SIPClient::sendBYE(), SIPClient::sendINVITE(), MultiFramedRTPSink::sendPacketIfNecessary(), SIPClient::sendRequest(), RTSPClient::sendRequest(), DarwinInjector::setDestination(), 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(), RTSPServer::~RTSPServer(), StreamClientState::~StreamClientState(), T140IdleFilter::~T140IdleFilter(), 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(), H264VideoFileServerMediaSubsession::afterPlayingDummy1(), MPEG4VideoFileServerMediaSubsession::checkForAuxSDPLine1(), H264VideoFileServerMediaSubsession::checkForAuxSDPLine1(), MP3FileSource::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), doGetNextFrame1(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), doStopGettingFrames(), FramedSource::doStopGettingFrames(), ByteStreamFileSource::doStopGettingFrames(), RTCPInstance::reschedule(), RTCPInstance::schedule(), MultiFramedRTPSink::sendPacketIfNecessary(), and MediaSink::stopPlaying().

00078                         {
00079         return fNextTask;
00080   }


Friends And Related Function Documentation

friend class MediaLookupTable [friend, inherited]

Definition at line 74 of file Media.hh.


Field Documentation

Boolean MultiFramedRTPSource::fCurrentPacketBeginsFrame [protected]

Definition at line 51 of file MultiFramedRTPSource.hh.

Referenced by doGetNextFrame1(), VP8VideoRTPSource::processSpecialHeader(), VorbisAudioRTPSource::processSpecialHeader(), QuickTimeGenericRTPSource::processSpecialHeader(), MPEG4LATMAudioRTPSource::processSpecialHeader(), MPEG4GenericRTPSource::processSpecialHeader(), MPEG4ESVideoRTPSource::processSpecialHeader(), MPEG1or2VideoRTPSource::processSpecialHeader(), JPEGVideoRTPSource::processSpecialHeader(), H264VideoRTPSource::processSpecialHeader(), H263plusVideoRTPSource::processSpecialHeader(), H261VideoRTPSource::processSpecialHeader(), DVVideoRTPSource::processSpecialHeader(), AC3AudioRTPSource::processSpecialHeader(), and reset().

Boolean MultiFramedRTPSource::fCurrentPacketCompletesFrame [protected]

Definition at line 52 of file MultiFramedRTPSource.hh.

Referenced by doGetNextFrame1(), VP8VideoRTPSource::processSpecialHeader(), VorbisAudioRTPSource::processSpecialHeader(), SimpleRTPSource::processSpecialHeader(), QuickTimeGenericRTPSource::processSpecialHeader(), MPEG4LATMAudioRTPSource::processSpecialHeader(), MPEG4GenericRTPSource::processSpecialHeader(), MPEG4ESVideoRTPSource::processSpecialHeader(), MPEG1or2VideoRTPSource::processSpecialHeader(), JPEGVideoRTPSource::processSpecialHeader(), H264VideoRTPSource::processSpecialHeader(), H263plusVideoRTPSource::processSpecialHeader(), H261VideoRTPSource::processSpecialHeader(), DVVideoRTPSource::processSpecialHeader(), AC3AudioRTPSource::processSpecialHeader(), and reset().

Boolean MultiFramedRTPSource::fAreDoingNetworkReads [private]

Definition at line 70 of file MultiFramedRTPSource.hh.

Referenced by doGetNextFrame(), and reset().

BufferedPacket* MultiFramedRTPSource::fPacketReadInProgress [private]

Definition at line 71 of file MultiFramedRTPSource.hh.

Referenced by networkReadHandler1(), and reset().

Boolean MultiFramedRTPSource::fNeedDelivery [private]

Definition at line 72 of file MultiFramedRTPSource.hh.

Referenced by doGetNextFrame(), doGetNextFrame1(), and reset().

Boolean MultiFramedRTPSource::fPacketLossInFragmentedFrame [private]

Definition at line 73 of file MultiFramedRTPSource.hh.

Referenced by doGetNextFrame1(), and reset().

unsigned char* MultiFramedRTPSource::fSavedTo [private]

Definition at line 74 of file MultiFramedRTPSource.hh.

Referenced by doGetNextFrame(), and doGetNextFrame1().

unsigned MultiFramedRTPSource::fSavedMaxSize [private]

Definition at line 75 of file MultiFramedRTPSource.hh.

Referenced by doGetNextFrame(), and doGetNextFrame1().

class ReorderingPacketBuffer* MultiFramedRTPSource::fReorderingBuffer [private]

Definition at line 78 of file MultiFramedRTPSource.hh.

Referenced by doGetNextFrame1(), doStopGettingFrames(), networkReadHandler1(), setPacketReorderingThresholdTime(), and ~MultiFramedRTPSource().

RTPInterface RTPSource::fRTPInterface [protected, inherited]

Definition at line 92 of file RTPSource.hh.

Referenced by doGetNextFrame(), doStopGettingFrames(), networkReadHandler1(), RTPSource::RTPgs(), RTPSource::setAuxilliaryReadHandler(), RTPSource::setServerRequestAlternativeByteHandler(), RTPSource::setStreamSocket(), and ~MultiFramedRTPSource().

u_int16_t RTPSource::fCurPacketRTPSeqNum [protected, inherited]

Definition at line 93 of file RTPSource.hh.

Referenced by RTPSource::curPacketRTPSeqNum(), and doGetNextFrame1().

u_int32_t RTPSource::fCurPacketRTPTimestamp [protected, inherited]

Definition at line 94 of file RTPSource.hh.

Referenced by RTPSource::curPacketRTPTimestamp(), and doGetNextFrame1().

Boolean RTPSource::fCurPacketMarkerBit [protected, inherited]

Definition at line 95 of file RTPSource.hh.

Referenced by RTPSource::curPacketMarkerBit(), and doGetNextFrame1().

Boolean RTPSource::fCurPacketHasBeenSynchronizedUsingRTCP [protected, inherited]

Definition at line 96 of file RTPSource.hh.

Referenced by doGetNextFrame1(), and RTPSource::hasBeenSynchronizedUsingRTCP().

u_int32_t RTPSource::fLastReceivedSSRC [protected, inherited]

Definition at line 97 of file RTPSource.hh.

Referenced by RTPSource::lastReceivedSSRC(), and networkReadHandler1().

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

Definition at line 74 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(), H264VideoStreamDiscreteFramer::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(), doGetNextFrame(), MPEGVideoStreamFramer::doGetNextFrame(), MPEG4VideoStreamDiscreteFramer::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MPEG1or2DemuxedElementaryStream::doGetNextFrame(), MPEG1or2AudioStreamFramer::doGetNextFrame(), H264VideoStreamDiscreteFramer::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), H263plusVideoStreamFramer::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), AC3AudioStreamFramer::doGetNextFrame(), 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(), and MatroskaDemuxedTrack::to().

unsigned FramedSource::fMaxSize [protected, inherited]

Definition at line 75 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(), doGetNextFrame(), MPEGVideoStreamFramer::doGetNextFrame(), MPEG4VideoStreamDiscreteFramer::doGetNextFrame(), MPEG2TransportStreamTrickModeFilter::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MPEG1or2DemuxedElementaryStream::doGetNextFrame(), MPEG1or2AudioStreamFramer::doGetNextFrame(), H264VideoStreamDiscreteFramer::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), H263plusVideoStreamFramer::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), AC3AudioStreamFramer::doGetNextFrame(), doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), DVVideoStreamFramer::getAndDeliverData(), StreamReplicator::getNextFrame(), FramedSource::getNextFrame(), BasicUDPSource::incomingPacketHandler1(), MatroskaDemuxedTrack::maxSize(), MP3ADUdeinterleaver::releaseOutgoingFrame(), and MP3ADUinterleaver::releaseOutgoingFrame().

unsigned FramedSource::fFrameSize [protected, inherited]

Definition at line 76 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(), H264VideoStreamDiscreteFramer::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(), doGetNextFrame(), MPEG2TransportStreamTrickModeFilter::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), MatroskaDemuxedTrack::frameSize(), MP3FromADUSource::generateFrameFromHeadADU(), DVVideoStreamFramer::getAndDeliverData(), BasicUDPSource::incomingPacketHandler1(), AC3AudioStreamFramer::parseNextFrame(), MP3ADUdeinterleaver::releaseOutgoingFrame(), and MP3ADUinterleaver::releaseOutgoingFrame().

unsigned FramedSource::fNumTruncatedBytes [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(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264VideoStreamDiscreteFramer::afterGettingFrame1(), MPEGVideoStreamFramer::continueReadProcessing(), MPEG1or2AudioStreamFramer::continueReadProcessing(), StreamReplica::copyReceivedFrame(), MPEG2TransportStreamMultiplexor::deliverDataToClient(), T140IdleFilter::deliverEmptyFrame(), DeviceSource::deliverFrame(), T140IdleFilter::deliverFromBuffer(), QCELPDeinterleaver::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), doGetNextFrame1(), FramedSource::getNextFrame(), MatroskaDemuxedTrack::numTruncatedBytes(), AC3AudioStreamFramer::parseNextFrame(), MP3ADUdeinterleaver::releaseOutgoingFrame(), and MP3ADUinterleaver::releaseOutgoingFrame().

struct timeval FramedSource::fPresentationTime [read, 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(), InputESSourceRecord::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264VideoStreamDiscreteFramer::afterGettingFrame1(), H264FUAFragmenter::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(), doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), FramedSource::FramedSource(), MP3FromADUSource::generateFrameFromHeadADU(), MPEG1or2VideoStreamFramer::getCurrentPTS(), H264VideoStreamParser::parse(), AC3AudioStreamFramer::parseNextFrame(), MatroskaDemuxedTrack::presentationTime(), MP3ADUdeinterleaver::releaseOutgoingFrame(), MP3ADUinterleaver::releaseOutgoingFrame(), and H264VideoStreamFramer::setPresentationTime().

unsigned FramedSource::fDurationInMicroseconds [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(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264VideoStreamDiscreteFramer::afterGettingFrame1(), H264FUAFragmenter::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(), 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 Mon Apr 29 13:32:11 2013 for live by  doxygen 1.5.2