H264VideoFileSink Class Reference

#include <H264VideoFileSink.hh>

Inheritance diagram for H264VideoFileSink:

Inheritance graph
[legend]
Collaboration diagram for H264VideoFileSink:

Collaboration graph
[legend]

Public Types

typedef void( afterPlayingFunc )(void *clientData)

Public Member Functions

virtual void addData (unsigned char const *data, unsigned dataSize, struct timeval presentationTime)
Boolean startPlaying (MediaSource &source, afterPlayingFunc *afterFunc, void *afterClientData)
virtual void stopPlaying ()
virtual Boolean isRTPSink () const
FramedSourcesource () const
UsageEnvironmentenvir () const
char const * name () const
virtual Boolean isSource () 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 H264VideoFileSinkcreateNew (UsageEnvironment &env, char const *fileName, char const *sPropParameterSetsStr=NULL, unsigned bufferSize=100000, Boolean oneFilePerFrame=False)
static FileSinkcreateNew (UsageEnvironment &env, char const *fileName, unsigned bufferSize=20000, Boolean oneFilePerFrame=False)
static Boolean lookupByName (UsageEnvironment &env, char const *sinkName, MediaSink *&resultSink)
static Boolean lookupByName (UsageEnvironment &env, char const *mediumName, Medium *&resultMedium)
static void close (UsageEnvironment &env, char const *mediumName)
static void close (Medium *medium)

Protected Member Functions

 H264VideoFileSink (UsageEnvironment &env, FILE *fid, char const *sPropParameterSetsStr, unsigned bufferSize, char const *perFrameFileNamePrefix)
virtual ~H264VideoFileSink ()
virtual void afterGettingFrame (unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime)
virtual Boolean continuePlaying ()
virtual Boolean sourceIsCompatibleWithUs (MediaSource &source)
void onSourceClosure ()
TaskTokennextTask ()

Static Protected Member Functions

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

Protected Attributes

FILE * fOutFid
unsigned char * fBuffer
unsigned fBufferSize
char * fPerFrameFileNamePrefix
char * fPerFrameFileNameBuffer
timeval fPrevPresentationTime
unsigned fSamePresentationTimeCounter
FramedSourcefSource

Friends

class MediaLookupTable

Detailed Description

Definition at line 28 of file H264VideoFileSink.hh.


Member Typedef Documentation

typedef void( MediaSink::afterPlayingFunc)(void *clientData) [inherited]

Definition at line 33 of file MediaSink.hh.


Constructor & Destructor Documentation

H264VideoFileSink::H264VideoFileSink ( UsageEnvironment env,
FILE *  fid,
char const *  sPropParameterSetsStr,
unsigned  bufferSize,
char const *  perFrameFileNamePrefix 
) [protected]

Definition at line 27 of file H264VideoFileSink.cpp.

Referenced by createNew().

00030   : H264or5VideoFileSink(env, fid, bufferSize, perFrameFileNamePrefix,
00031                          sPropParameterSetsStr, NULL, NULL) {
00032 }

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

Definition at line 34 of file H264VideoFileSink.cpp.

00034                                       {
00035 }


Member Function Documentation

H264VideoFileSink * H264VideoFileSink::createNew ( UsageEnvironment env,
char const *  fileName,
char const *  sPropParameterSetsStr = NULL,
unsigned  bufferSize = 100000,
Boolean  oneFilePerFrame = False 
) [static]

Definition at line 38 of file H264VideoFileSink.cpp.

References env, H264VideoFileSink(), NULL, and OpenOutputFile().

Referenced by createOutputFiles().

00040                                                                            {
00041   do {
00042     FILE* fid;
00043     char const* perFrameFileNamePrefix;
00044     if (oneFilePerFrame) {
00045       // Create the fid for each frame
00046       fid = NULL;
00047       perFrameFileNamePrefix = fileName;
00048     } else {
00049       // Normal case: create the fid once
00050       fid = OpenOutputFile(env, fileName);
00051       if (fid == NULL) break;
00052       perFrameFileNamePrefix = NULL;
00053     }
00054 
00055     return new H264VideoFileSink(env, fid, sPropParameterSetsStr, bufferSize, perFrameFileNamePrefix);
00056   } while (0);
00057 
00058   return NULL;
00059 }

void H264or5VideoFileSink::afterGettingFrame ( unsigned  frameSize,
unsigned  numTruncatedBytes,
struct timeval  presentationTime 
) [protected, virtual, inherited]

