PassiveServerMediaSubsession Class Reference

#include <PassiveServerMediaSubsession.hh>

Inheritance diagram for PassiveServerMediaSubsession:

Inheritance graph
[legend]
Collaboration diagram for PassiveServerMediaSubsession:

Collaboration graph
[legend]

Public Member Functions

unsigned trackNumber () const
char const * trackId ()
virtual void pauseStream (unsigned clientSessionId, void *streamToken)
virtual void seekStream (unsigned clientSessionId, void *streamToken, double seekNPT)
virtual void setStreamScale (unsigned clientSessionId, void *streamToken, float scale)
virtual void deleteStream (unsigned clientSessionId, void *&streamToken)
virtual void testScaleFactor (float &scale)
virtual float duration () const
void setServerAddressAndPortForSDP (netAddressBits addressBits, portNumBits portBits)
UsageEnvironmentenvir () const
char const * name () const
virtual Boolean isSource () const
virtual Boolean isSink () const
virtual Boolean isRTCPInstance () const
virtual Boolean isRTSPClient () const
virtual Boolean isRTSPServer () const
virtual Boolean isMediaSession () const
virtual Boolean isServerMediaSession () const
virtual Boolean isDarwinInjector () const

Static Public Member Functions

static PassiveServerMediaSubsessioncreateNew (RTPSink &rtpSink, RTCPInstance *rtcpInstance=NULL)
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

 PassiveServerMediaSubsession (RTPSink &rtpSink, RTCPInstance *rtcpInstance)
virtual ~PassiveServerMediaSubsession ()
virtual char const * sdpLines ()
virtual void getStreamParameters (unsigned clientSessionId, netAddressBits clientAddress, Port const &clientRTPPort, Port const &clientRTCPPort, int tcpSocketNum, unsigned char rtpChannelId, unsigned char rtcpChannelId, netAddressBits &destinationAddress, u_int8_t &destinationTTL, Boolean &isMulticast, Port &serverRTPPort, Port &serverRTCPPort, void *&streamToken)
virtual void startStream (unsigned clientSessionId, void *streamToken, TaskFunc *rtcpRRHandler, void *rtcpRRHandlerClientData, unsigned short &rtpSeqNum, unsigned &rtpTimestamp, ServerRequestAlternativeByteHandler *serverRequestAlternativeByteHandler, void *serverRequestAlternativeByteHandlerClientData)
char const * rangeSDPLine () const
TaskTokennextTask ()

Protected Attributes

char * fSDPLines
ServerMediaSessionfParentSession
netAddressBits fServerAddressForSDP
portNumBits fPortNumForSDP

Private Attributes

RTPSinkfRTPSink
RTCPInstancefRTCPInstance

Detailed Description

Definition at line 36 of file PassiveServerMediaSubsession.hh.


Constructor & Destructor Documentation

PassiveServerMediaSubsession::PassiveServerMediaSubsession ( RTPSink rtpSink,
RTCPInstance rtcpInstance 
) [protected]

Definition at line 34 of file PassiveServerMediaSubsession.cpp.

Referenced by createNew().

00035   : ServerMediaSubsession(rtpSink.envir()),
00036     fSDPLines(NULL), fRTPSink(rtpSink), fRTCPInstance(rtcpInstance) {
00037 }

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

Definition at line 153 of file PassiveServerMediaSubsession.cpp.

References fSDPLines.

00153                                                             {
00154   delete[] fSDPLines;
00155 }


Member Function Documentation

PassiveServerMediaSubsession * PassiveServerMediaSubsession::createNew ( RTPSink rtpSink,
RTCPInstance rtcpInstance = NULL 
) [static]

Definition at line 28 of file PassiveServerMediaSubsession.cpp.

References PassiveServerMediaSubsession().

Referenced by main().

00029                                                                     {
00030   return new PassiveServerMediaSubsession(rtpSink, rtcpInstance);
00031 }

