MPEG2TransportStreamMultiplexor Class Reference

#include <MPEG2TransportStreamMultiplexor.hh>

Inheritance diagram for MPEG2TransportStreamMultiplexor:

Inheritance graph
[legend]
Collaboration diagram for MPEG2TransportStreamMultiplexor:

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

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 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)

Protected Member Functions

 MPEG2TransportStreamMultiplexor (UsageEnvironment &env)
virtual ~MPEG2TransportStreamMultiplexor ()
virtual void awaitNewBuffer (unsigned char *oldBuffer)=0
void handleNewBuffer (unsigned char *buffer, unsigned bufferSize, int mpegVersion, MPEG1or2Demux::SCR scr)
virtual void doStopGettingFrames ()
TaskTokennextTask ()

Protected Attributes

Boolean fHaveVideoStreams
unsigned char * fTo
unsigned fMaxSize
unsigned fFrameSize
unsigned fNumTruncatedBytes
timeval fPresentationTime
unsigned fDurationInMicroseconds

Private Member Functions

virtual void doGetNextFrame ()
void deliverDataToClient (u_int8_t pid, unsigned char *buffer, unsigned bufferSize, unsigned &startPositionInBuffer)
void deliverPATPacket ()
void deliverPMTPacket (Boolean hasChanged)
void setProgramStreamMap (unsigned frameSize)

Private Attributes

