DynamicRTSPServer Class Reference

#include <DynamicRTSPServer.hh>

Inheritance diagram for DynamicRTSPServer:

Inheritance graph
[legend]
Collaboration diagram for DynamicRTSPServer:

Collaboration graph
[legend]

Public Member Functions

Boolean setHTTPPort (Port httpPort)
void addServerMediaSession (ServerMediaSession *serverMediaSession)
void removeServerMediaSession (ServerMediaSession *serverMediaSession)
void removeServerMediaSession (char const *streamName)
char * rtspURL (ServerMediaSession const *serverMediaSession, int clientSocket=-1) const
char * rtspURLPrefix (int clientSocket=-1) const
UserAuthenticationDatabasesetAuthenticationDatabase (UserAuthenticationDatabase *newDB)
Boolean setUpTunnelingOverHTTP (Port httpPort)
portNumBits httpServerPortNum () const
UsageEnvironmentenvir () const
char const * name () const
virtual Boolean isSource () const
virtual Boolean isSink () const
virtual Boolean isRTCPInstance () const
virtual Boolean isRTSPClient () const
virtual Boolean isMediaSession () const
virtual Boolean isServerMediaSession () const
virtual Boolean isDarwinInjector () const

Static Public Member Functions

static DynamicRTSPServercreateNew (UsageEnvironment &env, Port ourPort, UserAuthenticationDatabase *authDatabase, unsigned reclamationTestSeconds=65)
static Boolean lookupByName (UsageEnvironment &env, char const *name, RTSPServer *&resultServer)
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

 DynamicRTSPServer (UsageEnvironment &env, int ourSocket, Port ourPort, UserAuthenticationDatabase *authDatabase, unsigned reclamationTestSeconds)
virtual ~DynamicRTSPServer ()
virtual ServerMediaSessionlookupServerMediaSession (char const *streamName)
virtual RTSPClientSession * createNewClientSession (unsigned sessionId, int clientSocket, struct sockaddr_in clientAddr)
virtual Boolean specialClientAccessCheck (int clientSocket, struct sockaddr_in &clientAddr, char const *urlSuffix)
TaskTokennextTask ()

Static Protected Member Functions

static int setUpOurSocket (UsageEnvironment &env, Port &ourPort)

Friends

class MediaLookupTable

Detailed Description

Definition at line 28 of file DynamicRTSPServer.hh.


Constructor & Destructor Documentation

DynamicRTSPServer::DynamicRTSPServer ( UsageEnvironment env,
int  ourSocket,
Port  ourPort,
UserAuthenticationDatabase authDatabase,
unsigned  reclamationTestSeconds 
) [protected]

Definition at line 35 of file DynamicRTSPServer.cpp.

Referenced by createNew().

00038   : RTSPServerSupportingHTTPStreaming(env, ourSocket, ourPort, authDatabase, reclamationTestSeconds) {
00039 }

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

Definition at line 41 of file DynamicRTSPServer.cpp.

00041                                       {
00042 }


Member Function Documentation

DynamicRTSPServer * DynamicRTSPServer::createNew ( UsageEnvironment env,
Port  ourPort,
UserAuthenticationDatabase authDatabase,
unsigned  reclamationTestSeconds = 65 
) [static]

Reimplemented from RTSPServerSupportingHTTPStreaming.

Definition at line 26 of file DynamicRTSPServer.cpp.

References DynamicRTSPServer(), env, NULL, and RTSPServer::setUpOurSocket().

Referenced by main().

00028                                                               {
00029   int ourSocket = setUpOurSocket(env, ourPort);
00030   if (ourSocket == -1) return NULL;
00031 
00032   return new DynamicRTSPServer(env, ourSocket, ourPort, authDatabase, reclamationTestSeconds);
00033 }

ServerMediaSession * DynamicRTSPServer::lookupServerMediaSession ( char const *  streamName  )  [protected, virtual]

Reimplemented from RTSPServer.

Definition at line 48 of file DynamicRTSPServer.cpp.

