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


Public Types | |
| typedef void( | afterPlayingFunc )(void *clientData) |
Public Member Functions | |
| Boolean | startPlaying (MediaSource &source, afterPlayingFunc *afterFunc, void *afterClientData) |
| virtual void | stopPlaying () |
| virtual Boolean | isRTPSink () const |
| FramedSource * | source () const |
| UsageEnvironment & | envir () const |
| char const * | name () const |
| virtual Boolean | isSource () 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 TCPStreamSink * | createNew (UsageEnvironment &env, int socketNum) |
| static Boolean | lookupByName (UsageEnvironment &env, char const *sinkName, MediaSink *&resultSink) |
| 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 | |
| TCPStreamSink (UsageEnvironment &env, int socketNum) | |
| virtual | ~TCPStreamSink () |
| virtual Boolean | continuePlaying () |
| virtual Boolean | sourceIsCompatibleWithUs (MediaSource &source) |
| TaskToken & | nextTask () |
Static Protected Member Functions | |
| static void | onSourceClosure (void *clientData) |
Protected Attributes | |
| FramedSource * | fSource |
Private Member Functions | |
| void | processBuffer () |
| void | socketWritableHandler1 () |
| void | afterGettingFrame (unsigned frameSize, unsigned numTruncatedBytes) |
| void | ourOnSourceClosure1 () |
| unsigned | numUnwrittenBytes () const |
| unsigned | freeBufferSpace () const |
Static Private Member Functions | |
| static void | socketWritableHandler (void *clientData, int mask) |
| static void | afterGettingFrame (void *clientData, unsigned frameSize, unsigned numTruncatedBytes, struct timeval, unsigned) |
| static void | ourOnSourceClosure (void *clientData) |
Private Attributes | |
| unsigned char | fBuffer [TCP_STREAM_SINK_BUFFER_SIZE] |
| unsigned | fUnwrittenBytesStart |
| unsigned | fUnwrittenBytesEnd |
| Boolean | fInputSourceIsOpen |
| Boolean | fOutputSocketIsWritable |
| int | fOutputSocketNum |
Friends | |
| class | MediaLookupTable |
Definition at line 30 of file TCPStreamSink.hh.
typedef void( MediaSink::afterPlayingFunc)(void *clientData) [inherited] |
Definition at line 33 of file MediaSink.hh.
| TCPStreamSink::TCPStreamSink | ( | UsageEnvironment & | env, | |
| int | socketNum | |||
| ) | [protected] |
Definition at line 27 of file TCPStreamSink.cpp.
Referenced by createNew().
00028 : MediaSink(env), 00029 fUnwrittenBytesStart(0), fUnwrittenBytesEnd(0), 00030 fInputSourceIsOpen(False), fOutputSocketIsWritable(True), 00031 fOutputSocketNum(socketNum) { 00032 }
| TCPStreamSink::~TCPStreamSink | ( | ) | [protected, virtual] |
| TCPStreamSink * TCPStreamSink::createNew | ( | UsageEnvironment & | env, | |
| int | socketNum | |||
| ) | [static] |
Definition at line 23 of file TCPStreamSink.cpp.
References env, and TCPStreamSink().
Referenced by RTSPServerSupportingHTTPStreaming::RTSPClientConnectionSupportingHTTPStreaming::handleHTTPCmd_StreamingGET().
00023 { 00024 return new TCPStreamSink(env, socketNum); 00025 }
| Boolean TCPStreamSink::continuePlaying | ( | ) | [protected, virtual] |
Implements MediaSink.
Definition at line 37 of file TCPStreamSink.cpp.
References fInputSourceIsOpen, MediaSink::fSource, NULL, processBuffer(), and True.
00037 { 00038 fInputSourceIsOpen = fSource != NULL; 00039 processBuffer(); 00040 00041 return True; 00042 }
| void TCPStreamSink::processBuffer | ( | ) | [private] |
Definition at line 46 of file TCPStreamSink.cpp.
References afterGettingFrame(), Medium::envir(), False, fBuffer, fInputSourceIsOpen, fOutputSocketIsWritable, fOutputSocketNum, freeBufferSpace(), MediaSink::fSource, fUnwrittenBytesEnd, fUnwrittenBytesStart, FramedSource::getNextFrame(), FramedSource::isCurrentlyAwaitingData(), numUnwrittenBytes(), MediaSink::onSourceClosure(), ourOnSourceClosure(), TaskScheduler::setBackgroundHandling(), SOCKET_WRITABLE, socketWritableHandler(), UsageEnvironment::taskScheduler(), and TCP_STREAM_SINK_MIN_READ_SIZE.
Referenced by afterGettingFrame(), continuePlaying(), ourOnSourceClosure1(), and socketWritableHandler1().
00046 { 00047 // First, try writing data to our output socket, if we can: 00048 if (fOutputSocketIsWritable && numUnwrittenBytes() > 0) { 00049 int numBytesWritten 00050 = send(fOutputSocketNum, (const char*)&fBuffer[fUnwrittenBytesStart], numUnwrittenBytes(), 0); 00051 if (numBytesWritten < (int)numUnwrittenBytes()) { 00052 // The output socket is no longer writable. Set a handler to be called when it becomes writable again. 00053 fOutputSocketIsWritable = False; 00054 envir().taskScheduler().setBackgroundHandling(fOutputSocketNum, SOCKET_WRITABLE, socketWritableHandler, this); 00055 } 00056 if (numBytesWritten > 0) { 00057 // We wrote at least some of our data. Update our buffer pointers: 00058 fUnwrittenBytesStart += numBytesWritten; 00059 if (fUnwrittenBytesStart > fUnwrittenBytesEnd) fUnwrittenBytesStart = fUnwrittenBytesEnd; // sanity check 00060 if (fUnwrittenBytesStart == fUnwrittenBytesEnd && (!fInputSourceIsOpen || !fSource->isCurrentlyAwaitingData())) { 00061 fUnwrittenBytesStart = fUnwrittenBytesEnd = 0; // reset the buffer to empty 00062 } 00063 } 00064 } 00065 00066 // Then, read from our input source, if we can (& we're not already reading from it): 00067 if (fInputSourceIsOpen && freeBufferSpace() >= TCP_STREAM_SINK_MIN_READ_SIZE && !fSource->isCurrentlyAwaitingData()) { 00068 fSource->getNextFrame(&fBuffer[fUnwrittenBytesEnd], freeBufferSpace(), afterGettingFrame, this, ourOnSourceClosure, this); 00069 } 00070 00071 if (!fInputSourceIsOpen && numUnwrittenBytes() == 0) { 00072 // We're now done: 00073 onSourceClosure(this); 00074 } 00075 }
| void TCPStreamSink::socketWritableHandler | ( | void * | clientData, | |
| int | mask | |||
| ) | [static, private] |
Definition at line 77 of file TCPStreamSink.cpp.
References socketWritableHandler1().
Referenced by processBuffer().
00077 { 00078 TCPStreamSink* sink = (TCPStreamSink*)clientData; 00079 sink->socketWritableHandler1(); 00080 }
| void TCPStreamSink::socketWritableHandler1 | ( | ) | [private] |
Definition at line 82 of file TCPStreamSink.cpp.
References TaskScheduler::disableBackgroundHandling(), Medium::envir(), fOutputSocketIsWritable, fOutputSocketNum, processBuffer(), UsageEnvironment::taskScheduler(), and True.
Referenced by socketWritableHandler().
00082 { 00083 envir().taskScheduler().disableBackgroundHandling(fOutputSocketNum); // disable this handler until the next time it's needed 00084 00085 fOutputSocketIsWritable = True; 00086 processBuffer(); 00087 }
| void TCPStreamSink::afterGettingFrame | ( | void * | clientData, | |
| unsigned | frameSize, | |||
| unsigned | numTruncatedBytes, | |||
| struct | timeval, | |||
| unsigned | ||||
| ) | [static, private] |
Definition at line 89 of file TCPStreamSink.cpp.
References afterGettingFrame().
Referenced by afterGettingFrame(), and processBuffer().
00090 { 00091 TCPStreamSink* sink = (TCPStreamSink*)clientData; 00092 sink->afterGettingFrame(frameSize, numTruncatedBytes); 00093 }
| void TCPStreamSink::afterGettingFrame | ( | unsigned | frameSize, | |
| unsigned | numTruncatedBytes | |||
| ) | [private] |
Definition at line 95 of file TCPStreamSink.cpp.
References Medium::envir(), fUnwrittenBytesEnd, and processBuffer().
00095 { 00096 if (numTruncatedBytes > 0) { 00097 envir() << "TCPStreamSink::afterGettingFrame(): The input frame data was too large for our buffer. " 00098 << numTruncatedBytes 00099 << " bytes of trailing data was dropped! Correct this by increasing the definition of \"TCP_STREAM_SINK_BUFFER_SIZE\" in \"include/TCPStreamSink.hh\".\n"; 00100 } 00101 fUnwrittenBytesEnd += frameSize; 00102 processBuffer(); 00103 }
| void TCPStreamSink::ourOnSourceClosure | ( | void * | clientData | ) | [static, private] |
Definition at line 105 of file TCPStreamSink.cpp.
References ourOnSourceClosure1().
Referenced by processBuffer().
00105 { 00106 TCPStreamSink* sink = (TCPStreamSink*)clientData; 00107 sink->ourOnSourceClosure1(); 00108 }
| void TCPStreamSink::ourOnSourceClosure1 | ( | ) | [private] |
Definition at line 110 of file TCPStreamSink.cpp.
References False, fInputSourceIsOpen, and processBuffer().
Referenced by ourOnSourceClosure().
00110 { 00111 // The input source has closed: 00112 fInputSourceIsOpen = False; 00113 processBuffer(); 00114 }
| unsigned TCPStreamSink::numUnwrittenBytes | ( | ) | const [inline, private] |
Definition at line 57 of file TCPStreamSink.hh.
References fUnwrittenBytesEnd, and fUnwrittenBytesStart.
Referenced by processBuffer().
00057 { return fUnwrittenBytesEnd - fUnwrittenBytesStart; }
| unsigned TCPStreamSink::freeBufferSpace | ( | ) | const [inline, private] |
Definition at line 58 of file TCPStreamSink.hh.
References fUnwrittenBytesEnd, and TCP_STREAM_SINK_BUFFER_SIZE.
Referenced by processBuffer().
00058 { return TCP_STREAM_SINK_BUFFER_SIZE - fUnwrittenBytesEnd; }
| Boolean MediaSink::lookupByName | ( | UsageEnvironment & | env, | |
| char const * | sinkName, | |||
| MediaSink *& | resultSink | |||
| ) | [static, inherited] |
Definition at line 39 of file MediaSink.cpp.
References env, False, Medium::isSink(), Medium::lookupByName(), NULL, and True.
Referenced by RTPSink::lookupByName().
00040 { 00041 resultSink = NULL; // unless we succeed 00042 00043 Medium* medium; 00044 if (!Medium::lookupByName(env, sinkName, medium)) return False; 00045 00046 if (!medium->isSink()) { 00047 env.setResultMsg(sinkName, " is not a media sink"); 00048 return False; 00049 } 00050 00051 resultSink = (MediaSink*)medium; 00052 return True; 00053 }
| 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 }
| Boolean MediaSink::startPlaying | ( | MediaSource & | source, | |
| afterPlayingFunc * | afterFunc, | |||
| void * | afterClientData | |||
| ) | [inherited] |
Definition at line 60 of file MediaSink.cpp.
References MediaSink::continuePlaying(), Medium::envir(), MediaSink::fAfterClientData, MediaSink::fAfterFunc, False, MediaSink::fSource, NULL, UsageEnvironment::setResultMsg(), MediaSink::source(), and MediaSink::sourceIsCompatibleWithUs().
Referenced by MPEG4VideoFileServerMediaSubsession::getAuxSDPLine(), H264VideoFileServerMediaSubsession::getAuxSDPLine(), getMPEG1or2TimeCode(), main(), play(), setupStreams(), StreamState::startPlaying(), startReplicaFileSink(), and startReplicaUDPSink().
00062 { 00063 // Make sure we're not already being played: 00064 if (fSource != NULL) { 00065 envir().setResultMsg("This sink is already being played"); 00066 return False; 00067 } 00068 00069 // Make sure our source is compatible: 00070 if (!sourceIsCompatibleWithUs(source)) { 00071 envir().setResultMsg("MediaSink::startPlaying(): source is not compatible!"); 00072 return False; 00073 } 00074 fSource = (FramedSource*)&source; 00075 00076 fAfterFunc = afterFunc; 00077 fAfterClientData = afterClientData; 00078 return continuePlaying(); 00079 }
| void MediaSink::stopPlaying | ( | ) | [virtual, inherited] |
Reimplemented in MultiFramedRTPSink.
Definition at line 81 of file MediaSink.cpp.
References Medium::envir(), MediaSink::fAfterFunc, MediaSink::fSource, Medium::nextTask(), NULL, FramedSource::stopGettingFrames(), UsageEnvironment::taskScheduler(), and TaskScheduler::unscheduleDelayedTask().
Referenced by afterPlaying(), StreamState::pause(), MultiFramedRTPSink::stopPlaying(), and MediaSink::~MediaSink().
00081 { 00082 // First, tell the source that we're no longer interested: 00083 if (fSource != NULL) fSource->stopGettingFrames(); 00084 00085 // Cancel any pending tasks: 00086 envir().taskScheduler().unscheduleDelayedTask(nextTask()); 00087 00088 fSource = NULL; // indicates that we can be played again 00089 fAfterFunc = NULL; 00090 }
| Boolean MediaSink::isRTPSink | ( | ) | const [virtual, inherited] |
Reimplemented in RTPSink.
Definition at line 100 of file MediaSink.cpp.
References False.
Referenced by RTPSink::lookupByName().
00100 { 00101 return False; // default implementation 00102 }
| FramedSource* MediaSink::source | ( | ) | const [inline, inherited] |
Definition at line 42 of file MediaSink.hh.
References MediaSink::fSource.
Referenced by AMRAudioFileSink::afterGettingFrame(), JPEGVideoRTPSink::doSpecialFrameHandling(), MPEG4ESVideoRTPSink::sourceIsCompatibleWithUs(), MPEG1or2VideoRTPSink::sourceIsCompatibleWithUs(), MediaSink::sourceIsCompatibleWithUs(), JPEGVideoRTPSink::sourceIsCompatibleWithUs(), H264VideoRTPSink::sourceIsCompatibleWithUs(), DVVideoRTPSink::sourceIsCompatibleWithUs(), AMRAudioRTPSink::sourceIsCompatibleWithUs(), AMRAudioFileSink::sourceIsCompatibleWithUs(), JPEGVideoRTPSink::specialHeaderSize(), and MediaSink::startPlaying().
00042 {return fSource;}
| Boolean MediaSink::sourceIsCompatibleWithUs | ( | MediaSource & | source | ) | [protected, virtual, inherited] |
Reimplemented in AMRAudioFileSink, AMRAudioRTPSink, DVVideoRTPSink, H264VideoRTPSink, JPEGVideoRTPSink, MPEG1or2VideoRTPSink, and MPEG4ESVideoRTPSink.
Definition at line 55 of file MediaSink.cpp.
References FramedSource::isFramedSource(), and MediaSink::source().
Referenced by MediaSink::startPlaying().
00055 { 00056 // We currently support only framed sources. 00057 return source.isFramedSource(); 00058 }
| void MediaSink::onSourceClosure | ( | void * | clientData | ) | [static, protected, inherited] |
Definition at line 92 of file MediaSink.cpp.
References MediaSink::fAfterClientData, MediaSink::fAfterFunc, MediaSink::fSource, and NULL.
Referenced by FileSink::afterGettingFrame(), MFSD_DummySink::afterGettingFrame1(), DummySink::continuePlaying(), MFSD_DummySink::continuePlaying(), FileSink::continuePlaying(), BasicUDPSink::continuePlaying1(), processBuffer(), and MultiFramedRTPSink::sendPacketIfNecessary().
00092 { 00093 MediaSink* sink = (MediaSink*)clientData; 00094 sink->fSource = NULL; // indicates that we can be played again 00095 if (sink->fAfterFunc != NULL) { 00096 (*(sink->fAfterFunc))(sink->fAfterClientData); 00097 } 00098 }
| 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::~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(), 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(), 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(), 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::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(), 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] |
unsigned char TCPStreamSink::fBuffer[TCP_STREAM_SINK_BUFFER_SIZE] [private] |
unsigned TCPStreamSink::fUnwrittenBytesStart [private] |
Definition at line 62 of file TCPStreamSink.hh.
Referenced by numUnwrittenBytes(), and processBuffer().
unsigned TCPStreamSink::fUnwrittenBytesEnd [private] |
Definition at line 62 of file TCPStreamSink.hh.
Referenced by afterGettingFrame(), freeBufferSpace(), numUnwrittenBytes(), and processBuffer().
Boolean TCPStreamSink::fInputSourceIsOpen [private] |
Definition at line 63 of file TCPStreamSink.hh.
Referenced by continuePlaying(), ourOnSourceClosure1(), and processBuffer().
Definition at line 63 of file TCPStreamSink.hh.
Referenced by processBuffer(), and socketWritableHandler1().
int TCPStreamSink::fOutputSocketNum [private] |
Definition at line 64 of file TCPStreamSink.hh.
Referenced by processBuffer(), and socketWritableHandler1().
FramedSource* MediaSink::fSource [protected, inherited] |
Definition at line 57 of file MediaSink.hh.
Referenced by FileSink::afterGettingFrame(), AMRAudioFileSink::afterGettingFrame(), MPEG4ESVideoRTPSink::auxSDPLine(), DVVideoRTPSink::auxSDPLine(), DummySink::continuePlaying(), continuePlaying(), T140TextRTPSink::continuePlaying(), MFSD_DummySink::continuePlaying(), H264VideoRTPSink::continuePlaying(), FileSink::continuePlaying(), BasicUDPSink::continuePlaying1(), MPEG4ESVideoRTPSink::doSpecialFrameHandling(), MPEG1or2VideoRTPSink::doSpecialFrameHandling(), JPEGVideoRTPSink::doSpecialFrameHandling(), AMRAudioRTPSink::doSpecialFrameHandling(), MediaSink::onSourceClosure(), MultiFramedRTPSink::packFrame(), processBuffer(), MediaSink::source(), JPEGVideoRTPSink::specialHeaderSize(), MediaSink::startPlaying(), MediaSink::stopPlaying(), H264VideoRTPSink::~H264VideoRTPSink(), and T140TextRTPSink::~T140TextRTPSink().
1.5.2