MatroskaFileServerDemux Class Reference

#include <MatroskaFileServerDemux.hh>

Inheritance diagram for MatroskaFileServerDemux:

Inheritance graph
[legend]
Collaboration diagram for MatroskaFileServerDemux:

Collaboration graph
[legend]

Public Types

typedef void( onCreationFunc )(MatroskaFileServerDemux *newDemux, void *clientData)

Public Member Functions

ServerMediaSubsessionnewServerMediaSubsession ()
ServerMediaSubsessionnewServerMediaSubsession (unsigned trackNumber)
MatroskaFileourMatroskaFile ()
char const * fileName () const
float fileDuration () const
MatroskaTracklookup (unsigned trackNumber)
FramedSourcenewDemuxedTrack (unsigned clientSessionId, unsigned trackNumber)
UsageEnvironmentenvir () const
char const * name () const
virtual Boolean isSource () 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 void createNew (UsageEnvironment &env, char const *fileName, onCreationFunc *onCreation, void *onCreationClientData)
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

TaskTokennextTask ()

Private Member Functions

 MatroskaFileServerDemux (UsageEnvironment &env, char const *fileName, onCreationFunc *onCreation, void *onCreationClientData)
virtual ~MatroskaFileServerDemux ()
void onMatroskaFileCreation (MatroskaFile *newFile)

Static Private Member Functions

static void onMatroskaFileCreation (MatroskaFile *newFile, void *clientData)

Private Attributes

char const * fFileName
onCreationFuncfOnCreation
void * fOnCreationClientData
MatroskaFilefOurMatroskaFile
u_int8_t fNextTrackTypeToCheck
unsigned fLastClientSessionId
MatroskaDemuxfLastCreatedDemux

Friends

class MediaLookupTable

Detailed Description

Definition at line 32 of file MatroskaFileServerDemux.hh.


Member Typedef Documentation

typedef void( MatroskaFileServerDemux::onCreationFunc)(MatroskaFileServerDemux *newDemux, void *clientData)

Definition at line 34 of file MatroskaFileServerDemux.hh.


Constructor & Destructor Documentation

MatroskaFileServerDemux::MatroskaFileServerDemux ( UsageEnvironment env,
char const *  fileName,
onCreationFunc onCreation,
void *  onCreationClientData 
) [private]

Definition at line 110 of file MatroskaFileServerDemux.cpp.

References MatroskaFile::createNew(), env, and onMatroskaFileCreation().

MatroskaFileServerDemux::~MatroskaFileServerDemux (  )  [private, virtual]

Definition at line 117 of file MatroskaFileServerDemux.cpp.

References Medium::close(), and fOurMatroskaFile.

00117                                                   {
00118   Medium::close(fOurMatroskaFile);
00119 }


Member Function Documentation

void MatroskaFileServerDemux::createNew ( UsageEnvironment env,
char const *  fileName,
onCreationFunc onCreation,
void *  onCreationClientData 
) [static]

Definition at line 31 of file MatroskaFileServerDemux.cpp.

References env.

Referenced by createNewSMS(), and main().

00031                                                                                                                {
00032   (void)new MatroskaFileServerDemux(env, fileName, onCreation, onCreationClientData);
00033 }

ServerMediaSubsession * MatroskaFileServerDemux::newServerMediaSubsession (  ) 

Definition at line 35 of file MatroskaFileServerDemux.cpp.

References MatroskaFile::chosenAudioTrackNumber(), MatroskaFile::chosenSubtitleTrackNumber(), MatroskaFile::chosenVideoTrackNumber(), fNextTrackTypeToCheck, fOurMatroskaFile, MATROSKA_TRACK_TYPE_AUDIO, MATROSKA_TRACK_TYPE_OTHER, MATROSKA_TRACK_TYPE_SUBTITLE, MATROSKA_TRACK_TYPE_VIDEO, and NULL.

Referenced by createNewSMS(), and main().

