DynamicRTSPServer Class Reference

#include <DynamicRTSPServer.hh>

Inheritance diagram for DynamicRTSPServer:

Inheritance graph
[legend]
Collaboration diagram for DynamicRTSPServer:

Collaboration graph
[legend]

Public Member Functions

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
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)
static RTSPServercreateNew (UsageEnvironment &env, Port ourPort=554, UserAuthenticationDatabase *authDatabase=NULL, unsigned reclamationTestSeconds=45)
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

virtual Boolean specialClientAccessCheck (int clientSocket, struct sockaddr_in &clientAddr, char const *urlSuffix)
TaskTokennextTask ()

Static Protected Member Functions

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

Private Member Functions

 DynamicRTSPServer (UsageEnvironment &env, int ourSocket, Port ourPort, UserAuthenticationDatabase *authDatabase)
virtual ~DynamicRTSPServer ()
virtual ServerMediaSessionlookupServerMediaSession (char const *streamName)

Detailed Description

Definition at line 28 of file DynamicRTSPServer.hh.


Constructor & Destructor Documentation

DynamicRTSPServer::DynamicRTSPServer ( UsageEnvironment env,
int  ourSocket,
Port  ourPort,
UserAuthenticationDatabase authDatabase 
) [private]

Definition at line 41 of file DynamicRTSPServer.cpp.

Referenced by createNew().

00044   : RTSPServer(env, ourSocket, ourPort, authDatabase, 45/*reclamationTestSeconds*/) {
00045 }

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

Definition at line 47 of file DynamicRTSPServer.cpp.

00047                                       {
00048 }


Member Function Documentation

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

Definition at line 26 of file DynamicRTSPServer.cpp.

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

Referenced by main().

00027                                                                        {
00028   int ourSocket = -1;
00029 
00030   do {
00031     int ourSocket = setUpOurSocket(env, ourPort);
00032     if (ourSocket == -1) break;
00033 
00034     return new DynamicRTSPServer(env, ourSocket, ourPort, authDatabase);
00035   } while (0);
00036 
00037   if (ourSocket != -1) ::closeSocket(ourSocket);
00038   return NULL;
00039 }

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

Reimplemented from RTSPServer.

Definition at line 54 of file DynamicRTSPServer.cpp.

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

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

RTSPServer * RTSPServer::createNew ( UsageEnvironment env,
Port  ourPort = 554,
UserAuthenticationDatabase authDatabase = NULL,
unsigned  reclamationTestSeconds = 45 
) [static, inherited]

Definition at line 37 of file RTSPServer.cpp.

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

Referenced by main().

00039                                                        {
00040   int ourSocket = -1;
00041 
00042   do {
00043     int ourSocket = setUpOurSocket(env, ourPort);
00044     if (ourSocket == -1) break;
00045 
00046     return new RTSPServer(env, ourSocket, ourPort, authDatabase,
00047                           reclamationTestSeconds);
00048   } while (0);
00049 
00050   if (ourSocket != -1) ::closeSocket(ourSocket);
00051   return NULL;
00052 }

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

Definition at line 54 of file RTSPServer.cpp.

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

00056                                                             {
00057   resultServer = NULL; // unless we succeed
00058 
00059   Medium* medium;
00060   if (!Medium::lookupByName(env, name, medium)) return False;
00061 
00062   if (!medium->isRTSPServer()) {
00063     env.setResultMsg(name, " is not a RTSP server");
00064     return False;
00065   }
00066 
00067   resultServer = (RTSPServer*)medium;
00068   return True;
00069 }

Boolean Medium::lookupByName ( UsageEnvironment env,
char const *  mediumName,
Medium *&  resultMedium 
) [static, inherited]

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

00066                                                          {
00067   resultMedium = MediaLookupTable::ourMedia(env)->lookup(mediumName);
00068   if (resultMedium == NULL) {
00069     env.setResultMsg("Medium ", mediumName, " does not exist");
00070     return False;
00071   }
00072 
00073   return True;
00074 }

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

Definition at line 71 of file RTSPServer.cpp.

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

Referenced by lookupServerMediaSession(), and main().

00071                                                                              {
00072   if (serverMediaSession == NULL) return;
00073 
00074   char const* sessionName = serverMediaSession->streamName();
00075   if (sessionName == NULL) sessionName = "";
00076   ServerMediaSession* existingSession
00077     = (ServerMediaSession*)
00078     (fServerMediaSessions->Add(sessionName,
00079                                (void*)serverMediaSession));
00080   removeServerMediaSession(existingSession); // if any
00081 }

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

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

