DVVideoStreamFramer Class Reference

#include <DVVideoStreamFramer.hh>

Inheritance diagram for DVVideoStreamFramer:

Inheritance graph
[legend]
Collaboration diagram for DVVideoStreamFramer:

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

char const * profileName ()
Boolean getFrameParameters (unsigned &frameSize, double &frameDuration)
FramedSourceinputSource () const
void reassignInputSource (FramedSource *newInputSource)
void detachInputSource ()
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 Boolean isRTPSource () const
virtual Boolean isMPEG1or2VideoStreamFramer () const
virtual Boolean isMPEG4VideoStreamFramer () const
virtual Boolean isH264VideoStreamFramer () 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 DVVideoStreamFramercreateNew (UsageEnvironment &env, FramedSource *inputSource, Boolean sourceIsSeekable=False, Boolean leavePresentationTimesUnmodified=False)
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

 DVVideoStreamFramer (UsageEnvironment &env, FramedSource *inputSource, Boolean sourceIsSeekable, Boolean leavePresentationTimesUnmodified)
virtual ~DVVideoStreamFramer ()
virtual Boolean isDVVideoStreamFramer () const
virtual void doGetNextFrame ()
void getAndDeliverData ()
void afterGettingFrame (unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime)
void getProfile ()
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

Boolean fLeavePresentationTimesUnmodified
void const * fOurProfile
timeval fNextFramePresentationTime
unsigned char fSavedInitialBlocks [DV_SAVED_INITIAL_BLOCKS_SIZE]
char fInitialBlocksPresent
Boolean fSourceIsSeekable
FramedSourcefInputSource
unsigned char * fTo
unsigned fMaxSize
unsigned fFrameSize
unsigned fNumTruncatedBytes
timeval fPresentationTime
unsigned fDurationInMicroseconds

Friends

class MediaLookupTable

Detailed Description

Definition at line 33 of file DVVideoStreamFramer.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

DVVideoStreamFramer::DVVideoStreamFramer ( UsageEnvironment env,
FramedSource inputSource,
Boolean  sourceIsSeekable,
Boolean  leavePresentationTimesUnmodified 
) [protected]

Definition at line 27 of file DVVideoStreamFramer.cpp.

References fNextFramePresentationTime, FramedSource::fTo, and NULL.

Referenced by createNew().

00029   : FramedFilter(env, inputSource),
00030     fLeavePresentationTimesUnmodified(leavePresentationTimesUnmodified),
00031     fOurProfile(NULL), fInitialBlocksPresent(False), fSourceIsSeekable(sourceIsSeekable) {
00032   fTo = NULL; // hack used when reading "fSavedInitialBlocks"
00033   // Use the current wallclock time as the initial 'presentation time':
00034   gettimeofday(&fNextFramePresentationTime, NULL);
00035 }

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

Definition at line 37 of file DVVideoStreamFramer.cpp.

00037                                           {
00038 }


Member Function Documentation

DVVideoStreamFramer * DVVideoStreamFramer::createNew ( UsageEnvironment env,
FramedSource inputSource,
Boolean  sourceIsSeekable = False,
Boolean  leavePresentationTimesUnmodified = False 
) [static]

Definition at line 41 of file DVVideoStreamFramer.cpp.

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

Referenced by ProxyServerMediaSubsession::createNewStreamSource(), and DVVideoFileServerMediaSubsession::createNewStreamSource().

00042                                                                                                    {
00043   return new DVVideoStreamFramer(env, inputSource, sourceIsSeekable, leavePresentationTimesUnmodified);
00044 }

char const * DVVideoStreamFramer::profileName (  ) 

Definition at line 72 of file DVVideoStreamFramer.cpp.

References fOurProfile, getProfile(), and NULL.

Referenced by DVVideoRTPSink::auxSDPLineFromFramer().

00072                                              {
00073   if (fOurProfile == NULL) getProfile();
00074 
00075   return fOurProfile != NULL ? ((DVVideoProfile const*)fOurProfile)->name : NULL;
00076 }

Boolean DVVideoStreamFramer::getFrameParameters ( unsigned &  frameSize,
double &  frameDuration 
)