unsigned fOutgoingPacketCounter
unsigned fProgramMapVersion
u_int8_t fPreviousInputProgramMapVersion
u_int8_t fCurrentInputProgramMapVersion
struct {
   unsigned   counter
   u_int8_t   streamType
fPIDState [PID_TABLE_SIZE]
u_int8_t fPCR_PID
u_int8_t fCurrentPID
MPEG1or2Demux::SCR fPCR
unsigned char * fInputBuffer
unsigned fInputBufferSize
unsigned fInputBufferBytesUsed
Boolean fIsFirstAdaptationField

Friends

class MediaLookupTable

Detailed Description

Definition at line 34 of file MPEG2TransportStreamMultiplexor.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

MPEG2TransportStreamMultiplexor::MPEG2TransportStreamMultiplexor ( UsageEnvironment env  )  [protected]

Definition at line 32 of file MPEG2TransportStreamMultiplexor.cpp.

References PID_TABLE_SIZE.

00033   : FramedSource(env),
00034     fHaveVideoStreams(True/*by default*/),
00035     fOutgoingPacketCounter(0), fProgramMapVersion(0),
00036     fPreviousInputProgramMapVersion(0xFF), fCurrentInputProgramMapVersion(0xFF),
00037     fPCR_PID(0), fCurrentPID(0),
00038     fInputBuffer(NULL), fInputBufferSize(0), fInputBufferBytesUsed(0),
00039     fIsFirstAdaptationField(True) {
00040   for (unsigned i = 0; i < PID_TABLE_SIZE; ++i) {
00041     fPIDState[i].counter = 0;
00042     fPIDState[i].streamType = 0;
00043   }
00044 }

MPEG2TransportStreamMultiplexor::~MPEG2TransportStreamMultiplexor (  )  [protected, virtual]

Definition at line 46 of file MPEG2TransportStreamMultiplexor.cpp.

00046                                                                   {
00047 }


Member Function Documentation

virtual void MPEG2TransportStreamMultiplexor::awaitNewBuffer ( unsigned char *  oldBuffer  )  [protected, pure virtual]

Implemented in MPEG2TransportStreamFromESSource, and MPEG2TransportStreamFromPESSource.

Referenced by doGetNextFrame().

void MPEG2TransportStreamMultiplexor::handleNewBuffer ( unsigned char *  buffer,
unsigned  bufferSize,
int  mpegVersion,
MPEG1or2Demux::SCR  scr 
) [protected]

Definition at line 87 of file MPEG2TransportStreamMultiplexor.cpp.

References doGetNextFrame(), fCurrentPID, fHaveVideoStreams, fInputBuffer, fInputBufferBytesUsed, fInputBufferSize, fPCR, fPCR_PID, fPIDState, setProgramStreamMap(), and streamType.

Referenced by MPEG2TransportStreamFromPESSource::afterGettingFrame1(), and InputESSourceRecord::deliverBufferToClient().

00088                                                          {
00089   if (bufferSize < 4) return;
00090   fInputBuffer = buffer;
00091   fInputBufferSize = bufferSize;
00092   fInputBufferBytesUsed = 0;
00093 
00094   u_int8_t stream_id = fInputBuffer[3];
00095   // Use "stream_id" directly as our PID.
00096   // Also, figure out the Program Map 'stream type' from this.
00097   if (stream_id == 0xBE) { // padding_stream; ignore
00098     fInputBufferSize = 0;
00099   } else if (stream_id == 0xBC) { // program_stream_map
00100     setProgramStreamMap(fInputBufferSize);
00101     fInputBufferSize = 0; // then, ignore the buffer
00102   } else {
00103     fCurrentPID = stream_id;
00104 
00105     // Set the stream's type:
00106     u_int8_t& streamType = fPIDState[fCurrentPID].streamType; // alias
00107 
00108     if (streamType == 0) {
00109       // Instead, set the stream's type to default values, based on whether
00110       // the stream is audio or video, and whether it's MPEG-1 or MPEG-2:
00111       if ((stream_id&0xF0) == 0xE0) { // video
00112         streamType = mpegVersion == 1 ? 1 : mpegVersion == 2 ? 2 : mpegVersion == 4 ? 0x10 : 0x1B;
00113       } else if ((stream_id&0xE0) == 0xC0) { // audio
00114         streamType = mpegVersion == 1 ? 3 : mpegVersion == 2 ? 4 : 0xF;
00115       } else if (stream_id == 0xBD) { // private_stream1 (usually AC-3)
00116         streamType = 0x06; // for DVB; for ATSC, use 0x81
00117       } else { // something else, e.g., AC-3 uses private_stream1 (0xBD)
00118         streamType = 0x81; // private
00119       }
00120     }
00121 
00122     if (fPCR_PID == 0) { // set it to this stream, if it's appropriate:
00123       if ((!fHaveVideoStreams && (streamType == 3 || streamType == 4 || streamType == 0xF))/* audio stream */ ||
00124           (streamType == 1 || streamType == 2 || streamType == 0x10 || streamType == 0x1B)/* video stream */) {
00125         fPCR_PID = fCurrentPID; // use this stream's SCR for PCR
00126       }
00127     }
00128     if (fCurrentPID == fPCR_PID) {
00129       // Record the input's current SCR timestamp, for use as our PCR:
00130       fPCR = scr;
00131     }
00132   }
00133 
00134   // Now that we have new input data, retry the last delivery to the client:
00135   doGetNextFrame();
00136 }

void MPEG2TransportStreamMultiplexor::doGetNextFrame (  )  [private, virtual]

Implements FramedSource.

Definition at line 49 of file MPEG2TransportStreamMultiplexor.cpp.

References FramedSource::afterGetting(), awaitNewBuffer(), deliverDataToClient(), deliverPATPacket(), deliverPMTPacket(), fCurrentInputProgramMapVersion, fCurrentPID, fInputBuffer, fInputBufferBytesUsed, fInputBufferSize, fOutgoingPacketCounter, fPIDState, fPreviousInputProgramMapVersion, PAT_FREQUENCY, and PMT_FREQUENCY.

Referenced by handleNewBuffer().

00049                                                      {
00050   if (fInputBufferBytesUsed >= fInputBufferSize) {
00051     // No more bytes are available from the current buffer.
00052     // Arrange to read a new one.
00053     awaitNewBuffer(fInputBuffer);
00054     return;
00055   }
00056 
00057   do {
00058     // Periodically return a Program Association Table packet instead:
00059     if (fOutgoingPacketCounter++ % PAT_FREQUENCY == 0) {
00060       deliverPATPacket();
00061       break;
00062     }
00063 
00064     // Periodically (or when we see a new PID) return a Program Map Table instead:
00065     Boolean programMapHasChanged = fPIDState[fCurrentPID].counter == 0
00066       || fCurrentInputProgramMapVersion != fPreviousInputProgramMapVersion;
00067     if (fOutgoingPacketCounter % PMT_FREQUENCY == 0 || programMapHasChanged) {
00068       if (programMapHasChanged) { // reset values for next time:
00069         fPIDState[fCurrentPID].counter = 1;
00070         fPreviousInputProgramMapVersion = fCurrentInputProgramMapVersion;
00071       }
00072       deliverPMTPacket(programMapHasChanged);
00073       break;
00074     }
00075 
00076     // Normal case: Deliver (or continue delivering) the recently-read data:
00077     deliverDataToClient(fCurrentPID, fInputBuffer, fInputBufferSize,
00078                         fInputBufferBytesUsed);
00079   } while (0);
00080 
00081   // NEED TO SET fPresentationTime, durationInMicroseconds #####
00082   // Complete the delivery to the client:
00083   afterGetting(this);
00084 }

void MPEG2TransportStreamMultiplexor::deliverDataToClient ( u_int8_t  pid,
unsigned char *  buffer,
unsigned  bufferSize,
unsigned &  startPositionInBuffer 
) [private]

Definition at line 139 of file MPEG2TransportStreamMultiplexor.cpp.

References MPEG1or2Demux::SCR::extension, False, FramedSource::fFrameSize, fIsFirstAdaptationField, FramedSource::fMaxSize, FramedSource::fNumTruncatedBytes, fPCR, fPCR_PID, fPIDState, FramedSource::fTo, MPEG1or2Demux::SCR::highBit, MPEG1or2Demux::SCR::remainingBits, and TRANSPORT_PACKET_SIZE.

Referenced by deliverPATPacket(), deliverPMTPacket(), and doGetNextFrame().

00140                                                        {
00141   // Construct a new Transport packet, and deliver it to the client:
00142   if (fMaxSize < TRANSPORT_PACKET_SIZE) {
00143     fFrameSize = 0; // the client hasn't given us enough space; deliver nothing
00144     fNumTruncatedBytes = TRANSPORT_PACKET_SIZE;
00145   } else {
00146     fFrameSize = TRANSPORT_PACKET_SIZE;
00147     Boolean willAddPCR = pid == fPCR_PID && startPositionInBuffer == 0
00148       && !(fPCR.highBit == 0 && fPCR.remainingBits == 0 && fPCR.extension == 0);
00149     unsigned const numBytesAvailable = bufferSize - startPositionInBuffer;
00150     unsigned numHeaderBytes = 4; // by default
00151     unsigned numPCRBytes = 0; // by default
00152     unsigned numPaddingBytes = 0; // by default
00153     unsigned numDataBytes;
00154     u_int8_t adaptation_field_control;
00155     if (willAddPCR) {
00156       adaptation_field_control = 0x30;
00157       numHeaderBytes += 2; // for the "adaptation_field_length" and flags
00158       numPCRBytes = 6;
00159       if (numBytesAvailable >= TRANSPORT_PACKET_SIZE - numHeaderBytes - numPCRBytes) {
00160         numDataBytes = TRANSPORT_PACKET_SIZE - numHeaderBytes - numPCRBytes;
00161       } else {
00162         numDataBytes = numBytesAvailable;
00163         numPaddingBytes
00164           = TRANSPORT_PACKET_SIZE - numHeaderBytes - numPCRBytes - numDataBytes;
00165       }
00166     } else if (numBytesAvailable >= TRANSPORT_PACKET_SIZE - numHeaderBytes) {
00167       // This is the common case
00168       adaptation_field_control = 0x10;
00169       numDataBytes = TRANSPORT_PACKET_SIZE - numHeaderBytes;
00170     } else {
00171       adaptation_field_control = 0x30;
00172       ++numHeaderBytes; // for the "adaptation_field_length"
00173       // ASSERT: numBytesAvailable <= TRANSPORT_PACKET_SIZE - numHeaderBytes
00174       numDataBytes = numBytesAvailable;
00175       if (numDataBytes < TRANSPORT_PACKET_SIZE - numHeaderBytes) {
00176         ++numHeaderBytes; // for the adaptation field flags
00177         numPaddingBytes = TRANSPORT_PACKET_SIZE - numHeaderBytes - numDataBytes;
00178       }
00179     }
00180     // ASSERT: numHeaderBytes+numPCRBytes+numPaddingBytes+numDataBytes
00181     //         == TRANSPORT_PACKET_SIZE
00182 
00183     // Fill in the header of the Transport Stream packet:
00184     unsigned char* header = fTo;
00185     *header++ = 0x47; // sync_byte
00186     *header++ = (startPositionInBuffer == 0) ? 0x40 : 0x00;
00187       // transport_error_indicator, payload_unit_start_indicator, transport_priority,
00188       // first 5 bits of PID
00189     *header++ = pid;
00190       // last 8 bits of PID
00191     unsigned& continuity_counter = fPIDState[pid].counter; // alias
00192     *header++ = adaptation_field_control|(continuity_counter&0x0F);
00193       // transport_scrambling_control, adaptation_field_control, continuity_counter
00194     ++continuity_counter;
00195     if (adaptation_field_control == 0x30) {
00196       // Add an adaptation field:
00197       u_int8_t adaptation_field_length
00198         = (numHeaderBytes == 5) ? 0 : 1 + numPCRBytes + numPaddingBytes;
00199       *header++ = adaptation_field_length;
00200       if (numHeaderBytes > 5) {
00201         u_int8_t flags = willAddPCR ? 0x10 : 0x00;
00202         if (fIsFirstAdaptationField) {
00203           flags |= 0x80; // discontinuity_indicator
00204           fIsFirstAdaptationField = False;
00205         }
00206         *header++ = flags;
00207         if (willAddPCR) {
00208           u_int32_t pcrHigh32Bits = (fPCR.highBit<<31) | (fPCR.remainingBits>>1);
00209           u_int8_t pcrLowBit = fPCR.remainingBits&1;
00210           u_int8_t extHighBit = (fPCR.extension&0x100)>>8;
00211           *header++ = pcrHigh32Bits>>24;
00212           *header++ = pcrHigh32Bits>>16;
00213           *header++ = pcrHigh32Bits>>8;
00214           *header++ = pcrHigh32Bits;
00215           *header++ = (pcrLowBit<<7)|0x7E|extHighBit;
00216           *header++ = (u_int8_t)fPCR.extension; // low 8 bits of extension
00217         }
00218       }
00219     }
00220 
00221     // Add any padding bytes:
00222     for (unsigned i = 0; i < numPaddingBytes; ++i) *header++ = 0xFF;
00223 
00224     // Finally, add the data bytes:
00225     memmove(header, &buffer[startPositionInBuffer], numDataBytes);
00226     startPositionInBuffer += numDataBytes;
00227   }
00228 }

void MPEG2TransportStreamMultiplexor::deliverPATPacket (  )  [private]

Definition at line 236 of file MPEG2TransportStreamMultiplexor.cpp.

References calculateCRC(), deliverDataToClient(), OUR_PROGRAM_MAP_PID, OUR_PROGRAM_NUMBER, PAT_PID, and TRANSPORT_PACKET_SIZE.

Referenced by doGetNextFrame().

00236                                                        {
00237   // First, create a new buffer for the PAT packet:
00238   unsigned const patSize = TRANSPORT_PACKET_SIZE - 4; // allow for the 4-byte header
00239   unsigned char* patBuffer = new unsigned char[patSize];
00240 
00241   // and fill it in:
00242   unsigned char* pat = patBuffer;
00243   *pat++ = 0; // pointer_field
00244   *pat++ = 0; // table_id
00245   *pat++ = 0xB0; // section_syntax_indicator; 0; reserved, section_length (high)
00246   *pat++ = 13; // section_length (low)
00247   *pat++ = 0; *pat++ = 1; // transport_stream_id
00248   *pat++ = 0xC3; // reserved; version_number; current_next_indicator
00249   *pat++ = 0; // section_number
00250   *pat++ = 0; // last_section_number
00251   *pat++ = OUR_PROGRAM_NUMBER>>8; *pat++ = OUR_PROGRAM_NUMBER; // program_number
00252   *pat++ = 0xE0|(OUR_PROGRAM_MAP_PID>>8); // reserved; program_map_PID (high)
00253   *pat++ = OUR_PROGRAM_MAP_PID; // program_map_PID (low)
00254 
00255   // Compute the CRC from the bytes we currently have (not including "pointer_field"):
00256   u_int32_t crc = calculateCRC(patBuffer+1, pat - (patBuffer+1));
00257   *pat++ = crc>>24; *pat++ = crc>>16; *pat++ = crc>>8; *pat++ = crc;
00258 
00259   // Fill in the rest of the packet with padding bytes:
00260   while (pat < &patBuffer[patSize]) *pat++ = 0xFF;
00261 
00262   // Deliver the packet:
00263   unsigned startPosition = 0;
00264   deliverDataToClient(PAT_PID, patBuffer, patSize, startPosition);
00265 
00266   // Finally, remove the new buffer:
00267   delete[] patBuffer;
00268 }

void MPEG2TransportStreamMultiplexor::deliverPMTPacket ( Boolean  hasChanged  )  [private]

Definition at line 270 of file MPEG2TransportStreamMultiplexor.cpp.

References calculateCRC(), deliverDataToClient(), fPCR_PID, fPIDState, fProgramMapVersion, OUR_PROGRAM_MAP_PID, OUR_PROGRAM_NUMBER, PID_TABLE_SIZE, streamType, and TRANSPORT_PACKET_SIZE.

Referenced by doGetNextFrame().

00270                                                                          {
00271   if (hasChanged) ++fProgramMapVersion;
00272 
00273   // First, create a new buffer for the PMT packet:
00274   unsigned const pmtSize = TRANSPORT_PACKET_SIZE - 4; // allow for the 4-byte header
00275   unsigned char* pmtBuffer = new unsigned char[pmtSize];
00276 
00277   // and fill it in:
00278   unsigned char* pmt = pmtBuffer;
00279   *pmt++ = 0; // pointer_field
00280   *pmt++ = 2; // table_id
00281   *pmt++ = 0xB0; // section_syntax_indicator; 0; reserved, section_length (high)
00282   unsigned char* section_lengthPtr = pmt; // save for later
00283   *pmt++ = 0; // section_length (low) (fill in later)
00284   *pmt++ = OUR_PROGRAM_NUMBER>>8; *pmt++ = OUR_PROGRAM_NUMBER; // program_number
00285   *pmt++ = 0xC1|((fProgramMapVersion&0x1F)<<1); // reserved; version_number; current_next_indicator
00286   *pmt++ = 0; // section_number
00287   *pmt++ = 0; // last_section_number
00288   *pmt++ = 0xE0; // reserved; PCR_PID (high)
00289   *pmt++ = fPCR_PID; // PCR_PID (low)
00290   *pmt++ = 0xF0; // reserved; program_info_length (high)
00291   *pmt++ = 0; // program_info_length (low)
00292   for (int pid = 0; pid < PID_TABLE_SIZE; ++pid) {
00293     if (fPIDState[pid].streamType != 0) {
00294       // This PID gets recorded in the table
00295       *pmt++ = fPIDState[pid].streamType;
00296       *pmt++ = 0xE0; // reserved; elementary_pid (high)
00297       *pmt++ = pid; // elementary_pid (low)
00298       *pmt++ = 0xF0; // reserved; ES_info_length (high)
00299       *pmt++ = 0; // ES_info_length (low)
00300     }
00301   }
00302   unsigned section_length = pmt - (section_lengthPtr+1) + 4 /*for CRC*/;
00303   *section_lengthPtr = section_length;
00304 
00305   // Compute the CRC from the bytes we currently have (not including "pointer_field"):
00306   u_int32_t crc = calculateCRC(pmtBuffer+1, pmt - (pmtBuffer+1));
00307   *pmt++ = crc>>24; *pmt++ = crc>>16; *pmt++ = crc>>8; *pmt++ = crc;
00308 
00309   // Fill in the rest of the packet with padding bytes:
00310   while (pmt < &pmtBuffer[pmtSize]) *pmt++ = 0xFF;
00311 
00312   // Deliver the packet:
00313   unsigned startPosition = 0;
00314   deliverDataToClient(OUR_PROGRAM_MAP_PID, pmtBuffer, pmtSize, startPosition);
00315 
00316   // Finally, remove the new buffer:
00317   delete[] pmtBuffer;
00318 }

void MPEG2TransportStreamMultiplexor::setProgramStreamMap ( unsigned  frameSize  )  [private]

Definition at line 320 of file MPEG2TransportStreamMultiplexor.cpp.

References fCurrentInputProgramMapVersion, fInputBuffer, and fPIDState.

Referenced by handleNewBuffer().

00320                                                                             {
00321   if (frameSize <= 16) return; // program_stream_map is too small to be useful
00322   if (frameSize > 0xFF) return; // program_stream_map is too large
00323 
00324   u_int16_t program_stream_map_length = (fInputBuffer[4]<<8) | fInputBuffer[5];
00325   if ((u_int16_t)frameSize > 6+program_stream_map_length) {
00326     frameSize = 6+program_stream_map_length;
00327   }
00328 
00329   u_int8_t versionByte = fInputBuffer[6];
00330   if ((versionByte&0x80) == 0) return; // "current_next_indicator" is not set
00331   fCurrentInputProgramMapVersion = versionByte&0x1F;
00332 
00333   u_int16_t program_stream_info_length = (fInputBuffer[8]<<8) | fInputBuffer[9];
00334   unsigned offset = 10 + program_stream_info_length; // skip over 'descriptors'
00335 
00336   u_int16_t elementary_stream_map_length
00337     = (fInputBuffer[offset]<<8) | fInputBuffer[offset+1];
00338   offset += 2;
00339   frameSize -= 4; // sizeof CRC_32
00340   if (frameSize > offset + elementary_stream_map_length) {
00341     frameSize = offset + elementary_stream_map_length;
00342   }
00343 
00344   while (offset + 4 <= frameSize) {
00345     u_int8_t stream_type = fInputBuffer[offset];
00346     u_int8_t elementary_stream_id = fInputBuffer[offset+1];
00347 
00348     fPIDState[elementary_stream_id].streamType = stream_type;
00349 
00350     u_int16_t elementary_stream_info_length
00351       = (fInputBuffer[offset+2]<<8) | fInputBuffer[offset+3];
00352     offset += 4 + elementary_stream_info_length;
00353   }
00354 }

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(), WAVAudioFileSource::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().

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 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(), WAVAudioFileSource::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), MPEG2TransportStreamTrickModeFilter::doGetNextFrame(), 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().

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

