WAVAudioFileSource Class Reference

#include <WAVAudioFileSource.hh>

Inheritance diagram for WAVAudioFileSource:

Inheritance graph
[legend]
Collaboration diagram for WAVAudioFileSource:

Collaboration graph
[legend]

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 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
UsageEnvironmentenvir () 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 WAVAudioFileSourcecreateNew (UsageEnvironment &env, char const *fileName)
static AudioInputDevicecreateNew (UsageEnvironment &env, int inputPortNumber, unsigned char bitsPerSample, unsigned char numChannels, unsigned samplingFrequency, unsigned granularityInMS=20)
static AudioPortNamesgetPortNames ()
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 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 ()
TaskTokennextTask ()

Static Protected Member Functions

static void afterGetting (FramedSource *source)

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
unsigned char fAudioFormat

Detailed Description

Definition at line 38 of file WAVAudioFileSource.hh.


Member Typedef Documentation

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.


Constructor & Destructor Documentation

WAVAudioFileSource::WAVAudioFileSource ( UsageEnvironment env,
FILE *  fid 
) [protected]

Definition at line 101 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(), True, WA_PCM, WA_PCMA, and WA_PCMU.

Referenced by createNew().

00102   : AudioInputDevice(env, 0, 0, 0, 0)/* set the real parameters later */,
00103     fFid(fid), fLastPlayTime(0), fWAVHeaderSize(0), fFileSize(0), fScaleFactor(1),
00104     fAudioFormat(WA_UNKNOWN) {
00105   // Check the WAV file header for validity.
00106   // Note: The following web pages contain info about the WAV format:
00107   // http://www.technology.niagarac.on.ca/courses/comp630/WavFileFormat.html
00108   // http://ccrma-www.stanford.edu/CCRMA/Courses/422/projects/WaveFormat/
00109   // http://www.ringthis.com/dev/wave_format.htm
00110   // http://www.lightlink.com/tjweber/StripWav/Canon.html
00111   // http://www.borg.com/~jglatt/tech/wave.htm
00112   // http://www.wotsit.org/download.asp?f=wavecomp
00113 
00114   Boolean success = False; // until we learn otherwise
00115   do {
00116     // RIFF Chunk:
00117     if (nextc != 'R' || nextc != 'I' || nextc != 'F' || nextc != 'F') break;
00118     if (!skipBytes(fid, 4)) break;
00119     if (nextc != 'W' || nextc != 'A' || nextc != 'V' || nextc != 'E') break;
00120 
00121     // FORMAT Chunk:
00122     if (nextc != 'f' || nextc != 'm' || nextc != 't' || nextc != ' ') break;
00123     unsigned formatLength;
00124     if (!get4Bytes(fid, formatLength)) break;
00125     unsigned short audioFormat;
00126     if (!get2Bytes(fid, audioFormat)) break;
00127 
00128     fAudioFormat = (unsigned char)audioFormat;
00129     if (fAudioFormat != WA_PCM && fAudioFormat != WA_PCMA && fAudioFormat != WA_PCMU) {
00130       // not PCM/PCMU/PCMA - we can't handle this
00131       env.setResultMsg("Audio format is not PCM/PCMU/PCMA");
00132       break;
00133     }
00134     unsigned short numChannels;
00135     if (!get2Bytes(fid, numChannels)) break;
00136     fNumChannels = (unsigned char)numChannels;
00137     if (fNumChannels < 1 || fNumChannels > 2) { // invalid # channels
00138       char errMsg[100];
00139       sprintf(errMsg, "Bad # channels: %d", fNumChannels);
00140       env.setResultMsg(errMsg);
00141       break;
00142     }
00143     if (!get4Bytes(fid, fSamplingFrequency)) break;
00144     if (fSamplingFrequency == 0) {
00145       env.setResultMsg("Bad sampling frequency: 0");
00146       break;
00147     }
00148     if (!skipBytes(fid, 6)) break;
00149     unsigned short bitsPerSample;
00150     if (!get2Bytes(fid, bitsPerSample)) break;
00151     fBitsPerSample = (unsigned char)bitsPerSample;
00152     if (fBitsPerSample == 0) {
00153       env.setResultMsg("Bad bits-per-sample: 0");
00154       break;
00155     }
00156     if (!skipBytes(fid, formatLength - 16)) break;
00157 
00158     // FACT chunk (optional):
00159     int c = nextc;
00160     if (c == 'f') {
00161       if (nextc != 'a' || nextc != 'c' || nextc != 't') break;
00162       unsigned factLength;
00163       if (!get4Bytes(fid, factLength)) break;
00164       if (!skipBytes(fid, factLength)) break;
00165       c = nextc;
00166     }
00167 
00168     // DATA Chunk:
00169     if (c != 'd' || nextc != 'a' || nextc != 't' || nextc != 'a') break;
00170     if (!skipBytes(fid, 4)) break;
00171 
00172     // The header is good; the remaining data are the sample bytes.
00173     fWAVHeaderSize = ftell(fid);
00174     success = True;
00175   } while (0);
00176 
00177   if (!success) {
00178     env.setResultMsg("Bad WAV file format");
00179     // Set "fBitsPerSample" to zero, to indicate failure:
00180     fBitsPerSample = 0;
00181     return;
00182   }
00183 
00184   fPlayTimePerSample = 1e6/(double)fSamplingFrequency;
00185 
00186   // Although PCM is a sample-based format, we group samples into
00187   // 'frames' for efficient delivery to clients.  Set up our preferred
00188   // frame size to be close to 20 ms, if possible, but always no greater
00189   // than 1400 bytes (to ensure that it will fit in a single RTP packet)
00190   unsigned maxSamplesPerFrame = (1400*8)/(fNumChannels*fBitsPerSample);
00191   unsigned desiredSamplesPerFrame = (unsigned)(0.02*fSamplingFrequency);
00192   unsigned samplesPerFrame = desiredSamplesPerFrame < maxSamplesPerFrame
00193     ? 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 }


