FileSink Class Reference

#include <FileSink.hh>

Inheritance diagram for FileSink:

Inheritance graph
[legend]
Collaboration diagram for FileSink:

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 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

 FileSink (UsageEnvironment &env, FILE *fid, unsigned bufferSize, char const *perFrameFileNamePrefix)
virtual ~FileSink ()
virtual Boolean continuePlaying ()
virtual void afterGettingFrame (unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime)
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 FileSink.hh.


Member Typedef Documentation

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

Definition at line 33 of file MediaSink.hh.


Constructor & Destructor Documentation

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

Definition at line 31 of file FileSink.cpp.

References fBuffer, fPerFrameFileNameBuffer, fPerFrameFileNamePrefix, fPrevPresentationTime, NULL, and strDup().

Referenced by createNew().

00033   : MediaSink(env), fOutFid(fid), fBufferSize(bufferSize), fSamePresentationTimeCounter(0) {
00034   fBuffer = new unsigned char[bufferSize];
00035   if (perFrameFileNamePrefix != NULL) {
00036     fPerFrameFileNamePrefix = strDup(perFrameFileNamePrefix);
00037     fPerFrameFileNameBuffer = new char[strlen(perFrameFileNamePrefix) + 100];
00038   } else {
00039     fPerFrameFileNamePrefix = NULL;
00040     fPerFrameFileNameBuffer = NULL;
00041   }
00042   fPrevPresentationTime.tv_sec = ~0; fPrevPresentationTime.tv_usec = 0;
00043 }

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

Definition at line 45 of file FileSink.cpp.

References fBuffer, fOutFid, fPerFrameFileNameBuffer, fPerFrameFileNamePrefix, and NULL.

00045                     {
00046   delete[] fPerFrameFileNameBuffer;
00047   delete[] fPerFrameFileNamePrefix;
00048   delete[] fBuffer;
00049   if (fOutFid != NULL) fclose(fOutFid);
00050 }


Member Function Documentation

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

Reimplemented in AMRAudioFileSink.

Definition at line 52 of file FileSink.cpp.

References env, 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]

Reimplemented in OggFileSink.

Definition at line 92 of file FileSink.cpp.

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

Referenced by OggFileSink::addData(), H264or5VideoFileSink::afterGettingFrame(), 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]

Implements MediaSink.

Reimplemented in OggFileSink.

Definition at line 74 of file FileSink.cpp.

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

Referenced by 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 }

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

Definition at line 84 of file FileSink.cpp.

References sink.

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

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

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

Reimplemented in AMRAudioFileSink, H264or5VideoFileSink, and OggFileSink.

Definition at line 127 of file FileSink.cpp.

References addData(), continuePlaying(), Medium::envir(), fBuffer, fBufferSize, fOutFid, fPerFrameFileNameBuffer, MediaSink::fSource, NULL, MediaSink::onSourceClosure(), and FramedSource::stopGettingFrames().

00129                                                                   {
00130   if (numTruncatedBytes > 0) {
00131     envir() << "FileSink::afterGettingFrame(): The input frame data was too large for our buffer size ("
00132             << fBufferSize << ").  "
00133             << numTruncatedBytes << " bytes of trailing data was dropped!  Correct this by increasing the \"bufferSize\" parameter in the \"createNew()\" call to at least "
00134             << fBufferSize + numTruncatedBytes << "\n";
00135   }
00136   addData(fBuffer, frameSize, presentationTime);
00137 
00138   if (fOutFid == NULL || fflush(fOutFid) == EOF) {
00139     // The output file has closed.  Handle this the same way as if the input source had closed:
00140     if (fSource != NULL) fSource->stopGettingFrames();
00141     onSourceClosure();
00142     return;
00143   }
00144 
00145   if (fPerFrameFileNameBuffer != NULL) {
00146     if (fOutFid != NULL) { fclose(fOutFid); fOutFid = NULL; }
00147   }
00148 
00149   // Then try getting the next frame:
00150   continuePlaying();
00151 }

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 afterGettingFrame(), MFSD_DummySink::afterGettingFrame1(), DummySink::continuePlaying(), MFSD_DummySink::continuePlaying(), 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(), addData(), RTCPInstance::addStreamSocket(), MPEG2IFrameIndexFromTransportStream::addToTail(), StreamParser::afterGettingBytes1(), DummySink::afterGettingFrame(), TCPStreamSink::afterGettingFrame(), T140IdleFilter::afterGettingFrame(), 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]

Definition at line 62 of file FileSink.hh.

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

unsigned char* FileSink::fBuffer [protected]

Definition at line 63 of file FileSink.hh.

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

unsigned FileSink::fBufferSize [protected]

Definition at line 64 of file FileSink.hh.

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

char* FileSink::fPerFrameFileNamePrefix [protected]

Definition at line 65 of file FileSink.hh.

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

char* FileSink::fPerFrameFileNameBuffer [protected]

Definition at line 66 of file FileSink.hh.

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

struct timeval FileSink::fPrevPresentationTime [read, protected]

Definition at line 67 of file FileSink.hh.

Referenced by addData(), and FileSink().

unsigned FileSink::fSamePresentationTimeCounter [protected]

Definition at line 68 of file FileSink.hh.

Referenced by addData().

FramedSource* MediaSink::fSource [protected, inherited]

Definition at line 58 of file MediaSink.hh.

Referenced by afterGettingFrame(), AMRAudioFileSink::afterGettingFrame(), MPEG4ESVideoRTPSink::auxSDPLine(), DVVideoRTPSink::auxSDPLine(), DummySink::continuePlaying(), TCPStreamSink::continuePlaying(), T140TextRTPSink::continuePlaying(), OggFileSink::continuePlaying(), MFSD_DummySink::continuePlaying(), H264or5VideoRTPSink::continuePlaying(), 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 Tue Mar 25 14:39:23 2014 for live by  doxygen 1.5.2