References env, MediaLookupTable::ourMedia(), and MediaLookupTable::remove().

Referenced by afterPlaying(), Medium::close(), closeMediaSinks(), OnDemandServerMediaSubsession::closeStreamSource(), continueAfterTEARDOWN(), WAVAudioFileSource::createNew(), QuickTimeFileSink::createNew(), QCELPAudioRTPSource::createNew(), 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(), WAVAudioFileSource::doGetNextFrame(), T140IdleFilter::doGetNextFrame(), MPEG2IFrameIndexFromTransportStream::doGetNextFrame(), MP3FileSource::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamFileSource::doGetNextFrame(), BasicUDPSource::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), SIPClient::doInviteStateMachine(), 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]

Reimplemented in MediaSink.

Definition at line 66 of file Media.cpp.

References False.

Referenced by MediaSink::lookupByName().

00066                              {
00067   return False; // default implementation
00068 }

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(), WAVAudioFileSource::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   }


Friends And Related Function Documentation

friend class MediaLookupTable [friend, inherited]

Definition at line 74 of file Media.hh.


Field Documentation

Boolean MPEG2TransportStreamMultiplexor::fHaveVideoStreams [protected]

Definition at line 61 of file MPEG2TransportStreamMultiplexor.hh.

Referenced by handleNewBuffer().