Member Function Documentation

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, and fScaleFactor.

Referenced by WAVAudioFileServerMediaSubsession::setStreamSourceScale().

00053                                                  {
00054   fScaleFactor = scale;
00055 
00056   if (fScaleFactor < 0 && ftell(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 const bytesPerSample = (fNumChannels*fBitsPerSample)/8;
00061     fseek(fFid, -bytesPerSample, SEEK_CUR);
00062   }
00063 }

void WAVAudioFileSource::seekToPCMByte ( unsigned  byteNumber  ) 

Definition at line 65 of file WAVAudioFileSource.cpp.

References fFid, fFileSize, and fWAVHeaderSize.

Referenced by WAVAudioFileServerMediaSubsession::seekStreamSource().

00065                                                           {
00066   byteNumber += fWAVHeaderSize;
00067   if (byteNumber > fFileSize) byteNumber = fFileSize;
00068 
00069   fseek(fFid, byteNumber, SEEK_SET);
00070 }

unsigned char WAVAudioFileSource::getAudioFormat (  ) 

Definition at line 72 of file WAVAudioFileSource.cpp.

References fAudioFormat.

Referenced by WAVAudioFileServerMediaSubsession::createNewStreamSource().

00072                                                  {
00073   return fAudioFormat;
00074 }

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, FramedSource::fMaxSize, AudioInputDevice::fNumChannels, fPlayTimePerSample, fPreferredFrameSize, FramedSource::fPresentationTime, fScaleFactor, FramedSource::fTo, FramedSource::handleClosure(), Medium::nextTask(), NULL, TaskScheduler::scheduleDelayedTask(), and UsageEnvironment::taskScheduler().

00203                                         {
00204   if (feof(fFid) || ferror(fFid)) {
00205     handleClosure(this);
00206     return;
00207   }
00208 
00209   // Try to read as many bytes as will fit in the buffer provided
00210   // (or "fPreferredFrameSize" if less)
00211   if (fPreferredFrameSize < fMaxSize) {
00212     fMaxSize = fPreferredFrameSize;
00213   }
00214   unsigned const bytesPerSample = (fNumChannels*fBitsPerSample)/8;
00215   unsigned bytesToRead = fMaxSize - fMaxSize%bytesPerSample;
00216   if (fScaleFactor == 1) {
00217     // Common case - read samples in bulk:
00218     fFrameSize = fread(fTo, 1, bytesToRead, fFid);
00219   } else {
00220     // We read every 'fScaleFactor'th sample:
00221     fFrameSize = 0;
00222     while (bytesToRead > 0) {
00223       size_t bytesRead = fread(fTo, 1, bytesPerSample, fFid);
00224       if (bytesRead <= 0) break;
00225       fTo += bytesRead;
00226       fFrameSize += bytesRead;
00227       bytesToRead -= bytesRead;
00228 
00229       // Seek to the appropriate place for the next sample:
00230       fseek(fFid, (fScaleFactor-1)*bytesPerSample, SEEK_CUR);
00231     }
00232   }
00233 
00234   // Set the 'presentation time' and 'duration' of this frame:
00235   if (fPresentationTime.tv_sec == 0 && fPresentationTime.tv_usec == 0) {
00236     // This is the first frame, so use the current time:
00237     gettimeofday(&fPresentationTime, NULL);
00238   } else {
00239     // Increment by the play time of the previous data:
00240     unsigned uSeconds   = fPresentationTime.tv_usec + fLastPlayTime;
00241     fPresentationTime.tv_sec += uSeconds/1000000;
00242     fPresentationTime.tv_usec = uSeconds%1000000;
00243   }
00244 
00245   // Remember the play time of this data:
00246   fDurationInMicroseconds = fLastPlayTime
00247     = (unsigned)((fPlayTimePerSample*fFrameSize)/bytesPerSample);
00248 
00249   // Switch to another task, and inform the reader that he has data:
00250 #if defined(__WIN32__) || defined(_WIN32)
00251   // HACK: One of our applications that uses this source uses an
00252   // implementation of scheduleDelayedTask() that performs very badly
00253   // (chewing up lots of CPU time, apparently polling) on Windows.
00254   // Until this is fixed, we just call our "afterGetting()" function
00255   // directly.  This avoids infinite recursion, as long as our sink
00256   // is discontinuous, which is the case for the RTP sink that
00257   // this application uses. #####
00258   afterGetting(this);
00259 #else
00260   nextTask() = envir().taskScheduler().scheduleDelayedTask(0,
00261                         (TaskFunc*)FramedSource::afterGetting, this);
00262 #endif
00263 }

Boolean WAVAudioFileSource::setInputPort ( int  portIndex  )  [private, virtual]

Implements AudioInputDevice.

Definition at line 265 of file WAVAudioFileSource.cpp.

References True.

00265                                                           {
00266   return True;
00267 }

double WAVAudioFileSource::getAverageLevel (  )  const [private, virtual]

Implements AudioInputDevice.

Definition at line 269 of file WAVAudioFileSource.cpp.

00269                                                  {
00270   return 0.0;//##### fix this later
00271 }

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 65 of file Media.cpp.

References env, False, MediaLookupTable::lookup(), NULL, MediaLookupTable::ourMedia(), UsageEnvironment::setResultMsg(), and True.

Referenced by ServerMediaSession::lookupByName(), RTSPServer::lookupByName(), RTSPClient::lookupByName(), RTCPInstance::lookupByName(), MediaSource::lookupByName(), MediaSink::lookupByName(), MediaSession::lookupByName(), and DarwinInjector::lookupByName().

00066                                                          {
00067   resultMedium = MediaLookupTable::ourMedia(env)->lookup(mediumName);
00068   if (resultMedium == NULL) {
00069     env.setResultMsg("Medium ", mediumName, " does not exist");
00070     return False;
00071   }
00072 
00073   return True;
00074 }

void 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, and True.

Referenced by MPEG2TransportStreamFramer::afterGettingFrame1(), InputESSourceRecord::askForNewData(), MPEG2TransportStreamFromPESSource::awaitNewBuffer(), QuickTimeFileSink::continuePlaying(), DummySink::continuePlaying(), HTTPSink::continuePlaying(), FileSink::continuePlaying(), AVIFileSink::continuePlaying(), BasicUDPSink::continuePlaying1(), EndianSwap16::doGetNextFrame(), HostFromNetworkOrder16::doGetNextFrame(), NetworkFromHostOrder16::doGetNextFrame(), PCMFromuLawAudioSource::doGetNextFrame(), uLawFromPCMAudioSource::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), MPEG4VideoStreamDiscreteFramer::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG2IFrameIndexFromTransportStream::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MP3ADUTranscoder::doGetNextFrame(), MP3ADUdeinterleaver::doGetNextFrame(), MP3ADUinterleaver::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), SegmentQueue::enqueueNewSegment(), StreamParser::ensureValidBytes1(), DVVideoStreamFramer::getAndDeliverData(), DVVideoStreamFramer::getProfile(), MultiFramedRTPSink::packFrame(), 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     abort();
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(), QCELPDeinterleaver::doGetNextFrame(), MPEG4VideoStreamDiscreteFramer::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MPEG1or2DemuxedElementaryStream::doGetNextFrame(), MP3FileSource::doGetNextFrame(), MP3ADUTranscoder::doGetNextFrame(), MP3ADUdeinterleaver::doGetNextFrame(), MP3ADUinterleaver::doGetNextFrame(), ADUFromMP3Source::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), DeviceSource::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamFileSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), ByteStreamFileSource::doReadFromFile(), SegmentQueue::enqueueNewSegment(), DVVideoStreamFramer::getAndDeliverData(), DVVideoStreamFramer::getProfile(), MPEG2IFrameIndexFromTransportStream::handleInputClosure1(), 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 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().