Reimplemented from FileSink.

Definition at line 42 of file H264or5VideoFileSink.cpp.

References FileSink::addData(), FileSink::afterGettingFrame(), H264or5VideoFileSink::fHaveWrittenFirstFrame, H264or5VideoFileSink::fSPropParameterSetsStr, parseSPropParameterSets(), and True.

00042                                                                                                                             {
00043   unsigned char const start_code[4] = {0x00, 0x00, 0x00, 0x01};
00044 
00045   if (!fHaveWrittenFirstFrame) {
00046     // If we have NAL units encoded in "sprop parameter strings", prepend these to the file:
00047     for (unsigned j = 0; j < 3; ++j) {
00048       unsigned numSPropRecords;
00049       SPropRecord* sPropRecords
00050         = parseSPropParameterSets(fSPropParameterSetsStr[j], numSPropRecords);
00051       for (unsigned i = 0; i < numSPropRecords; ++i) {
00052         addData(start_code, 4, presentationTime);
00053         addData(sPropRecords[i].sPropBytes, sPropRecords[i].sPropLength, presentationTime);
00054       }
00055       delete[] sPropRecords;
00056     }
00057     fHaveWrittenFirstFrame = True; // for next time
00058   }
00059 
00060   // Write the input data to the file, with the start code in front:
00061   addData(start_code, 4, presentationTime);
00062 
00063   // Call the parent class to complete the normal file write with the input data:
00064   FileSink::afterGettingFrame(frameSize, numTruncatedBytes, presentationTime);
00065 }

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

Definition at line 84 of file FileSink.cpp.

References sink.

Referenced by OggFileSink::afterGettingFrame(), H264or5VideoFileSink::afterGettingFrame(), AMRAudioFileSink::afterGettingFrame(), OggFileSink::continuePlaying(), and FileSink::continuePlaying().

00087                                                                       {
00088   FileSink* sink = (FileSink*)clientData;
00089   sink->afterGettingFrame(frameSize, numTruncatedBytes, presentationTime);
00090 }

FileSink * FileSink::createNew ( UsageEnvironment env,
char const *  fileName,
unsigned  bufferSize = 20000,
Boolean  oneFilePerFrame = False 
) [static, inherited]

Reimplemented in AMRAudioFileSink.

Definition at line 52 of file FileSink.cpp.

References env, FileSink::FileSink(), NULL, and OpenOutputFile().

Referenced by createOutputFiles(), main(), and startReplicaFileSink().

00053                                                                             {
00054   do {
00055     FILE* fid;
00056     char const* perFrameFileNamePrefix;
00057     if (oneFilePerFrame) {
00058       // Create the fid for each frame
00059       fid = NULL;
00060       perFrameFileNamePrefix = fileName;
00061     } else {
00062       // Normal case: create the fid once
00063       fid = OpenOutputFile(env, fileName);
00064       if (fid == NULL) break;
00065       perFrameFileNamePrefix = NULL;
00066     }
00067 
00068     return new FileSink(env, fid, bufferSize, perFrameFileNamePrefix);
00069   } while (0);
00070 
00071   return NULL;
00072 }

void FileSink::addData ( unsigned char const *  data,
unsigned  dataSize,
struct timeval  presentationTime 
) [virtual, inherited]

Reimplemented in OggFileSink.

Definition at line 92 of file FileSink.cpp.

References Medium::envir(), FileSink::fOutFid, FileSink::fPerFrameFileNameBuffer, FileSink::fPerFrameFileNamePrefix, FileSink::fPrevPresentationTime, FileSink::fSamePresentationTimeCounter, NULL, OpenOutputFile(), and our_random().

Referenced by OggFileSink::addData(), H264or5VideoFileSink::afterGettingFrame(), FileSink::afterGettingFrame(), AMRAudioFileSink::afterGettingFrame(), and createOutputFiles().

