DarwinInjector Class Reference

#include <DarwinInjector.hh>

Inheritance diagram for DarwinInjector:

Inheritance graph
[legend]
Collaboration diagram for DarwinInjector:

Collaboration graph
[legend]

Public Member Functions

void addStream (RTPSink *rtpSink, RTCPInstance *rtcpInstance)
Boolean setDestination (char const *remoteRTSPServerNameOrAddress, char const *remoteFileName, char const *sessionName="", char const *sessionInfo="", portNumBits remoteRTSPServerPortNumber=554, char const *remoteUserName="", char const *remotePassword="", char const *sessionAuthor="", char const *sessionCopyright="")
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

Static Public Member Functions

static DarwinInjectorcreateNew (UsageEnvironment &env, char const *applicationName="DarwinInjector", int verbosityLevel=0)
static Boolean lookupByName (UsageEnvironment &env, char const *name, DarwinInjector *&result)
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

virtual Boolean isDarwinInjector () const
 DarwinInjector (UsageEnvironment &env, char const *applicationName, int verbosityLevel)
virtual ~DarwinInjector ()

Private Attributes

char const * fApplicationName
int fVerbosityLevel
RTSPClientfRTSPClient
unsigned fSubstreamSDPSizes
SubstreamDescriptorfHeadSubstream
SubstreamDescriptorfTailSubstream
MediaSessionfSession
unsigned fLastTrackId

Detailed Description

Definition at line 57 of file DarwinInjector.hh.


Constructor & Destructor Documentation

DarwinInjector::DarwinInjector ( UsageEnvironment env,
char const *  applicationName,
int  verbosityLevel 
) [private]

Definition at line 70 of file DarwinInjector.cpp.

Referenced by createNew().

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

Definition at line 78 of file DarwinInjector.cpp.

References Medium::close(), fApplicationName, fHeadSubstream, fRTSPClient, fSession, NULL, and RTSPClient::teardownMediaSession().

00078                                 {
00079   if (fSession != NULL) { // close down and delete the session
00080     fRTSPClient->teardownMediaSession(*fSession);
00081     Medium::close(fSession);
00082   }
00083 
00084   delete fHeadSubstream;
00085   delete[] (char*)fApplicationName;
00086   Medium::close(fRTSPClient);
00087 }


Member Function Documentation

DarwinInjector * DarwinInjector::createNew ( UsageEnvironment env,
char const *  applicationName = "DarwinInjector",
int  verbosityLevel = 0 
) [static]

Definition at line 48 of file DarwinInjector.cpp.

References DarwinInjector(), and env.

Referenced by main().

00050                                                               {
00051   return new DarwinInjector(env, applicationName, verbosityLevel);
00052 }

Boolean DarwinInjector::lookupByName ( UsageEnvironment env,
char const *  name,
DarwinInjector *&  result 
) [static]

Definition at line 54 of file DarwinInjector.cpp.

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

00055                                                               {
00056   result = NULL; // unless we succeed
00057 
00058   Medium* medium;
00059   if (!Medium::lookupByName(env, name, medium)) return False;
00060 
00061   if (!medium->isDarwinInjector()) {
00062     env.setResultMsg(name, " is not a 'Darwin injector'");
00063     return False;
00064   }
00065 
00066   result = (DarwinInjector*)medium;
00067   return True;
00068 }

void DarwinInjector::addStream ( RTPSink rtpSink,
RTCPInstance rtcpInstance 
)

Definition at line 89 of file DarwinInjector.cpp.

References fHeadSubstream, fLastTrackId, fSubstreamSDPSizes, fTailSubstream, SubstreamDescriptor::next(), NULL, and SubstreamDescriptor::sdpLines().

Referenced by main().

00089                                                                            {
00090   if (rtpSink == NULL) return; // "rtpSink" should be non-NULL
00091 
00092   SubstreamDescriptor* newDescriptor = new SubstreamDescriptor(rtpSink, rtcpInstance, ++fLastTrackId);
00093   if (fHeadSubstream == NULL) {
00094     fHeadSubstream = fTailSubstream = newDescriptor;
00095   } else {
00096     fTailSubstream->next() = newDescriptor;
00097     fTailSubstream = newDescriptor;
00098   }
00099 
00100   fSubstreamSDPSizes += strlen(newDescriptor->sdpLines());
00101 }