Definition at line 78 of file DVVideoStreamFramer.cpp.

References False, fOurProfile, getProfile(), NULL, and True.

Referenced by DVVideoFileServerMediaSubsession::createNewStreamSource().

00078                                                                                           {
00079   if (fOurProfile == NULL) getProfile();
00080   if (fOurProfile == NULL) return False;
00081 
00082   frameSize = ((DVVideoProfile const*)fOurProfile)->dvFrameSize;
00083   frameDuration = ((DVVideoProfile const*)fOurProfile)->frameDuration;
00084   return True;
00085 }

Boolean DVVideoStreamFramer::isDVVideoStreamFramer (  )  const [protected, virtual]

Reimplemented from MediaSource.

Definition at line 96 of file DVVideoStreamFramer.cpp.

References True.

00096                                                          {
00097   return True;
00098 }

void DVVideoStreamFramer::doGetNextFrame (  )  [protected, virtual]

Implements FramedSource.

Definition at line 100 of file DVVideoStreamFramer.cpp.

References FramedSource::afterGetting(), DV_DIF_BLOCK_SIZE, DV_SAVED_INITIAL_BLOCKS_SIZE, False, FramedSource::fFrameSize, fInitialBlocksPresent, FramedSource::fMaxSize, FramedSource::fNumTruncatedBytes, fSavedInitialBlocks, fSourceIsSeekable, FramedSource::fTo, and getAndDeliverData().

00100                                          {
00101   fFrameSize = 0; // initially, until we deliver data
00102 
00103   // If we have saved initial blocks (and won't be seeking back to re-read this data), so use this data first.
00104   if (fInitialBlocksPresent && !fSourceIsSeekable) {
00105     // For simplicity, we require the downstream object's buffer to be >= this data's size:
00106     if (fMaxSize < DV_SAVED_INITIAL_BLOCKS_SIZE) {
00107       fNumTruncatedBytes = fMaxSize;
00108       afterGetting(this);
00109       return;
00110     }
00111 
00112     memmove(fTo, fSavedInitialBlocks, DV_SAVED_INITIAL_BLOCKS_SIZE);
00113     fFrameSize = DV_SAVED_INITIAL_BLOCKS_SIZE;
00114     fTo += DV_SAVED_INITIAL_BLOCKS_SIZE;
00115     fInitialBlocksPresent = False; // for the future
00116   }
00117     
00118   // Arrange to read the (rest of the) requested data.
00119   // (But first, make sure that we read an integral multiple of the DV block size.)
00120   fMaxSize -= fMaxSize%DV_DIF_BLOCK_SIZE;
00121   getAndDeliverData();
00122 }

void DVVideoStreamFramer::getAndDeliverData (  )  [protected]

Definition at line 126 of file DVVideoStreamFramer.cpp.

References afterGettingFrame(), DV_SMALLEST_POSSIBLE_FRAME_SIZE, FramedSource::fFrameSize, FramedFilter::fInputSource, FramedSource::fMaxSize, fOurProfile, FramedSource::fTo, FramedSource::getNextFrame(), FramedSource::handleClosure(), and NULL.

Referenced by doGetNextFrame().

00126                                             {
00127   unsigned const totFrameSize
00128     = fOurProfile != NULL ? ((DVVideoProfile const*)fOurProfile)->dvFrameSize : DV_SMALLEST_POSSIBLE_FRAME_SIZE;
00129   unsigned totBytesToDeliver = totFrameSize < fMaxSize ? totFrameSize : fMaxSize;
00130   unsigned numBytesToRead = totBytesToDeliver - fFrameSize;
00131 
00132   fInputSource->getNextFrame(fTo, numBytesToRead, afterGettingFrame, this, FramedSource::handleClosure, this);
00133 }

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

Definition at line 135 of file DVVideoStreamFramer.cpp.

References afterGettingFrame().

Referenced by afterGettingFrame(), getAndDeliverData(), and getProfile().

00137                                                                                                                   {
00138   DVVideoStreamFramer* source = (DVVideoStreamFramer*)clientData;
00139   source->afterGettingFrame(frameSize, numTruncatedBytes, presentationTime);
00140 }