00093                                                         {
00094   if (fPerFrameFileNameBuffer != NULL && fOutFid == NULL) {
00095     // Special case: Open a new file on-the-fly for this frame
00096     if (presentationTime.tv_usec == fPrevPresentationTime.tv_usec &&
00097         presentationTime.tv_sec == fPrevPresentationTime.tv_sec) {
00098       // The presentation time is unchanged from the previous frame, so we add a 'counter'
00099       // suffix to the file name, to distinguish them:
00100       sprintf(fPerFrameFileNameBuffer, "%s-%lu.%06lu-%u", fPerFrameFileNamePrefix,
00101               presentationTime.tv_sec, presentationTime.tv_usec, ++fSamePresentationTimeCounter);
00102     } else {
00103       sprintf(fPerFrameFileNameBuffer, "%s-%lu.%06lu", fPerFrameFileNamePrefix,
00104               presentationTime.tv_sec, presentationTime.tv_usec);
00105       fPrevPresentationTime = presentationTime; // for next time
00106       fSamePresentationTimeCounter = 0; // for next time
00107     }
00108     fOutFid = OpenOutputFile(envir(), fPerFrameFileNameBuffer);
00109   }
00110 
00111   // Write to our file:
00112 #ifdef TEST_LOSS
00113   static unsigned const framesPerPacket = 10;
00114   static unsigned const frameCount = 0;
00115   static Boolean const packetIsLost;
00116   if ((frameCount++)%framesPerPacket == 0) {
00117     packetIsLost = (our_random()%10 == 0); // simulate 10% packet loss #####
00118   }
00119 
00120   if (!packetIsLost)
00121 #endif
00122   if (fOutFid != NULL && data != NULL) {
00123     fwrite(data, 1, dataSize, fOutFid);
00124   }
00125 }

Boolean FileSink::continuePlaying (  )  [protected, virtual, inherited]

Implements MediaSink.

Reimplemented in OggFileSink.

Definition at line 74 of file FileSink.cpp.

References FileSink::afterGettingFrame(), False, FileSink::fBuffer, FileSink::fBufferSize, MediaSink::fSource, FramedSource::getNextFrame(), NULL, MediaSink::onSourceClosure(), and True.

Referenced by FileSink::afterGettingFrame().

00074                                   {
00075   if (fSource == NULL) return False;
00076 
00077   fSource->getNextFrame(fBuffer, fBufferSize,
00078                         afterGettingFrame, this,
00079                         onSourceClosure, this);
00080 
00081   return True;
00082 }

Boolean MediaSink::lookupByName ( UsageEnvironment env,
char const *  sinkName,
MediaSink *&  resultSink 
) [static, inherited]

Definition at line 39 of file MediaSink.cpp.

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

Referenced by RTPSink::lookupByName().

00040                                                         {
00041   resultSink = NULL; // unless we succeed
00042 
00043   Medium* medium;
00044   if (!Medium::lookupByName(env, sinkName, medium)) return False;
00045 
00046   if (!medium->isSink()) {
00047     env.setResultMsg(sinkName, " is not a media sink");
00048     return False;
00049   }
00050 
00051   resultSink = (MediaSink*)medium;
00052   return True;
00053 }

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 MediaSink::startPlaying ( MediaSource source,
afterPlayingFunc afterFunc,
void *  afterClientData 
) [inherited]

Definition at line 60 of file MediaSink.cpp.

References MediaSink::continuePlaying(), Medium::envir(), MediaSink::fAfterClientData, MediaSink::fAfterFunc, False, MediaSink::fSource, NULL, UsageEnvironment::setResultMsg(), MediaSink::source(), and MediaSink::sourceIsCompatibleWithUs().

Referenced by createOutputFiles(), MPEG4VideoFileServerMediaSubsession::getAuxSDPLine(), H265VideoFileServerMediaSubsession::getAuxSDPLine(), H264VideoFileServerMediaSubsession::getAuxSDPLine(), getMPEG1or2TimeCode(), main(), play(), StreamState::startPlaying(), startReplicaFileSink(), and startReplicaUDPSink().

00062                                                        {
00063   // Make sure we're not already being played:
00064   if (fSource != NULL) {
00065     envir().setResultMsg("This sink is already being played");
00066     return False;
00067   }
00068 
00069   // Make sure our source is compatible:
00070   if (!sourceIsCompatibleWithUs(source)) {
00071     envir().setResultMsg("MediaSink::startPlaying(): source is not compatible!");
00072     return False;
00073   }
00074   fSource = (FramedSource*)&source;
00075 
00076   fAfterFunc = afterFunc;
00077   fAfterClientData = afterClientData;
00078   return continuePlaying();
00079 }

void MediaSink::stopPlaying (  )  [virtual, inherited]

Reimplemented in MultiFramedRTPSink.

Definition at line 81 of file MediaSink.cpp.

References Medium::envir(), MediaSink::fAfterFunc, MediaSink::fSource, Medium::nextTask(), NULL, FramedSource::stopGettingFrames(), UsageEnvironment::taskScheduler(), and TaskScheduler::unscheduleDelayedTask().