char const * PassiveServerMediaSubsession::sdpLines (  )  [protected, virtual]

Implements ServerMediaSubsession.

Definition at line 40 of file PassiveServerMediaSubsession.cpp.

References RTPSink::auxSDPLine(), fRTCPInstance, fRTPSink, fSDPLines, Groupsock::groupAddress(), RTPSink::groupsockBeingUsed(), NULL, Port::num(), our_inet_ntoa(), Socket::port(), ServerMediaSubsession::rangeSDPLine(), RTPSink::rtpmapLine(), RTPSink::rtpPayloadType(), RTPSink::sdpMediaType(), strDup(), RTCPInstance::totSessionBW(), ServerMediaSubsession::trackId(), and Groupsock::ttl().

00040                                        {
00041   if (fSDPLines == NULL ) {
00042     // Construct a set of SDP lines that describe this subsession:
00043     // Use the components from "rtpSink":
00044     Groupsock const& gs = fRTPSink.groupsockBeingUsed();
00045     struct in_addr const& ipAddress = gs.groupAddress();
00046     unsigned short portNum = ntohs(gs.port().num());
00047     unsigned char ttl = gs.ttl();
00048     unsigned char rtpPayloadType = fRTPSink.rtpPayloadType();
00049     char const* mediaType = fRTPSink.sdpMediaType();
00050     unsigned estBitrate
00051       = fRTCPInstance == NULL ? 50 : fRTCPInstance->totSessionBW();
00052     char* rtpmapLine = fRTPSink.rtpmapLine();
00053     char const* rangeLine = rangeSDPLine();
00054     char const* auxSDPLine = fRTPSink.auxSDPLine();
00055     if (auxSDPLine == NULL) auxSDPLine = "";
00056 
00057     char* const ipAddressStr = strDup(our_inet_ntoa(ipAddress));
00058 
00059     char const* const sdpFmt =
00060       "m=%s %d RTP/AVP %d\r\n"
00061       "c=IN IP4 %s/%d\r\n"
00062       "b=AS:%u\r\n"
00063       "%s"
00064       "%s"
00065       "%s"
00066       "a=control:%s\r\n";
00067     unsigned sdpFmtSize = strlen(sdpFmt)
00068       + strlen(mediaType) + 5 /* max short len */ + 3 /* max char len */
00069       + strlen(ipAddressStr) + 3 /* max char len */
00070       + 20 /* max int len */
00071       + strlen(rtpmapLine)
00072       + strlen(rangeLine)
00073       + strlen(auxSDPLine)
00074       + strlen(trackId());
00075     char* sdpLines = new char[sdpFmtSize];
00076     sprintf(sdpLines, sdpFmt,
00077             mediaType, // m= <media>
00078             portNum, // m= <port>
00079             rtpPayloadType, // m= <fmt list>
00080             ipAddressStr, // c= <connection address>
00081             ttl, // c= TTL
00082             estBitrate, // b=AS:<bandwidth>
00083             rtpmapLine, // a=rtpmap:... (if present)
00084             rangeLine, // a=range:... (if present)
00085             auxSDPLine, // optional extra SDP line
00086             trackId()); // a=control:<track-id>
00087     delete[] ipAddressStr; delete[] (char*)rangeLine; delete[] rtpmapLine;
00088 
00089     fSDPLines = strDup(sdpLines);
00090     delete[] sdpLines;
00091   }
00092 
00093   return fSDPLines;
00094 }

void PassiveServerMediaSubsession::getStreamParameters ( unsigned  clientSessionId,
netAddressBits  clientAddress,
Port const &  clientRTPPort,
Port const &  clientRTCPPort,
int  tcpSocketNum,
unsigned char  rtpChannelId,
unsigned char  rtcpChannelId,
netAddressBits destinationAddress,
u_int8_t &  destinationTTL,
Boolean isMulticast,
Port serverRTPPort,
Port serverRTCPPort,
void *&  streamToken 
) [protected, virtual]