unsigned MPEG2TransportStreamMultiplexor::fOutgoingPacketCounter [private]

Definition at line 64 of file MPEG2TransportStreamMultiplexor.hh.

Referenced by doGetNextFrame().

unsigned MPEG2TransportStreamMultiplexor::fProgramMapVersion [private]

Definition at line 65 of file MPEG2TransportStreamMultiplexor.hh.

Referenced by deliverPMTPacket().

u_int8_t MPEG2TransportStreamMultiplexor::fPreviousInputProgramMapVersion [private]

Definition at line 66 of file MPEG2TransportStreamMultiplexor.hh.

Referenced by doGetNextFrame().

u_int8_t MPEG2TransportStreamMultiplexor::fCurrentInputProgramMapVersion [private]

Definition at line 66 of file MPEG2TransportStreamMultiplexor.hh.

Referenced by doGetNextFrame(), and setProgramStreamMap().

unsigned MPEG2TransportStreamMultiplexor::counter

Definition at line 69 of file MPEG2TransportStreamMultiplexor.hh.

u_int8_t MPEG2TransportStreamMultiplexor::streamType

Definition at line 70 of file MPEG2TransportStreamMultiplexor.hh.

Referenced by deliverPMTPacket(), and handleNewBuffer().

struct { ... } MPEG2TransportStreamMultiplexor::fPIDState[PID_TABLE_SIZE] [private]

