RTSPServerSupportingHTTPStreaming Class Reference

#include <RTSPServerSupportingHTTPStreaming.hh>

Inheritance diagram for RTSPServerSupportingHTTPStreaming:

Inheritance graph
[legend]
Collaboration diagram for RTSPServerSupportingHTTPStreaming:

Collaboration graph
[legend]

Public Member Functions

Boolean setHTTPPort (Port httpPort)
void addServerMediaSession (ServerMediaSession *serverMediaSession)
virtual ServerMediaSessionlookupServerMediaSession (char const *streamName)
void removeServerMediaSession (ServerMediaSession *serverMediaSession)
void removeServerMediaSession (char const *streamName)
void closeAllClientSessionsForServerMediaSession (ServerMediaSession *serverMediaSession)
void closeAllClientSessionsForServerMediaSession (char const *streamName)
void deleteServerMediaSession (ServerMediaSession *serverMediaSession)
void deleteServerMediaSession (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 RTSPServerSupportingHTTPStreamingcreateNew (UsageEnvironment &env, Port rtspPort=554, UserAuthenticationDatabase *authDatabase=NULL, 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

 RTSPServerSupportingHTTPStreaming (UsageEnvironment &env, int ourSocket, Port ourPort, UserAuthenticationDatabase *authDatabase, unsigned reclamationTestSeconds)
virtual ~RTSPServerSupportingHTTPStreaming ()
virtual RTSPClientConnection * createNewClientConnection (int clientSocket, struct sockaddr_in clientAddr)
virtual Boolean specialClientAccessCheck (int clientSocket, struct sockaddr_in &clientAddr, char const *urlSuffix)
virtual Boolean specialClientUserAccessCheck (int clientSocket, struct sockaddr_in &clientAddr, char const *urlSuffix, char const *username)
virtual RTSPClientSession * createNewClientSession (u_int32_t sessionId)
TaskTokennextTask ()

Static Protected Member Functions

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

Friends

class MediaLookupTable

Data Structures

class  RTSPClientConnectionSupportingHTTPStreaming

Detailed Description

Definition at line 34 of file RTSPServerSupportingHTTPStreaming.hh.


Constructor & Destructor Documentation

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

Definition at line 38 of file RTSPServerSupportingHTTPStreaming.cpp.

Referenced by createNew().

00040   : RTSPServer(env, ourSocket, rtspPort, authDatabase, reclamationTestSeconds) {
00041 }

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

Definition at line 43 of file RTSPServerSupportingHTTPStreaming.cpp.

00043                                                                       {
00044 }


Member Function Documentation

RTSPServerSupportingHTTPStreaming * RTSPServerSupportingHTTPStreaming::createNew ( UsageEnvironment env,
Port  rtspPort = 554,
UserAuthenticationDatabase authDatabase = NULL,
unsigned  reclamationTestSeconds = 65 
) [static]

Reimplemented from RTSPServer.

Reimplemented in DynamicRTSPServer.

Definition at line 29 of file RTSPServerSupportingHTTPStreaming.cpp.

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

00030                                                                                                                         {
00031   int ourSocket = setUpOurSocket(env, rtspPort);
00032   if (ourSocket == -1) return NULL;
00033 
00034   return new RTSPServerSupportingHTTPStreaming(env, ourSocket, rtspPort, authDatabase, reclamationTestSeconds);
00035 }

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

Definition at line 40 of file RTSPServerSupportingHTTPStreaming.hh.

References RTSPServer::setUpTunnelingOverHTTP().

00040 { return setUpTunnelingOverHTTP(httpPort); }

RTSPServer::RTSPClientConnection * RTSPServerSupportingHTTPStreaming::createNewClientConnection ( int  clientSocket,
struct sockaddr_in  clientAddr 
) [protected, virtual]

Reimplemented from RTSPServer.

Definition at line 47 of file RTSPServerSupportingHTTPStreaming.cpp.

00047                                                                                                             {
00048   return new RTSPClientConnectionSupportingHTTPStreaming(*this, clientSocket, clientAddr);
00049 }

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

Definition at line 38 of file RTSPServer.cpp.

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

00040                                                             {
00041   resultServer = NULL; // unless we succeed
00042 
00043   Medium* medium;
00044   if (!Medium::lookupByName(env, name, medium)) return False;
00045 
00046   if (!medium->isRTSPServer()) {
00047     env.setResultMsg(name, " is not a RTSP server");
00048     return False;
00049   }
00050 
00051   resultServer = (RTSPServer*)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 }

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

Definition at line 55 of file RTSPServer.cpp.

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

Referenced by DynamicRTSPServer::lookupServerMediaSession(), and main().

00055                                                                              {
00056   if (serverMediaSession == NULL) return;
00057 
00058   char const* sessionName = serverMediaSession->streamName();
00059   if (sessionName == NULL) sessionName = "";
00060   removeServerMediaSession(sessionName); // in case an existing "ServerMediaSession" with this name already exists
00061 
00062   fServerMediaSessions->Add(sessionName, (void*)serverMediaSession);
00063 }

ServerMediaSession * RTSPServer::lookupServerMediaSession ( char const *  streamName  )  [virtual, inherited]

Reimplemented in DynamicRTSPServer.

Definition at line 65 of file RTSPServer.cpp.

References RTSPServer::fServerMediaSessions, and HashTable::Lookup().

Referenced by DynamicRTSPServer::lookupServerMediaSession().

00065                                                                                {
00066   return (ServerMediaSession*)(fServerMediaSessions->Lookup(streamName));
00067 }

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

Definition at line 69 of file RTSPServer.cpp.

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

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

00069                                                                                 {
00070   if (serverMediaSession == NULL) return;
00071 
00072   fServerMediaSessions->Remove(serverMediaSession->streamName());
00073   if (serverMediaSession->referenceCount() == 0) {
00074     Medium::close(serverMediaSession);
00075   } else {
00076     serverMediaSession->deleteWhenUnreferenced() = True;
00077   }
00078 }

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

Definition at line 80 of file RTSPServer.cpp.

References RTSPServer::fServerMediaSessions, HashTable::Lookup(), and RTSPServer::removeServerMediaSession().

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

Definition at line 84 of file RTSPServer.cpp.

References HashTable::Iterator::create(), RTSPServer::fClientSessions, RTSPServer::RTSPClientSession::fOurServerMediaSession, iter, MediaSubsessionIterator::next(), and NULL.

Referenced by RTSPServer::closeAllClientSessionsForServerMediaSession(), RTSPServer::deleteServerMediaSession(), and ProxyServerMediaSession::resetDESCRIBEState().

00084                                                                                                    {
00085   if (serverMediaSession == NULL) return;
00086 
00087   HashTable::Iterator* iter = HashTable::Iterator::create(*fClientSessions);
00088   RTSPServer::RTSPClientSession* clientSession;
00089   char const* key; // dummy
00090   while ((clientSession = (RTSPServer::RTSPClientSession*)(iter->next(key))) != NULL) {
00091     if (clientSession->fOurServerMediaSession == serverMediaSession) {
00092       delete clientSession;
00093     }
00094   }
00095   delete iter;
00096 }

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

Definition at line 98 of file RTSPServer.cpp.

References RTSPServer::closeAllClientSessionsForServerMediaSession(), RTSPServer::fServerMediaSessions, and HashTable::Lookup().

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

Definition at line 102 of file RTSPServer.cpp.

References RTSPServer::closeAllClientSessionsForServerMediaSession(), NULL, and RTSPServer::removeServerMediaSession().

Referenced by RTSPServer::deleteServerMediaSession().

00102                                                                                 {
00103   if (serverMediaSession == NULL) return;
00104 
00105   closeAllClientSessionsForServerMediaSession(serverMediaSession);
00106   removeServerMediaSession(serverMediaSession);
00107 }

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

Definition at line 109 of file RTSPServer.cpp.

References RTSPServer::deleteServerMediaSession(), RTSPServer::fServerMediaSessions, and HashTable::Lookup().

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

Definition at line 114 of file RTSPServer.cpp.

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

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

00114                                                                               {
00115   char* urlPrefix = rtspURLPrefix(clientSocket);
00116   char const* sessionName = serverMediaSession->streamName();
00117 
00118   char* resultURL = new char[strlen(urlPrefix) + strlen(sessionName) + 1];
00119   sprintf(resultURL, "%s%s", urlPrefix, sessionName);
00120 
00121   delete[] urlPrefix;
00122   return resultURL;
00123 }

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

Definition at line 125 of file RTSPServer.cpp.

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

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

00125                                                       {
00126   struct sockaddr_in ourAddress;
00127   if (clientSocket < 0) {
00128     // Use our default IP address in the URL:
00129     ourAddress.sin_addr.s_addr = ReceivingInterfaceAddr != 0
00130       ? ReceivingInterfaceAddr
00131       : ourIPAddress(envir()); // hack
00132   } else {
00133     SOCKLEN_T namelen = sizeof ourAddress;
00134     getsockname(clientSocket, (struct sockaddr*)&ourAddress, &namelen);
00135   }
00136 
00137   char urlBuffer[100]; // more than big enough for "rtsp://<ip-address>:<port>/"
00138 
00139   portNumBits portNumHostOrder = ntohs(fRTSPServerPort.num());
00140   if (portNumHostOrder == 554 /* the default port number */) {
00141     sprintf(urlBuffer, "rtsp://%s/", AddressString(ourAddress).val());
00142   } else {
00143     sprintf(urlBuffer, "rtsp://%s:%hu/",
00144             AddressString(ourAddress).val(), portNumHostOrder);
00145   }
00146 
00147   return strDup(urlBuffer);
00148 }

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

Definition at line 150 of file RTSPServer.cpp.

References RTSPServer::fAuthDB.

00150                                                                                                    {
00151   UserAuthenticationDatabase* oldDB = fAuthDB;
00152   fAuthDB = newDB;
00153 
00154   return oldDB;
00155 }

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

Definition at line 157 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 setHTTPPort().

00157                                                         {
00158   fHTTPServerSocket = setUpOurSocket(envir(), httpPort);
00159   if (fHTTPServerSocket >= 0) {
00160     fHTTPServerPort = httpPort;
00161     envir().taskScheduler().turnOnBackgroundReadHandling(fHTTPServerSocket,
00162                                                          (TaskScheduler::BackgroundHandlerProc*)&incomingConnectionHandlerHTTP, this);
00163     return True;
00164   }
00165 
00166   return False;
00167 }

portNumBits RTSPServer::httpServerPortNum (  )  const [inherited]

Definition at line 169 of file RTSPServer.cpp.

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

Referenced by main().

00169                                                 {
00170   return ntohs(fHTTPServerPort.num());
00171 }

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

Definition at line 175 of file RTSPServer.cpp.

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

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

00175                                                                    {
00176   int ourSocket = -1;
00177 
00178   do {
00179     // The following statement is enabled by default.
00180     // Don't disable it (by defining ALLOW_RTSP_SERVER_PORT_REUSE) unless you know what you're doing.
00181 #ifndef ALLOW_RTSP_SERVER_PORT_REUSE
00182     NoReuse dummy(env); // Don't use this socket if there's already a local server using it
00183 #endif
00184 
00185     ourSocket = setupStreamSocket(env, ourPort);
00186     if (ourSocket < 0) break;
00187 
00188     // Make sure we have a big send buffer:
00189     if (!increaseSendBufferTo(env, ourSocket, 50*1024)) break;
00190 
00191     // Allow multiple simultaneous connections:
00192     if (listen(ourSocket, LISTEN_BACKLOG_SIZE) < 0) {
00193       env.setResultErrMsg("listen() failed: ");
00194       break;
00195     }
00196 
00197     if (ourPort.num() == 0) {
00198       // bind() will have chosen a port for us; return it also:
00199       if (!getSourcePort(env, ourSocket, ourPort)) break;
00200     }
00201 
00202     return ourSocket;
00203   } while (0);
00204 
00205   if (ourSocket != -1) ::closeSocket(ourSocket);
00206   return -1;
00207 }

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

Definition at line 210 of file RTSPServer.cpp.

References True.

00210                                                                                                               {
00211   // default implementation
00212   return True;
00213 }

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

Definition at line 216 of file RTSPServer.cpp.

References True.

00217                                                                                      {
00218   // default implementation; no further access restrictions:
00219   return True;
00220 }

RTSPServer::RTSPClientSession * RTSPServer::createNewClientSession ( u_int32_t  sessionId  )  [protected, virtual, inherited]

Definition at line 1824 of file RTSPServer.cpp.

References RTSPServer::RTSPClientSession.

Referenced by RTSPServer::RTSPClientConnection::handleRequestBytes().

01824                                                       {
01825   return new RTSPClientSession(*this, sessionId);
01826 }

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

Definition at line 52 of file Media.cpp.

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

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

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

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

Definition at line 56 of file Media.cpp.

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

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

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

Definition at line 59 of file Media.hh.

References Medium::fEnviron.

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

00059 {return fEnviron;}

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

Definition at line 61 of file Media.hh.

References Medium::fMediumName.

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

00061 {return fMediumName;}

Boolean Medium::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(), 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.


The documentation for this class was generated from the following files:
Generated on Mon Apr 29 13:32:35 2013 for live by  doxygen 1.5.2