Implements ServerMediaSubsession.

Definition at line 97 of file PassiveServerMediaSubsession.cpp.

References Groupsock::changeDestinationParameters(), fRTCPInstance, fRTPSink, Groupsock::groupAddress(), RTPSink::groupsockBeingUsed(), NULL, Socket::port(), RTCPInstance::RTCPgs(), True, and Groupsock::ttl().

00109                                           {
00110   isMulticast = True;
00111   Groupsock& gs = fRTPSink.groupsockBeingUsed();
00112   if (destinationTTL == 255) destinationTTL = gs.ttl();
00113   if (destinationAddress == 0) { // normal case
00114     destinationAddress = gs.groupAddress().s_addr;
00115   } else { // use the client-specified destination address instead:
00116     struct in_addr destinationAddr; destinationAddr.s_addr = destinationAddress;
00117     gs.changeDestinationParameters(destinationAddr, 0, destinationTTL);
00118     if (fRTCPInstance != NULL) {
00119       Groupsock* rtcpGS = fRTCPInstance->RTCPgs();
00120       rtcpGS->changeDestinationParameters(destinationAddr, 0, destinationTTL);
00121     }
00122   }
00123   serverRTPPort = gs.port();
00124   if (fRTCPInstance != NULL) {
00125     Groupsock* rtcpGS = fRTCPInstance->RTCPgs();
00126     serverRTCPPort = rtcpGS->port();
00127   }
00128   streamToken = NULL; // not used
00129 }

void PassiveServerMediaSubsession::startStream ( unsigned  clientSessionId,
void *  streamToken,
TaskFunc rtcpRRHandler,
void *  rtcpRRHandlerClientData,
unsigned short &  rtpSeqNum,
unsigned &  rtpTimestamp,
ServerRequestAlternativeByteHandler serverRequestAlternativeByteHandler,
void *  serverRequestAlternativeByteHandlerClientData 
) [protected, virtual]

Implements ServerMediaSubsession.

Definition at line 131 of file PassiveServerMediaSubsession.cpp.

References RTPSink::currentSeqNo(), Medium::envir(), fRTCPInstance, fRTPSink, RTPSink::groupsockBeingUsed(), increaseSendBufferTo(), NULL, RTPSink::presetNextTimestamp(), Socket::socketNum(), and RTCPInstance::totSessionBW().

00138                                                                                                         {
00139   // Note: We don't set a RTCP RR handler, because (i) we're called potentially
00140   // many times on the same "RTCPInstance", and (ii) the "RTCPInstance" remains
00141   // in existence after "deleteStream()" is called.
00142   rtpSeqNum = fRTPSink.currentSeqNo();
00143   rtpTimestamp = fRTPSink.presetNextTimestamp();
00144 
00145   // Try to use a big send buffer for RTP -  at least 0.1 second of
00146   // specified bandwidth and at least 50 KB
00147   unsigned streamBitrate = fRTCPInstance == NULL ? 50 : fRTCPInstance->totSessionBW(); // in kbps
00148   unsigned rtpBufSize = streamBitrate * 25 / 2; // 1 kbps * 0.1 s = 12.5 bytes
00149   if (rtpBufSize < 50 * 1024) rtpBufSize = 50 * 1024;
00150   increaseSendBufferTo(envir(), fRTPSink.groupsockBeingUsed().socketNum(), rtpBufSize);
00151 }

unsigned ServerMediaSubsession::trackNumber (  )  const [inline, inherited]

Definition at line 118 of file ServerMediaSession.hh.

References ServerMediaSubsession::fTrackNumber.

Referenced by OnDemandServerMediaSubsession::getStreamParameters(), and OnDemandServerMediaSubsession::sdpLines().

00118 { return fTrackNumber; }

char const * ServerMediaSubsession::trackId (  )  [inherited]

Definition at line 326 of file ServerMediaSession.cpp.