Referenced by deliverDataToClient(), deliverPMTPacket(), doGetNextFrame(), handleNewBuffer(), and setProgramStreamMap().

u_int8_t MPEG2TransportStreamMultiplexor::fPCR_PID [private]

Definition at line 72 of file MPEG2TransportStreamMultiplexor.hh.

Referenced by deliverDataToClient(), deliverPMTPacket(), and handleNewBuffer().

u_int8_t MPEG2TransportStreamMultiplexor::fCurrentPID [private]

Definition at line 72 of file MPEG2TransportStreamMultiplexor.hh.

Referenced by doGetNextFrame(), and handleNewBuffer().

MPEG1or2Demux::SCR MPEG2TransportStreamMultiplexor::fPCR [private]

Definition at line 74 of file MPEG2TransportStreamMultiplexor.hh.

Referenced by deliverDataToClient(), and handleNewBuffer().

unsigned char* MPEG2TransportStreamMultiplexor::fInputBuffer [private]

Reimplemented in MPEG2TransportStreamFromPESSource.

Definition at line 75 of file MPEG2TransportStreamMultiplexor.hh.

Referenced by doGetNextFrame(), handleNewBuffer(), InputESSourceRecord::InputESSourceRecord(), and setProgramStreamMap().

unsigned MPEG2TransportStreamMultiplexor::fInputBufferSize [private]