Referenced by afterPlaying(), StreamState::pause(), MultiFramedRTPSink::stopPlaying(), and MediaSink::~MediaSink().

00081                             {
00082   // First, tell the source that we're no longer interested:
00083   if (fSource != NULL) fSource->stopGettingFrames();
00084 
00085   // Cancel any pending tasks:
00086   envir().taskScheduler().unscheduleDelayedTask(nextTask());
00087 
00088   fSource = NULL; // indicates that we can be played again
00089   fAfterFunc = NULL;
00090 }

Boolean MediaSink::isRTPSink (  )  const [virtual, inherited]

Reimplemented in RTPSink.

Definition at line 107 of file MediaSink.cpp.

References False.

00107                                    {
00108   return False; // default implementation
00109 }

FramedSource* MediaSink::source (  )  const [inline, inherited]

Definition at line 42 of file MediaSink.hh.

References MediaSink::fSource.

Referenced by AMRAudioFileSink::afterGettingFrame(), JPEGVideoRTPSink::doSpecialFrameHandling(), MPEG4ESVideoRTPSink::sourceIsCompatibleWithUs(), MPEG1or2VideoRTPSink::sourceIsCompatibleWithUs(), MediaSink::sourceIsCompatibleWithUs(), JPEGVideoRTPSink::sourceIsCompatibleWithUs(), H265VideoRTPSink::sourceIsCompatibleWithUs(), H264VideoRTPSink::sourceIsCompatibleWithUs(), DVVideoRTPSink::sourceIsCompatibleWithUs(), AMRAudioRTPSink::sourceIsCompatibleWithUs(), AMRAudioFileSink::sourceIsCompatibleWithUs(), JPEGVideoRTPSink::specialHeaderSize(), and MediaSink::startPlaying().

00042 {return fSource;}

Boolean MediaSink::sourceIsCompatibleWithUs ( MediaSource source  )  [protected, virtual, inherited]

Reimplemented in AMRAudioFileSink, AMRAudioRTPSink, DVVideoRTPSink, H264VideoRTPSink, H265VideoRTPSink, JPEGVideoRTPSink, MPEG1or2VideoRTPSink, and MPEG4ESVideoRTPSink.

Definition at line 55 of file MediaSink.cpp.

References FramedSource::isFramedSource(), and MediaSink::source().

Referenced by MediaSink::startPlaying().

00055                                                                {
00056   // We currently support only framed sources.
00057   return source.isFramedSource();
00058 }

void MediaSink::onSourceClosure ( void *  clientData  )  [static, protected, inherited]

Definition at line 92 of file MediaSink.cpp.

References MediaSink::onSourceClosure(), and sink.

Referenced by MediaSink::onSourceClosure().

00092                                                 {
00093   MediaSink* sink = (MediaSink*)clientData;
00094   sink->onSourceClosure();
00095 }

void MediaSink::onSourceClosure (  )  [protected, inherited]

Definition at line 97 of file MediaSink.cpp.

References Medium::envir(), MediaSink::fAfterClientData, MediaSink::fAfterFunc, MediaSink::fSource, Medium::nextTask(), NULL, UsageEnvironment::taskScheduler(), and TaskScheduler::unscheduleDelayedTask().

Referenced by FileSink::afterGettingFrame(), MFSD_DummySink::afterGettingFrame1(), DummySink::continuePlaying(), MFSD_DummySink::continuePlaying(), FileSink::continuePlaying(), BasicUDPSink::continuePlaying1(), OggFileSink::ourOnSourceClosure(), TCPStreamSink::processBuffer(), and MultiFramedRTPSink::sendPacketIfNecessary().

00097                                 {
00098   // Cancel any pending tasks:
00099   envir().taskScheduler().unscheduleDelayedTask(nextTask());
00100 
00101   fSource = NULL; // indicates that we can be played again
00102   if (fAfterFunc != NULL) {
00103     (*fAfterFunc)(fAfterClientData);
00104   }
00105 }

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

Definition at line 52 of file Media.cpp.

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

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

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

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

Definition at line 56 of file Media.cpp.

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

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

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

Definition at line 59 of file Media.hh.

References Medium::fEnviron.

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

00059 {return fEnviron;}

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

Definition at line 61 of file Media.hh.

References Medium::fMediumName.

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

00061 {return fMediumName;}

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

Reimplemented in MediaSource.

Definition at line 62 of file Media.cpp.