References ServerMediaSubsession::fTrackId, ServerMediaSubsession::fTrackNumber, NULL, and strDup().

Referenced by sdpLines(), and OnDemandServerMediaSubsession::setSDPLinesFromRTPSink().

00326                                            {
00327   if (fTrackNumber == 0) return NULL; // not yet in a ServerMediaSession
00328 
00329   if (fTrackId == NULL) {
00330     char buf[100];
00331     sprintf(buf, "track%d", fTrackNumber);
00332     fTrackId = strDup(buf);
00333   }
00334   return fTrackId;
00335 }

void ServerMediaSubsession::pauseStream ( unsigned  clientSessionId,
void *  streamToken 
) [virtual, inherited]

Reimplemented in MPEG2TransportFileServerMediaSubsession, and OnDemandServerMediaSubsession.

Definition at line 337 of file ServerMediaSession.cpp.

00338                                                                {
00339   // default implementation: do nothing
00340 }

void ServerMediaSubsession::seekStream ( unsigned  clientSessionId,
void *  streamToken,
double  seekNPT 
) [virtual, inherited]

Reimplemented in MPEG2TransportFileServerMediaSubsession, and OnDemandServerMediaSubsession.

Definition at line 341 of file ServerMediaSession.cpp.

00342                                                                                   {
00343   // default implementation: do nothing
00344 }

void ServerMediaSubsession::setStreamScale ( unsigned  clientSessionId,
void *  streamToken,
float  scale 
) [virtual, inherited]

Reimplemented in MPEG2TransportFileServerMediaSubsession, and OnDemandServerMediaSubsession.

Definition at line 345 of file ServerMediaSession.cpp.

00346                                                                                    {
00347   // default implementation: do nothing
00348 }

void ServerMediaSubsession::deleteStream ( unsigned  clientSessionId,
void *&  streamToken 
) [virtual, inherited]

Reimplemented in MPEG2TransportFileServerMediaSubsession, and OnDemandServerMediaSubsession.

Definition at line 349 of file ServerMediaSession.cpp.

00350                                                                  {
00351   // default implementation: do nothing
00352 }

void ServerMediaSubsession::testScaleFactor ( float &  scale  )  [virtual, inherited]

Reimplemented in MP3AudioFileServerMediaSubsession, MPEG2TransportFileServerMediaSubsession, and WAVAudioFileServerMediaSubsession.

Definition at line 354 of file ServerMediaSession.cpp.

00354                                                         {
00355   // default implementation: Support scale = 1 only
00356   scale = 1;
00357 }

float ServerMediaSubsession::duration (  )  const [virtual, inherited]

Reimplemented in DVVideoFileServerMediaSubsession, MP3AudioFileServerMediaSubsession, MPEG1or2DemuxedServerMediaSubsession, MPEG2TransportFileServerMediaSubsession, and WAVAudioFileServerMediaSubsession.

Definition at line 359 of file ServerMediaSession.cpp.

Referenced by ServerMediaSubsession::rangeSDPLine().

00359                                             {
00360   // default implementation: assume an unbounded session:
00361   return 0.0;
00362 }

void ServerMediaSubsession::setServerAddressAndPortForSDP ( netAddressBits  addressBits,
portNumBits  portBits 
) [inherited]

Definition at line 364 of file ServerMediaSession.cpp.

References ServerMediaSubsession::fPortNumForSDP, and ServerMediaSubsession::fServerAddressForSDP.

00365                                                                                 {
00366   fServerAddressForSDP = addressBits;
00367   fPortNumForSDP = portBits;
00368 }

char const * ServerMediaSubsession::rangeSDPLine (  )  const [protected, inherited]

Definition at line 371 of file ServerMediaSession.cpp.

References ServerMediaSubsession::duration(), ServerMediaSession::duration(), ServerMediaSubsession::fParentSession, NULL, and strDup().