Definition at line 76 of file MPEG2TransportStreamMultiplexor.hh.

Referenced by doGetNextFrame(), and handleNewBuffer().

unsigned MPEG2TransportStreamMultiplexor::fInputBufferBytesUsed [private]

Definition at line 76 of file MPEG2TransportStreamMultiplexor.hh.

Referenced by doGetNextFrame(), and handleNewBuffer().

Boolean MPEG2TransportStreamMultiplexor::fIsFirstAdaptationField [private]

Definition at line 77 of file MPEG2TransportStreamMultiplexor.hh.

Referenced by deliverDataToClient().

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(), deliverDataToClient(), DeviceSource::deliverFrame(), T140IdleFilter::deliverFromBuffer(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), StreamReplicator::deliverReceivedFrame(), WAVAudioFileSource::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(), deliverDataToClient(), DeviceSource::deliverFrame(), T140IdleFilter::deliverFromBuffer(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), StreamReplicator::deliverReceivedFrame(), WAVAudioFileSource::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(), deliverDataToClient(), T140IdleFilter::deliverEmptyFrame(), DeviceSource::deliverFrame(), T140IdleFilter::deliverFromBuffer(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), WAVAudioFileSource::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(), 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(), WAVAudioFileSource::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(), WAVAudioFileSource::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().


The documentation for this class was generated from the following files:
Generated on Thu Feb 2 23:55:27 2012 for live by  doxygen 1.5.2