Boolean DarwinInjector::setDestination ( char const *  remoteRTSPServerNameOrAddress,
char const *  remoteFileName,
char const *  sessionName = "",
char const *  sessionInfo = "",
portNumBits  remoteRTSPServerPortNumber = 554,
char const *  remoteUserName = "",
char const *  remotePassword = "",
char const *  sessionAuthor = "",
char const *  sessionCopyright = "" 
)

Definition at line 104 of file DarwinInjector.cpp.

References RTSPClient::announceSDPDescription(), RTSPClient::announceWithPassword(), MediaSession::createNew(), RTSPClient::createNew(), NetAddress::data(), Medium::envir(), False, fApplicationName, fHeadSubstream, NetAddressList::firstAddress(), fRTSPClient, fSession, fSubstreamSDPSizes, fVerbosityLevel, increaseSendBufferTo(), MediaSubsession::initiate(), iter, MediaSubsessionIterator::next(), SubstreamDescriptor::next(), NULL, NetAddressList::numAddresses(), our_inet_ntoa(), our_random(), RTSPClient::playMediaSession(), SubstreamDescriptor::rtcpInstance(), SubstreamDescriptor::rtpSink(), SubstreamDescriptor::sdpLines(), RTCPInstance::setStreamSocket(), RTPSink::setStreamSocket(), RTSPClient::setupMediaSubsession(), RTSPClient::socketNum(), subsession, and True.

Referenced by main().

00112                                                {
00113   char* sdp = NULL;
00114   char* url = NULL;
00115   Boolean success = False; // until we learn otherwise
00116 
00117   do {
00118     // Begin by creating our RTSP client object:
00119     fRTSPClient = RTSPClient::createNew(envir(), fVerbosityLevel, fApplicationName);
00120     if (fRTSPClient == NULL) break;
00121 
00122     // Get the remote RTSP server's IP address:
00123     struct in_addr addr;
00124     {
00125       NetAddressList addresses(remoteRTSPServerNameOrAddress);
00126       if (addresses.numAddresses() == 0) break;
00127       NetAddress const* address = addresses.firstAddress();
00128       addr.s_addr = *(unsigned*)(address->data());
00129     }
00130     char const* remoteRTSPServerAddressStr = our_inet_ntoa(addr);
00131 
00132     // Construct a SDP description for the session that we'll be streaming:
00133     char const* const sdpFmt =
00134       "v=0\r\n"
00135       "o=- %u %u IN IP4 127.0.0.1\r\n"
00136       "s=%s\r\n"
00137       "i=%s\r\n"
00138       "c=IN IP4 %s\r\n"
00139       "t=0 0\r\n"
00140       "a=x-qt-text-nam:%s\r\n"
00141       "a=x-qt-text-inf:%s\r\n"
00142       "a=x-qt-text-cmt:source application:%s\r\n"
00143       "a=x-qt-text-aut:%s\r\n"
00144       "a=x-qt-text-cpy:%s\r\n";
00145       // plus, %s for each substream SDP
00146     unsigned sdpLen = strlen(sdpFmt)
00147       + 20 /* max int len */ + 20 /* max int len */
00148       + strlen(sessionName)
00149       + strlen(sessionInfo)
00150       + strlen(remoteRTSPServerAddressStr)
00151       + strlen(sessionName)
00152       + strlen(sessionInfo)
00153       + strlen(fApplicationName)
00154       + strlen(sessionAuthor)
00155       + strlen(sessionCopyright)
00156       + fSubstreamSDPSizes;
00157     unsigned const sdpSessionId = our_random();
00158     unsigned const sdpVersion = sdpSessionId;
00159     sdp = new char[sdpLen];
00160     sprintf(sdp, sdpFmt,
00161             sdpSessionId, sdpVersion, // o= line
00162             sessionName, // s= line
00163             sessionInfo, // i= line
00164             remoteRTSPServerAddressStr, // c= line
00165             sessionName, // a=x-qt-text-nam: line
00166             sessionInfo, // a=x-qt-text-inf: line
00167             fApplicationName, // a=x-qt-text-cmt: line
00168             sessionAuthor, // a=x-qt-text-aut: line
00169             sessionCopyright // a=x-qt-text-cpy: line
00170             );
00171     char* p = &sdp[strlen(sdp)];
00172     SubstreamDescriptor* ss;
00173     for (ss = fHeadSubstream; ss != NULL; ss = ss->next()) {
00174       sprintf(p, "%s", ss->sdpLines());
00175       p += strlen(p);
00176     }
00177 
00178     // Construct a RTSP URL for the remote stream:
00179     char const* const urlFmt = "rtsp://%s:%u/%s";
00180     unsigned urlLen
00181       = strlen(urlFmt) + strlen(remoteRTSPServerNameOrAddress) + 5 /* max short len */ + strlen(remoteFileName);
00182     url = new char[urlLen];
00183     sprintf(url, urlFmt, remoteRTSPServerNameOrAddress, remoteRTSPServerPortNumber, remoteFileName);
00184 
00185     // Do a RTSP "ANNOUNCE" with this SDP description:
00186     Boolean announceSuccess;
00187     if (remoteUserName[0] != '\0' || remotePassword[0] != '\0') {
00188       announceSuccess
00189         = fRTSPClient->announceWithPassword(url, sdp, remoteUserName, remotePassword);
00190     } else {
00191       announceSuccess = fRTSPClient->announceSDPDescription(url, sdp);
00192     }
00193     if (!announceSuccess) break;
00194 
00195     // Tell the remote server to start receiving the stream from us.
00196     // (To do this, we first create a "MediaSession" object from the SDP description.)
00197     fSession = MediaSession::createNew(envir(), sdp);
00198     if (fSession == NULL) break;
00199 
00200     ss = fHeadSubstream;
00201     MediaSubsessionIterator iter(*fSession);
00202     MediaSubsession* subsession;
00203     ss = fHeadSubstream;
00204     unsigned streamChannelId = 0;
00205     while ((subsession = iter.next()) != NULL) {
00206       if (!subsession->initiate()) break;
00207 
00208       if (!fRTSPClient->setupMediaSubsession(*subsession,
00209                                              True /*streamOutgoing*/,
00210                                              True /*streamUsingTCP*/)) {
00211         break;
00212       }
00213 
00214       // Tell this subsession's RTPSink and RTCPInstance to use
00215       // the RTSP TCP connection:
00216       ss->rtpSink()->setStreamSocket(fRTSPClient->socketNum(), streamChannelId++);
00217       if (ss->rtcpInstance() != NULL) {
00218         ss->rtcpInstance()->setStreamSocket(fRTSPClient->socketNum(),
00219                                             streamChannelId++);
00220       }
00221       ss = ss->next();
00222     }
00223     if (subsession != NULL) break; // an error occurred above
00224 
00225     // Tell the RTSP server to start:
00226     if (!fRTSPClient->playMediaSession(*fSession)) break;
00227 
00228     // Finally, make sure that the output TCP buffer is a reasonable size:
00229     increaseSendBufferTo(envir(), fRTSPClient->socketNum(), 100*1024);
00230 
00231     success = True;
00232   } while (0);
00233 
00234   delete[] sdp;
00235   delete[] url; 
00236   return success;
00237 }