Referenced by sdpLines(), and OnDemandServerMediaSubsession::setSDPLinesFromRTPSink().

00371                                           {
00372   if (fParentSession == NULL) return NULL;
00373 
00374   // If all of our parent's subsessions have the same duration
00375   // (as indicated by "fParentSession->duration() >= 0"), there's no "a=range:" line:
00376   if (fParentSession->duration() >= 0.0) return strDup("");
00377 
00378   // Use our own duration for a "a=range:" line:
00379   float ourDuration = duration();
00380   if (ourDuration == 0.0) {
00381     return strDup("a=range:npt=0-\r\n");
00382   } else {
00383     char buf[100];
00384     sprintf(buf, "a=range:npt=0-%.3f\r\n", ourDuration);
00385     return strDup(buf);
00386   }
00387 }

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 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(), continueAfterTEARDOWN(), WAVAudioFileSource::createNew(), QuickTimeFileSink::createNew(), QCELPAudioRTPSource::createNew(), MP3HTTPSource::createNew(), MP3FileSource::createNew(), AVIFileSink::createNew(), AMRAudioRTPSource::createNew(), WAVAudioFileServerMediaSubsession::createNewStreamSource(), MPEG1or2DemuxedServerMediaSubsession::createNewStreamSource(), MediaSubsession::deInitiate(), MediaSubsession::initiate(), MPEG1or2ProgramStreamFileDuration(), MPEG1or2Demux::noteElementaryStreamDeletion(), ByteStreamMultiFileSource::onSourceClosure1(), StreamState::reclaim(), RTSPServer::removeServerMediaSession(), OnDemandServerMediaSubsession::sdpLines(), 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(), RTCPInstance::addStreamSocket(), MPEG2IFrameIndexFromTransportStream::addToTail(), StreamParser::afterGettingBytes(), MultiFramedRTPSink::afterGettingFrame1(), InputESSourceRecord::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG2IFrameIndexFromTransportStream::afterGettingFrame1(), HTTPSink::afterGettingFrame1(), BasicUDPSink::afterGettingFrame1(), MPEG4VideoFileServerMediaSubsession::afterPlayingDummy1(), MPEG4VideoStreamParser::analyzeVOLHeader(), announceStream(), MPEG4VideoFileServerMediaSubsession::checkForAuxSDPLine1(), Medium::close(), MPEG2IFrameIndexFromTransportStream::compactParseBuffer(), RTSPClient::connectionHandler1(), RTSPClient::connectToServer(), QuickTimeFileSink::continuePlaying(), HTTPSink::continuePlaying(), H264VideoRTPSink::continuePlaying(), AVIFileSink::continuePlaying(), MPEG4VideoFileServerMediaSubsession::createNewRTPSink(), MPEG2TransportFileServerMediaSubsession::createNewRTPSink(), MPEG1or2VideoFileServerMediaSubsession::createNewRTPSink(), MPEG1or2DemuxedServerMediaSubsession::createNewRTPSink(), H263plusVideoFileServerMediaSubsession::createNewRTPSink(), DVVideoFileServerMediaSubsession::createNewRTPSink(), AMRAudioFileServerMediaSubsession::createNewRTPSink(), ADTSAudioFileServerMediaSubsession::createNewRTPSink(), MPEG4VideoFileServerMediaSubsession::createNewStreamSource(), MPEG2TransportFileServerMediaSubsession::createNewStreamSource(), MPEG1or2VideoFileServerMediaSubsession::createNewStreamSource(), MPEG1or2DemuxedServerMediaSubsession::createNewStreamSource(), H263plusVideoFileServerMediaSubsession::createNewStreamSource(), DVVideoFileServerMediaSubsession::createNewStreamSource(), AMRAudioFileServerMediaSubsession::createNewStreamSource(), ADTSAudioFileServerMediaSubsession::createNewStreamSource(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), SegmentQueue::dequeue(), 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(), getMPEG1or2TimeCode(), FramedSource::getNextFrame(), getOptions(), DVVideoStreamFramer::getProfile(), SIPClient::getResponse(), SIPClient::getResponseCode(), getSDPDescription(), OnDemandServerMediaSubsession::getStreamParameters(), RTSPClient::handleGET_PARAMETERResponse(), RTSPClient::handleIncomingRequest(), RTSPClient::handlePLAYResponse(), RTSPClient::handleRequestError(), RTSPClient::handleResponseBytes(), RTSPClient::handleSETUPResponse(), RTSPServer::incomingConnectionHandler1(), RTSPOverHTTPServer::incomingConnectionHandler1(), RTSPClient::incomingDataHandler1(), RTCPInstance::incomingReportHandler1(), MP3FileSource::initializeStream(), MediaSession::initializeWithSDP(), MediaSession::initiateByMediaType(), SIPClient::invite1(), DynamicRTSPServer::lookupServerMediaSession(), MPEG4GenericRTPSource::MPEG4GenericRTPSource(), 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(), MPEGProgramStreamParser::parseSystemHeader(), MPEG4VideoStreamParser::parseVideoObjectLayer(), MPEG4VideoStreamParser::parseVideoObjectPlane(), MPEG4VideoStreamParser::parseVisualObject(), AC3AudioRTPSource::processSpecialHeader(), 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(), QuickTimeFileSink::setWord(), AVIFileSink::setWord(), QuickTimeFileSink::setWord64(), SIPClient::SIPClient(), AMRAudioRTPSink::sourceIsCompatibleWithUs(), QuickTimeFileSink::startPlaying(), StreamState::startPlaying(), MediaSink::startPlaying(), AVIFileSink::startPlaying(), startPlayingSession(), startStream(), MediaSink::stopPlaying(), tearDownSession(), SIPClient::timerAHandler(), SIPClient::timerBHandler(), SIPClient::timerDHandler(), ClientTrickPlayState::updateStateOnScaleChange(), MPEG2TransportStreamFramer::updateTSPacketDurationEstimate(), BasicUDPSource::~BasicUDPSource(), ByteStreamFileSource::~ByteStreamFileSource(), RTSPOverHTTPServer::HTTPClientConnection::~HTTPClientConnection(), 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 }

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   }