void DVVideoStreamFramer::afterGettingFrame ( unsigned  frameSize,
unsigned  numTruncatedBytes,
struct timeval  presentationTime 
) [protected]

Definition at line 155 of file DVVideoStreamFramer.cpp.

References DV_DIF_BLOCK_SIZE, DV_PACK_HEADER_10, DV_PACK_HEADER_12, DV_SAVED_INITIAL_BLOCKS_SIZE, DV_SECTION_HEADER, DV_SECTION_VAUX_MAX, DV_SECTION_VAUX_MIN, DVData, DVSectionId, fOurProfile, fSavedInitialBlocks, FramedSource::fTo, DVVideoProfile::name, NULL, and profiles.

00155                                                                                                                            {
00156   if (fOurProfile == NULL && frameSize >= DV_SAVED_INITIAL_BLOCKS_SIZE) {
00157     // (Try to) parse this data enough to figure out its profile.
00158     // We assume that the data begins on a (80-byte) block boundary, but not necessarily on a (150-block) sequence boundary.
00159     // We therefore scan each 80-byte block, until we find the 6-block header that begins a sequence:
00160     u_int8_t const* data = (fTo == NULL) ? fSavedInitialBlocks : fTo;
00161     for (u_int8_t const* ptr = data; ptr + 6*DV_DIF_BLOCK_SIZE <= &data[DV_SAVED_INITIAL_BLOCKS_SIZE]; ptr += DV_DIF_BLOCK_SIZE) {
00162       // Check whether "ptr" points to an appropriate header:
00163       u_int8_t const sectionHeader = DVSectionId(0);
00164       u_int8_t const sectionVAUX = DVSectionId(5);
00165       u_int8_t const packHeaderNum = DVData(0,0);
00166 
00167       if (sectionHeader == DV_SECTION_HEADER
00168           && (packHeaderNum == DV_PACK_HEADER_10 || packHeaderNum == DV_PACK_HEADER_12)
00169           && (sectionVAUX >= DV_SECTION_VAUX_MIN && sectionVAUX <= DV_SECTION_VAUX_MAX)) {
00170         // This data begins a sequence; look up the DV profile from this:
00171         u_int8_t const apt = DVData(0,1)&0x07;
00172         u_int8_t const sType = DVData(5,48)&0x1F;
00173         u_int8_t const sequenceCount = (packHeaderNum == DV_PACK_HEADER_10) ? 10 : 12;
00174 
00175         // Use these three parameters (apt, sType, sequenceCount) to look up the DV profile:
00176         for (DVVideoProfile const* profile = profiles; profile->name != NULL; ++profile) {
00177           if (profile->apt == apt && profile->sType == sType && profile->sequenceCount == sequenceCount) {
00178             fOurProfile = profile;
00179             break;
00180           }
00181         }
00182         break; // because we found a correct sequence header (even if we don't happen to define a profile for it)
00183       }
00184     }
00185   }
00186 
00187   if (fTo != NULL) { // There is a downstream object; complete delivery to it (or read more data, if necessary)
00188     unsigned const totFrameSize
00189       = fOurProfile != NULL ? ((DVVideoProfile const*)fOurProfile)->dvFrameSize : DV_SMALLEST_POSSIBLE_FRAME_SIZE;
00190     fFrameSize += frameSize;
00191     fTo += frameSize;
00192     fPresentationTime = presentationTime; // by default; may get changed below
00193 
00194     if (fFrameSize < totFrameSize && fFrameSize < fMaxSize && numTruncatedBytes == 0) {
00195       // We have more data to deliver; get it now:
00196       getAndDeliverData();
00197     } else {
00198       // We're done delivering this DV frame (but check for truncation):
00199       fNumTruncatedBytes = totFrameSize - fFrameSize;
00200 
00201       if (fOurProfile != NULL) {
00202         // Also set the presentation time, and increment it for next time,
00203         // based on the length of this frame:
00204         if (!fLeavePresentationTimesUnmodified) fPresentationTime = fNextFramePresentationTime;
00205 
00206         DVVideoProfile const* ourProfile =(DVVideoProfile const*)fOurProfile;
00207         double durationInMicroseconds = (fFrameSize*ourProfile->frameDuration)/ourProfile->dvFrameSize;
00208         fDurationInMicroseconds = (unsigned)durationInMicroseconds;
00209         fNextFramePresentationTime.tv_usec += fDurationInMicroseconds;
00210         fNextFramePresentationTime.tv_sec += fNextFramePresentationTime.tv_usec/MILLION;
00211         fNextFramePresentationTime.tv_usec %= MILLION;
00212       }
00213 
00214       afterGetting(this);
00215     }
00216   } else {
00217     // We read data into our special buffer; signal that it has arrived:
00218     fInitialBlocksPresent = True;
00219   }
00220 }

