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


Public Types | |
| typedef void( | afterGettingFunc )(void *clientData, unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds) |
| typedef void( | onCloseFunc )(void *clientData) |
Public Member Functions | |
| unsigned | numPCMBytes () const |
| void | setScaleFactor (int scale) |
| void | seekToPCMByte (unsigned byteNumber, unsigned numBytesToStream) |
| unsigned char | getAudioFormat () |
| unsigned char | bitsPerSample () const |
| unsigned char | numChannels () const |
| unsigned | samplingFrequency () const |
| void | getNextFrame (unsigned char *to, unsigned maxSize, afterGettingFunc *afterGettingFunc, void *afterGettingClientData, onCloseFunc *onCloseFunc, void *onCloseClientData) |
| void | stopGettingFrames () |
| virtual unsigned | maxFrameSize () const |
| Boolean | isCurrentlyAwaitingData () const |
| virtual void | getAttributes () const |
| virtual char const * | MIMEtype () const |
| virtual Boolean | isRTPSource () const |
| virtual Boolean | isMPEG1or2VideoStreamFramer () const |
| virtual Boolean | isMPEG4VideoStreamFramer () const |
| virtual Boolean | isH264VideoStreamFramer () const |
| virtual Boolean | isDVVideoStreamFramer () const |
| virtual Boolean | isJPEGVideoSource () const |
| virtual Boolean | isAMRAudioSource () const |
| UsageEnvironment & | envir () const |
| char const * | name () 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 WAVAudioFileSource * | createNew (UsageEnvironment &env, char const *fileName) |
| static AudioInputDevice * | createNew (UsageEnvironment &env, int inputPortNumber, unsigned char bitsPerSample, unsigned char numChannels, unsigned samplingFrequency, unsigned granularityInMS=20) |
| static AudioPortNames * | getPortNames () |
| static Boolean | lookupByName (UsageEnvironment &env, char const *sourceName, FramedSource *&resultSource) |
| static Boolean | lookupByName (UsageEnvironment &env, char const *sourceName, MediaSource *&resultSource) |
| static Boolean | lookupByName (UsageEnvironment &env, char const *mediumName, Medium *&resultMedium) |
| static void | handleClosure (void *clientData) |
| static void | afterGetting (FramedSource *source) |
| static void | close (UsageEnvironment &env, char const *mediumName) |
| static void | close (Medium *medium) |
Static Public Attributes | |
| static char ** | allowedDeviceNames = NULL |
Protected Member Functions | |
| WAVAudioFileSource (UsageEnvironment &env, FILE *fid) | |
| virtual | ~WAVAudioFileSource () |
| virtual void | doStopGettingFrames () |
| TaskToken & | nextTask () |
Protected Attributes | |
| unsigned char | fBitsPerSample |
| unsigned char | fNumChannels |
| unsigned | fSamplingFrequency |
| unsigned | fGranularityInMS |
| unsigned char * | fTo |
| unsigned | fMaxSize |
| unsigned | fFrameSize |
| unsigned | fNumTruncatedBytes |
| timeval | fPresentationTime |
| unsigned | fDurationInMicroseconds |
Private Member Functions | |
| virtual void | doGetNextFrame () |
| virtual Boolean | setInputPort (int portIndex) |
| virtual double | getAverageLevel () const |
Private Attributes | |
| FILE * | fFid |
| double | fPlayTimePerSample |
| unsigned | fPreferredFrameSize |
| unsigned | fLastPlayTime |
| unsigned | fWAVHeaderSize |
| unsigned | fFileSize |
| int | fScaleFactor |
| Boolean | fLimitNumBytesToStream |
| unsigned | fNumBytesToStream |
| unsigned char | fAudioFormat |
Friends | |
| class | MediaLookupTable |
Definition at line 39 of file WAVAudioFileSource.hh.
typedef void( FramedSource::afterGettingFunc)(void *clientData, unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds) [inherited] |
Definition at line 36 of file FramedSource.hh.
typedef void( FramedSource::onCloseFunc)(void *clientData) [inherited] |
Definition at line 40 of file FramedSource.hh.
| WAVAudioFileSource::WAVAudioFileSource | ( | UsageEnvironment & | env, | |
| FILE * | fid | |||
| ) | [protected] |
Definition at line 105 of file WAVAudioFileSource.cpp.
References AudioInputDevice::bitsPerSample(), env, False, fAudioFormat, AudioInputDevice::fBitsPerSample, AudioInputDevice::fNumChannels, fPlayTimePerSample, fPreferredFrameSize, AudioInputDevice::fSamplingFrequency, fWAVHeaderSize, get2Bytes(), get4Bytes(), nextc, AudioInputDevice::numChannels(), UsageEnvironment::setResultMsg(), skipBytes(), TellFile64(), True, WA_IMA_ADPCM, WA_PCM, WA_PCMA, and WA_PCMU.
Referenced by createNew().
00106 : AudioInputDevice(env, 0, 0, 0, 0)/* set the real parameters later */, 00107 fFid(fid), fLastPlayTime(0), fWAVHeaderSize(0), fFileSize(0), fScaleFactor(1), 00108 fLimitNumBytesToStream(False), fNumBytesToStream(0), fAudioFormat(WA_UNKNOWN) { 00109 // Check the WAV file header for validity. 00110 // Note: The following web pages contain info about the WAV format: 00111 // http://www.ringthis.com/dev/wave_format.htm 00112 // http://www.lightlink.com/tjweber/StripWav/Canon.html 00113 // http://www.wotsit.org/list.asp?al=W 00114 00115 Boolean success = False; // until we learn otherwise 00116 do { 00117 // RIFF Chunk: 00118 if (nextc != 'R' || nextc != 'I' || nextc != 'F' || nextc != 'F') break; 00119 if (!skipBytes(fid, 4)) break; 00120 if (nextc != 'W' || nextc != 'A' || nextc != 'V' || nextc != 'E') break; 00121 00122 // FORMAT Chunk: 00123 if (nextc != 'f' || nextc != 'm' || nextc != 't' || nextc != ' ') break; 00124 unsigned formatLength; 00125 if (!get4Bytes(fid, formatLength)) break; 00126 unsigned short audioFormat; 00127 if (!get2Bytes(fid, audioFormat)) break; 00128 00129 fAudioFormat = (unsigned char)audioFormat; 00130 if (fAudioFormat != WA_PCM && fAudioFormat != WA_PCMA && fAudioFormat != WA_PCMU && fAudioFormat != WA_IMA_ADPCM) { 00131 // It's a format that we don't (yet) understand 00132 env.setResultMsg("Audio format is not one that we handle (PCM/PCMU/PCMA or IMA ADPCM)"); 00133 break; 00134 } 00135 unsigned short numChannels; 00136 if (!get2Bytes(fid, numChannels)) break; 00137 fNumChannels = (unsigned char)numChannels; 00138 if (fNumChannels < 1 || fNumChannels > 2) { // invalid # channels 00139 char errMsg[100]; 00140 sprintf(errMsg, "Bad # channels: %d", fNumChannels); 00141 env.setResultMsg(errMsg); 00142 break; 00143 } 00144 if (!get4Bytes(fid, fSamplingFrequency)) break; 00145 if (fSamplingFrequency == 0) { 00146 env.setResultMsg("Bad sampling frequency: 0"); 00147 break; 00148 } 00149 if (!skipBytes(fid, 6)) break; // "nAvgBytesPerSec" (4 bytes) + "nBlockAlign" (2 bytes) 00150 unsigned short bitsPerSample; 00151 if (!get2Bytes(fid, bitsPerSample)) break; 00152 fBitsPerSample = (unsigned char)bitsPerSample; 00153 if (fBitsPerSample == 0) { 00154 env.setResultMsg("Bad bits-per-sample: 0"); 00155 break; 00156 } 00157 if (!skipBytes(fid, formatLength - 16)) break; 00158 00159 // FACT chunk (optional): 00160 int c = nextc; 00161 if (c == 'f') { 00162 if (nextc != 'a' || nextc != 'c' || nextc != 't') break; 00163 unsigned factLength; 00164 if (!get4Bytes(fid, factLength)) break; 00165 if (!skipBytes(fid, factLength)) break; 00166 c = nextc; 00167 } 00168 00169 // DATA Chunk: 00170 if (c != 'd' || nextc != 'a' || nextc != 't' || nextc != 'a') break; 00171 if (!skipBytes(fid, 4)) break; 00172 00173 // The header is good; the remaining data are the sample bytes. 00174 fWAVHeaderSize = (unsigned)TellFile64(fid); 00175 success = True; 00176 } while (0); 00177 00178 if (!success) { 00179 env.setResultMsg("Bad WAV file format"); 00180 // Set "fBitsPerSample" to zero, to indicate failure: 00181 fBitsPerSample = 0; 00182 return; 00183 } 00184 00185 fPlayTimePerSample = 1e6/(double)fSamplingFrequency; 00186 00187 // Although PCM is a sample-based format, we group samples into 00188 // 'frames' for efficient delivery to clients. Set up our preferred 00189 // frame size to be close to 20 ms, if possible, but always no greater 00190 // than 1400 bytes (to ensure that it will fit in a single RTP packet) 00191 unsigned maxSamplesPerFrame = (1400*8)/(fNumChannels*fBitsPerSample); 00192 unsigned desiredSamplesPerFrame = (unsigned)(0.02*fSamplingFrequency); 00193 unsigned samplesPerFrame = desiredSamplesPerFrame < maxSamplesPerFrame ? desiredSamplesPerFrame : maxSamplesPerFrame; 00194 fPreferredFrameSize = (samplesPerFrame*fNumChannels*fBitsPerSample)/8; 00195 }
| WAVAudioFileSource::~WAVAudioFileSource | ( | ) | [protected, virtual] |
Definition at line 197 of file WAVAudioFileSource.cpp.
References CloseInputFile(), and fFid.
00197 { 00198 CloseInputFile(fFid); 00199 }
| WAVAudioFileSource * WAVAudioFileSource::createNew | ( | UsageEnvironment & | env, | |
| char const * | fileName | |||
| ) | [static] |
Definition at line 28 of file WAVAudioFileSource.cpp.
References AudioInputDevice::bitsPerSample(), Medium::close(), env, fFileSize, GetFileSize(), NULL, OpenInputFile(), and WAVAudioFileSource().
Referenced by WAVAudioFileServerMediaSubsession::createNewStreamSource().
00028 { 00029 do { 00030 FILE* fid = OpenInputFile(env, fileName); 00031 if (fid == NULL) break; 00032 00033 WAVAudioFileSource* newSource = new WAVAudioFileSource(env, fid); 00034 if (newSource != NULL && newSource->bitsPerSample() == 0) { 00035 // The WAV file header was apparently invalid. 00036 Medium::close(newSource); 00037 break; 00038 } 00039 00040 newSource->fFileSize = (unsigned)GetFileSize(fileName, fid); 00041 00042 return newSource; 00043 } while (0); 00044 00045 return NULL; 00046 }
| unsigned WAVAudioFileSource::numPCMBytes | ( | ) | const |
Definition at line 48 of file WAVAudioFileSource.cpp.
References fFileSize, and fWAVHeaderSize.
Referenced by WAVAudioFileServerMediaSubsession::createNewStreamSource().
00048 { 00049 if (fFileSize < fWAVHeaderSize) return 0; 00050 return fFileSize - fWAVHeaderSize; 00051 }
| void WAVAudioFileSource::setScaleFactor | ( | int | scale | ) |
Definition at line 53 of file WAVAudioFileSource.cpp.
References AudioInputDevice::fBitsPerSample, fFid, AudioInputDevice::fNumChannels, fScaleFactor, SeekFile64(), and TellFile64().
Referenced by WAVAudioFileServerMediaSubsession::setStreamSourceScale().
00053 { 00054 fScaleFactor = scale; 00055 00056 if (fScaleFactor < 0 && TellFile64(fFid) > 0) { 00057 // Because we're reading backwards, seek back one sample, to ensure that 00058 // (i) we start reading the last sample before the start point, and 00059 // (ii) we don't hit end-of-file on the first read. 00060 int bytesPerSample = (fNumChannels*fBitsPerSample)/8; 00061 if (bytesPerSample == 0) bytesPerSample = 1; 00062 SeekFile64(fFid, -bytesPerSample, SEEK_CUR); 00063 } 00064 }
| void WAVAudioFileSource::seekToPCMByte | ( | unsigned | byteNumber, | |
| unsigned | numBytesToStream | |||
| ) |
Definition at line 66 of file WAVAudioFileSource.cpp.
References fFid, fFileSize, fLimitNumBytesToStream, fNumBytesToStream, fWAVHeaderSize, and SeekFile64().
Referenced by WAVAudioFileServerMediaSubsession::seekStreamSource().
00066 { 00067 byteNumber += fWAVHeaderSize; 00068 if (byteNumber > fFileSize) byteNumber = fFileSize; 00069 00070 SeekFile64(fFid, byteNumber, SEEK_SET); 00071 00072 fNumBytesToStream = numBytesToStream; 00073 fLimitNumBytesToStream = fNumBytesToStream > 0; 00074 }
| unsigned char WAVAudioFileSource::getAudioFormat | ( | ) |
Definition at line 76 of file WAVAudioFileSource.cpp.
References fAudioFormat.
Referenced by WAVAudioFileServerMediaSubsession::createNewStreamSource().
00076 { 00077 return fAudioFormat; 00078 }
| void WAVAudioFileSource::doGetNextFrame | ( | ) | [private, virtual] |
Implements FramedSource.
Definition at line 203 of file WAVAudioFileSource.cpp.
References FramedSource::afterGetting(), Medium::envir(), AudioInputDevice::fBitsPerSample, FramedSource::fDurationInMicroseconds, fFid, FramedSource::fFrameSize, fLastPlayTime, fLimitNumBytesToStream, FramedSource::fMaxSize, fNumBytesToStream, AudioInputDevice::fNumChannels, fPlayTimePerSample, fPreferredFrameSize, FramedSource::fPresentationTime, fScaleFactor, FramedSource::fTo, FramedSource::handleClosure(), Medium::nextTask(), NULL, TaskScheduler::scheduleDelayedTask(), SeekFile64(), and UsageEnvironment::taskScheduler().
00203 { 00204 if (feof(fFid) || ferror(fFid) || (fLimitNumBytesToStream && fNumBytesToStream == 0)) { 00205 handleClosure(this); 00206 return; 00207 } 00208 00209 // Try to read as many bytes as will fit in the buffer provided (or "fPreferredFrameSize" if less) 00210 if (fLimitNumBytesToStream && fNumBytesToStream < fMaxSize) { 00211 fMaxSize = fNumBytesToStream; 00212 } 00213 if (fPreferredFrameSize < fMaxSize) { 00214 fMaxSize = fPreferredFrameSize; 00215 } 00216 unsigned bytesPerSample = (fNumChannels*fBitsPerSample)/8; 00217 if (bytesPerSample == 0) bytesPerSample = 1; // because we can't read less than a byte at a time 00218 unsigned bytesToRead = fMaxSize - fMaxSize%bytesPerSample; 00219 if (fScaleFactor == 1) { 00220 // Common case - read samples in bulk: 00221 fFrameSize = fread(fTo, 1, bytesToRead, fFid); 00222 fNumBytesToStream -= fFrameSize; 00223 } else { 00224 // We read every 'fScaleFactor'th sample: 00225 fFrameSize = 0; 00226 while (bytesToRead > 0) { 00227 size_t bytesRead = fread(fTo, 1, bytesPerSample, fFid); 00228 if (bytesRead <= 0) break; 00229 fTo += bytesRead; 00230 fFrameSize += bytesRead; 00231 fNumBytesToStream -= bytesRead; 00232 bytesToRead -= bytesRead; 00233 00234 // Seek to the appropriate place for the next sample: 00235 SeekFile64(fFid, (fScaleFactor-1)*bytesPerSample, SEEK_CUR); 00236 } 00237 } 00238 00239 // Set the 'presentation time' and 'duration' of this frame: 00240 if (fPresentationTime.tv_sec == 0 && fPresentationTime.tv_usec == 0) { 00241 // This is the first frame, so use the current time: 00242 gettimeofday(&fPresentationTime, NULL); 00243 } else { 00244 // Increment by the play time of the previous data: 00245 unsigned uSeconds = fPresentationTime.tv_usec + fLastPlayTime; 00246 fPresentationTime.tv_sec += uSeconds/1000000; 00247 fPresentationTime.tv_usec = uSeconds%1000000; 00248 } 00249 00250 // Remember the play time of this data: 00251 fDurationInMicroseconds = fLastPlayTime 00252 = (unsigned)((fPlayTimePerSample*fFrameSize)/bytesPerSample); 00253 00254 // Switch to another task, and inform the reader that he has data: 00255 #if defined(__WIN32__) || defined(_WIN32) 00256 // HACK: One of our applications that uses this source uses an 00257 // implementation of scheduleDelayedTask() that performs very badly 00258 // (chewing up lots of CPU time, apparently polling) on Windows. 00259 // Until this is fixed, we just call our "afterGetting()" function 00260 // directly. This avoids infinite recursion, as long as our sink 00261 // is discontinuous, which is the case for the RTP sink that 00262 // this application uses. ##### 00263 afterGetting(this); 00264 #else 00265 nextTask() = envir().taskScheduler().scheduleDelayedTask(0, 00266 (TaskFunc*)FramedSource::afterGetting, this); 00267 #endif 00268 }
| Boolean WAVAudioFileSource::setInputPort | ( | int | portIndex | ) | [private, virtual] |
Implements AudioInputDevice.
Definition at line 270 of file WAVAudioFileSource.cpp.
References True.
00270 { 00271 return True; 00272 }
| double WAVAudioFileSource::getAverageLevel | ( | ) | const [private, virtual] |
| unsigned char AudioInputDevice::bitsPerSample | ( | ) | const [inline, inherited] |
Definition at line 38 of file AudioInputDevice.hh.
References AudioInputDevice::fBitsPerSample.
Referenced by createNew(), WAVAudioFileServerMediaSubsession::createNewStreamSource(), and WAVAudioFileSource().
00038 { return fBitsPerSample; }
| unsigned char AudioInputDevice::numChannels | ( | ) | const [inline, inherited] |
Definition at line 39 of file AudioInputDevice.hh.
References AudioInputDevice::fNumChannels.
Referenced by WAVAudioFileServerMediaSubsession::createNewStreamSource(), and WAVAudioFileSource().
00039 { return fNumChannels; }
| unsigned AudioInputDevice::samplingFrequency | ( | ) | const [inline, inherited] |
Definition at line 40 of file AudioInputDevice.hh.
References AudioInputDevice::fSamplingFrequency.
Referenced by WAVAudioFileServerMediaSubsession::createNewStreamSource().
00040 { return fSamplingFrequency; }
| static AudioInputDevice* AudioInputDevice::createNew | ( | UsageEnvironment & | env, | |
| int | inputPortNumber, | |||
| unsigned char | bitsPerSample, | |||
| unsigned char | numChannels, | |||
| unsigned | samplingFrequency, | |||
| unsigned | granularityInMS = 20 | |||
| ) | [static, inherited] |
| static AudioPortNames* AudioInputDevice::getPortNames | ( | ) | [static, inherited] |
| Boolean FramedSource::lookupByName | ( | UsageEnvironment & | env, | |
| char const * | sourceName, | |||
| FramedSource *& | resultSource | |||
| ) | [static, inherited] |
Definition at line 41 of file FramedSource.cpp.
References env, False, MediaSource::isFramedSource(), MediaSource::lookupByName(), NULL, and True.
Referenced by MP3ADUinterleaverBase::getInputSource().
00042 { 00043 resultSource = NULL; // unless we succeed 00044 00045 MediaSource* source; 00046 if (!MediaSource::lookupByName(env, sourceName, source)) return False; 00047 00048 if (!source->isFramedSource()) { 00049 env.setResultMsg(sourceName, " is not a framed source"); 00050 return False; 00051 } 00052 00053 resultSource = (FramedSource*)source; 00054 return True; 00055 }
| Boolean MediaSource::lookupByName | ( | UsageEnvironment & | env, | |
| char const * | sourceName, | |||
| MediaSource *& | resultSource | |||
| ) | [static, inherited] |
Definition at line 65 of file MediaSource.cpp.
References env, False, Medium::isSource(), Medium::lookupByName(), NULL, and True.
Referenced by RTPSource::lookupByName(), and FramedSource::lookupByName().
00067 { 00068 resultSource = NULL; // unless we succeed 00069 00070 Medium* medium; 00071 if (!Medium::lookupByName(env, sourceName, medium)) return False; 00072 00073 if (!medium->isSource()) { 00074 env.setResultMsg(sourceName, " is not a media source"); 00075 return False; 00076 } 00077 00078 resultSource = (MediaSource*)medium; 00079 return True; 00080 }
| 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 FramedSource::getNextFrame | ( | unsigned char * | to, | |
| unsigned | maxSize, | |||
| afterGettingFunc * | afterGettingFunc, | |||
| void * | afterGettingClientData, | |||
| onCloseFunc * | onCloseFunc, | |||
| void * | onCloseClientData | |||
| ) | [inherited] |
Definition at line 57 of file FramedSource.cpp.
References FramedSource::doGetNextFrame(), Medium::envir(), FramedSource::fAfterGettingClientData, FramedSource::fAfterGettingFunc, FramedSource::fDurationInMicroseconds, FramedSource::fIsCurrentlyAwaitingData, FramedSource::fMaxSize, FramedSource::fNumTruncatedBytes, FramedSource::fOnCloseClientData, FramedSource::fOnCloseFunc, FramedSource::fTo, UsageEnvironment::internalError(), and True.
Referenced by MPEG2TransportStreamFramer::afterGettingFrame1(), InputESSourceRecord::askForNewData(), MPEG2TransportStreamFromPESSource::awaitNewBuffer(), DummySink::continuePlaying(), QuickTimeFileSink::continuePlaying(), MFSD_DummySink::continuePlaying(), FileSink::continuePlaying(), AVIFileSink::continuePlaying(), BasicUDPSink::continuePlaying1(), StreamReplicator::deactivateStreamReplica(), StreamReplicator::deliverReceivedFrame(), EndianSwap16::doGetNextFrame(), HostFromNetworkOrder16::doGetNextFrame(), NetworkFromHostOrder16::doGetNextFrame(), PCMFromuLawAudioSource::doGetNextFrame(), uLawFromPCMAudioSource::doGetNextFrame(), T140IdleFilter::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), MPEG4VideoStreamDiscreteFramer::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG2IFrameIndexFromTransportStream::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MP3ADUTranscoder::doGetNextFrame(), MP3ADUdeinterleaver::doGetNextFrame(), MP3ADUinterleaver::doGetNextFrame(), H264VideoStreamDiscreteFramer::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), SegmentQueue::enqueueNewSegment(), StreamParser::ensureValidBytes1(), DVVideoStreamFramer::getAndDeliverData(), StreamReplicator::getNextFrame(), DVVideoStreamFramer::getProfile(), MultiFramedRTPSink::packFrame(), TCPStreamSink::processBuffer(), AC3AudioStreamParser::readAndSaveAFrame(), and MPEG2TransportStreamTrickModeFilter::readTransportPacket().
00061 { 00062 // Make sure we're not already being read: 00063 if (fIsCurrentlyAwaitingData) { 00064 envir() << "FramedSource[" << this << "]::getNextFrame(): attempting to read more than once at the same time!\n"; 00065 envir().internalError(); 00066 } 00067 00068 fTo = to; 00069 fMaxSize = maxSize; 00070 fNumTruncatedBytes = 0; // by default; could be changed by doGetNextFrame() 00071 fDurationInMicroseconds = 0; // by default; could be changed by doGetNextFrame() 00072 fAfterGettingFunc = afterGettingFunc; 00073 fAfterGettingClientData = afterGettingClientData; 00074 fOnCloseFunc = onCloseFunc; 00075 fOnCloseClientData = onCloseClientData; 00076 fIsCurrentlyAwaitingData = True; 00077 00078 doGetNextFrame(); 00079 }
| void FramedSource::handleClosure | ( | void * | clientData | ) | [static, inherited] |
Definition at line 95 of file FramedSource.cpp.
References False, FramedSource::fIsCurrentlyAwaitingData, FramedSource::fOnCloseClientData, FramedSource::fOnCloseFunc, and NULL.
Referenced by MPEG2TransportStreamFramer::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), InputESSourceRecord::askForNewData(), MPEG2TransportStreamFromPESSource::awaitNewBuffer(), doGetNextFrame(), EndianSwap16::doGetNextFrame(), HostFromNetworkOrder16::doGetNextFrame(), NetworkFromHostOrder16::doGetNextFrame(), PCMFromuLawAudioSource::doGetNextFrame(), uLawFromPCMAudioSource::doGetNextFrame(), T140IdleFilter::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), MPEG4VideoStreamDiscreteFramer::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MPEG1or2DemuxedElementaryStream::doGetNextFrame(), MP3FileSource::doGetNextFrame(), MP3ADUTranscoder::doGetNextFrame(), MP3ADUdeinterleaver::doGetNextFrame(), MP3ADUinterleaver::doGetNextFrame(), ADUFromMP3Source::doGetNextFrame(), H264VideoStreamDiscreteFramer::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), DeviceSource::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), ByteStreamFileSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), ByteStreamFileSource::doReadFromFile(), SegmentQueue::enqueueNewSegment(), DVVideoStreamFramer::getAndDeliverData(), StreamReplicator::getNextFrame(), DVVideoStreamFramer::getProfile(), MatroskaDemux::handleEndOfFile(), MPEG2IFrameIndexFromTransportStream::handleInputClosure1(), StreamReplicator::onSourceClosure(), and MPEG2TransportStreamTrickModeFilter::onSourceClosure1().
00095 { 00096 FramedSource* source = (FramedSource*)clientData; 00097 source->fIsCurrentlyAwaitingData = False; // because we got a close instead 00098 if (source->fOnCloseFunc != NULL) { 00099 (*(source->fOnCloseFunc))(source->fOnCloseClientData); 00100 } 00101 }
| void FramedSource::stopGettingFrames | ( | ) | [inherited] |
Definition at line 103 of file FramedSource.cpp.
References FramedSource::doStopGettingFrames(), False, and FramedSource::fIsCurrentlyAwaitingData.
Referenced by StreamReplicator::deactivateStreamReplica(), QCELPDeinterleaver::doStopGettingFrames(), MPEG2TransportStreamFromPESSource::doStopGettingFrames(), FramedFilter::doStopGettingFrames(), AMRDeinterleaver::doStopGettingFrames(), and MediaSink::stopPlaying().
00103 { 00104 fIsCurrentlyAwaitingData = False; // indicates that we can be read again 00105 00106 // Perform any specialized action now: 00107 doStopGettingFrames(); 00108 }
| unsigned FramedSource::maxFrameSize | ( | ) | const [virtual, inherited] |
Reimplemented in MPEG1or2DemuxedElementaryStream.
Definition at line 116 of file FramedSource.cpp.
Referenced by StreamParser::ensureValidBytes1().
| Boolean FramedSource::isCurrentlyAwaitingData | ( | ) | const [inline, inherited] |
Definition at line 60 of file FramedSource.hh.
References FramedSource::fIsCurrentlyAwaitingData.
Referenced by T140IdleFilter::afterGettingFrame(), afterPlaying(), InputESSourceRecord::askForNewData(), MPEG2TransportStreamFromESSource::awaitNewBuffer(), MatroskaFileParser::continueParsing(), QuickTimeFileSink::continuePlaying(), AVIFileSink::continuePlaying(), StreamReplicator::deactivateStreamReplica(), DeviceSource::deliverFrame(), MatroskaFileParser::deliverFrameWithinBlock(), T140IdleFilter::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), ByteStreamFileSource::fileReadableHandler(), StreamReplicator::getNextFrame(), BasicUDPSource::incomingPacketHandler1(), and TCPStreamSink::processBuffer().
00060 {return fIsCurrentlyAwaitingData;}
| void FramedSource::afterGetting | ( | FramedSource * | source | ) | [static, inherited] |
Definition at line 81 of file FramedSource.cpp.
References FramedSource::fAfterGettingClientData, FramedSource::fAfterGettingFunc, False, FramedSource::fDurationInMicroseconds, FramedSource::fFrameSize, FramedSource::fIsCurrentlyAwaitingData, FramedSource::fNumTruncatedBytes, FramedSource::fPresentationTime, and NULL.
Referenced by ByteStreamMultiFileSource::afterGettingFrame(), EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264VideoStreamDiscreteFramer::afterGettingFrame1(), MPEG2TransportStreamTrickModeFilter::attemptDeliveryToClient(), MPEGVideoStreamFramer::continueReadProcessing(), MPEG1or2AudioStreamFramer::continueReadProcessing(), H263plusVideoStreamFramer::continueReadProcessing(), T140IdleFilter::deliverEmptyFrame(), DeviceSource::deliverFrame(), MatroskaFileParser::deliverFrameBytes(), T140IdleFilter::deliverFromBuffer(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), StreamReplicator::deliverReceivedFrame(), doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), MPEG2TransportStreamTrickModeFilter::doGetNextFrame(), MPEG2TransportStreamMultiplexor::doGetNextFrame(), MP3FileSource::doGetNextFrame(), MP3ADUdeinterleaver::doGetNextFrame(), MP3ADUinterleaver::doGetNextFrame(), MP3FromADUSource::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), ByteStreamFileSource::doReadFromFile(), BasicUDPSource::incomingPacketHandler1(), and AC3AudioStreamFramer::parseNextFrame().
00081 { 00082 source->fIsCurrentlyAwaitingData = False; 00083 // indicates that we can be read again 00084 // Note that this needs to be done here, in case the "fAfterFunc" 00085 // called below tries to read another frame (which it usually will) 00086 00087 if (source->fAfterGettingFunc != NULL) { 00088 (*(source->fAfterGettingFunc))(source->fAfterGettingClientData, 00089 source->fFrameSize, source->fNumTruncatedBytes, 00090 source->fPresentationTime, 00091 source->fDurationInMicroseconds); 00092 } 00093 }
| void FramedSource::doStopGettingFrames | ( | ) | [protected, virtual, inherited] |
Reimplemented in AMRDeinterleaver, BasicUDPSource, ByteStreamFileSource, FramedFilter, MPEG1or2DemuxedElementaryStream, MPEG2TransportStreamFramer, MPEG2TransportStreamFromESSource, MPEG2TransportStreamFromPESSource, MPEG2TransportStreamTrickModeFilter, MultiFramedRTPSource, T140IdleFilter, QCELPDeinterleaver, and StreamReplica.
Definition at line 110 of file FramedSource.cpp.
Referenced by FramedSource::stopGettingFrames().
00110 { 00111 // Default implementation: Do nothing 00112 // Subclasses may wish to specialize this so as to ensure that a 00113 // subsequent reader can pick up where this one left off. 00114 }
| void MediaSource::getAttributes | ( | ) | const [virtual, inherited] |
Reimplemented in FramedFilter, MP3ADUTranscoder, MP3FileSource, and RTPSource.
Definition at line 82 of file MediaSource.cpp.
References Medium::envir(), and UsageEnvironment::setResultMsg().
Referenced by MP3ADUTranscoder::getAttributes(), and FramedFilter::getAttributes().
00082 { 00083 // Default implementation 00084 envir().setResultMsg(""); 00085 }
| char const * MediaSource::MIMEtype | ( | ) | const [virtual, inherited] |
Reimplemented in RawAMRRTPSource, AC3AudioRTPSource, AMRAudioSource, DVVideoRTPSource, FramedFilter, H261VideoRTPSource, H263plusVideoRTPSource, H264VideoRTPSource, JPEGVideoRTPSource, ADUFromMP3Source, MP3FromADUSource, MP3ADURTPSource, MP3FileSource, MPEG1or2AudioRTPSource, MPEG1or2DemuxedElementaryStream, MPEG1or2VideoRTPSource, MPEG4ESVideoRTPSource, MPEG4GenericRTPSource, MPEG4LATMAudioRTPSource, QuickTimeGenericRTPSource, SimpleRTPSource, VorbisAudioRTPSource, VP8VideoRTPSource, MatroskaDemuxedTrack, and RawQCELPRTPSource.
Definition at line 36 of file MediaSource.cpp.
Referenced by MP3ADUTranscoder::createNew(), MP3FromADUSource::createNew(), ADUFromMP3Source::createNew(), MP3ADUinterleaverBase::getInputSource(), MediaSession::initiateByMediaType(), SimpleRTPSource::MIMEtype(), QuickTimeGenericRTPSource::MIMEtype(), FramedFilter::MIMEtype(), and MPEG1or2DemuxedElementaryStream::MPEG1or2DemuxedElementaryStream().
| Boolean MediaSource::isRTPSource | ( | ) | const [virtual, inherited] |
Reimplemented in RTPSource.
Definition at line 43 of file MediaSource.cpp.
References False.
Referenced by RTPSource::lookupByName().
00043 { 00044 return False; // default implementation 00045 }
| Boolean MediaSource::isMPEG1or2VideoStreamFramer | ( | ) | const [virtual, inherited] |
Reimplemented in MPEG1or2VideoStreamFramer.
Definition at line 46 of file MediaSource.cpp.
References False.
Referenced by MPEG1or2VideoRTPSink::sourceIsCompatibleWithUs().
00046 { 00047 return False; // default implementation 00048 }
| Boolean MediaSource::isMPEG4VideoStreamFramer | ( | ) | const [virtual, inherited] |
Reimplemented in MPEG4VideoStreamFramer.
Definition at line 49 of file MediaSource.cpp.
References False.
Referenced by MPEG4ESVideoRTPSink::sourceIsCompatibleWithUs().
00049 { 00050 return False; // default implementation 00051 }
| Boolean MediaSource::isH264VideoStreamFramer | ( | ) | const [virtual, inherited] |
Reimplemented in H264VideoStreamFramer.
Definition at line 52 of file MediaSource.cpp.
References False.
Referenced by H264VideoRTPSink::sourceIsCompatibleWithUs().
00052 { 00053 return False; // default implementation 00054 }
| Boolean MediaSource::isDVVideoStreamFramer | ( | ) | const [virtual, inherited] |
Reimplemented in DVVideoStreamFramer.
Definition at line 55 of file MediaSource.cpp.
References False.
Referenced by DVVideoRTPSink::sourceIsCompatibleWithUs().
00055 { 00056 return False; // default implementation 00057 }
| Boolean MediaSource::isJPEGVideoSource | ( | ) | const [virtual, inherited] |
Reimplemented in JPEGVideoSource.
Definition at line 58 of file MediaSource.cpp.
References False.
Referenced by JPEGVideoRTPSink::sourceIsCompatibleWithUs().
00058 { 00059 return False; // default implementation 00060 }
| Boolean MediaSource::isAMRAudioSource | ( | ) | const [virtual, inherited] |
Reimplemented in AMRAudioSource.
Definition at line 61 of file MediaSource.cpp.
References False.
Referenced by AMRAudioRTPSink::sourceIsCompatibleWithUs(), and AMRAudioFileSink::sourceIsCompatibleWithUs().
00061 { 00062 return False; // default implementation 00063 }
| 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(), createNew(), QuickTimeFileSink::createNew(), QCELPAudioRTPSource::createNew(), MP3HTTPSource::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(), T140TextRTPSink::stopPlaying(), H264VideoRTPSink::stopPlaying(), subsessionAfterPlaying(), ClientTrickPlayState::updateStateOnScaleChange(), AMRDeinterleaver::~AMRDeinterleaver(), ByteStreamMultiFileSource::~ByteStreamMultiFileSource(), DarwinInjector::~DarwinInjector(), FramedFilter::~FramedFilter(), InputESSourceRecord::~InputESSourceRecord(), MatroskaFileParser::~MatroskaFileParser(), MatroskaFileServerDemux::~MatroskaFileServerDemux(), MPEG1or2Demux::~MPEG1or2Demux(), MPEG1or2FileServerDemux::~MPEG1or2FileServerDemux(), MPEG2TransportFileServerMediaSubsession::~MPEG2TransportFileServerMediaSubsession(), MPEG2TransportStreamFromPESSource::~MPEG2TransportStreamFromPESSource(), RTSPServerSupportingHTTPStreaming::RTSPClientSessionSupportingHTTPStreaming::~RTSPClientSessionSupportingHTTPStreaming(), ServerMediaSession::~ServerMediaSession(), ServerMediaSubsession::~ServerMediaSubsession(), StreamClientState::~StreamClientState(), and StreamReplicator::~StreamReplicator().
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(), T140IdleFilter::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(), MPEG2IFrameIndexFromTransportStream::compactParseBuffer(), RTSPClient::connectionHandler1(), RTSPClient::connectToServer(), T140TextRTPSink::continuePlaying(), QuickTimeFileSink::continuePlaying(), H264VideoRTPSink::continuePlaying(), AVIFileSink::continuePlaying(), VP8VideoMatroskaFileServerMediaSubsession::createNewRTPSink(), VorbisAudioMatroskaFileServerMediaSubsession::createNewRTPSink(), T140TextMatroskaFileServerMediaSubsession::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(), 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(), 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(), ByteStreamFileSource::doReadFromFile(), MPEG1or2VideoRTPSink::doSpecialFrameHandling(), MP3ADURTPSink::doSpecialFrameHandling(), H263plusVideoRTPSink::doSpecialFrameHandling(), 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(), 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(), RTSPClient::resetTCPSockets(), RTSPClient::responseHandlerForHTTP_GET1(), RTSPServer::rtspURLPrefix(), RTCPInstance::schedule(), OnDemandServerMediaSubsession::sdpLines(), SIPClient::sendACK(), SIPClient::sendBYE(), SIPClient::sendINVITE(), MultiFramedRTPSink::sendPacketIfNecessary(), SIPClient::sendRequest(), RTSPClient::sendRequest(), DarwinInjector::setDestination(), RTSPClient::setupHTTPTunneling1(), 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(), tearDownSession(), SIPClient::timerAHandler(), SIPClient::timerBHandler(), SIPClient::timerDHandler(), ClientTrickPlayState::updateStateOnScaleChange(), MPEG2TransportStreamFramer::updateTSPacketDurationEstimate(), BasicUDPSource::~BasicUDPSource(), ByteStreamFileSource::~ByteStreamFileSource(), DeviceSource::~DeviceSource(), RTSPServer::~RTSPServer(), StreamClientState::~StreamClientState(), and T140IdleFilter::~T140IdleFilter().
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::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(), doGetNextFrame(), MP3FileSource::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), ByteStreamFileSource::doReadFromFile(), RTCPInstance::reschedule(), RTCPInstance::schedule(), MultiFramedRTPSink::sendPacketIfNecessary(), and MediaSink::stopPlaying().
00078 { 00079 return fNextTask; 00080 }
friend class MediaLookupTable [friend, inherited] |
FILE* WAVAudioFileSource::fFid [private] |
Definition at line 65 of file WAVAudioFileSource.hh.
Referenced by doGetNextFrame(), seekToPCMByte(), setScaleFactor(), and ~WAVAudioFileSource().
double WAVAudioFileSource::fPlayTimePerSample [private] |
Definition at line 66 of file WAVAudioFileSource.hh.
Referenced by doGetNextFrame(), and WAVAudioFileSource().
unsigned WAVAudioFileSource::fPreferredFrameSize [private] |
Definition at line 67 of file WAVAudioFileSource.hh.
Referenced by doGetNextFrame(), and WAVAudioFileSource().
unsigned WAVAudioFileSource::fLastPlayTime [private] |
unsigned WAVAudioFileSource::fWAVHeaderSize [private] |
Definition at line 69 of file WAVAudioFileSource.hh.
Referenced by numPCMBytes(), seekToPCMByte(), and WAVAudioFileSource().
unsigned WAVAudioFileSource::fFileSize [private] |
Definition at line 70 of file WAVAudioFileSource.hh.
Referenced by createNew(), numPCMBytes(), and seekToPCMByte().
int WAVAudioFileSource::fScaleFactor [private] |
Definition at line 71 of file WAVAudioFileSource.hh.
Referenced by doGetNextFrame(), and setScaleFactor().
Definition at line 72 of file WAVAudioFileSource.hh.
Referenced by doGetNextFrame(), and seekToPCMByte().
unsigned WAVAudioFileSource::fNumBytesToStream [private] |
Definition at line 73 of file WAVAudioFileSource.hh.
Referenced by doGetNextFrame(), and seekToPCMByte().
unsigned char WAVAudioFileSource::fAudioFormat [private] |
Definition at line 74 of file WAVAudioFileSource.hh.
Referenced by getAudioFormat(), and WAVAudioFileSource().
char ** AudioInputDevice::allowedDeviceNames = NULL [static, inherited] |
Definition at line 51 of file AudioInputDevice.hh.
unsigned char AudioInputDevice::fBitsPerSample [protected, inherited] |
Definition at line 66 of file AudioInputDevice.hh.
Referenced by AudioInputDevice::bitsPerSample(), doGetNextFrame(), setScaleFactor(), and WAVAudioFileSource().
unsigned char AudioInputDevice::fNumChannels [protected, inherited] |
Definition at line 66 of file AudioInputDevice.hh.
Referenced by doGetNextFrame(), AudioInputDevice::numChannels(), setScaleFactor(), and WAVAudioFileSource().
unsigned AudioInputDevice::fSamplingFrequency [protected, inherited] |
Definition at line 67 of file AudioInputDevice.hh.
Referenced by AudioInputDevice::samplingFrequency(), and WAVAudioFileSource().
unsigned AudioInputDevice::fGranularityInMS [protected, inherited] |
Definition at line 68 of file AudioInputDevice.hh.
unsigned char* FramedSource::fTo [protected, inherited] |
Definition at line 74 of file FramedSource.hh.
Referenced by EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), MPEG4VideoStreamDiscreteFramer::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2VideoStreamDiscreteFramer::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264VideoStreamDiscreteFramer::afterGettingFrame1(), DVVideoStreamFramer::afterGettingFrame1(), MPEG2TransportStreamTrickModeFilter::attemptDeliveryToClient(), StreamReplica::copyReceivedFrame(), StreamReplicator::deactivateStreamReplica(), MPEG2TransportStreamMultiplexor::deliverDataToClient(), DeviceSource::deliverFrame(), T140IdleFilter::deliverFromBuffer(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), StreamReplicator::deliverReceivedFrame(), doGetNextFrame(), EndianSwap16::doGetNextFrame(), HostFromNetworkOrder16::doGetNextFrame(), NetworkFromHostOrder16::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame(), MPEGVideoStreamFramer::doGetNextFrame(), MPEG4VideoStreamDiscreteFramer::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MPEG1or2DemuxedElementaryStream::doGetNextFrame(), MPEG1or2AudioStreamFramer::doGetNextFrame(), H264VideoStreamDiscreteFramer::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), H263plusVideoStreamFramer::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), AC3AudioStreamFramer::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), ByteStreamFileSource::doReadFromFile(), DVVideoStreamFramer::DVVideoStreamFramer(), MP3FromADUSource::generateFrameFromHeadADU(), DVVideoStreamFramer::getAndDeliverData(), StreamReplicator::getNextFrame(), FramedSource::getNextFrame(), BasicUDPSource::incomingPacketHandler1(), MP3ADUdeinterleaver::releaseOutgoingFrame(), MP3ADUinterleaver::releaseOutgoingFrame(), and MatroskaDemuxedTrack::to().
unsigned FramedSource::fMaxSize [protected, inherited] |
Definition at line 75 of file FramedSource.hh.
Referenced by MPEG1or2VideoStreamDiscreteFramer::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), StreamReplica::copyReceivedFrame(), StreamReplicator::deactivateStreamReplica(), MPEG2TransportStreamMultiplexor::deliverDataToClient(), DeviceSource::deliverFrame(), T140IdleFilter::deliverFromBuffer(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), StreamReplicator::deliverReceivedFrame(), doGetNextFrame(), EndianSwap16::doGetNextFrame(), HostFromNetworkOrder16::doGetNextFrame(), NetworkFromHostOrder16::doGetNextFrame(), PCMFromuLawAudioSource::doGetNextFrame(), uLawFromPCMAudioSource::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame(), MPEGVideoStreamFramer::doGetNextFrame(), MPEG4VideoStreamDiscreteFramer::doGetNextFrame(), MPEG2TransportStreamTrickModeFilter::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MPEG1or2DemuxedElementaryStream::doGetNextFrame(), MPEG1or2AudioStreamFramer::doGetNextFrame(), H264VideoStreamDiscreteFramer::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), H263plusVideoStreamFramer::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), AC3AudioStreamFramer::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), ByteStreamFileSource::doReadFromFile(), DVVideoStreamFramer::getAndDeliverData(), StreamReplicator::getNextFrame(), FramedSource::getNextFrame(), BasicUDPSource::incomingPacketHandler1(), MatroskaDemuxedTrack::maxSize(), MP3ADUdeinterleaver::releaseOutgoingFrame(), and MP3ADUinterleaver::releaseOutgoingFrame().
unsigned FramedSource::fFrameSize [protected, inherited] |
Definition at line 76 of file FramedSource.hh.
Referenced by FramedSource::afterGetting(), StreamReplicator::afterGettingFrame(), ByteStreamMultiFileSource::afterGettingFrame(), EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264VideoStreamDiscreteFramer::afterGettingFrame1(), MPEG2TransportStreamTrickModeFilter::attemptDeliveryToClient(), MPEGVideoStreamFramer::continueReadProcessing(), MPEG1or2AudioStreamFramer::continueReadProcessing(), H263plusVideoStreamFramer::continueReadProcessing(), StreamReplica::copyReceivedFrame(), MPEG2TransportStreamMultiplexor::deliverDataToClient(), T140IdleFilter::deliverEmptyFrame(), DeviceSource::deliverFrame(), T140IdleFilter::deliverFromBuffer(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame(), MPEG2TransportStreamTrickModeFilter::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), ByteStreamFileSource::doReadFromFile(), MatroskaDemuxedTrack::frameSize(), MP3FromADUSource::generateFrameFromHeadADU(), DVVideoStreamFramer::getAndDeliverData(), BasicUDPSource::incomingPacketHandler1(), AC3AudioStreamFramer::parseNextFrame(), MP3ADUdeinterleaver::releaseOutgoingFrame(), and MP3ADUinterleaver::releaseOutgoingFrame().
unsigned FramedSource::fNumTruncatedBytes [protected, inherited] |
Definition at line 77 of file FramedSource.hh.
Referenced by FramedSource::afterGetting(), StreamReplicator::afterGettingFrame(), ByteStreamMultiFileSource::afterGettingFrame(), EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264VideoStreamDiscreteFramer::afterGettingFrame1(), MPEGVideoStreamFramer::continueReadProcessing(), MPEG1or2AudioStreamFramer::continueReadProcessing(), StreamReplica::copyReceivedFrame(), MPEG2TransportStreamMultiplexor::deliverDataToClient(), T140IdleFilter::deliverEmptyFrame(), DeviceSource::deliverFrame(), T140IdleFilter::deliverFromBuffer(), QCELPDeinterleaver::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), FramedSource::getNextFrame(), MatroskaDemuxedTrack::numTruncatedBytes(), AC3AudioStreamFramer::parseNextFrame(), MP3ADUdeinterleaver::releaseOutgoingFrame(), and MP3ADUinterleaver::releaseOutgoingFrame().
struct timeval FramedSource::fPresentationTime [read, protected, inherited] |
Definition at line 78 of file FramedSource.hh.
Referenced by FramedSource::afterGetting(), StreamReplicator::afterGettingFrame(), ByteStreamMultiFileSource::afterGettingFrame(), EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), InputESSourceRecord::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264VideoStreamDiscreteFramer::afterGettingFrame1(), H264FUAFragmenter::afterGettingFrame1(), MPEG2TransportStreamTrickModeFilter::attemptDeliveryToClient(), MPEGVideoStreamFramer::computePresentationTime(), MPEGVideoStreamFramer::continueReadProcessing(), MPEG1or2AudioStreamFramer::continueReadProcessing(), H263plusVideoStreamFramer::continueReadProcessing(), StreamReplica::copyReceivedFrame(), T140IdleFilter::deliverEmptyFrame(), DeviceSource::deliverFrame(), T140IdleFilter::deliverFromBuffer(), doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), ByteStreamFileSource::doReadFromFile(), FramedSource::FramedSource(), MP3FromADUSource::generateFrameFromHeadADU(), MPEG1or2VideoStreamFramer::getCurrentPTS(), H264VideoStreamParser::parse(), AC3AudioStreamFramer::parseNextFrame(), MatroskaDemuxedTrack::presentationTime(), MP3ADUdeinterleaver::releaseOutgoingFrame(), MP3ADUinterleaver::releaseOutgoingFrame(), and H264VideoStreamFramer::setPresentationTime().
unsigned FramedSource::fDurationInMicroseconds [protected, inherited] |
Definition at line 79 of file FramedSource.hh.
Referenced by FramedSource::afterGetting(), StreamReplicator::afterGettingFrame(), ByteStreamMultiFileSource::afterGettingFrame(), EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264VideoStreamDiscreteFramer::afterGettingFrame1(), H264FUAFragmenter::afterGettingFrame1(), MPEGVideoStreamFramer::continueReadProcessing(), MPEG1or2AudioStreamFramer::continueReadProcessing(), H263plusVideoStreamFramer::continueReadProcessing(), StreamReplica::copyReceivedFrame(), T140IdleFilter::deliverFromBuffer(), doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), ByteStreamFileSource::doReadFromFile(), MatroskaDemuxedTrack::durationInMicroseconds(), MP3FromADUSource::generateFrameFromHeadADU(), FramedSource::getNextFrame(), AC3AudioStreamFramer::parseNextFrame(), MP3ADUdeinterleaver::releaseOutgoingFrame(), and MP3ADUinterleaver::releaseOutgoingFrame().
1.5.2