00116                                           {
00117   // By default, this source has no maximum frame size.
00118   return 0;
00119 }

Boolean FramedSource::isCurrentlyAwaitingData (  )  const [inline, inherited]

Definition at line 60 of file FramedSource.hh.

References FramedSource::fIsCurrentlyAwaitingData.

Referenced by afterPlaying(), InputESSourceRecord::askForNewData(), MPEG2TransportStreamFromESSource::awaitNewBuffer(), QuickTimeFileSink::continuePlaying(), AVIFileSink::continuePlaying(), DeviceSource::deliverFrame(), QCELPDeinterleaver::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), ByteStreamFileSource::fileReadableHandler(), and BasicUDPSource::incomingPacketHandler1().

00060 {return fIsCurrentlyAwaitingData;}

void FramedSource::afterGetting ( FramedSource source  )  [static, protected, 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(), MPEG2TransportStreamTrickModeFilter::attemptDeliveryToClient(), MPEGVideoStreamFramer::continueReadProcessing(), MPEG1or2AudioStreamFramer::continueReadProcessing(), H263plusVideoStreamFramer::continueReadProcessing(), DeviceSource::deliverFrame(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), MPEG2TransportStreamTrickModeFilter::doGetNextFrame(), MPEG2TransportStreamMultiplexor::doGetNextFrame(), MP3FileSource::doGetNextFrame(), MP3ADUdeinterleaver::doGetNextFrame(), MP3ADUinterleaver::doGetNextFrame(), MP3FromADUSource::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), DVVideoStreamFramer::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, and MultiFramedRTPSource.

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, and RawQCELPRTPSource.

