#include <PassiveServerMediaSubsession.hh>
Inheritance diagram for PassiveServerMediaSubsession:


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, double streamDuration, u_int64_t &numBytes) |
| virtual void | setStreamScale (unsigned clientSessionId, void *streamToken, float scale) |
| virtual FramedSource * | getStreamSource (void *streamToken) |
| virtual void | testScaleFactor (float &scale) |
| virtual float | duration () const |
| void | setServerAddressAndPortForSDP (netAddressBits addressBits, portNumBits portBits) |
| UsageEnvironment & | envir () 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 PassiveServerMediaSubsession * | createNew (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) |
| virtual void | deleteStream (unsigned clientSessionId, void *&streamToken) |
| char const * | rangeSDPLine () const |
| TaskToken & | nextTask () |
Protected Attributes | |
| char * | fSDPLines |
| ServerMediaSession * | fParentSession |
| netAddressBits | fServerAddressForSDP |
| portNumBits | fPortNumForSDP |
Private Attributes | |
| RTPSink & | fRTPSink |
| RTCPInstance * | fRTCPInstance |
| HashTable * | fClientRTCPSourceRecords |
Friends | |
| class | MediaLookupTable |
Definition at line 36 of file PassiveServerMediaSubsession.hh.
| PassiveServerMediaSubsession::PassiveServerMediaSubsession | ( | RTPSink & | rtpSink, | |
| RTCPInstance * | rtcpInstance | |||
| ) | [protected] |
Definition at line 34 of file PassiveServerMediaSubsession.cpp.
References HashTable::create(), fClientRTCPSourceRecords, and ONE_WORD_HASH_KEYS.
Referenced by createNew().
00035 : ServerMediaSubsession(rtpSink.envir()), 00036 fSDPLines(NULL), fRTPSink(rtpSink), fRTCPInstance(rtcpInstance) { 00037 fClientRTCPSourceRecords = HashTable::create(ONE_WORD_HASH_KEYS); 00038 }
| PassiveServerMediaSubsession::~PassiveServerMediaSubsession | ( | ) | [protected, virtual] |
Definition at line 50 of file PassiveServerMediaSubsession.cpp.
References fClientRTCPSourceRecords, fSDPLines, NULL, and HashTable::RemoveNext().
00050 { 00051 delete[] fSDPLines; 00052 00053 // Clean out the RTCPSourceRecord table: 00054 while (1) { 00055 RTCPSourceRecord* source = (RTCPSourceRecord*)(fClientRTCPSourceRecords->RemoveNext()); 00056 if (source == NULL) break; 00057 delete source; 00058 } 00059 00060 delete fClientRTCPSourceRecords; 00061 }
| 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 64 of file PassiveServerMediaSubsession.cpp.
References RTPSink::auxSDPLine(), fRTCPInstance, fRTPSink, fSDPLines, Groupsock::groupAddress(), RTPSink::groupsockBeingUsed(), NULL, Port::num(), Socket::port(), ServerMediaSubsession::rangeSDPLine(), RTPSink::rtpmapLine(), RTPSink::rtpPayloadType(), RTPSink::sdpMediaType(), strDup(), RTCPInstance::totSessionBW(), ServerMediaSubsession::trackId(), and Groupsock::ttl().
00064 { 00065 if (fSDPLines == NULL ) { 00066 // Construct a set of SDP lines that describe this subsession: 00067 // Use the components from "rtpSink": 00068 Groupsock const& gs = fRTPSink.groupsockBeingUsed(); 00069 AddressString groupAddressStr(gs.groupAddress()); 00070 unsigned short portNum = ntohs(gs.port().num()); 00071 unsigned char ttl = gs.ttl(); 00072 unsigned char rtpPayloadType = fRTPSink.rtpPayloadType(); 00073 char const* mediaType = fRTPSink.sdpMediaType(); 00074 unsigned estBitrate 00075 = fRTCPInstance == NULL ? 50 : fRTCPInstance->totSessionBW(); 00076 char* rtpmapLine = fRTPSink.rtpmapLine(); 00077 char const* rangeLine = rangeSDPLine(); 00078 char const* auxSDPLine = fRTPSink.auxSDPLine(); 00079 if (auxSDPLine == NULL) auxSDPLine = ""; 00080 00081 char const* const sdpFmt = 00082 "m=%s %d RTP/AVP %d\r\n" 00083 "c=IN IP4 %s/%d\r\n" 00084 "b=AS:%u\r\n" 00085 "%s" 00086 "%s" 00087 "%s" 00088 "a=control:%s\r\n"; 00089 unsigned sdpFmtSize = strlen(sdpFmt) 00090 + strlen(mediaType) + 5 /* max short len */ + 3 /* max char len */ 00091 + strlen(groupAddressStr.val()) + 3 /* max char len */ 00092 + 20 /* max int len */ 00093 + strlen(rtpmapLine) 00094 + strlen(rangeLine) 00095 + strlen(auxSDPLine) 00096 + strlen(trackId()); 00097 char* sdpLines = new char[sdpFmtSize]; 00098 sprintf(sdpLines, sdpFmt, 00099 mediaType, // m= <media> 00100 portNum, // m= <port> 00101 rtpPayloadType, // m= <fmt list> 00102 groupAddressStr.val(), // c= <connection address> 00103 ttl, // c= TTL 00104 estBitrate, // b=AS:<bandwidth> 00105 rtpmapLine, // a=rtpmap:... (if present) 00106 rangeLine, // a=range:... (if present) 00107 auxSDPLine, // optional extra SDP line 00108 trackId()); // a=control:<track-id> 00109 delete[] (char*)rangeLine; delete[] rtpmapLine; 00110 00111 fSDPLines = strDup(sdpLines); 00112 delete[] sdpLines; 00113 } 00114 00115 return fSDPLines; 00116 }
| 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 119 of file PassiveServerMediaSubsession.cpp.
References HashTable::Add(), Groupsock::changeDestinationParameters(), fClientRTCPSourceRecords, fRTCPInstance, fRTPSink, Groupsock::groupAddress(), RTPSink::groupsockBeingUsed(), NULL, Socket::port(), RTCPInstance::RTCPgs(), True, and Groupsock::ttl().
00131 { 00132 isMulticast = True; 00133 Groupsock& gs = fRTPSink.groupsockBeingUsed(); 00134 if (destinationTTL == 255) destinationTTL = gs.ttl(); 00135 if (destinationAddress == 0) { // normal case 00136 destinationAddress = gs.groupAddress().s_addr; 00137 } else { // use the client-specified destination address instead: 00138 struct in_addr destinationAddr; destinationAddr.s_addr = destinationAddress; 00139 gs.changeDestinationParameters(destinationAddr, 0, destinationTTL); 00140 if (fRTCPInstance != NULL) { 00141 Groupsock* rtcpGS = fRTCPInstance->RTCPgs(); 00142 rtcpGS->changeDestinationParameters(destinationAddr, 0, destinationTTL); 00143 } 00144 } 00145 serverRTPPort = gs.port(); 00146 if (fRTCPInstance != NULL) { 00147 Groupsock* rtcpGS = fRTCPInstance->RTCPgs(); 00148 serverRTCPPort = rtcpGS->port(); 00149 } 00150 streamToken = NULL; // not used 00151 00152 // Make a record of this client's source - for RTCP RR handling: 00153 RTCPSourceRecord* source = new RTCPSourceRecord(clientAddress, clientRTCPPort); 00154 fClientRTCPSourceRecords->Add((char const*)clientSessionId, source); 00155 }
| 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 157 of file PassiveServerMediaSubsession.cpp.
References RTCPSourceRecord::addr, RTPSink::currentSeqNo(), Medium::envir(), fClientRTCPSourceRecords, fRTCPInstance, fRTPSink, RTPSink::groupsockBeingUsed(), increaseSendBufferTo(), HashTable::Lookup(), NULL, RTCPSourceRecord::port, RTPSink::presetNextTimestamp(), RTCPInstance::setSpecificRRHandler(), Socket::socketNum(), and RTCPInstance::totSessionBW().
00164 { 00165 rtpSeqNum = fRTPSink.currentSeqNo(); 00166 rtpTimestamp = fRTPSink.presetNextTimestamp(); 00167 00168 // Try to use a big send buffer for RTP - at least 0.1 second of 00169 // specified bandwidth and at least 50 KB 00170 unsigned streamBitrate = fRTCPInstance == NULL ? 50 : fRTCPInstance->totSessionBW(); // in kbps 00171 unsigned rtpBufSize = streamBitrate * 25 / 2; // 1 kbps * 0.1 s = 12.5 bytes 00172 if (rtpBufSize < 50 * 1024) rtpBufSize = 50 * 1024; 00173 increaseSendBufferTo(envir(), fRTPSink.groupsockBeingUsed().socketNum(), rtpBufSize); 00174 00175 // Set up the handler for incoming RTCP "RR" packets from this client: 00176 if (fRTCPInstance != NULL) { 00177 RTCPSourceRecord* source = (RTCPSourceRecord*)(fClientRTCPSourceRecords->Lookup((char const*)clientSessionId)); 00178 if (source != NULL) { 00179 fRTCPInstance->setSpecificRRHandler(source->addr, source->port, 00180 rtcpRRHandler, rtcpRRHandlerClientData); 00181 } 00182 } 00183 }
| void PassiveServerMediaSubsession::deleteStream | ( | unsigned | clientSessionId, | |
| void *& | streamToken | |||
| ) | [protected, virtual] |
Reimplemented from ServerMediaSubsession.
Definition at line 185 of file PassiveServerMediaSubsession.cpp.
References RTCPSourceRecord::addr, fClientRTCPSourceRecords, fRTCPInstance, HashTable::Lookup(), NULL, RTCPSourceRecord::port, HashTable::Remove(), and RTCPInstance::unsetSpecificRRHandler().
00185 { 00186 // Lookup and remove the 'RTCPSourceRecord' for this client. Also turn off RTCP "RR" handling: 00187 RTCPSourceRecord* source = (RTCPSourceRecord*)(fClientRTCPSourceRecords->Lookup((char const*)clientSessionId)); 00188 if (source != NULL) { 00189 if (fRTCPInstance != NULL) { 00190 fRTCPInstance->unsetSpecificRRHandler(source->addr, source->port); 00191 } 00192 00193 fClientRTCPSourceRecords->Remove((char const*)clientSessionId); 00194 delete source; 00195 } 00196 }
| unsigned ServerMediaSubsession::trackNumber | ( | ) | const [inline, inherited] |
Definition at line 122 of file ServerMediaSession.hh.
References ServerMediaSubsession::fTrackNumber.
Referenced by OnDemandServerMediaSubsession::getStreamParameters(), and OnDemandServerMediaSubsession::sdpLines().
00122 { return fTrackNumber; }
| char const * ServerMediaSubsession::trackId | ( | ) | [inherited] |
Definition at line 331 of file ServerMediaSession.cpp.
References ServerMediaSubsession::fTrackId, ServerMediaSubsession::fTrackNumber, NULL, and strDup().
Referenced by sdpLines(), and OnDemandServerMediaSubsession::setSDPLinesFromRTPSink().
00331 { 00332 if (fTrackNumber == 0) return NULL; // not yet in a ServerMediaSession 00333 00334 if (fTrackId == NULL) { 00335 char buf[100]; 00336 sprintf(buf, "track%d", fTrackNumber); 00337 fTrackId = strDup(buf); 00338 } 00339 return fTrackId; 00340 }
| void ServerMediaSubsession::pauseStream | ( | unsigned | clientSessionId, | |
| void * | streamToken | |||
| ) | [virtual, inherited] |
Reimplemented in MPEG2TransportFileServerMediaSubsession, and OnDemandServerMediaSubsession.
Definition at line 342 of file ServerMediaSession.cpp.
| void ServerMediaSubsession::seekStream | ( | unsigned | clientSessionId, | |
| void * | streamToken, | |||
| double & | seekNPT, | |||
| double | streamDuration, | |||
| u_int64_t & | numBytes | |||
| ) | [virtual, inherited] |
Reimplemented in MPEG2TransportFileServerMediaSubsession, and OnDemandServerMediaSubsession.
Definition at line 346 of file ServerMediaSession.cpp.
| void ServerMediaSubsession::setStreamScale | ( | unsigned | clientSessionId, | |
| void * | streamToken, | |||
| float | scale | |||
| ) | [virtual, inherited] |
Reimplemented in MPEG2TransportFileServerMediaSubsession, and OnDemandServerMediaSubsession.
Definition at line 355 of file ServerMediaSession.cpp.
| FramedSource * ServerMediaSubsession::getStreamSource | ( | void * | streamToken | ) | [virtual, inherited] |
Reimplemented in OnDemandServerMediaSubsession.
Definition at line 351 of file ServerMediaSession.cpp.
References NULL.
00351 { 00352 // default implementation: return NULL 00353 return NULL; 00354 }
| void ServerMediaSubsession::testScaleFactor | ( | float & | scale | ) | [virtual, inherited] |
Reimplemented in MP3AudioFileServerMediaSubsession, MPEG2TransportFileServerMediaSubsession, and WAVAudioFileServerMediaSubsession.
Definition at line 364 of file ServerMediaSession.cpp.
00364 { 00365 // default implementation: Support scale = 1 only 00366 scale = 1; 00367 }
| float ServerMediaSubsession::duration | ( | ) | const [virtual, inherited] |
Reimplemented in AACAudioMatroskaFileServerMediaSubsession, AC3AudioMatroskaFileServerMediaSubsession, H264VideoMatroskaFileServerMediaSubsession, DVVideoFileServerMediaSubsession, MP3AudioFileServerMediaSubsession, MPEG1or2DemuxedServerMediaSubsession, MPEG2TransportFileServerMediaSubsession, WAVAudioFileServerMediaSubsession, T140TextMatroskaFileServerMediaSubsession, VorbisAudioMatroskaFileServerMediaSubsession, and VP8VideoMatroskaFileServerMediaSubsession.
Definition at line 369 of file ServerMediaSession.cpp.
Referenced by ServerMediaSubsession::rangeSDPLine().
| void ServerMediaSubsession::setServerAddressAndPortForSDP | ( | netAddressBits | addressBits, | |
| portNumBits | portBits | |||
| ) | [inherited] |
Definition at line 374 of file ServerMediaSession.cpp.
References ServerMediaSubsession::fPortNumForSDP, and ServerMediaSubsession::fServerAddressForSDP.
00375 { 00376 fServerAddressForSDP = addressBits; 00377 fPortNumForSDP = portBits; 00378 }
| char const * ServerMediaSubsession::rangeSDPLine | ( | ) | const [protected, inherited] |
Definition at line 381 of file ServerMediaSession.cpp.
References ServerMediaSubsession::duration(), ServerMediaSession::duration(), ServerMediaSubsession::fParentSession, NULL, and strDup().
Referenced by sdpLines(), and OnDemandServerMediaSubsession::setSDPLinesFromRTPSink().
00381 { 00382 if (fParentSession == NULL) return NULL; 00383 00384 // If all of our parent's subsessions have the same duration 00385 // (as indicated by "fParentSession->duration() >= 0"), there's no "a=range:" line: 00386 if (fParentSession->duration() >= 0.0) return strDup(""); 00387 00388 // Use our own duration for a "a=range:" line: 00389 float ourDuration = duration(); 00390 if (ourDuration == 0.0) { 00391 return strDup("a=range:npt=0-\r\n"); 00392 } else { 00393 char buf[100]; 00394 sprintf(buf, "a=range:npt=0-%.3f\r\n", ourDuration); 00395 return strDup(buf); 00396 } 00397 }
| 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 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(), RTSPServerSupportingHTTPStreaming::RTSPClientSessionSupportingHTTPStreaming::handleHTTPCmd_StreamingGET(), MediaSubsession::initiate(), MPEG1or2ProgramStreamFileDuration(), MPEG1or2Demux::noteElementaryStreamDeletion(), ByteStreamMultiFileSource::onSourceClosure1(), StreamState::reclaim(), RTSPServer::removeServerMediaSession(), 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::RTSPClientSessionSupportingHTTPStreaming::~RTSPClientSessionSupportingHTTPStreaming(), ServerMediaSession::~ServerMediaSession(), 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::RTSPClientSession::changeClientInputSocket(), MPEG4VideoFileServerMediaSubsession::checkForAuxSDPLine1(), H264VideoFileServerMediaSubsession::checkForAuxSDPLine1(), Medium::close(), ProxyServerMediaSubsession::closeStreamSource(), MPEG2IFrameIndexFromTransportStream::compactParseBuffer(), RTSPClient::connectionHandler1(), RTSPClient::connectToServer(), ProxyServerMediaSession::continueAfterDESCRIBE(), ProxyRTSPClient::continueAfterOPTIONS(), 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(), 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(), ByteStreamFileSource::doStopGettingFrames(), BasicUDPSource::doStopGettingFrames(), SegmentQueue::enqueueNewSegment(), StreamParser::ensureValidBytes1(), MediaSubsession::env(), SubsessionIOState::envir(), RTSPServer::RTSPClientSession::envir(), RTPInterface::envir(), AVISubsessionIOState::envir(), ServerMediaSession::generateSDPDescription(), RTPSource::getAttributes(), MP3FileSource::getAttributes(), MP3ADUTranscoder::getAttributes(), MediaSource::getAttributes(), MPEG4VideoFileServerMediaSubsession::getAuxSDPLine(), H264VideoFileServerMediaSubsession::getAuxSDPLine(), getMPEG1or2TimeCode(), FramedSource::getNextFrame(), getOptions(), DVVideoStreamFramer::getProfile(), SIPClient::getResponse(), SIPClient::getResponseCode(), getSDPDescription(), OnDemandServerMediaSubsession::getStreamParameters(), RTSPClient::handleGET_PARAMETERResponse(), RTSPServerSupportingHTTPStreaming::RTSPClientSessionSupportingHTTPStreaming::handleHTTPCmd_StreamingGET(), RTSPClient::handleIncomingRequest(), RTSPClient::handlePLAYResponse(), RTSPClient::handleRequestError(), RTSPClient::handleResponseBytes(), RTSPClient::handleSETUPResponse(), RTSPServer::incomingConnectionHandler(), RTSPClient::incomingDataHandler1(), RTCPInstance::incomingReportHandler1(), MP3FileSource::initializeStream(), MediaSession::initializeWithSDP(), MediaSession::initiateByMediaType(), SIPClient::invite1(), DynamicRTSPServer::lookupServerMediaSession(), MatroskaDemux::MatroskaDemux(), MatroskaFile::MatroskaFile(), MPEG4GenericRTPSource::MPEG4GenericRTPSource(), 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(), startStream(), MediaSink::stopPlaying(), ProxyServerMediaSubsession::subsessionByeHandler(), tearDownSession(), SIPClient::timerAHandler(), SIPClient::timerBHandler(), SIPClient::timerDHandler(), ClientTrickPlayState::updateStateOnScaleChange(), MPEG2TransportStreamFramer::updateTSPacketDurationEstimate(), BasicUDPSource::~BasicUDPSource(), ByteStreamFileSource::~ByteStreamFileSource(), DeviceSource::~DeviceSource(), 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] |
| 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::isRTSPServer | ( | ) | const [virtual, inherited] |
Reimplemented in RTSPServer.
Definition at line 78 of file Media.cpp.
References False.
Referenced by RTSPServer::lookupByName().
00078 { 00079 return False; // default implementation 00080 }
| 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(), RTCPInstance::reschedule(), RTCPInstance::schedule(), MultiFramedRTPSink::sendPacketIfNecessary(), and MediaSink::stopPlaying().
00078 { 00079 return fNextTask; 00080 }
friend class MediaLookupTable [friend, inherited] |
char* PassiveServerMediaSubsession::fSDPLines [protected] |
Definition at line 71 of file PassiveServerMediaSubsession.hh.
Referenced by sdpLines(), and ~PassiveServerMediaSubsession().
RTPSink& PassiveServerMediaSubsession::fRTPSink [private] |
Definition at line 74 of file PassiveServerMediaSubsession.hh.
Referenced by getStreamParameters(), sdpLines(), and startStream().
Definition at line 75 of file PassiveServerMediaSubsession.hh.
Referenced by deleteStream(), getStreamParameters(), sdpLines(), and startStream().
Definition at line 76 of file PassiveServerMediaSubsession.hh.
Referenced by deleteStream(), getStreamParameters(), PassiveServerMediaSubsession(), startStream(), and ~PassiveServerMediaSubsession().
ServerMediaSession* ServerMediaSubsession::fParentSession [protected, inherited] |
netAddressBits ServerMediaSubsession::fServerAddressForSDP [protected, inherited] |
Definition at line 171 of file ServerMediaSession.hh.
Referenced by OnDemandServerMediaSubsession::setSDPLinesFromRTPSink(), and ServerMediaSubsession::setServerAddressAndPortForSDP().
portNumBits ServerMediaSubsession::fPortNumForSDP [protected, inherited] |
Definition at line 172 of file ServerMediaSession.hh.
Referenced by OnDemandServerMediaSubsession::setSDPLinesFromRTPSink(), and ServerMediaSubsession::setServerAddressAndPortForSDP().
1.5.2