00035                                                                          {
00036   ServerMediaSubsession* result;
00037 
00038   for (result = NULL; result == NULL && fNextTrackTypeToCheck != MATROSKA_TRACK_TYPE_OTHER; fNextTrackTypeToCheck <<= 1) {
00039     unsigned trackNumber = 0;
00040     if (fNextTrackTypeToCheck == MATROSKA_TRACK_TYPE_VIDEO) trackNumber = fOurMatroskaFile->chosenVideoTrackNumber();
00041     else if (fNextTrackTypeToCheck == MATROSKA_TRACK_TYPE_AUDIO) trackNumber = fOurMatroskaFile->chosenAudioTrackNumber();
00042     else if (fNextTrackTypeToCheck == MATROSKA_TRACK_TYPE_SUBTITLE) trackNumber = fOurMatroskaFile->chosenSubtitleTrackNumber();
00043 
00044     result = newServerMediaSubsession(trackNumber);
00045   }
00046 
00047   return result;
00048 }

ServerMediaSubsession * MatroskaFileServerDemux::newServerMediaSubsession ( unsigned  trackNumber  ) 

Definition at line 50 of file MatroskaFileServerDemux.cpp.

References MatroskaTrack::codecID, T140TextMatroskaFileServerMediaSubsession::createNew(), VP8VideoMatroskaFileServerMediaSubsession::createNew(), H264VideoMatroskaFileServerMediaSubsession::createNew(), VorbisAudioMatroskaFileServerMediaSubsession::createNew(), AC3AudioMatroskaFileServerMediaSubsession::createNew(), AACAudioMatroskaFileServerMediaSubsession::createNew(), MP3AudioMatroskaFileServerMediaSubsession::createNew(), False, fOurMatroskaFile, MatroskaFile::lookup(), MatroskaTrack::mimeType, NULL, and MatroskaTrack::trackNumber.

00050                                                                                              {
00051   MatroskaTrack* track = fOurMatroskaFile->lookup(trackNumber);
00052   if (track == NULL) return NULL;
00053 
00054   // Use the track's "codecID" string to figure out which "ServerMediaSubsession" subclass to use:
00055   ServerMediaSubsession* result = NULL;
00056   if (strncmp(track->codecID, "A_MPEG", 6) == 0) {
00057     track->mimeType = "audio/MPEG";
00058     result = MP3AudioMatroskaFileServerMediaSubsession::createNew(*this, track->trackNumber, False, NULL);
00059   } else if (strncmp(track->codecID, "A_AAC", 5) == 0) {
00060     track->mimeType = "audio/AAC";
00061     result = AACAudioMatroskaFileServerMediaSubsession::createNew(*this, track->trackNumber);
00062   } else if (strncmp(track->codecID, "A_AC3", 5) == 0) {
00063     track->mimeType = "audio/AC3";
00064     result = AC3AudioMatroskaFileServerMediaSubsession::createNew(*this, track->trackNumber);
00065   } else if (strncmp(track->codecID, "A_VORBIS", 8) == 0) {
00066     track->mimeType = "audio/VORBIS";
00067     result = VorbisAudioMatroskaFileServerMediaSubsession::createNew(*this, track->trackNumber);
00068   } else if (strcmp(track->codecID, "V_MPEG4/ISO/AVC") == 0) {
00069     track->mimeType = "video/H264";
00070     result = H264VideoMatroskaFileServerMediaSubsession::createNew(*this, track->trackNumber);
00071   } else if (strncmp(track->codecID, "V_VP8", 5) == 0) {
00072     track->mimeType = "video/VP8";
00073     result = VP8VideoMatroskaFileServerMediaSubsession::createNew(*this, track->trackNumber);
00074   } else if (strncmp(track->codecID, "S_TEXT", 6) == 0) {
00075     track->mimeType = "text/T140";
00076     result = T140TextMatroskaFileServerMediaSubsession::createNew(*this, track->trackNumber);
00077   }
00078 
00079   if (result != NULL) {
00080 #ifdef DEBUG
00081     fprintf(stderr, "Created 'ServerMediaSubsession' object for track #%d: %s (%s)\n", track->trackNumber, track->codecID, track->mimeType);
00082 #endif
00083   }
00084 
00085   return result;
00086 }