Definition at line 36 of file MediaSource.cpp.

Referenced by HTTPSink::continuePlaying(), MP3ADUTranscoder::createNew(), MP3FromADUSource::createNew(), ADUFromMP3Source::createNew(), MP3ADUinterleaverBase::getInputSource(), MediaSession::initiateByMediaType(), SimpleRTPSource::MIMEtype(), QuickTimeGenericRTPSource::MIMEtype(), FramedFilter::MIMEtype(), and MPEG1or2DemuxedElementaryStream::MPEG1or2DemuxedElementaryStream().

00036                                         {
00037   return "application/OCTET-STREAM"; // default type
00038 }

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 76 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(), MediaSubsession::initiate(), MPEG1or2ProgramStreamFileDuration(), MPEG1or2Demux::noteElementaryStreamDeletion(), ByteStreamMultiFileSource::onSourceClosure1(), StreamState::reclaim(), RTSPServer::removeServerMediaSession(), OnDemandServerMediaSubsession::sdpLines(), H264VideoRTPSink::stopPlaying(), subsessionAfterPlaying(), ClientTrickPlayState::updateStateOnScaleChange(), AMRDeinterleaver::~AMRDeinterleaver(), ByteStreamMultiFileSource::~ByteStreamMultiFileSource(), DarwinInjector::~DarwinInjector(), FramedFilter::~FramedFilter(), H264VideoRTPSink::~H264VideoRTPSink(), InputESSourceRecord::~InputESSourceRecord(), MPEG1or2Demux::~MPEG1or2Demux(), MPEG1or2FileServerDemux::~MPEG1or2FileServerDemux(), MPEG2TransportFileServerMediaSubsession::~MPEG2TransportFileServerMediaSubsession(), MPEG2TransportStreamFromPESSource::~MPEG2TransportStreamFromPESSource(), ServerMediaSession::~ServerMediaSession(), and ServerMediaSubsession::~ServerMediaSubsession().