void DVVideoStreamFramer::getProfile (  )  [protected]

Definition at line 87 of file DVVideoStreamFramer.cpp.

References afterGettingFrame(), TaskScheduler::doEventLoop(), DV_SAVED_INITIAL_BLOCKS_SIZE, Medium::envir(), fInitialBlocksPresent, FramedFilter::fInputSource, fSavedInitialBlocks, FramedSource::getNextFrame(), FramedSource::handleClosure(), and UsageEnvironment::taskScheduler().

Referenced by getFrameParameters(), and profileName().

00087                                      {
00088   // To determine the stream's profile, we need to first read a chunk of data that we can parse:
00089   fInputSource->getNextFrame(fSavedInitialBlocks, DV_SAVED_INITIAL_BLOCKS_SIZE,
00090                              afterGettingFrame, this, FramedSource::handleClosure, this);
00091   
00092   // Handle events until the requested data arrives:
00093   envir().taskScheduler().doEventLoop(&fInitialBlocksPresent);
00094 }

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

Definition at line 30 of file FramedFilter.hh.

References FramedFilter::fInputSource.

Referenced by AC3AudioStreamFramer::AC3AudioStreamFramer(), MediaSubsession::addFilter(), 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(), H264VideoStreamDiscreteFramer::createNew(), H263plusVideoStreamFramer::createNew(), createNew(), AC3AudioStreamFramer::createNew(), H264VideoRTPSink::doSpecialFrameHandling(), H264VideoFileServerMediaSubsession::getAuxSDPLine(), MP3AudioFileServerMediaSubsession::getBaseStreams(), MP3ADUinterleaverBase::getInputSource(), H263plusVideoStreamFramer::H263plusVideoStreamFramer(), MPEG1or2VideoStreamFramer::MPEG1or2VideoStreamFramer(), MPEG4VideoStreamFramer::MPEG4VideoStreamFramer(), H264VideoMatroskaFileServerMediaSubsession::seekStreamSource(), DVVideoFileServerMediaSubsession::seekStreamSource(), and ClientTrickPlayState::setSource().

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(), H264VideoRTPSink::continuePlaying(), and FramedFilter::detachInputSource().

00032 { fInputSource = newInputSource; }

void FramedFilter::detachInputSource (  )  [inline, inherited]

Definition at line 35 of file FramedFilter.hh.

References NULL, and FramedFilter::reassignInputSource().

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

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

Reimplemented from MediaSource.

Reimplemented in ADUFromMP3Source, and MP3FromADUSource.

Definition at line 39 of file FramedFilter.cpp.

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

00039                                          {
00040   if (fInputSource == NULL) return "";
00041 
00042   return fInputSource->MIMEtype();
00043 }

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

Reimplemented from MediaSource.

Reimplemented in MP3ADUTranscoder.

Definition at line 45 of file FramedFilter.cpp.

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

00045                                        {
00046   if (fInputSource != NULL) fInputSource->getAttributes();
00047 }

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

Reimplemented from FramedSource.

Reimplemented in MPEG2TransportStreamFramer, MPEG2TransportStreamTrickModeFilter, T140IdleFilter, and QCELPDeinterleaver.

