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


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="", int timeout=-1) |
| 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 |
Static Public Member Functions | |
| static DarwinInjector * | createNew (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 | |
| TaskToken & | nextTask () |
Private Member Functions | |
| virtual Boolean | isDarwinInjector () const |
| DarwinInjector (UsageEnvironment &env, char const *applicationName, int verbosityLevel) | |
| virtual | ~DarwinInjector () |
| void | genericResponseHandler1 (int responseCode, char *responseString) |
Static Private Member Functions | |
| static void | genericResponseHandler (RTSPClient *rtspClient, int responseCode, char *responseString) |
Private Attributes | |
| char const * | fApplicationName |
| int | fVerbosityLevel |
| RTSPClient * | fRTSPClient |
| unsigned | fSubstreamSDPSizes |
| SubstreamDescriptor * | fHeadSubstream |
| SubstreamDescriptor * | fTailSubstream |
| MediaSession * | fSession |
| unsigned | fLastTrackId |
| char | fWatchVariable |
| int | fResultCode |
| char * | fResultString |
Friends | |
| class | MediaLookupTable |
Definition at line 57 of file DarwinInjector.hh.
| DarwinInjector::DarwinInjector | ( | UsageEnvironment & | env, | |
| char const * | applicationName, | |||
| int | verbosityLevel | |||
| ) | [private] |
Definition at line 70 of file DarwinInjector.cpp.
Referenced by createNew().
00072 : Medium(env), 00073 fApplicationName(strDup(applicationName)), fVerbosityLevel(verbosityLevel), 00074 fRTSPClient(NULL), fSubstreamSDPSizes(0), 00075 fHeadSubstream(NULL), fTailSubstream(NULL), fSession(NULL), fLastTrackId(0), fResultString(NULL) { 00076 }
| DarwinInjector::~DarwinInjector | ( | ) | [private, virtual] |
Definition at line 78 of file DarwinInjector.cpp.
References Medium::close(), fApplicationName, fHeadSubstream, fRTSPClient, fSession, NULL, and RTSPClient::sendTeardownCommand().
00078 { 00079 if (fSession != NULL) { // close down and delete the session 00080 fRTSPClient->sendTeardownCommand(*fSession, NULL); 00081 Medium::close(fSession); 00082 } 00083 00084 delete fHeadSubstream; 00085 delete[] (char*)fApplicationName; 00086 Medium::close(fRTSPClient); 00087 }
| 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 = "", |
|||
| int | timeout = -1 | |||
| ) |
Definition at line 115 of file DarwinInjector.cpp.
References MediaSession::createNew(), NetAddress::data(), TaskScheduler::doEventLoop(), Medium::envir(), False, fApplicationName, fHeadSubstream, NetAddressList::firstAddress(), fResultCode, fResultString, fRTSPClient, fSession, fSubstreamSDPSizes, fVerbosityLevel, fWatchVariable, genericResponseHandler(), increaseSendBufferTo(), MediaSubsession::initiate(), iter, MediaSubsessionIterator::next(), SubstreamDescriptor::next(), NULL, NetAddressList::numAddresses(), our_random32(), SubstreamDescriptor::rtcpInstance(), SubstreamDescriptor::rtpSink(), SubstreamDescriptor::sdpLines(), RTSPClient::sendAnnounceCommand(), RTSPClient::sendPlayCommand(), RTSPClient::sendSetupCommand(), RTCPInstance::setStreamSocket(), RTPSink::setStreamSocket(), Authenticator::setUsernameAndPassword(), RTSPClient::socketNum(), subsession, UsageEnvironment::taskScheduler(), True, and AddressString::val().
Referenced by main().
00124 { 00125 char* sdp = NULL; 00126 char* url = NULL; 00127 Boolean success = False; // until we learn otherwise 00128 00129 do { 00130 // Construct a RTSP URL for the remote stream: 00131 char const* const urlFmt = "rtsp://%s:%u/%s"; 00132 unsigned urlLen 00133 = strlen(urlFmt) + strlen(remoteRTSPServerNameOrAddress) + 5 /* max short len */ + strlen(remoteFileName); 00134 url = new char[urlLen]; 00135 sprintf(url, urlFmt, remoteRTSPServerNameOrAddress, remoteRTSPServerPortNumber, remoteFileName); 00136 00137 // Begin by creating our RTSP client object: 00138 fRTSPClient = new RTSPClientForDarwinInjector(envir(), url, fVerbosityLevel, fApplicationName, this); 00139 if (fRTSPClient == NULL) break; 00140 00141 // Get the remote RTSP server's IP address: 00142 struct in_addr addr; 00143 { 00144 NetAddressList addresses(remoteRTSPServerNameOrAddress); 00145 if (addresses.numAddresses() == 0) break; 00146 NetAddress const* address = addresses.firstAddress(); 00147 addr.s_addr = *(unsigned*)(address->data()); 00148 } 00149 AddressString remoteRTSPServerAddressStr(addr); 00150 00151 // Construct a SDP description for the session that we'll be streaming: 00152 char const* const sdpFmt = 00153 "v=0\r\n" 00154 "o=- %u %u IN IP4 127.0.0.1\r\n" 00155 "s=%s\r\n" 00156 "i=%s\r\n" 00157 "c=IN IP4 %s\r\n" 00158 "t=0 0\r\n" 00159 "a=x-qt-text-nam:%s\r\n" 00160 "a=x-qt-text-inf:%s\r\n" 00161 "a=x-qt-text-cmt:source application:%s\r\n" 00162 "a=x-qt-text-aut:%s\r\n" 00163 "a=x-qt-text-cpy:%s\r\n"; 00164 // plus, %s for each substream SDP 00165 unsigned sdpLen = strlen(sdpFmt) 00166 + 20 /* max int len */ + 20 /* max int len */ 00167 + strlen(sessionName) 00168 + strlen(sessionInfo) 00169 + strlen(remoteRTSPServerAddressStr.val()) 00170 + strlen(sessionName) 00171 + strlen(sessionInfo) 00172 + strlen(fApplicationName) 00173 + strlen(sessionAuthor) 00174 + strlen(sessionCopyright) 00175 + fSubstreamSDPSizes; 00176 unsigned const sdpSessionId = our_random32(); 00177 unsigned const sdpVersion = sdpSessionId; 00178 sdp = new char[sdpLen]; 00179 sprintf(sdp, sdpFmt, 00180 sdpSessionId, sdpVersion, // o= line 00181 sessionName, // s= line 00182 sessionInfo, // i= line 00183 remoteRTSPServerAddressStr.val(), // c= line 00184 sessionName, // a=x-qt-text-nam: line 00185 sessionInfo, // a=x-qt-text-inf: line 00186 fApplicationName, // a=x-qt-text-cmt: line 00187 sessionAuthor, // a=x-qt-text-aut: line 00188 sessionCopyright // a=x-qt-text-cpy: line 00189 ); 00190 char* p = &sdp[strlen(sdp)]; 00191 SubstreamDescriptor* ss; 00192 for (ss = fHeadSubstream; ss != NULL; ss = ss->next()) { 00193 sprintf(p, "%s", ss->sdpLines()); 00194 p += strlen(p); 00195 } 00196 00197 // Do a RTSP "ANNOUNCE" with this SDP description: 00198 Authenticator auth; 00199 Authenticator* authToUse = NULL; 00200 if (remoteUserName[0] != '\0' || remotePassword[0] != '\0') { 00201 auth.setUsernameAndPassword(remoteUserName, remotePassword); 00202 authToUse = &auth; 00203 } 00204 fWatchVariable = 0; 00205 (void)fRTSPClient->sendAnnounceCommand(sdp, genericResponseHandler, authToUse); 00206 00207 // Now block (but handling events) until we get a response: 00208 envir().taskScheduler().doEventLoop(&fWatchVariable); 00209 00210 delete[] fResultString; 00211 if (fResultCode != 0) break; // an error occurred with the RTSP "ANNOUNCE" command 00212 00213 // Next, tell the remote server to start receiving the stream from us. 00214 // (To do this, we first create a "MediaSession" object from the SDP description.) 00215 fSession = MediaSession::createNew(envir(), sdp); 00216 if (fSession == NULL) break; 00217 00218 ss = fHeadSubstream; 00219 MediaSubsessionIterator iter(*fSession); 00220 MediaSubsession* subsession; 00221 ss = fHeadSubstream; 00222 unsigned streamChannelId = 0; 00223 while ((subsession = iter.next()) != NULL) { 00224 if (!subsession->initiate()) break; 00225 00226 fWatchVariable = 0; 00227 (void)fRTSPClient->sendSetupCommand(*subsession, genericResponseHandler, 00228 True /*streamOutgoing*/, 00229 True /*streamUsingTCP*/); 00230 // Now block (but handling events) until we get a response: 00231 envir().taskScheduler().doEventLoop(&fWatchVariable); 00232 00233 delete[] fResultString; 00234 if (fResultCode != 0) break; // an error occurred with the RTSP "SETUP" command 00235 00236 // Tell this subsession's RTPSink and RTCPInstance to use 00237 // the RTSP TCP connection: 00238 ss->rtpSink()->setStreamSocket(fRTSPClient->socketNum(), streamChannelId++); 00239 if (ss->rtcpInstance() != NULL) { 00240 ss->rtcpInstance()->setStreamSocket(fRTSPClient->socketNum(), 00241 streamChannelId++); 00242 } 00243 ss = ss->next(); 00244 } 00245 if (subsession != NULL) break; // an error occurred above 00246 00247 // Tell the RTSP server to start: 00248 fWatchVariable = 0; 00249 (void)fRTSPClient->sendPlayCommand(*fSession, genericResponseHandler); 00250 00251 // Now block (but handling events) until we get a response: 00252 envir().taskScheduler().doEventLoop(&fWatchVariable); 00253 00254 delete[] fResultString; 00255 if (fResultCode != 0) break; // an error occurred with the RTSP "PLAY" command 00256 00257 // Finally, make sure that the output TCP buffer is a reasonable size: 00258 increaseSendBufferTo(envir(), fRTSPClient->socketNum(), 100*1024); 00259 00260 success = True; 00261 } while (0); 00262 00263 delete[] sdp; 00264 delete[] url; 00265 return success; 00266 }
| Boolean DarwinInjector::isDarwinInjector | ( | ) | const [private, virtual] |
Reimplemented from Medium.
Definition at line 268 of file DarwinInjector.cpp.
References True.
00268 { 00269 return True; 00270 }
| void DarwinInjector::genericResponseHandler | ( | RTSPClient * | rtspClient, | |
| int | responseCode, | |||
| char * | responseString | |||
| ) | [static, private] |
Definition at line 272 of file DarwinInjector.cpp.
References genericResponseHandler1().
Referenced by setDestination().
00272 { 00273 DarwinInjector* di = ((RTSPClientForDarwinInjector*)rtspClient)-> fOurDarwinInjector; 00274 di->genericResponseHandler1(responseCode, responseString); 00275 }
| void DarwinInjector::genericResponseHandler1 | ( | int | responseCode, | |
| char * | responseString | |||
| ) | [private] |
Definition at line 277 of file DarwinInjector.cpp.
References fResultCode, fResultString, and fWatchVariable.
Referenced by genericResponseHandler().
00277 { 00278 // Set result values: 00279 fResultCode = responseCode; 00280 fResultString = responseString; 00281 00282 // Signal a break from the event loop (thereby returning from the blocking command): 00283 fWatchVariable = ~0; 00284 }
| 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 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(), ServerMediaSession::deleteAllSubsessions(), RTSPServerSupportingHTTPStreaming::RTSPClientConnectionSupportingHTTPStreaming::handleHTTPCmd_StreamingGET(), MediaSubsession::initiate(), MPEG1or2ProgramStreamFileDuration(), MPEG1or2Demux::noteElementaryStreamDeletion(), ByteStreamMultiFileSource::onSourceClosure1(), StreamState::reclaim(), RTSPServer::removeServerMediaSession(), ProxyServerMediaSession::resetDESCRIBEState(), OnDemandServerMediaSubsession::sdpLines(), shutdownStream(), subsessionAfterPlaying(), ClientTrickPlayState::updateStateOnScaleChange(), AMRDeinterleaver::~AMRDeinterleaver(), ByteStreamMultiFileSource::~ByteStreamMultiFileSource(), ~DarwinInjector(), FramedFilter::~FramedFilter(), H264VideoRTPSink::~H264VideoRTPSink(), InputESSourceRecord::~InputESSourceRecord(), MatroskaFileParser::~MatroskaFileParser(), MatroskaFileServerDemux::~MatroskaFileServerDemux(), MPEG1or2Demux::~MPEG1or2Demux(), MPEG1or2FileServerDemux::~MPEG1or2FileServerDemux(), MPEG2TransportFileServerMediaSubsession::~MPEG2TransportFileServerMediaSubsession(), MPEG2TransportStreamFromPESSource::~MPEG2TransportStreamFromPESSource(), ProxyServerMediaSession::~ProxyServerMediaSession(), RTSPServerSupportingHTTPStreaming::RTSPClientConnectionSupportingHTTPStreaming::~RTSPClientConnectionSupportingHTTPStreaming(), ServerMediaSubsession::~ServerMediaSubsession(), StreamClientState::~StreamClientState(), StreamReplicator::~StreamReplicator(), and T140TextRTPSink::~T140TextRTPSink().
00052 { 00053 MediaLookupTable::ourMedia(env)->remove(name); 00054 }
| void Medium::close | ( | Medium * | medium | ) | [static, inherited] |
Definition at line 56 of file Media.cpp.
References Medium::close(), Medium::envir(), Medium::name(), and NULL.
00056 { 00057 if (medium == NULL) return; 00058 00059 close(medium->envir(), medium->name()); 00060 }
| UsageEnvironment& Medium::envir | ( | ) | const [inline, inherited] |
Definition at line 59 of file Media.hh.
References Medium::fEnviron.
Referenced by QuickTimeFileSink::addArbitraryString(), FileSink::addData(), RTCPInstance::addStreamSocket(), MPEG2IFrameIndexFromTransportStream::addToTail(), StreamParser::afterGettingBytes1(), DummySink::afterGettingFrame(), TCPStreamSink::afterGettingFrame(), T140IdleFilter::afterGettingFrame(), FileSink::afterGettingFrame(), MultiFramedRTPSink::afterGettingFrame1(), InputESSourceRecord::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG2IFrameIndexFromTransportStream::afterGettingFrame1(), H264VideoStreamDiscreteFramer::afterGettingFrame1(), BasicUDPSink::afterGettingFrame1(), MPEG4VideoFileServerMediaSubsession::afterPlayingDummy1(), H264VideoFileServerMediaSubsession::afterPlayingDummy1(), MPEG4VideoStreamParser::analyzeVOLHeader(), announceStream(), RTSPServer::RTSPClientConnection::changeClientInputSocket(), MPEG4VideoFileServerMediaSubsession::checkForAuxSDPLine1(), H264VideoFileServerMediaSubsession::checkForAuxSDPLine1(), Medium::close(), ProxyServerMediaSubsession::closeStreamSource(), MPEG2IFrameIndexFromTransportStream::compactParseBuffer(), RTSPClient::connectionHandler1(), RTSPClient::connectToServer(), ProxyServerMediaSession::continueAfterDESCRIBE(), ProxyRTSPClient::continueAfterLivenessCommand(), ProxyRTSPClient::continueAfterSETUP(), T140TextRTPSink::continuePlaying(), QuickTimeFileSink::continuePlaying(), H264VideoRTPSink::continuePlaying(), AVIFileSink::continuePlaying(), VP8VideoMatroskaFileServerMediaSubsession::createNewRTPSink(), VorbisAudioMatroskaFileServerMediaSubsession::createNewRTPSink(), T140TextMatroskaFileServerMediaSubsession::createNewRTPSink(), ProxyServerMediaSubsession::createNewRTPSink(), MPEG4VideoFileServerMediaSubsession::createNewRTPSink(), MPEG2TransportUDPServerMediaSubsession::createNewRTPSink(), MPEG2TransportFileServerMediaSubsession::createNewRTPSink(), MPEG1or2VideoFileServerMediaSubsession::createNewRTPSink(), MPEG1or2DemuxedServerMediaSubsession::createNewRTPSink(), MP3AudioFileServerMediaSubsession::createNewRTPSink(), H264VideoFileServerMediaSubsession::createNewRTPSink(), H263plusVideoFileServerMediaSubsession::createNewRTPSink(), DVVideoFileServerMediaSubsession::createNewRTPSink(), AMRAudioFileServerMediaSubsession::createNewRTPSink(), ADTSAudioFileServerMediaSubsession::createNewRTPSink(), AC3AudioMatroskaFileServerMediaSubsession::createNewRTPSink(), AC3AudioFileServerMediaSubsession::createNewRTPSink(), AACAudioMatroskaFileServerMediaSubsession::createNewRTPSink(), ProxyServerMediaSubsession::createNewStreamSource(), MPEG4VideoFileServerMediaSubsession::createNewStreamSource(), MPEG2TransportUDPServerMediaSubsession::createNewStreamSource(), MPEG2TransportFileServerMediaSubsession::createNewStreamSource(), MPEG1or2VideoFileServerMediaSubsession::createNewStreamSource(), MPEG1or2DemuxedServerMediaSubsession::createNewStreamSource(), MP3AudioFileServerMediaSubsession::createNewStreamSource(), H264VideoMatroskaFileServerMediaSubsession::createNewStreamSource(), H264VideoFileServerMediaSubsession::createNewStreamSource(), H263plusVideoFileServerMediaSubsession::createNewStreamSource(), DVVideoFileServerMediaSubsession::createNewStreamSource(), AMRAudioFileServerMediaSubsession::createNewStreamSource(), ADTSAudioFileServerMediaSubsession::createNewStreamSource(), AC3AudioFileServerMediaSubsession::createNewStreamSource(), AMRDeinterleavingBuffer::deliverIncomingFrame(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), SegmentQueue::dequeue(), DeviceSource::DeviceSource(), WAVAudioFileSource::doGetNextFrame(), T140IdleFilter::doGetNextFrame(), MPEG2TransportStreamMultiplexor::doGetNextFrame(), MPEG2IFrameIndexFromTransportStream::doGetNextFrame(), MP3FileSource::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamFileSource::doGetNextFrame(), BasicUDPSource::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), SIPClient::doInviteStateMachine(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), MPEG1or2VideoRTPSink::doSpecialFrameHandling(), MP3ADURTPSink::doSpecialFrameHandling(), H263plusVideoRTPSink::doSpecialFrameHandling(), WAVAudioFileSource::doStopGettingFrames(), T140IdleFilter::doStopGettingFrames(), MultiFramedRTPSource::doStopGettingFrames(), FramedSource::doStopGettingFrames(), ByteStreamFileSource::doStopGettingFrames(), BasicUDPSource::doStopGettingFrames(), SegmentQueue::enqueueNewSegment(), StreamParser::ensureValidBytes1(), MediaSubsession::env(), SubsessionIOState::envir(), RTSPServer::RTSPClientSession::envir(), RTSPServer::RTSPClientConnection::envir(), RTPInterface::envir(), AVISubsessionIOState::envir(), ServerMediaSession::generateSDPDescription(), RTPSource::getAttributes(), MP3FileSource::getAttributes(), MP3ADUTranscoder::getAttributes(), MediaSource::getAttributes(), MPEG4VideoFileServerMediaSubsession::getAuxSDPLine(), H264VideoFileServerMediaSubsession::getAuxSDPLine(), getMPEG1or2TimeCode(), FramedSource::getNextFrame(), getOptions(), DVVideoStreamFramer::getProfile(), SIPClient::getResponse(), SIPClient::getResponseCode(), getSDPDescription(), OnDemandServerMediaSubsession::getStreamParameters(), RTSPClient::handleAlternativeRequestByte1(), RTSPClient::handleGET_PARAMETERResponse(), RTSPServerSupportingHTTPStreaming::RTSPClientConnectionSupportingHTTPStreaming::handleHTTPCmd_StreamingGET(), RTSPClient::handleIncomingRequest(), RTSPClient::handlePLAYResponse(), RTSPClient::handleRequestError(), RTSPClient::handleResponseBytes(), RTSPClient::handleSETUPResponse(), RTSPServer::incomingConnectionHandler(), RTSPClient::incomingDataHandler1(), RTCPInstance::incomingReportHandler1(), MP3FileSource::initializeStream(), MediaSession::initializeWithSDP(), MediaSession::initiateByMediaType(), SIPClient::invite1(), DynamicRTSPServer::lookupServerMediaSession(), MatroskaDemux::MatroskaDemux(), MatroskaFile::MatroskaFile(), MPEG4GenericRTPSource::MPEG4GenericRTPSource(), MultiFramedRTPSource::networkReadHandler1(), MatroskaDemux::newDemuxedTrack(), MPEG1or2FileServerDemux::newElementaryStream(), MPEG1or2Demux::newElementaryStream(), MPEG4GenericBufferedPacket::nextEnclosedFrameSize(), AMRBufferedPacket::nextEnclosedFrameSize(), T140IdleFilter::onSourceClosure(), RTSPClient::openConnection(), MPEG2TransportStreamIndexFile::openFid(), MPEG2IFrameIndexFromTransportStream::parseFrame(), AC3AudioStreamParser::parseFrame(), MPEGProgramStreamParser::parsePackHeader(), MPEGProgramStreamParser::parsePESPacket(), SIPClient::parseResponseCode(), MediaSession::parseSDPLine(), MPEG1or2VideoStreamParser::parseSlice(), MatroskaFileParser::parseStartOfFile(), MPEGProgramStreamParser::parseSystemHeader(), MPEG4VideoStreamParser::parseVideoObjectLayer(), MPEG4VideoStreamParser::parseVideoObjectPlane(), MPEG4VideoStreamParser::parseVisualObject(), TCPStreamSink::processBuffer(), SIPClient::processURL(), AC3AudioStreamParser::readAndSaveAFrame(), MPEG1or2Demux::registerReadInterest(), RTCPInstance::reschedule(), RTSPClient::resendCommand(), ProxyRTSPClient::reset(), RTSPClient::resetTCPSockets(), RTSPClient::responseHandlerForHTTP_GET1(), RTSPServer::rtspURLPrefix(), RTCPInstance::schedule(), ProxyRTSPClient::scheduleDESCRIBECommand(), ProxyRTSPClient::scheduleLivenessCommand(), OnDemandServerMediaSubsession::sdpLines(), SIPClient::sendACK(), SIPClient::sendBYE(), SIPClient::sendINVITE(), MultiFramedRTPSink::sendPacketIfNecessary(), SIPClient::sendRequest(), RTSPClient::sendRequest(), setDestination(), RTSPClient::setupHTTPTunneling1(), setupNextSubsession(), RTSPServer::setUpTunnelingOverHTTP(), QuickTimeFileSink::setWord(), AVIFileSink::setWord(), QuickTimeFileSink::setWord64(), shutdownStream(), SIPClient::SIPClient(), TCPStreamSink::socketWritableHandler1(), AMRAudioRTPSink::sourceIsCompatibleWithUs(), QuickTimeFileSink::startPlaying(), StreamState::startPlaying(), MediaSink::startPlaying(), AVIFileSink::startPlaying(), startPlayingSession(), PassiveServerMediaSubsession::startStream(), MediaSink::stopPlaying(), ProxyServerMediaSubsession::subsessionByeHandler(), tearDownSession(), SIPClient::timerAHandler(), SIPClient::timerBHandler(), SIPClient::timerDHandler(), ClientTrickPlayState::updateStateOnScaleChange(), MPEG2TransportStreamFramer::updateTSPacketDurationEstimate(), BasicUDPSource::~BasicUDPSource(), ByteStreamFileSource::~ByteStreamFileSource(), DeviceSource::~DeviceSource(), ProxyServerMediaSession::~ProxyServerMediaSession(), ProxyServerMediaSubsession::~ProxyServerMediaSubsession(), RTSPServer::~RTSPServer(), StreamClientState::~StreamClientState(), T140IdleFilter::~T140IdleFilter(), and WAVAudioFileSource::~WAVAudioFileSource().
00059 {return fEnviron;}
| char const* Medium::name | ( | ) | const [inline, inherited] |
Definition at line 61 of file Media.hh.
References Medium::fMediumName.
Referenced by QuickTimeFileSink::addAtom_hdlr2(), Medium::close(), MP3ADUTranscoder::createNew(), MP3FromADUSource::createNew(), ADUFromMP3Source::createNew(), and MP3FileSource::initializeStream().
00061 {return fMediumName;}
| Boolean Medium::isSource | ( | ) | const [virtual, inherited] |
Reimplemented in MediaSource.
Definition at line 62 of file Media.cpp.
References False.
Referenced by MediaSource::lookupByName().
00062 { 00063 return False; // default implementation 00064 }
| Boolean Medium::isSink | ( | ) | const [virtual, inherited] |
| 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 }
| TaskToken& Medium::nextTask | ( | ) | [inline, protected, inherited] |
Definition at line 78 of file Media.hh.
References Medium::fNextTask.
Referenced by BasicUDPSink::afterGettingFrame1(), MPEG4VideoFileServerMediaSubsession::afterPlayingDummy1(), H264VideoFileServerMediaSubsession::afterPlayingDummy1(), MPEG4VideoFileServerMediaSubsession::checkForAuxSDPLine1(), H264VideoFileServerMediaSubsession::checkForAuxSDPLine1(), MP3FileSource::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), WAVAudioFileSource::doReadFromFile(), ByteStreamFileSource::doReadFromFile(), MultiFramedRTPSource::doStopGettingFrames(), FramedSource::doStopGettingFrames(), ByteStreamFileSource::doStopGettingFrames(), RTCPInstance::reschedule(), RTCPInstance::schedule(), MultiFramedRTPSink::sendPacketIfNecessary(), and MediaSink::stopPlaying().
00078 { 00079 return fNextTask; 00080 }
friend class MediaLookupTable [friend, inherited] |
char const* DarwinInjector::fApplicationName [private] |
Definition at line 93 of file DarwinInjector.hh.
Referenced by setDestination(), and ~DarwinInjector().
int DarwinInjector::fVerbosityLevel [private] |
RTSPClient* DarwinInjector::fRTSPClient [private] |
Definition at line 95 of file DarwinInjector.hh.
Referenced by setDestination(), and ~DarwinInjector().
unsigned DarwinInjector::fSubstreamSDPSizes [private] |
Definition at line 97 of file DarwinInjector.hh.
Referenced by addStream(), setDestination(), and ~DarwinInjector().
MediaSession* DarwinInjector::fSession [private] |
Definition at line 99 of file DarwinInjector.hh.
Referenced by setDestination(), and ~DarwinInjector().
unsigned DarwinInjector::fLastTrackId [private] |
char DarwinInjector::fWatchVariable [private] |
Definition at line 101 of file DarwinInjector.hh.
Referenced by genericResponseHandler1(), and setDestination().
int DarwinInjector::fResultCode [private] |
Definition at line 102 of file DarwinInjector.hh.
Referenced by genericResponseHandler1(), and setDestination().
char* DarwinInjector::fResultString [private] |
Definition at line 103 of file DarwinInjector.hh.
Referenced by genericResponseHandler1(), and setDestination().
1.5.2