00076                                                           {
00077   MediaLookupTable::ourMedia(env)->remove(name);
00078 }

void Medium::close ( Medium medium  )  [static, inherited]

Definition at line 80 of file Media.cpp.

References Medium::close(), Medium::envir(), Medium::name(), and NULL.

00080                                  {
00081   if (medium == NULL) return;
00082 
00083   close(medium->envir(), medium->name());
00084 }

UsageEnvironment& Medium::envir (  )  const [inline, inherited]

Definition at line 59 of file Media.hh.

References Medium::fEnviron.

Referenced by QuickTimeFileSink::addArbitraryString(), FileSink::addData(), RTCPInstance::addStreamSocket(), MPEG2IFrameIndexFromTransportStream::addToTail(), StreamParser::afterGettingBytes(), MultiFramedRTPSink::afterGettingFrame1(), InputESSourceRecord::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG2IFrameIndexFromTransportStream::afterGettingFrame1(), HTTPSink::afterGettingFrame1(), BasicUDPSink::afterGettingFrame1(), MPEG4VideoFileServerMediaSubsession::afterPlayingDummy1(), MPEG4VideoStreamParser::analyzeVOLHeader(), announceStream(), MPEG4VideoFileServerMediaSubsession::checkForAuxSDPLine1(), Medium::close(), MPEG2IFrameIndexFromTransportStream::compactParseBuffer(), RTSPClient::connectionHandler1(), RTSPClient::connectToServer(), QuickTimeFileSink::continuePlaying(), HTTPSink::continuePlaying(), H264VideoRTPSink::continuePlaying(), AVIFileSink::continuePlaying(), MPEG4VideoFileServerMediaSubsession::createNewRTPSink(), MPEG2TransportFileServerMediaSubsession::createNewRTPSink(), MPEG1or2VideoFileServerMediaSubsession::createNewRTPSink(), MPEG1or2DemuxedServerMediaSubsession::createNewRTPSink(), H263plusVideoFileServerMediaSubsession::createNewRTPSink(), DVVideoFileServerMediaSubsession::createNewRTPSink(), AMRAudioFileServerMediaSubsession::createNewRTPSink(), ADTSAudioFileServerMediaSubsession::createNewRTPSink(), MPEG4VideoFileServerMediaSubsession::createNewStreamSource(), MPEG2TransportFileServerMediaSubsession::createNewStreamSource(), MPEG1or2VideoFileServerMediaSubsession::createNewStreamSource(), MPEG1or2DemuxedServerMediaSubsession::createNewStreamSource(), H263plusVideoFileServerMediaSubsession::createNewStreamSource(), DVVideoFileServerMediaSubsession::createNewStreamSource(), AMRAudioFileServerMediaSubsession::createNewStreamSource(), ADTSAudioFileServerMediaSubsession::createNewStreamSource(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), SegmentQueue::dequeue(), doGetNextFrame(), MPEG2IFrameIndexFromTransportStream::doGetNextFrame(), MP3FileSource::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamFileSource::doGetNextFrame(), BasicUDPSource::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), SIPClient::doInviteStateMachine(), ByteStreamFileSource::doReadFromFile(), MPEG1or2VideoRTPSink::doSpecialFrameHandling(), MP3ADURTPSink::doSpecialFrameHandling(), H263plusVideoRTPSink::doSpecialFrameHandling(), ByteStreamFileSource::doStopGettingFrames(), BasicUDPSource::doStopGettingFrames(), SegmentQueue::enqueueNewSegment(), StreamParser::ensureValidBytes1(), MediaSubsession::env(), SubsessionIOState::envir(), RTSPServer::RTSPClientSession::envir(), RTSPOverHTTPServer::HTTPClientConnection::envir(), RTPInterface::envir(), AVISubsessionIOState::envir(), ServerMediaSession::generateSDPDescription(), RTPSource::getAttributes(), MP3FileSource::getAttributes(), MP3ADUTranscoder::getAttributes(), MediaSource::getAttributes(), MPEG4VideoFileServerMediaSubsession::getAuxSDPLine(), getMPEG1or2TimeCode(), FramedSource::getNextFrame(), getOptions(), DVVideoStreamFramer::getProfile(), SIPClient::getResponse(), SIPClient::getResponseCode(), getSDPDescription(), OnDemandServerMediaSubsession::getStreamParameters(), RTSPClient::handleGET_PARAMETERResponse(), RTSPClient::handleIncomingRequest(), RTSPClient::handlePLAYResponse(), RTSPClient::handleRequestError(), RTSPClient::handleResponseBytes(), RTSPClient::handleSETUPResponse(), RTSPServer::incomingConnectionHandler1(), RTSPOverHTTPServer::incomingConnectionHandler1(), RTSPClient::incomingDataHandler1(), RTCPInstance::incomingReportHandler1(), MP3FileSource::initializeStream(), MediaSession::initializeWithSDP(), MediaSession::initiateByMediaType(), SIPClient::invite1(), DynamicRTSPServer::lookupServerMediaSession(), MPEG4GenericRTPSource::MPEG4GenericRTPSource(), MPEG1or2FileServerDemux::newElementaryStream(), MPEG1or2Demux::newElementaryStream(), MPEG4GenericBufferedPacket::nextEnclosedFrameSize(), AMRBufferedPacket::nextEnclosedFrameSize(), RTSPClient::openConnection(), MPEG2TransportStreamIndexFile::openFid(), MPEG2IFrameIndexFromTransportStream::parseFrame(), AC3AudioStreamParser::parseFrame(), MPEGProgramStreamParser::parsePackHeader(), MPEGProgramStreamParser::parsePESPacket(), SIPClient::parseResponseCode(), MediaSession::parseSDPLine(), MPEG1or2VideoStreamParser::parseSlice(), MPEGProgramStreamParser::parseSystemHeader(), MPEG4VideoStreamParser::parseVideoObjectLayer(), MPEG4VideoStreamParser::parseVideoObjectPlane(), MPEG4VideoStreamParser::parseVisualObject(), AC3AudioRTPSource::processSpecialHeader(), SIPClient::processURL(), AC3AudioStreamParser::readAndSaveAFrame(), MPEG1or2Demux::registerReadInterest(), RTCPInstance::reschedule(), RTSPClient::resendCommand(), RTSPClient::resetTCPSockets(), RTSPClient::responseHandlerForHTTP_GET1(), RTSPServer::rtspURLPrefix(), RTCPInstance::schedule(), OnDemandServerMediaSubsession::sdpLines(), SIPClient::sendACK(), SIPClient::sendBYE(), SIPClient::sendINVITE(), MultiFramedRTPSink::sendPacketIfNecessary(), SIPClient::sendRequest(), RTSPClient::sendRequest(), DarwinInjector::setDestination(), RTSPClient::setupHTTPTunneling1(), QuickTimeFileSink::setWord(), AVIFileSink::setWord(), QuickTimeFileSink::setWord64(), SIPClient::SIPClient(), AMRAudioRTPSink::sourceIsCompatibleWithUs(), QuickTimeFileSink::startPlaying(), StreamState::startPlaying(), MediaSink::startPlaying(), AVIFileSink::startPlaying(), startPlayingSession(), PassiveServerMediaSubsession::startStream(), MediaSink::stopPlaying(), tearDownSession(), SIPClient::timerAHandler(), SIPClient::timerBHandler(), SIPClient::timerDHandler(), ClientTrickPlayState::updateStateOnScaleChange(), MPEG2TransportStreamFramer::updateTSPacketDurationEstimate(), BasicUDPSource::~BasicUDPSource(), ByteStreamFileSource::~ByteStreamFileSource(), RTSPOverHTTPServer::HTTPClientConnection::~HTTPClientConnection(), and RTSPServer::~RTSPServer().