00087                                                                                 {
00088   if (serverMediaSession == NULL) return;
00089 
00090   fServerMediaSessions->Remove(serverMediaSession->streamName());
00091   if (serverMediaSession->referenceCount() == 0) {
00092     Medium::close(serverMediaSession);
00093   } else {
00094     serverMediaSession->deleteWhenUnreferenced() = True;
00095   }
00096 }

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

Definition at line 98 of file RTSPServer.cpp.

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

00098                                                                 {
00099   removeServerMediaSession(lookupServerMediaSession(streamName));
00100 }

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

Definition at line 128 of file RTSPServer.cpp.

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

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

00128                                                                               {
00129   char* urlPrefix = rtspURLPrefix(clientSocket);
00130   char const* sessionName = serverMediaSession->streamName();
00131 
00132   char* resultURL = new char[strlen(urlPrefix) + strlen(sessionName) + 1];
00133   sprintf(resultURL, "%s%s", urlPrefix, sessionName);
00134 
00135   delete[] urlPrefix;
00136   return resultURL;
00137 }

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

Definition at line 102 of file RTSPServer.cpp.

References Medium::envir(), RTSPServer::fServerPort, Port::num(), our_inet_ntoa(), 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(fServerPort.num());
00117   if (portNumHostOrder == 554 /* the default port number */) {
00118     sprintf(urlBuffer, "rtsp://%s/", our_inet_ntoa(ourAddress.sin_addr));
00119   } else {
00120     sprintf(urlBuffer, "rtsp://%s:%hu/",
00121             our_inet_ntoa(ourAddress.sin_addr), portNumHostOrder);
00122   }
00123 
00124   return strDup(urlBuffer);
00125 }

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

Definition at line 141 of file RTSPServer.cpp.

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

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

00141                                                                    {
00142   int ourSocket = -1;
00143 
00144   do {
00145     ourSocket = setupStreamSocket(env, ourPort);
00146     if (ourSocket < 0) break;
00147 
00148     // Make sure we have a big send buffer:
00149     if (!increaseSendBufferTo(env, ourSocket, 50*1024)) break;
00150 
00151     // Allow multiple simultaneous connections:
00152     if (listen(ourSocket, LISTEN_BACKLOG_SIZE) < 0) {
00153       env.setResultErrMsg("listen() failed: ");
00154       break;
00155     }
00156 
00157     if (ourPort.num() == 0) {
00158       // bind() will have chosen a port for us; return it also:
00159       if (!getSourcePort(env, ourSocket, ourPort)) break;
00160     }
00161 
00162     return ourSocket;
00163   } while (0);  
00164 
00165   if (ourSocket != -1) ::closeSocket(ourSocket);
00166   return -1;
00167 }

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

Definition at line 170 of file RTSPServer.cpp.

References True.

00170                                                                                                               {
00171   // default implementation
00172   return True;
00173 }

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

Definition at line 76 of file Media.cpp.

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

Referenced by afterPlaying(), Medium::close(), closeMediaSinks(), OnDemandServerMediaSubsession::closeStreamSource(), WAVAudioFileSource::createNew(), QCELPAudioRTPSource::createNew(), MP3HTTPSource::createNew(), MP3FileSource::createNew(), AMRAudioRTPSource::createNew(), WAVAudioFileServerMediaSubsession::createNewStreamSource(), MPEG1or2DemuxedServerMediaSubsession::createNewStreamSource(), MediaSubsession::deInitiate(), MediaSubsession::initiate(), MPEG1or2ProgramStreamFileDuration(), MPEG1or2Demux::noteElementaryStreamDeletion(), ByteStreamMultiFileSource::onSourceClosure1(), StreamState::reclaim(), RTSPServer::removeServerMediaSession(), OnDemandServerMediaSubsession::sdpLines(), shutdown(), H264VideoRTPSink::stopPlaying(), subsessionAfterPlaying(), ClientTrickPlayState::updateStateOnScaleChange(), AMRDeinterleaver::~AMRDeinterleaver(), ByteStreamMultiFileSource::~ByteStreamMultiFileSource(), DarwinInjector::~DarwinInjector(), FramedFilter::~FramedFilter(), H264VideoRTPSink::~H264VideoRTPSink(), InputESSourceRecord::~InputESSourceRecord(), MPEG1or2Demux::~MPEG1or2Demux(), MPEG1or2FileServerDemux::~MPEG1or2FileServerDemux(), MPEG2TransportFileServerMediaSubsession::~MPEG2TransportFileServerMediaSubsession(), MPEG2TransportStreamFromPESSource::~MPEG2TransportStreamFromPESSource(), ServerMediaSession::~ServerMediaSession(), and ServerMediaSubsession::~ServerMediaSubsession().