References False.

Referenced by MediaSource::lookupByName().

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

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

Reimplemented in RTCPInstance.

Definition at line 70 of file Media.cpp.

References False.

Referenced by RTCPInstance::lookupByName().

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

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

Reimplemented in RTSPClient.

Definition at line 74 of file Media.cpp.

References False.

Referenced by RTSPClient::lookupByName().

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

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

Reimplemented in RTSPServer.

Definition at line 78 of file Media.cpp.

References False.

Referenced by RTSPServer::lookupByName().

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

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

Reimplemented in MediaSession.

Definition at line 82 of file Media.cpp.

References False.

Referenced by MediaSession::lookupByName().

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

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

Reimplemented in ServerMediaSession.

Definition at line 86 of file Media.cpp.

References False.

Referenced by ServerMediaSession::lookupByName().

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

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

Reimplemented in DarwinInjector.

Definition at line 90 of file Media.cpp.

References False.

Referenced by DarwinInjector::lookupByName().

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

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

Definition at line 78 of file Media.hh.

References Medium::fNextTask.

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

00078                         {
00079         return fNextTask;
00080   }


Friends And Related Function Documentation

friend class MediaLookupTable [friend, inherited]

Definition at line 74 of file Media.hh.


Field Documentation

FILE* FileSink::fOutFid [protected, inherited]

Definition at line 62 of file FileSink.hh.

Referenced by FileSink::addData(), FileSink::afterGettingFrame(), and FileSink::~FileSink().

unsigned char* FileSink::fBuffer [protected, inherited]

Definition at line 63 of file FileSink.hh.

Referenced by OggFileSink::afterGettingFrame(), FileSink::afterGettingFrame(), OggFileSink::continuePlaying(), FileSink::continuePlaying(), FileSink::FileSink(), and FileSink::~FileSink().

unsigned FileSink::fBufferSize [protected, inherited]

Definition at line 64 of file FileSink.hh.

Referenced by OggFileSink::afterGettingFrame(), FileSink::afterGettingFrame(), OggFileSink::continuePlaying(), and FileSink::continuePlaying().

char* FileSink::fPerFrameFileNamePrefix [protected, inherited]

Definition at line 65 of file FileSink.hh.

Referenced by FileSink::addData(), FileSink::FileSink(), and FileSink::~FileSink().

char* FileSink::fPerFrameFileNameBuffer [protected, inherited]

Definition at line 66 of file FileSink.hh.

Referenced by FileSink::addData(), FileSink::afterGettingFrame(), AMRAudioFileSink::afterGettingFrame(), FileSink::FileSink(), and FileSink::~FileSink().

struct timeval FileSink::fPrevPresentationTime [read, protected, inherited]

Definition at line 67 of file FileSink.hh.

Referenced by FileSink::addData(), and FileSink::FileSink().

unsigned FileSink::fSamePresentationTimeCounter [protected, inherited]

Definition at line 68 of file FileSink.hh.

Referenced by FileSink::addData().

FramedSource* MediaSink::fSource [protected, inherited]

Definition at line 58 of file MediaSink.hh.

Referenced by FileSink::afterGettingFrame(), AMRAudioFileSink::afterGettingFrame(), MPEG4ESVideoRTPSink::auxSDPLine(), DVVideoRTPSink::auxSDPLine(), DummySink::continuePlaying(), TCPStreamSink::continuePlaying(), T140TextRTPSink::continuePlaying(), OggFileSink::continuePlaying(), MFSD_DummySink::continuePlaying(), H264or5VideoRTPSink::continuePlaying(), FileSink::continuePlaying(), BasicUDPSink::continuePlaying1(), MPEG4ESVideoRTPSink::doSpecialFrameHandling(), MPEG1or2VideoRTPSink::doSpecialFrameHandling(), JPEGVideoRTPSink::doSpecialFrameHandling(), AMRAudioRTPSink::doSpecialFrameHandling(), MediaSink::onSourceClosure(), MultiFramedRTPSink::packFrame(), TCPStreamSink::processBuffer(), MediaSink::source(), JPEGVideoRTPSink::specialHeaderSize(), MediaSink::startPlaying(), MediaSink::stopPlaying(), H264or5VideoRTPSink::~H264or5VideoRTPSink(), and T140TextRTPSink::~T140TextRTPSink().


The documentation for this class was generated from the following files:
Generated on Wed Apr 23 16:16:10 2014 for live by  doxygen 1.5.2