Definition at line 49 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, 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 }

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(), getAndDeliverData(), StreamReplicator::getNextFrame(), 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(), getAndDeliverData(), StreamReplicator::getNextFrame(), 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(), 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::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::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(), 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(), H264VideoFileServerMediaSubsession::getAuxSDPLine(), getMPEG1or2TimeCode(), FramedSource::getNextFrame(), getOptions(), 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(), MultiFramedRTPSource::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(), MultiFramedRTPSource::doGetNextFrame1(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), MultiFramedRTPSource::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 DVVideoStreamFramer::fLeavePresentationTimesUnmodified [protected]

Definition at line 64 of file DVVideoStreamFramer.hh.

void const* DVVideoStreamFramer::fOurProfile [protected]

Definition at line 65 of file DVVideoStreamFramer.hh.

Referenced by afterGettingFrame(), getAndDeliverData(), getFrameParameters(), and profileName().

struct timeval DVVideoStreamFramer::fNextFramePresentationTime [read, protected]

Definition at line 66 of file DVVideoStreamFramer.hh.

Referenced by DVVideoStreamFramer().

unsigned char DVVideoStreamFramer::fSavedInitialBlocks[DV_SAVED_INITIAL_BLOCKS_SIZE] [protected]

Definition at line 67 of file DVVideoStreamFramer.hh.

Referenced by afterGettingFrame(), doGetNextFrame(), and getProfile().

char DVVideoStreamFramer::fInitialBlocksPresent [protected]

Definition at line 68 of file DVVideoStreamFramer.hh.

Referenced by doGetNextFrame(), and getProfile().

Boolean DVVideoStreamFramer::fSourceIsSeekable [protected]

Definition at line 69 of file DVVideoStreamFramer.hh.

Referenced by doGetNextFrame().

FramedSource* FramedFilter::fInputSource [protected, inherited]

Definition at line 49 of file FramedFilter.hh.

Referenced by QCELPDeinterleaver::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG2TransportStreamFramer::changeInputSource(), 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(), H264VideoStreamDiscreteFramer::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), QCELPDeinterleaver::doStopGettingFrames(), FramedFilter::doStopGettingFrames(), MPEG2TransportStreamTrickModeFilter::forgetInputSource(), getAndDeliverData(), MP3ADUTranscoder::getAttributes(), FramedFilter::getAttributes(), getProfile(), FramedFilter::inputSource(), FramedFilter::MIMEtype(), MPEG2TransportStreamTrickModeFilter::readTransportPacket(), FramedFilter::reassignInputSource(), MPEG2TransportStreamTrickModeFilter::seekToTransportPacket(), and FramedFilter::~FramedFilter().

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

Definition at line 74 of file FramedSource.hh.

Referenced by 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(), MultiFramedRTPSource::doGetNextFrame(), MPEGVideoStreamFramer::doGetNextFrame(), MPEG4VideoStreamDiscreteFramer::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MPEG1or2DemuxedElementaryStream::doGetNextFrame(), MPEG1or2AudioStreamFramer::doGetNextFrame(), H264VideoStreamDiscreteFramer::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), H263plusVideoStreamFramer::doGetNextFrame(), doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), AC3AudioStreamFramer::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), DVVideoStreamFramer(), MP3FromADUSource::generateFrameFromHeadADU(), 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(), MultiFramedRTPSource::doGetNextFrame(), MPEGVideoStreamFramer::doGetNextFrame(), MPEG4VideoStreamDiscreteFramer::doGetNextFrame(), MPEG2TransportStreamTrickModeFilter::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MPEG1or2DemuxedElementaryStream::doGetNextFrame(), MPEG1or2AudioStreamFramer::doGetNextFrame(), H264VideoStreamDiscreteFramer::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), H263plusVideoStreamFramer::doGetNextFrame(), doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), AC3AudioStreamFramer::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), 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(), MultiFramedRTPSource::doGetNextFrame(), MPEG2TransportStreamTrickModeFilter::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), MatroskaDemuxedTrack::frameSize(), MP3FromADUSource::generateFrameFromHeadADU(), 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(), doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::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(), MultiFramedRTPSource::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:31:28 2013 for live by  doxygen 1.5.2