References RTSPServer::addServerMediaSession(), createNewSMS(), Medium::envir(), RTSPServer::lookupServerMediaSession(), NULL, and RTSPServer::removeServerMediaSession().

00048                                                                   {
00049   // First, check whether the specified "streamName" exists as a local file:
00050   FILE* fid = fopen(streamName, "rb");
00051   Boolean fileExists = fid != NULL;
00052 
00053   // Next, check whether we already have a "ServerMediaSession" for this file:
00054   ServerMediaSession* sms = RTSPServer::lookupServerMediaSession(streamName);
00055   Boolean smsExists = sms != NULL;
00056 
00057   // Handle the four possibilities for "fileExists" and "smsExists":
00058   if (!fileExists) {
00059     if (smsExists) {
00060       // "sms" was created for a file that no longer exists. Remove it:
00061       removeServerMediaSession(sms);
00062     }
00063     return NULL;
00064   } else {
00065     if (!smsExists) {
00066       // Create a new "ServerMediaSession" object for streaming from the named file.
00067       sms = createNewSMS(envir(), streamName, fid);
00068       addServerMediaSession(sms);
00069     }
00070     fclose(fid);
00071     return sms;
00072   }
00073 }

Boolean RTSPServerSupportingHTTPStreaming::setHTTPPort ( Port  httpPort  )  [inline, inherited]

Definition at line 40 of file RTSPServerSupportingHTTPStreaming.hh.

References RTSPServer::setUpTunnelingOverHTTP().

00040 { return setUpTunnelingOverHTTP(httpPort); }

RTSPServer::RTSPClientSession * RTSPServerSupportingHTTPStreaming::createNewClientSession ( unsigned  sessionId,
int  clientSocket,
struct sockaddr_in  clientAddr 
) [protected, virtual, inherited]

Reimplemented from RTSPServer.

Definition at line 45 of file RTSPServerSupportingHTTPStreaming.cpp.

00045                                                                                                                              {
00046   return new RTSPClientSessionSupportingHTTPStreaming(*this, sessionId, clientSocket, clientAddr);
00047 }

Boolean RTSPServer::lookupByName ( UsageEnvironment env,
char const *  name,
RTSPServer *&  resultServer 
) [static, inherited]

Definition at line 44 of file RTSPServer.cpp.

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

00046                                                             {
00047   resultServer = NULL; // unless we succeed
00048 
00049   Medium* medium;
00050   if (!Medium::lookupByName(env, name, medium)) return False;
00051 
00052   if (!medium->isRTSPServer()) {
00053     env.setResultMsg(name, " is not a RTSP server");
00054     return False;
00055   }
00056 
00057   resultServer = (RTSPServer*)medium;
00058   return True;
00059 }

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 RTSPServer::addServerMediaSession ( ServerMediaSession serverMediaSession  )  [inherited]

Definition at line 61 of file RTSPServer.cpp.

References HashTable::Add(), RTSPServer::fServerMediaSessions, NULL, RTSPServer::removeServerMediaSession(), and ServerMediaSession::streamName().

Referenced by lookupServerMediaSession(), and main().

00061                                                                              {
00062   if (serverMediaSession == NULL) return;
00063 
00064   char const* sessionName = serverMediaSession->streamName();
00065   if (sessionName == NULL) sessionName = "";
00066   ServerMediaSession* existingSession
00067     = (ServerMediaSession*)(fServerMediaSessions->Add(sessionName, (void*)serverMediaSession));
00068   removeServerMediaSession(existingSession); // if any
00069 }

void RTSPServer::removeServerMediaSession ( ServerMediaSession serverMediaSession  )  [inherited]

Definition at line 75 of file RTSPServer.cpp.

References Medium::close(), ServerMediaSession::deleteWhenUnreferenced(), RTSPServer::fServerMediaSessions, NULL, ServerMediaSession::referenceCount(), HashTable::Remove(), ServerMediaSession::streamName(), and True.