Field Documentation

char* PassiveServerMediaSubsession::fSDPLines [protected]

Definition at line 70 of file PassiveServerMediaSubsession.hh.

Referenced by sdpLines(), and ~PassiveServerMediaSubsession().

RTPSink& PassiveServerMediaSubsession::fRTPSink [private]

Definition at line 73 of file PassiveServerMediaSubsession.hh.

Referenced by getStreamParameters(), sdpLines(), and startStream().

RTCPInstance* PassiveServerMediaSubsession::fRTCPInstance [private]

Definition at line 74 of file PassiveServerMediaSubsession.hh.

Referenced by getStreamParameters(), sdpLines(), and startStream().

ServerMediaSession* ServerMediaSubsession::fParentSession [protected, inherited]

Definition at line 163 of file ServerMediaSession.hh.

Referenced by ServerMediaSubsession::rangeSDPLine().

netAddressBits ServerMediaSubsession::fServerAddressForSDP [protected, inherited]

Definition at line 164 of file ServerMediaSession.hh.

Referenced by OnDemandServerMediaSubsession::setSDPLinesFromRTPSink(), and ServerMediaSubsession::setServerAddressAndPortForSDP().

portNumBits ServerMediaSubsession::fPortNumForSDP [protected, inherited]

Definition at line 165 of file ServerMediaSession.hh.

Referenced by OnDemandServerMediaSubsession::setSDPLinesFromRTPSink(), and ServerMediaSubsession::setServerAddressAndPortForSDP().


The documentation for this class was generated from the following files:
Generated on Fri Sep 3 02:37:40 2010 for live by  doxygen 1.5.2