00059 {return fEnviron;}

char const* Medium::name (  )  const [inline, inherited]

Definition at line 61 of file Media.hh.

References Medium::fMediumName.

Referenced by QuickTimeFileSink::addAtom_hdlr2(), Medium::close(), MP3ADUTranscoder::createNew(), MP3FromADUSource::createNew(), ADUFromMP3Source::createNew(), and MP3FileSource::initializeStream().

00061 {return fMediumName;}

Boolean Medium::isSink (  )  const [virtual, inherited]

Reimplemented in MediaSink.

Definition at line 90 of file Media.cpp.

References False.

Referenced by MediaSink::lookupByName().

00090                              {
00091   return False; // default implementation
00092 }

Boolean Medium::isRTCPInstance (  )  const [virtual, inherited]

Reimplemented in RTCPInstance.

Definition at line 94 of file Media.cpp.

References False.

Referenced by RTCPInstance::lookupByName().

00094                                      {
00095   return False; // default implementation
00096 }

Boolean Medium::isRTSPClient (  )  const [virtual, inherited]

Reimplemented in RTSPClient.

Definition at line 98 of file Media.cpp.

References False.

Referenced by RTSPClient::lookupByName().

00098                                    {
00099   return False; // default implementation
00100 }

Boolean Medium::isRTSPServer (  )  const [virtual, inherited]