MatroskaFile* MatroskaFileServerDemux::ourMatroskaFile (  )  [inline]

Definition at line 51 of file MatroskaFileServerDemux.hh.

References fOurMatroskaFile.

00051 { return fOurMatroskaFile; }

char const* MatroskaFileServerDemux::fileName (  )  const [inline]

Definition at line 52 of file MatroskaFileServerDemux.hh.

References fFileName.

00052 { return fFileName; }

float MatroskaFileServerDemux::fileDuration (  )  const [inline]

Definition at line 53 of file MatroskaFileServerDemux.hh.

References MatroskaFile::fileDuration(), and fOurMatroskaFile.

Referenced by VP8VideoMatroskaFileServerMediaSubsession::duration(), VorbisAudioMatroskaFileServerMediaSubsession::duration(), T140TextMatroskaFileServerMediaSubsession::duration(), H264VideoMatroskaFileServerMediaSubsession::duration(), AC3AudioMatroskaFileServerMediaSubsession::duration(), and AACAudioMatroskaFileServerMediaSubsession::duration().

00053 { return fOurMatroskaFile->fileDuration(); }

MatroskaTrack* MatroskaFileServerDemux::lookup ( unsigned  trackNumber  )  [inline]

Definition at line 54 of file MatroskaFileServerDemux.hh.

References fOurMatroskaFile, and MatroskaFile::lookup().

Referenced by VorbisAudioMatroskaFileServerMediaSubsession::createNewRTPSink(), AC3AudioMatroskaFileServerMediaSubsession::createNewRTPSink(), and AACAudioMatroskaFileServerMediaSubsession::createNewRTPSink().

00054 { return fOurMatroskaFile->lookup(trackNumber); } // shortcut

FramedSource * MatroskaFileServerDemux::newDemuxedTrack ( unsigned  clientSessionId,
unsigned  trackNumber 
)

Definition at line 88 of file MatroskaFileServerDemux.cpp.

References fLastClientSessionId, fLastCreatedDemux, fOurMatroskaFile, MatroskaFile::newDemux(), MatroskaDemux::newDemuxedTrack(), and NULL.

Referenced by VP8VideoMatroskaFileServerMediaSubsession::createNewStreamSource(), VorbisAudioMatroskaFileServerMediaSubsession::createNewStreamSource(), T140TextMatroskaFileServerMediaSubsession::createNewStreamSource(), MP3AudioMatroskaFileServerMediaSubsession::createNewStreamSource(), H264VideoMatroskaFileServerMediaSubsession::createNewStreamSource(), AC3AudioMatroskaFileServerMediaSubsession::createNewStreamSource(), and AACAudioMatroskaFileServerMediaSubsession::createNewStreamSource().

00088                                                                                                      {
00089   MatroskaDemux* demuxToUse = NULL;
00090 
00091   if (clientSessionId != 0 && clientSessionId == fLastClientSessionId) {
00092     demuxToUse = fLastCreatedDemux; // use the same demultiplexor as before
00093       // Note: This code relies upon the fact that the creation of streams for different
00094       // client sessions do not overlap - so all demuxed tracks are created for one "MatroskaDemux" at a time.
00095       // Also, the "clientSessionId != 0" test is a hack, because 'session 0' is special; its audio and video streams
00096       // are created and destroyed one-at-a-time, rather than both streams being
00097       // created, and then (later) both streams being destroyed (as is the case
00098       // for other ('real') session ids).  Because of this, a separate demultiplexor is used for each 'session 0' track.
00099   }
00100 
00101   if (demuxToUse == NULL) demuxToUse = fOurMatroskaFile->newDemux();
00102 
00103   fLastClientSessionId = clientSessionId;
00104   fLastCreatedDemux = demuxToUse;
00105 
00106   return demuxToUse->newDemuxedTrack(trackNumber);
00107 }