Referenced by RTSPServer::addServerMediaSession(), lookupServerMediaSession(), RTSPServer::removeServerMediaSession(), RTSPServer::RTSPClientSession::~RTSPClientSession(), and RTSPServer::~RTSPServer().

00075                                                                                 {
00076   if (serverMediaSession == NULL) return;
00077 
00078   fServerMediaSessions->Remove(serverMediaSession->streamName());
00079   if (serverMediaSession->referenceCount() == 0) {
00080     Medium::close(serverMediaSession);
00081   } else {
00082     serverMediaSession->deleteWhenUnreferenced() = True;
00083   }
00084 }

void RTSPServer::removeServerMediaSession ( char const *  streamName  )  [inherited]

Definition at line 86 of file RTSPServer.cpp.

References RTSPServer::lookupServerMediaSession(), and RTSPServer::removeServerMediaSession().

00086                                                                 {
00087   removeServerMediaSession(lookupServerMediaSession(streamName));
00088 }

char * RTSPServer::rtspURL ( ServerMediaSession const *  serverMediaSession,
int  clientSocket = -1 
) const [inherited]

Definition at line 91 of file RTSPServer.cpp.

References RTSPServer::rtspURLPrefix(), and ServerMediaSession::streamName().

Referenced by announceStream(), RTSPServer::RTSPClientSession::handleCmd_DESCRIBE(), RTSPServer::RTSPClientSession::handleCmd_PLAY(), and main().

00091                                                                               {
00092   char* urlPrefix = rtspURLPrefix(clientSocket);
00093   char const* sessionName = serverMediaSession->streamName();
00094 
00095   char* resultURL = new char[strlen(urlPrefix) + strlen(sessionName) + 1];
00096   sprintf(resultURL, "%s%s", urlPrefix, sessionName);
00097 
00098   delete[] urlPrefix;
00099   return resultURL;
00100 }

char * RTSPServer::rtspURLPrefix ( int  clientSocket = -1  )  const [inherited]

Definition at line 102 of file RTSPServer.cpp.

References Medium::envir(), RTSPServer::fRTSPServerPort, Port::num(), ourIPAddress(), ReceivingInterfaceAddr, SOCKLEN_T, and strDup().

Referenced by main(), and RTSPServer::rtspURL().

00102                                                       {
00103   struct sockaddr_in ourAddress;
00104   if (clientSocket < 0) {
00105     // Use our default IP address in the URL:
00106     ourAddress.sin_addr.s_addr = ReceivingInterfaceAddr != 0
00107       ? ReceivingInterfaceAddr
00108       : ourIPAddress(envir()); // hack
00109   } else {
00110     SOCKLEN_T namelen = sizeof ourAddress;
00111     getsockname(clientSocket, (struct sockaddr*)&ourAddress, &namelen);
00112   }
00113 
00114   char urlBuffer[100]; // more than big enough for "rtsp://<ip-address>:<port>/"
00115 
00116   portNumBits portNumHostOrder = ntohs(fRTSPServerPort.num());
00117   if (portNumHostOrder == 554 /* the default port number */) {
00118     sprintf(urlBuffer, "rtsp://%s/", AddressString(ourAddress).val());
00119   } else {
00120     sprintf(urlBuffer, "rtsp://%s:%hu/",
00121             AddressString(ourAddress).val(), portNumHostOrder);
00122   }
00123 
00124   return strDup(urlBuffer);
00125 }

UserAuthenticationDatabase * RTSPServer::setAuthenticationDatabase ( UserAuthenticationDatabase newDB  )  [inherited]

Definition at line 127 of file RTSPServer.cpp.

References RTSPServer::fAuthDB.

00127                                                                                                    {
00128   UserAuthenticationDatabase* oldDB = fAuthDB;
00129   fAuthDB = newDB;
00130 
00131   return oldDB;
00132 }

Boolean RTSPServer::setUpTunnelingOverHTTP ( Port  httpPort  )  [inherited]

Definition at line 134 of file RTSPServer.cpp.