Reimplemented in RTSPServer.

Definition at line 102 of file Media.cpp.

References False.

Referenced by RTSPServer::lookupByName().

00102                                    {
00103   return False; // default implementation
00104 }

Boolean Medium::isMediaSession (  )  const [virtual, inherited]

Reimplemented in MediaSession.

Definition at line 106 of file Media.cpp.

References False.

Referenced by MediaSession::lookupByName().

00106                                      {
00107   return False; // default implementation
00108 }

Boolean Medium::isServerMediaSession (  )  const [virtual, inherited]

Reimplemented in ServerMediaSession.

Definition at line 110 of file Media.cpp.

References False.

Referenced by ServerMediaSession::lookupByName().

00110                                            {
00111   return False; // default implementation
00112 }

Boolean Medium::isDarwinInjector (  )  const [virtual, inherited]

Reimplemented in DarwinInjector.

Definition at line 114 of file Media.cpp.

References False.

Referenced by DarwinInjector::lookupByName().

00114                                        {
00115   return False; // default implementation
00116 }

TaskToken& Medium::nextTask (  )  [inline, protected, inherited]

Definition at line 77 of file Media.hh.

References Medium::fNextTask.

Referenced by BasicUDPSink::afterGettingFrame1(), MPEG4VideoFileServerMediaSubsession::afterPlayingDummy1(), MPEG4VideoFileServerMediaSubsession::checkForAuxSDPLine1(), doGetNextFrame(), MP3FileSource::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), ByteStreamFileSource::doReadFromFile(), RTCPInstance::reschedule(), RTCPInstance::schedule(), MultiFramedRTPSink::sendPacketIfNecessary(), and MediaSink::stopPlaying().

00077                         {
00078         return fNextTask;
00079   }


Field Documentation

FILE* WAVAudioFileSource::fFid [private]

Definition at line 63 of file WAVAudioFileSource.hh.

Referenced by doGetNextFrame(), seekToPCMByte(), setScaleFactor(), and ~WAVAudioFileSource().

double WAVAudioFileSource::fPlayTimePerSample [private]

Definition at line 64 of file WAVAudioFileSource.hh.

Referenced by doGetNextFrame(), and WAVAudioFileSource().

unsigned WAVAudioFileSource::fPreferredFrameSize [private]

Definition at line 65 of file WAVAudioFileSource.hh.

Referenced by doGetNextFrame(), and WAVAudioFileSource().

unsigned WAVAudioFileSource::fLastPlayTime [private]

Definition at line 66 of file WAVAudioFileSource.hh.

Referenced by doGetNextFrame().

unsigned WAVAudioFileSource::fWAVHeaderSize [private]

Definition at line 67 of file WAVAudioFileSource.hh.

Referenced by numPCMBytes(), seekToPCMByte(), and WAVAudioFileSource().

unsigned WAVAudioFileSource::fFileSize [private]

Definition at line 68 of file WAVAudioFileSource.hh.

Referenced by createNew(), numPCMBytes(), and seekToPCMByte().

int WAVAudioFileSource::fScaleFactor [private]

Definition at line 69 of file WAVAudioFileSource.hh.

Referenced by doGetNextFrame(), and setScaleFactor().

unsigned char WAVAudioFileSource::fAudioFormat [private]