00076                                                           {
00077   MediaLookupTable::ourMedia(env)->remove(name);
00078 }

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

Definition at line 80 of file Media.cpp.

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

00080                                  {
00081   if (medium == NULL) return;
00082 
00083   close(medium->envir(), medium->name());
00084 }

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

Definition at line 59 of file Media.hh.

References Medium::fEnviron.

Referenced by QuickTimeFileSink::addArbitraryString(), FileSink::addData(), MPEG2IFrameIndexFromTransportStream::addToTail(), StreamParser::afterGettingBytes(), MultiFramedRTPSink::afterGettingFrame1(), InputESSourceRecord::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG2IFrameIndexFromTransportStream::afterGettingFrame1(), HTTPSink::afterGettingFrame1(), BasicUDPSink::afterGettingFrame1(), MPEG4VideoFileServerMediaSubsession::afterPlayingDummy1(), MPEG4VideoStreamParser::analyzeVOLHeader(), RTSPClient::announceSDPDescription(), announceStream(), MPEG4VideoFileServerMediaSubsession::checkForAuxSDPLine1(), Medium::close(), MPEG2IFrameIndexFromTransportStream::compactParseBuffer(), QuickTimeFileSink::continuePlaying(), HTTPSink::continuePlaying(), H264VideoRTPSink::continuePlaying(), AVIFileSink::continuePlaying(), MPEG4VideoFileServerMediaSubsession::createNewRTPSink(), MPEG2TransportFileServerMediaSubsession::createNewRTPSink(), MPEG1or2VideoFileServerMediaSubsession::createNewRTPSink(), MPEG1or2DemuxedServerMediaSubsession::createNewRTPSink(), H263plusVideoFileServerMediaSubsession::createNewRTPSink(), AMRAudioFileServerMediaSubsession::createNewRTPSink(), ADTSAudioFileServerMediaSubsession::createNewRTPSink(), MPEG4VideoFileServerMediaSubsession::createNewStreamSource(), MPEG2TransportFileServerMediaSubsession::createNewStreamSource(), MPEG1or2VideoFileServerMediaSubsession::createNewStreamSource(), MPEG1or2DemuxedServerMediaSubsession::createNewStreamSource(), H263plusVideoFileServerMediaSubsession::createNewStreamSource(), AMRAudioFileServerMediaSubsession::createNewStreamSource(), ADTSAudioFileServerMediaSubsession::createNewStreamSource(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), SegmentQueue::dequeue(), RTSPClient::describeURL(), WAVAudioFileSource::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(), ByteStreamFileSource::doStopGettingFrames(), BasicUDPSource::doStopGettingFrames(), SegmentQueue::enqueueNewSegment(), StreamParser::ensureValidBytes1(), MediaSubsession::env(), SubsessionIOState::envir(), RTSPServer::RTSPClientSession::envir(), RTSPOverHTTPServer::HTTPClientConnection::envir(), RTPInterface::envir(), AVISubsessionIOState::envir(), ServerMediaSession::generateSDPDescription(), RTPSource::getAttributes(), MP3FileSource::getAttributes(), MP3ADUTranscoder::getAttributes(), MediaSource::getAttributes(), MPEG4VideoFileServerMediaSubsession::getAuxSDPLine(), RTSPClient::getMediaSessionParameter(), getMPEG1or2TimeCode(), FramedSource::getNextFrame(), getOptionsResponse(), SIPClient::getResponse(), RTSPClient::getResponse(), RTSPClient::getResponse1(), SIPClient::getResponseCode(), getSDPDescriptionFromURL(), OnDemandServerMediaSubsession::getStreamParameters(), RTSPServer::incomingConnectionHandler1(), RTSPOverHTTPServer::incomingConnectionHandler1(), RTCPInstance::incomingReportHandler1(), RTSPClient::incomingRequestHandler1(), MP3FileSource::initializeStream(), MediaSession::initializeWithSDP(), MediaSession::initiateByMediaType(), SIPClient::invite1(), lookupServerMediaSession(), MPEG4GenericRTPSource::MPEG4GenericRTPSource(), MPEG1or2FileServerDemux::newElementaryStream(), MPEG1or2Demux::newElementaryStream(), MPEG4GenericBufferedPacket::nextEnclosedFrameSize(), AMRBufferedPacket::nextEnclosedFrameSize(), RTSPClient::openConnectionFromURL(), MPEG2TransportStreamIndexFile::openFid(), MPEG2IFrameIndexFromTransportStream::parseFrame(), AC3AudioStreamParser::parseFrame(), RTSPClient::parseGetParameterHeader(), MPEGProgramStreamParser::parsePackHeader(), MPEGProgramStreamParser::parsePESPacket(), SIPClient::parseResponseCode(), RTSPClient::parseResponseCode(), MediaSession::parseSDPLine(), MPEG1or2VideoStreamParser::parseSlice(), MPEGProgramStreamParser::parseSystemHeader(), MPEG4VideoStreamParser::parseVideoObjectLayer(), MPEG4VideoStreamParser::parseVideoObjectPlane(), MPEG4VideoStreamParser::parseVisualObject(), RTSPClient::pauseMediaSession(), RTSPClient::pauseMediaSubsession(), RTSPClient::playMediaSession(), RTSPClient::playMediaSubsession(), AC3AudioRTPSource::processSpecialHeader(), SIPClient::processURL(), AC3AudioStreamParser::readAndSaveAFrame(), RTSPClient::recordMediaSubsession(), MPEG1or2Demux::registerReadInterest(), RTCPInstance::reschedule(), RTSPServer::rtspURLPrefix(), RTCPInstance::schedule(), OnDemandServerMediaSubsession::sdpLines(), SIPClient::sendACK(), SIPClient::sendBYE(), SIPClient::sendINVITE(), RTSPClient::sendOptionsCmd(), MultiFramedRTPSink::sendPacketIfNecessary(), SIPClient::sendRequest(), RTSPClient::sendRequest(), DarwinInjector::setDestination(), RTSPClient::setMediaSessionParameter(), RTSPClient::setupHTTPTunneling(), RTSPClient::setupMediaSubsession(), QuickTimeFileSink::setWord(), AVIFileSink::setWord(), SIPClient::SIPClient(), AMRAudioRTPSink::sourceIsCompatibleWithUs(), QuickTimeFileSink::startPlaying(), StreamState::startPlaying(), MediaSink::startPlaying(), AVIFileSink::startPlaying(), MediaSink::stopPlaying(), RTSPClient::teardownMediaSession(), RTSPClient::teardownMediaSubsession(), SIPClient::timerAHandler(), SIPClient::timerBHandler(), SIPClient::timerDHandler(), ClientTrickPlayState::updateStateOnScaleChange(), MPEG2TransportStreamFramer::updateTSPacketDurationEstimate(), BasicUDPSource::~BasicUDPSource(), ByteStreamFileSource::~ByteStreamFileSource(), RTSPOverHTTPServer::HTTPClientConnection::~HTTPClientConnection(), RTSPClient::~RTSPClient(), and RTSPServer::~RTSPServer().

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 86 of file Media.cpp.