References Medium::envir(), False, RTSPServer::fHTTPServerPort, RTSPServer::fHTTPServerSocket, RTSPServer::incomingConnectionHandlerHTTP(), RTSPServer::setUpOurSocket(), UsageEnvironment::taskScheduler(), True, and TaskScheduler::turnOnBackgroundReadHandling().

Referenced by main(), and RTSPServerSupportingHTTPStreaming::setHTTPPort().

00134                                                         {
00135   fHTTPServerSocket = setUpOurSocket(envir(), httpPort);
00136   if (fHTTPServerSocket >= 0) {
00137     fHTTPServerPort = httpPort;
00138     envir().taskScheduler().turnOnBackgroundReadHandling(fHTTPServerSocket,
00139                                                          (TaskScheduler::BackgroundHandlerProc*)&incomingConnectionHandlerHTTP, this);
00140     return True;
00141   }
00142 
00143   return False;
00144 }

portNumBits RTSPServer::httpServerPortNum (  )  const [inherited]

Definition at line 146 of file RTSPServer.cpp.

References RTSPServer::fHTTPServerPort, and Port::num().

Referenced by main().

00146                                                 {
00147   return ntohs(fHTTPServerPort.num());
00148 }

int RTSPServer::setUpOurSocket ( UsageEnvironment env,
Port ourPort 
) [static, protected, inherited]

Definition at line 152 of file RTSPServer.cpp.

References closeSocket, env, getSourcePort(), increaseSendBufferTo(), LISTEN_BACKLOG_SIZE, Port::num(), UsageEnvironment::setResultErrMsg(), and setupStreamSocket().

Referenced by createNew(), RTSPServerSupportingHTTPStreaming::createNew(), RTSPServer::createNew(), and RTSPServer::setUpTunnelingOverHTTP().

00152                                                                    {
00153   int ourSocket = -1;
00154 
00155   do {
00156     // The following statement is enabled by default.
00157     // Don't disable it (by defining ALLOW_RTSP_SERVER_PORT_REUSE) unless you know what you're doing.
00158 #ifndef ALLOW_RTSP_SERVER_PORT_REUSE
00159     NoReuse dummy(env); // Don't use this socket if there's already a local server using it
00160 #endif
00161 
00162     ourSocket = setupStreamSocket(env, ourPort);
00163     if (ourSocket < 0) break;
00164 
00165     // Make sure we have a big send buffer:
00166     if (!increaseSendBufferTo(env, ourSocket, 50*1024)) break;
00167 
00168     // Allow multiple simultaneous connections:
00169     if (listen(ourSocket, LISTEN_BACKLOG_SIZE) < 0) {
00170       env.setResultErrMsg("listen() failed: ");
00171       break;
00172     }
00173 
00174     if (ourPort.num() == 0) {
00175       // bind() will have chosen a port for us; return it also:
00176       if (!getSourcePort(env, ourSocket, ourPort)) break;
00177     }
00178 
00179     return ourSocket;
00180   } while (0);
00181 
00182   if (ourSocket != -1) ::closeSocket(ourSocket);
00183   return -1;
00184 }

Boolean RTSPServer::specialClientAccessCheck ( int  clientSocket,
struct sockaddr_in &  clientAddr,
char const *  urlSuffix 
) [protected, virtual, inherited]

Definition at line 187 of file RTSPServer.cpp.

References True.

00187                                                                                                               {
00188   // default implementation
00189   return True;
00190 }

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