Definition at line 71 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(), DVVideoStreamFramer::afterGettingFrame1(), MPEG2TransportStreamTrickModeFilter::attemptDeliveryToClient(), MPEG2TransportStreamMultiplexor::deliverDataToClient(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), doGetNextFrame(), EndianSwap16::doGetNextFrame(), HostFromNetworkOrder16::doGetNextFrame(), NetworkFromHostOrder16::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame(), MPEGVideoStreamFramer::doGetNextFrame(), MPEG4VideoStreamDiscreteFramer::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MPEG1or2DemuxedElementaryStream::doGetNextFrame(), MPEG1or2AudioStreamFramer::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), H263plusVideoStreamFramer::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), AC3AudioStreamFramer::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), ByteStreamFileSource::doReadFromFile(), DVVideoStreamFramer::DVVideoStreamFramer(), MP3FromADUSource::generateFrameFromHeadADU(), DVVideoStreamFramer::getAndDeliverData(), FramedSource::getNextFrame(), BasicUDPSource::incomingPacketHandler1(), MP3ADUdeinterleaver::releaseOutgoingFrame(), and MP3ADUinterleaver::releaseOutgoingFrame().

unsigned FramedSource::fMaxSize [protected, inherited]

Definition at line 75 of file FramedSource.hh.

Referenced by MPEG1or2VideoStreamDiscreteFramer::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), MPEG2TransportStreamMultiplexor::deliverDataToClient(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), 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(), H264FUAFragmenter::doGetNextFrame(), H263plusVideoStreamFramer::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), AC3AudioStreamFramer::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), ByteStreamFileSource::doReadFromFile(), DVVideoStreamFramer::getAndDeliverData(), FramedSource::getNextFrame(), BasicUDPSource::incomingPacketHandler1(), MP3ADUdeinterleaver::releaseOutgoingFrame(), and MP3ADUinterleaver::releaseOutgoingFrame().

unsigned FramedSource::fFrameSize [protected, inherited]

Definition at line 76 of file FramedSource.hh.

Referenced by FramedSource::afterGetting(), ByteStreamMultiFileSource::afterGettingFrame(), EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), MPEG2TransportStreamTrickModeFilter::attemptDeliveryToClient(), MPEGVideoStreamFramer::continueReadProcessing(), MPEG1or2AudioStreamFramer::continueReadProcessing(), H263plusVideoStreamFramer::continueReadProcessing(), MPEG2TransportStreamMultiplexor::deliverDataToClient(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame(), MPEG2TransportStreamTrickModeFilter::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), ByteStreamFileSource::doReadFromFile(), 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(), ByteStreamMultiFileSource::afterGettingFrame(), EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), MPEGVideoStreamFramer::continueReadProcessing(), MPEG1or2AudioStreamFramer::continueReadProcessing(), MPEG2TransportStreamMultiplexor::deliverDataToClient(), QCELPDeinterleaver::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), FramedSource::getNextFrame(), 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(), ByteStreamMultiFileSource::afterGettingFrame(), EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), InputESSourceRecord::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264FUAFragmenter::afterGettingFrame1(), MPEG2TransportStreamTrickModeFilter::attemptDeliveryToClient(), MPEGVideoStreamFramer::computePresentationTime(), MPEG1or2AudioStreamFramer::continueReadProcessing(), H263plusVideoStreamFramer::continueReadProcessing(), doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), ByteStreamFileSource::doReadFromFile(), FramedSource::FramedSource(), MP3FromADUSource::generateFrameFromHeadADU(), MPEG1or2VideoStreamFramer::getCurrentPTS(), AC3AudioStreamFramer::parseNextFrame(), MP3ADUdeinterleaver::releaseOutgoingFrame(), and MP3ADUinterleaver::releaseOutgoingFrame().

unsigned FramedSource::fDurationInMicroseconds [protected, inherited]

Definition at line 79 of file FramedSource.hh.

Referenced by FramedSource::afterGetting(), ByteStreamMultiFileSource::afterGettingFrame(), EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264FUAFragmenter::afterGettingFrame1(), MPEGVideoStreamFramer::continueReadProcessing(), MPEG1or2AudioStreamFramer::continueReadProcessing(), H263plusVideoStreamFramer::continueReadProcessing(), doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), ByteStreamFileSource::doReadFromFile(), MP3FromADUSource::generateFrameFromHeadADU(), FramedSource::getNextFrame(), AC3AudioStreamFramer::parseNextFrame(), MP3ADUdeinterleaver::releaseOutgoingFrame(), and MP3ADUinterleaver::releaseOutgoingFrame().


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