void MatroskaFileServerDemux::onMatroskaFileCreation ( MatroskaFile newFile,
void *  clientData 
) [static, private]

Definition at line 121 of file MatroskaFileServerDemux.cpp.

Referenced by MatroskaFileServerDemux().

00121                                                                                             {
00122   ((MatroskaFileServerDemux*)clientData)->onMatroskaFileCreation(newFile);
00123 }

void MatroskaFileServerDemux::onMatroskaFileCreation ( MatroskaFile newFile  )  [private]

Definition at line 125 of file MatroskaFileServerDemux.cpp.

References fOnCreation, fOnCreationClientData, fOurMatroskaFile, and NULL.

00125                                                                           {
00126   fOurMatroskaFile = newFile;
00127 
00128   // Now, call our own creation notification function:
00129   if (fOnCreation != NULL) (*fOnCreation)(this, fOnCreationClientData);
00130 }

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 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(), 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(), 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(), RTSPServer::continueRegisterStream(), 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(), HandlerServerForREGISTERCommand::createNewRTSPClient(), 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::RegisterRequestRecord::envir(), RTSPServer::RTSPClientSession::envir(), RTSPServer::RTSPClientConnection::envir(), RTPInterface::envir(), AVISubsessionIOState::envir(), ServerMediaSession::generateSDPDescription(), RTPSource::getAttributes(), MP3FileSource::getAttributes(), MP3ADUTranscoder::getAttributes(), MediaSource::getAttributes(), MPEG4VideoFileServerMediaSubsession::getAuxSDPLine(), H264VideoFileServerMediaSubsession::getAuxSDPLine(), getMPEG1or2TimeCode(), FramedSource::getNextFrame(), getOptions(), DVVideoStreamFramer::getProfile(), SIPClient::getResponse(), SIPClient::getResponseCode(), getSDPDescription(), OnDemandServerMediaSubsession::getStreamParameters(), RTSPClient::handleAlternativeRequestByte1(), RTSPClient::handleGET_PARAMETERResponse(), RTSPServerSupportingHTTPStreaming::RTSPClientConnectionSupportingHTTPStreaming::handleHTTPCmd_StreamingGET(), RTSPClient::handleIncomingRequest(), RTSPClient::handlePLAYResponse(), RTSPClient::handleRequestError(), RTSPClient::handleResponseBytes(), RTSPClient::handleSETUPResponse(), 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(), 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(), RTSPServer::registerStream(), 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(), 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::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::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

char const* MatroskaFileServerDemux::fFileName [private]

Definition at line 67 of file MatroskaFileServerDemux.hh.

Referenced by fileName().

onCreationFunc* MatroskaFileServerDemux::fOnCreation [private]

Definition at line 68 of file MatroskaFileServerDemux.hh.

Referenced by onMatroskaFileCreation().

void* MatroskaFileServerDemux::fOnCreationClientData [private]

Definition at line 69 of file MatroskaFileServerDemux.hh.

Referenced by onMatroskaFileCreation().

MatroskaFile* MatroskaFileServerDemux::fOurMatroskaFile [private]

Definition at line 70 of file MatroskaFileServerDemux.hh.

Referenced by fileDuration(), lookup(), newDemuxedTrack(), newServerMediaSubsession(), onMatroskaFileCreation(), ourMatroskaFile(), and ~MatroskaFileServerDemux().

u_int8_t MatroskaFileServerDemux::fNextTrackTypeToCheck [private]

Definition at line 73 of file MatroskaFileServerDemux.hh.

Referenced by newServerMediaSubsession().

unsigned MatroskaFileServerDemux::fLastClientSessionId [private]

Definition at line 76 of file MatroskaFileServerDemux.hh.

Referenced by newDemuxedTrack().

MatroskaDemux* MatroskaFileServerDemux::fLastCreatedDemux [private]

Definition at line 77 of file MatroskaFileServerDemux.hh.

Referenced by newDemuxedTrack().


The documentation for this class was generated from the following files:
Generated on Tue Jun 18 13:20:37 2013 for live by  doxygen 1.5.2