Definition at line 52 of file Media.cpp.

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

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

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(), T140IdleFilter::afterGettingFrame(), MultiFramedRTPSink::afterGettingFrame1(), InputESSourceRecord::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG2IFrameIndexFromTransportStream::afterGettingFrame1(), H264VideoStreamDiscreteFramer::afterGettingFrame1(), BasicUDPSink::afterGettingFrame1(), MPEG4VideoFileServerMediaSubsession::afterPlayingDummy1(), H264VideoFileServerMediaSubsession::afterPlayingDummy1(), MPEG4VideoStreamParser::analyzeVOLHeader(), announceStream(), RTSPServer::RTSPClientSession::changeClientInputSocket(), MPEG4VideoFileServerMediaSubsession::checkForAuxSDPLine1(), H264VideoFileServerMediaSubsession::checkForAuxSDPLine1(), Medium::close(), MPEG2IFrameIndexFromTransportStream::compactParseBuffer(), RTSPClient::connectionHandler1(), RTSPClient::connectToServer(), T140TextRTPSink::continuePlaying(), QuickTimeFileSink::continuePlaying(), H264VideoRTPSink::continuePlaying(), AVIFileSink::continuePlaying(), VP8VideoMatroskaFileServerMediaSubsession::createNewRTPSink(), VorbisAudioMatroskaFileServerMediaSubsession::createNewRTPSink(), T140TextMatroskaFileServerMediaSubsession::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(), 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(), MPEG2IFrameIndexFromTransportStream::doGetNextFrame(), MP3FileSource::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamFileSource::doGetNextFrame(), BasicUDPSource::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), SIPClient::doInviteStateMachine(), ByteStreamFileSource::doReadFromFile(), MPEG1or2VideoRTPSink::doSpecialFrameHandling(), MP3ADURTPSink::doSpecialFrameHandling(), H263plusVideoRTPSink::doSpecialFrameHandling(), T140IdleFilter::doStopGettingFrames(), ByteStreamFileSource::doStopGettingFrames(), BasicUDPSource::doStopGettingFrames(), SegmentQueue::enqueueNewSegment(), StreamParser::ensureValidBytes1(), MediaSubsession::env(), SubsessionIOState::envir(), RTSPServer::RTSPClientSession::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::handleGET_PARAMETERResponse(), RTSPServerSupportingHTTPStreaming::RTSPClientSessionSupportingHTTPStreaming::handleHTTPCmd_StreamingGET(), RTSPClient::handleIncomingRequest(), RTSPClient::handlePLAYResponse(), RTSPClient::handleRequestError(), RTSPClient::handleResponseBytes(), RTSPClient::handleSETUPResponse(), RTSPServer::incomingConnectionHandler(), RTSPClient::incomingDataHandler1(), RTCPInstance::incomingReportHandler1(), MP3FileSource::initializeStream(), MediaSession::initializeWithSDP(), MediaSession::initiateByMediaType(), SIPClient::invite1(), lookupServerMediaSession(), MatroskaDemux::MatroskaDemux(), MatroskaFile::MatroskaFile(), MPEG4GenericRTPSource::MPEG4GenericRTPSource(), MatroskaDemux::newDemuxedTrack(), MPEG1or2FileServerDemux::newElementaryStream(), MPEG1or2Demux::newElementaryStream(), MPEG4GenericBufferedPacket::nextEnclosedFrameSize(), AMRBufferedPacket::nextEnclosedFrameSize(), 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(), RTSPClient::resetTCPSockets(), RTSPClient::responseHandlerForHTTP_GET1(), RTSPServer::rtspURLPrefix(), RTCPInstance::schedule(), 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(), tearDownSession(), SIPClient::timerAHandler(), SIPClient::timerBHandler(), SIPClient::timerDHandler(), ClientTrickPlayState::updateStateOnScaleChange(), MPEG2TransportStreamFramer::updateTSPacketDurationEstimate(), BasicUDPSource::~BasicUDPSource(), ByteStreamFileSource::~ByteStreamFileSource(), DeviceSource::~DeviceSource(), RTSPServer::~RTSPServer(), StreamClientState::~StreamClientState(), and T140IdleFilter::~T140IdleFilter().

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::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(), WAVAudioFileSource::doGetNextFrame(), MP3FileSource::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), ByteStreamFileSource::doReadFromFile(), 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.


The documentation for this class was generated from the following files:
Generated on Thu Feb 2 23:54:50 2012 for live by  doxygen 1.5.2