Boolean DarwinInjector::isDarwinInjector (  )  const [private, virtual]

Reimplemented from Medium.

Definition at line 239 of file DarwinInjector.cpp.

References True.

00239                                                {
00240   return True;
00241 }

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 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 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(), 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(), DynamicRTSPServer::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(), 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::isRTSPServer (  )  const [virtual, inherited]

Reimplemented in RTSPServer.

Definition at line 102 of file Media.cpp.

References False.

Referenced by RTSPServer::lookupByName().

00102                                    {
00103   return False; // default implementation
00104 }

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 }

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   }


Field Documentation

char const* DarwinInjector::fApplicationName [private]

Definition at line 89 of file DarwinInjector.hh.

Referenced by setDestination(), and ~DarwinInjector().

int DarwinInjector::fVerbosityLevel [private]

Definition at line 90 of file DarwinInjector.hh.

Referenced by setDestination().

RTSPClient* DarwinInjector::fRTSPClient [private]

Definition at line 91 of file DarwinInjector.hh.

Referenced by setDestination(), and ~DarwinInjector().

unsigned DarwinInjector::fSubstreamSDPSizes [private]

Definition at line 92 of file DarwinInjector.hh.

Referenced by addStream(), and setDestination().

SubstreamDescriptor* DarwinInjector::fHeadSubstream [private]

Definition at line 93 of file DarwinInjector.hh.

Referenced by addStream(), setDestination(), and ~DarwinInjector().

SubstreamDescriptor* DarwinInjector::fTailSubstream [private]

Definition at line 94 of file DarwinInjector.hh.

Referenced by addStream().

MediaSession* DarwinInjector::fSession [private]

Definition at line 95 of file DarwinInjector.hh.

Referenced by setDestination(), and ~DarwinInjector().

unsigned DarwinInjector::fLastTrackId [private]

Definition at line 96 of file DarwinInjector.hh.

Referenced by addStream().


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