References False.

Referenced by MediaSource::lookupByName().

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

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

Reimplemented in MediaSink.

Definition at line 90 of file Media.cpp.

References False.

Referenced by MediaSink::lookupByName().

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

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

Reimplemented in RTCPInstance.

Definition at line 94 of file Media.cpp.

References False.

Referenced by RTCPInstance::lookupByName().

00094                                      {
00095   return False; // default implementation
00096 }

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

Reimplemented in RTSPClient.

Definition at line 98 of file Media.cpp.

References False.

Referenced by RTSPClient::lookupByName().

00098                                    {
00099   return False; // default implementation
00100 }

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

Reimplemented in MediaSession.

Definition at line 106 of file Media.cpp.

References False.

Referenced by MediaSession::lookupByName().

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

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

Reimplemented in ServerMediaSession.

Definition at line 110 of file Media.cpp.

References False.

Referenced by ServerMediaSession::lookupByName().

00110                                            {
00111   return False; // default implementation
00112 }

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

Reimplemented in DarwinInjector.

Definition at line 114 of file Media.cpp.

References False.

Referenced by DarwinInjector::lookupByName().

00114                                        {
00115   return False; // default implementation
00116 }

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

Definition at line 77 of file Media.hh.

References Medium::fNextTask.

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

00077                         {
00078         return fNextTask;
00079   }


The documentation for this class was generated from the following files:
Generated on Tue Jul 22 06:40:34 2008 for live by  doxygen 1.5.2