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


Public Types | |
| typedef void( | afterGettingFunc )(void *clientData, unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds) |
| typedef void( | onCloseFunc )(void *clientData) |
Public Member Functions | |
| u_int8_t | profile_and_level_indication () const |
| unsigned char * | getConfigBytes (unsigned &numBytes) const |
| Boolean & | pictureEndMarker () |
| void | flushInput () |
| FramedSource * | inputSource () const |
| void | detachInputSource () |
| 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 Boolean | isRTPSource () const |
| virtual Boolean | isMPEG1or2VideoStreamFramer () const |
| virtual Boolean | isH264VideoStreamFramer () const |
| virtual Boolean | isDVVideoStreamFramer () const |
| virtual Boolean | isJPEGVideoSource () const |
| virtual Boolean | isAMRAudioSource () const |
| UsageEnvironment & | envir () const |
| char const * | name () const |
| virtual Boolean | isSink () const |
| virtual Boolean | isRTCPInstance () const |
| virtual Boolean | isRTSPClient () const |
| virtual Boolean | isRTSPServer () const |
| virtual Boolean | isMediaSession () const |
| virtual Boolean | isServerMediaSession () const |
| virtual Boolean | isDarwinInjector () const |
Static Public Member Functions | |
| static MPEG4VideoStreamDiscreteFramer * | createNew (UsageEnvironment &env, FramedSource *inputSource) |
| 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 | |
| MPEG4VideoStreamDiscreteFramer (UsageEnvironment &env, FramedSource *inputSource) | |
| virtual | ~MPEG4VideoStreamDiscreteFramer () |
| virtual void | doGetNextFrame () |
| void | afterGettingFrame1 (unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds) |
| Boolean | getNextFrameBit (u_int8_t &result) |
| Boolean | getNextFrameBits (unsigned numBits, u_int32_t &result) |
| void | analyzeVOLHeader () |
| void | startNewConfig () |
| void | appendToNewConfig (unsigned char *newConfigBytes, unsigned numNewBytes) |
| void | completeNewConfig () |
| void | computePresentationTime (unsigned numAdditionalPictures) |
| void | setTimeCode (unsigned hours, unsigned minutes, unsigned seconds, unsigned pictures, unsigned picturesSinceLastGOP) |
| virtual char const * | MIMEtype () const |
| virtual void | getAttributes () const |
| virtual void | doStopGettingFrames () |
| TaskToken & | nextTask () |
Static Protected Member Functions | |
| static void | afterGettingFrame (void *clientData, unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds) |
Protected Attributes | |
| u_int32_t | vop_time_increment_resolution |
| unsigned | fNumVTIRBits |
| timeval | fLastNonBFramePresentationTime |
| unsigned | fLastNonBFrameVop_time_increment |
| u_int8_t | fProfileAndLevelIndication |
| unsigned char * | fConfigBytes |
| unsigned | fNumConfigBytes |
| double | fFrameRate |
| unsigned | fPictureCount |
| Boolean | fPictureEndMarker |
| timeval | fPresentationTimeBase |
| MPEGVideoStreamParser * | fParser |
| FramedSource * | fInputSource |
| unsigned char * | fTo |
| unsigned | fMaxSize |
| unsigned | fFrameSize |
| unsigned | fNumTruncatedBytes |
| timeval | fPresentationTime |
| unsigned | fDurationInMicroseconds |
Private Attributes | |
| unsigned | fNumBitsSeenSoFar |
Friends | |
| class | MPEGVideoStreamParser |
| class | MediaLookupTable |
Definition at line 31 of file MPEG4VideoStreamDiscreteFramer.hh.
typedef void( FramedSource::afterGettingFunc)(void *clientData, unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds) [inherited] |
Definition at line 36 of file FramedSource.hh.
typedef void( FramedSource::onCloseFunc)(void *clientData) [inherited] |
Definition at line 40 of file FramedSource.hh.
| MPEG4VideoStreamDiscreteFramer::MPEG4VideoStreamDiscreteFramer | ( | UsageEnvironment & | env, | |
| FramedSource * | inputSource | |||
| ) | [protected] |
Definition at line 34 of file MPEG4VideoStreamDiscreteFramer.cpp.
References fLastNonBFramePresentationTime.
Referenced by createNew().
00036 : MPEG4VideoStreamFramer(env, inputSource, False/*don't create a parser*/), 00037 vop_time_increment_resolution(0), fNumVTIRBits(0), 00038 fLastNonBFrameVop_time_increment(0) { 00039 fLastNonBFramePresentationTime.tv_sec = 0; 00040 fLastNonBFramePresentationTime.tv_usec = 0; 00041 }
| MPEG4VideoStreamDiscreteFramer::~MPEG4VideoStreamDiscreteFramer | ( | ) | [protected, virtual] |
| MPEG4VideoStreamDiscreteFramer * MPEG4VideoStreamDiscreteFramer::createNew | ( | UsageEnvironment & | env, | |
| FramedSource * | inputSource | |||
| ) | [static] |
Reimplemented from MPEG4VideoStreamFramer.
Definition at line 27 of file MPEG4VideoStreamDiscreteFramer.cpp.
References env, FramedFilter::inputSource(), and MPEG4VideoStreamDiscreteFramer().
00028 { 00029 // Need to add source type checking here??? ##### 00030 return new MPEG4VideoStreamDiscreteFramer(env, inputSource); 00031 }
| void MPEG4VideoStreamDiscreteFramer::doGetNextFrame | ( | ) | [protected, virtual] |
Reimplemented from MPEGVideoStreamFramer.
Definition at line 46 of file MPEG4VideoStreamDiscreteFramer.cpp.
References afterGettingFrame(), FramedFilter::fInputSource, FramedSource::fMaxSize, FramedSource::fTo, FramedSource::getNextFrame(), and FramedSource::handleClosure().
00046 { 00047 // Arrange to read data (which should be a complete MPEG-4 video frame) 00048 // from our data source, directly into the client's input buffer. 00049 // After reading this, we'll do some parsing on the frame. 00050 fInputSource->getNextFrame(fTo, fMaxSize, 00051 afterGettingFrame, this, 00052 FramedSource::handleClosure, this); 00053 }
| void MPEG4VideoStreamDiscreteFramer::afterGettingFrame | ( | void * | clientData, | |
| unsigned | frameSize, | |||
| unsigned | numTruncatedBytes, | |||
| struct timeval | presentationTime, | |||
| unsigned | durationInMicroseconds | |||
| ) | [static, protected] |
Definition at line 56 of file MPEG4VideoStreamDiscreteFramer.cpp.
References afterGettingFrame1().
Referenced by doGetNextFrame().
00059 { 00060 MPEG4VideoStreamDiscreteFramer* source = (MPEG4VideoStreamDiscreteFramer*)clientData; 00061 source->afterGettingFrame1(frameSize, numTruncatedBytes, 00062 presentationTime, durationInMicroseconds); 00063 }
| void MPEG4VideoStreamDiscreteFramer::afterGettingFrame1 | ( | unsigned | frameSize, | |
| unsigned | numTruncatedBytes, | |||
| struct timeval | presentationTime, | |||
| unsigned | durationInMicroseconds | |||
| ) | [protected] |
Definition at line 66 of file MPEG4VideoStreamDiscreteFramer.cpp.
References analyzeVOLHeader(), MPEG4VideoStreamFramer::fConfigBytes, fLastNonBFramePresentationTime, fLastNonBFrameVop_time_increment, MPEG4VideoStreamFramer::fNumConfigBytes, fNumVTIRBits, MPEGVideoStreamFramer::fPictureEndMarker, MPEG4VideoStreamFramer::fProfileAndLevelIndication, FramedSource::fTo, if(), MILLION, True, and vop_time_increment_resolution.
Referenced by afterGettingFrame().
00068 { 00069 // Check that the first 4 bytes are a system code: 00070 if (frameSize >= 4 && fTo[0] == 0 && fTo[1] == 0 && fTo[2] == 1) { 00071 fPictureEndMarker = True; // Assume that we have a complete 'picture' here 00072 unsigned i = 3; 00073 if (fTo[i] == 0xB0) { // VISUAL_OBJECT_SEQUENCE_START_CODE 00074 // The next byte is the "profile_and_level_indication": 00075 if (frameSize >= 5) fProfileAndLevelIndication = fTo[4]; 00076 00077 // The start of this frame - up to the first GROUP_VOP_START_CODE 00078 // or VOP_START_CODE - is stream configuration information. Save this: 00079 for (i = 7; i < frameSize; ++i) { 00080 if ((fTo[i] == 0xB3 /*GROUP_VOP_START_CODE*/ || 00081 fTo[i] == 0xB6 /*VOP_START_CODE*/) 00082 && fTo[i-1] == 1 && fTo[i-2] == 0 && fTo[i-3] == 0) { 00083 break; // The configuration information ends here 00084 } 00085 } 00086 fNumConfigBytes = i < frameSize ? i-3 : frameSize; 00087 delete[] fConfigBytes; fConfigBytes = new unsigned char[fNumConfigBytes]; 00088 for (unsigned j = 0; j < fNumConfigBytes; ++j) fConfigBytes[j] = fTo[j]; 00089 00090 // This information (should) also contain a VOL header, which we need 00091 // to analyze, to get "vop_time_increment_resolution" (which we need 00092 // - along with "vop_time_increment" - in order to generate accurate 00093 // presentation times for "B" frames). 00094 analyzeVOLHeader(); 00095 } 00096 00097 if (i < frameSize) { 00098 u_int8_t nextCode = fTo[i]; 00099 00100 if (nextCode == 0xB3 /*GROUP_VOP_START_CODE*/) { 00101 // Skip to the following VOP_START_CODE (if any): 00102 for (i += 4; i < frameSize; ++i) { 00103 if (fTo[i] == 0xB6 /*VOP_START_CODE*/ 00104 && fTo[i-1] == 1 && fTo[i-2] == 0 && fTo[i-3] == 0) { 00105 nextCode = fTo[i]; 00106 break; 00107 } 00108 } 00109 } 00110 00111 if (nextCode == 0xB6 /*VOP_START_CODE*/ && i+5 < frameSize) { 00112 ++i; 00113 00114 // Get the "vop_coding_type" from the next byte: 00115 u_int8_t nextByte = fTo[i++]; 00116 u_int8_t vop_coding_type = nextByte>>6; 00117 00118 // Next, get the "modulo_time_base" by counting the '1' bits that 00119 // follow. We look at the next 32-bits only. 00120 // This should be enough in most cases. 00121 u_int32_t next4Bytes 00122 = (fTo[i]<<24)|(fTo[i+1]<<16)|(fTo[i+2]<<8)|fTo[i+3]; 00123 i += 4; 00124 u_int32_t timeInfo = (nextByte<<(32-6))|(next4Bytes>>6); 00125 unsigned modulo_time_base = 0; 00126 u_int32_t mask = 0x80000000; 00127 while ((timeInfo&mask) != 0) { 00128 ++modulo_time_base; 00129 mask >>= 1; 00130 } 00131 mask >>= 2; 00132 00133 // Then, get the "vop_time_increment". 00134 unsigned vop_time_increment = 0; 00135 // First, make sure we have enough bits left for this: 00136 if ((mask>>(fNumVTIRBits-1)) != 0) { 00137 for (unsigned i = 0; i < fNumVTIRBits; ++i) { 00138 vop_time_increment |= timeInfo&mask; 00139 mask >>= 1; 00140 } 00141 while (mask != 0) { 00142 vop_time_increment >>= 1; 00143 mask >>= 1; 00144 } 00145 } 00146 00147 // If this is a "B" frame, then we have to tweak "presentationTime": 00148 if (vop_coding_type == 2/*B*/ 00149 && (fLastNonBFramePresentationTime.tv_usec > 0 || 00150 fLastNonBFramePresentationTime.tv_sec > 0)) { 00151 int timeIncrement 00152 = fLastNonBFrameVop_time_increment - vop_time_increment; 00153 if (timeIncrement<0) timeIncrement += vop_time_increment_resolution; 00154 unsigned const MILLION = 1000000; 00155 double usIncrement = vop_time_increment_resolution == 0 ? 0.0 00156 : ((double)timeIncrement*MILLION)/vop_time_increment_resolution; 00157 unsigned secondsToSubtract = (unsigned)(usIncrement/MILLION); 00158 unsigned uSecondsToSubtract = ((unsigned)usIncrement)%MILLION; 00159 00160 presentationTime = fLastNonBFramePresentationTime; 00161 if ((unsigned)presentationTime.tv_usec < uSecondsToSubtract) { 00162 presentationTime.tv_usec += MILLION; 00163 if (presentationTime.tv_sec > 0) --presentationTime.tv_sec; 00164 } 00165 presentationTime.tv_usec -= uSecondsToSubtract; 00166 if ((unsigned)presentationTime.tv_sec > secondsToSubtract) { 00167 presentationTime.tv_sec -= secondsToSubtract; 00168 } else { 00169 presentationTime.tv_sec = presentationTime.tv_usec = 0; 00170 } 00171 } else { 00172 fLastNonBFramePresentationTime = presentationTime; 00173 fLastNonBFrameVop_time_increment = vop_time_increment; 00174 } 00175 } 00176 } 00177 } 00178 00179 // Complete delivery to the client: 00180 fFrameSize = frameSize; 00181 fNumTruncatedBytes = numTruncatedBytes; 00182 fPresentationTime = presentationTime; 00183 fDurationInMicroseconds = durationInMicroseconds; 00184 afterGetting(this); 00185 }
| Boolean MPEG4VideoStreamDiscreteFramer::getNextFrameBit | ( | u_int8_t & | result | ) | [protected] |
Definition at line 187 of file MPEG4VideoStreamDiscreteFramer.cpp.
References False, MPEG4VideoStreamFramer::fConfigBytes, fNumBitsSeenSoFar, MPEG4VideoStreamFramer::fNumConfigBytes, and True.
Referenced by analyzeVOLHeader(), and getNextFrameBits().
00187 { 00188 if (fNumBitsSeenSoFar/8 >= fNumConfigBytes) return False; 00189 00190 u_int8_t nextByte = fConfigBytes[fNumBitsSeenSoFar/8]; 00191 result = (nextByte>>(7-fNumBitsSeenSoFar%8))&1; 00192 ++fNumBitsSeenSoFar; 00193 return True; 00194 }
| Boolean MPEG4VideoStreamDiscreteFramer::getNextFrameBits | ( | unsigned | numBits, | |
| u_int32_t & | result | |||
| ) | [protected] |
Definition at line 196 of file MPEG4VideoStreamDiscreteFramer.cpp.
References False, getNextFrameBit(), and True.
Referenced by analyzeVOLHeader().
00197 { 00198 result = 0; 00199 for (unsigned i = 0; i < numBits; ++i) { 00200 u_int8_t nextBit; 00201 if (!getNextFrameBit(nextBit)) return False; 00202 result = (result<<1)|nextBit; 00203 } 00204 return True; 00205 }
| void MPEG4VideoStreamDiscreteFramer::analyzeVOLHeader | ( | ) | [protected] |
Definition at line 207 of file MPEG4VideoStreamDiscreteFramer.cpp.
References MPEG4VideoStreamFramer::fConfigBytes, fNumBitsSeenSoFar, MPEG4VideoStreamFramer::fNumConfigBytes, fNumVTIRBits, getNextFrameBit(), getNextFrameBits(), and vop_time_increment_resolution.
Referenced by afterGettingFrame1().
00207 { 00208 // Begin by moving to the VOL header: 00209 unsigned i; 00210 for (i = 3; i < fNumConfigBytes; ++i) { 00211 if (fConfigBytes[i] >= 0x20 && fConfigBytes[i] <= 0x2F 00212 && fConfigBytes[i-1] == 1 00213 && fConfigBytes[i-2] == 0 && fConfigBytes[i-3] == 0) { 00214 ++i; 00215 break; 00216 } 00217 } 00218 00219 fNumBitsSeenSoFar = 8*i + 9; 00220 do { 00221 u_int8_t is_object_layer_identifier; 00222 if (!getNextFrameBit(is_object_layer_identifier)) break; 00223 if (is_object_layer_identifier) fNumBitsSeenSoFar += 7; 00224 00225 u_int32_t aspect_ratio_info; 00226 if (!getNextFrameBits(4, aspect_ratio_info)) break; 00227 if (aspect_ratio_info == 15 /*extended_PAR*/) fNumBitsSeenSoFar += 16; 00228 00229 u_int8_t vol_control_parameters; 00230 if (!getNextFrameBit(vol_control_parameters)) break; 00231 if (vol_control_parameters) { 00232 fNumBitsSeenSoFar += 3; // chroma_format; low_delay 00233 u_int8_t vbw_parameters; 00234 if (!getNextFrameBit(vbw_parameters)) break; 00235 if (vbw_parameters) fNumBitsSeenSoFar += 79; 00236 } 00237 00238 fNumBitsSeenSoFar += 2; // video_object_layer_shape 00239 u_int8_t marker_bit; 00240 if (!getNextFrameBit(marker_bit)) break; 00241 if (marker_bit != 1) break; // sanity check 00242 00243 if (!getNextFrameBits(16, vop_time_increment_resolution)) break; 00244 if (vop_time_increment_resolution == 0) break; // shouldn't happen 00245 00246 // Compute how many bits are necessary to represent this: 00247 fNumVTIRBits = 0; 00248 for (unsigned test = vop_time_increment_resolution; test>0; test /= 2) { 00249 ++fNumVTIRBits; 00250 } 00251 } while (0); 00252 }
| u_int8_t MPEG4VideoStreamFramer::profile_and_level_indication | ( | ) | const [inline, inherited] |
Definition at line 38 of file MPEG4VideoStreamFramer.hh.
References MPEG4VideoStreamFramer::fProfileAndLevelIndication.
Referenced by MPEG4ESVideoRTPSink::auxSDPLine().
00038 { 00039 return fProfileAndLevelIndication; 00040 }
| unsigned char * MPEG4VideoStreamFramer::getConfigBytes | ( | unsigned & | numBytes | ) | const [inherited] |
Definition at line 97 of file MPEG4VideoStreamFramer.cpp.
References MPEG4VideoStreamFramer::fConfigBytes, and MPEG4VideoStreamFramer::fNumConfigBytes.
Referenced by MPEG4ESVideoRTPSink::auxSDPLine().
00097 { 00098 numBytes = fNumConfigBytes; 00099 return fConfigBytes; 00100 }
| void MPEG4VideoStreamFramer::startNewConfig | ( | ) | [protected, inherited] |
Definition at line 118 of file MPEG4VideoStreamFramer.cpp.
References MPEG4VideoStreamFramer::fNewConfigBytes, MPEG4VideoStreamFramer::fNumNewConfigBytes, and NULL.
Referenced by MPEG4VideoStreamParser::parseVisualObjectSequence().
00118 { 00119 delete[] fNewConfigBytes; fNewConfigBytes = NULL; 00120 fNumNewConfigBytes = 0; 00121 }
| void MPEG4VideoStreamFramer::appendToNewConfig | ( | unsigned char * | newConfigBytes, | |
| unsigned | numNewBytes | |||
| ) | [protected, inherited] |
Definition at line 124 of file MPEG4VideoStreamFramer.cpp.
References MPEG4VideoStreamFramer::fNewConfigBytes, and MPEG4VideoStreamFramer::fNumNewConfigBytes.
Referenced by MPEG4VideoStreamParser::parseVideoObjectLayer(), MPEG4VideoStreamParser::parseVisualObject(), and MPEG4VideoStreamParser::parseVisualObjectSequence().
00124 { 00125 // Allocate a new block of memory for the new config bytes: 00126 unsigned char* configNew 00127 = new unsigned char[fNumNewConfigBytes + numNewBytes]; 00128 00129 // Copy the old, then the new, config bytes there: 00130 memmove(configNew, fNewConfigBytes, fNumNewConfigBytes); 00131 memmove(&configNew[fNumNewConfigBytes], newConfigBytes, numNewBytes); 00132 00133 delete[] fNewConfigBytes; fNewConfigBytes = configNew; 00134 fNumNewConfigBytes += numNewBytes; 00135 }
| void MPEG4VideoStreamFramer::completeNewConfig | ( | ) | [protected, inherited] |
Definition at line 137 of file MPEG4VideoStreamFramer.cpp.
References MPEG4VideoStreamFramer::fConfigBytes, MPEG4VideoStreamFramer::fNewConfigBytes, MPEG4VideoStreamFramer::fNumConfigBytes, MPEG4VideoStreamFramer::fNumNewConfigBytes, and NULL.
Referenced by MPEG4VideoStreamParser::parseVideoObjectLayer().
00137 { 00138 delete[] fConfigBytes; fConfigBytes = fNewConfigBytes; 00139 fNewConfigBytes = NULL; 00140 fNumConfigBytes = fNumNewConfigBytes; 00141 fNumNewConfigBytes = 0; 00142 }
| Boolean& MPEGVideoStreamFramer::pictureEndMarker | ( | ) | [inline, inherited] |
Definition at line 40 of file MPEGVideoStreamFramer.hh.
References MPEGVideoStreamFramer::fPictureEndMarker.
Referenced by MPEG4ESVideoRTPSink::doSpecialFrameHandling(), MPEG1or2VideoRTPSink::doSpecialFrameHandling(), and H264VideoRTPSink::doSpecialFrameHandling().
00040 { return fPictureEndMarker; }
| void MPEGVideoStreamFramer::flushInput | ( | ) | [inherited] |
Definition at line 53 of file MPEGVideoStreamFramer.cpp.
References StreamParser::flushInput(), MPEGVideoStreamFramer::fParser, NULL, and MPEGVideoStreamFramer::reset().
Referenced by MPEG1or2DemuxedServerMediaSubsession::seekStreamSource().
00053 { 00054 reset(); 00055 if (fParser != NULL) fParser->flushInput(); 00056 }
| void MPEGVideoStreamFramer::computePresentationTime | ( | unsigned | numAdditionalPictures | ) | [protected, inherited] |
Definition at line 74 of file MPEGVideoStreamFramer.cpp.
References TimeCode::days, MPEGVideoStreamFramer::fCurGOPTimeCode, MPEGVideoStreamFramer::fFrameRate, MPEGVideoStreamFramer::fPicturesAdjustment, MPEGVideoStreamFramer::fPictureTimeBase, FramedSource::fPresentationTime, MPEGVideoStreamFramer::fPresentationTimeBase, MPEGVideoStreamFramer::fTcSecsBase, TimeCode::hours, TimeCode::minutes, TimeCode::pictures, and TimeCode::seconds.
Referenced by MPEG1or2VideoStreamParser::parseGOPHeader(), MPEG4VideoStreamParser::parseGroupOfVideoObjectPlane(), MPEG1or2VideoStreamParser::parsePictureHeader(), MPEG1or2VideoStreamParser::parseSlice(), MPEG4VideoStreamParser::parseVideoObjectLayer(), MPEG4VideoStreamParser::parseVideoObjectPlane(), MPEG1or2VideoStreamParser::parseVideoSequenceHeader(), MPEG4VideoStreamParser::parseVisualObject(), and MPEG4VideoStreamParser::parseVisualObjectSequence().
00074 { 00075 // Computes "fPresentationTime" from the most recent GOP's 00076 // time_code, along with the "numAdditionalPictures" parameter: 00077 TimeCode& tc = fCurGOPTimeCode; 00078 00079 unsigned tcSecs 00080 = (((tc.days*24)+tc.hours)*60+tc.minutes)*60+tc.seconds - fTcSecsBase; 00081 double pictureTime = fFrameRate == 0.0 ? 0.0 00082 : (tc.pictures + fPicturesAdjustment + numAdditionalPictures)/fFrameRate; 00083 while (pictureTime < fPictureTimeBase) { // "if" should be enough, but just in case 00084 if (tcSecs > 0) tcSecs -= 1; 00085 pictureTime += 1.0; 00086 } 00087 pictureTime -= fPictureTimeBase; 00088 if (pictureTime < 0.0) pictureTime = 0.0; // sanity check 00089 unsigned pictureSeconds = (unsigned)pictureTime; 00090 double pictureFractionOfSecond = pictureTime - (double)pictureSeconds; 00091 00092 fPresentationTime = fPresentationTimeBase; 00093 fPresentationTime.tv_sec += tcSecs + pictureSeconds; 00094 fPresentationTime.tv_usec += (long)(pictureFractionOfSecond*1000000.0); 00095 if (fPresentationTime.tv_usec >= 1000000) { 00096 fPresentationTime.tv_usec -= 1000000; 00097 ++fPresentationTime.tv_sec; 00098 } 00099 #ifdef DEBUG 00100 if (firstPT.tv_sec == 0 && firstPT.tv_usec == 0) firstPT = fPresentationTime; 00101 struct timeval diffPT; 00102 diffPT.tv_sec = fPresentationTime.tv_sec - firstPT.tv_sec; 00103 diffPT.tv_usec = fPresentationTime.tv_usec - firstPT.tv_usec; 00104 if (fPresentationTime.tv_usec < firstPT.tv_usec) { 00105 --diffPT.tv_sec; 00106 diffPT.tv_usec += 1000000; 00107 } 00108 fprintf(stderr, "MPEGVideoStreamFramer::computePresentationTime(%d) -> %lu.%06ld [%lu.%06ld]\n", numAdditionalPictures, fPresentationTime.tv_sec, fPresentationTime.tv_usec, diffPT.tv_sec, diffPT.tv_usec); 00109 #endif 00110 }
| void MPEGVideoStreamFramer::setTimeCode | ( | unsigned | hours, | |
| unsigned | minutes, | |||
| unsigned | seconds, | |||
| unsigned | pictures, | |||
| unsigned | picturesSinceLastGOP | |||
| ) | [protected, inherited] |
Definition at line 113 of file MPEGVideoStreamFramer.cpp.
References TimeCode::days, MPEGVideoStreamFramer::fCurGOPTimeCode, MPEGVideoStreamFramer::fFrameRate, MPEGVideoStreamFramer::fHaveSeenFirstTimeCode, MPEGVideoStreamFramer::fPicturesAdjustment, MPEGVideoStreamFramer::fPictureTimeBase, MPEGVideoStreamFramer::fPrevGOPTimeCode, MPEGVideoStreamFramer::fTcSecsBase, TimeCode::hours, TimeCode::minutes, TimeCode::pictures, TimeCode::seconds, and True.
Referenced by MPEG1or2VideoStreamParser::parseGOPHeader(), and MPEG4VideoStreamParser::parseGroupOfVideoObjectPlane().
00114 { 00115 TimeCode& tc = fCurGOPTimeCode; // abbrev 00116 unsigned days = tc.days; 00117 if (hours < tc.hours) { 00118 // Assume that the 'day' has wrapped around: 00119 ++days; 00120 } 00121 tc.days = days; 00122 tc.hours = hours; 00123 tc.minutes = minutes; 00124 tc.seconds = seconds; 00125 tc.pictures = pictures; 00126 if (!fHaveSeenFirstTimeCode) { 00127 fPictureTimeBase = fFrameRate == 0.0 ? 0.0 : tc.pictures/fFrameRate; 00128 fTcSecsBase = (((tc.days*24)+tc.hours)*60+tc.minutes)*60+tc.seconds; 00129 fHaveSeenFirstTimeCode = True; 00130 } else if (fCurGOPTimeCode == fPrevGOPTimeCode) { 00131 // The time code has not changed since last time. Adjust for this: 00132 fPicturesAdjustment += picturesSinceLastGOP; 00133 } else { 00134 // Normal case: The time code changed since last time. 00135 fPrevGOPTimeCode = tc; 00136 fPicturesAdjustment = 0; 00137 } 00138 }
| FramedSource* FramedFilter::inputSource | ( | ) | const [inline, inherited] |
Definition at line 30 of file FramedFilter.hh.
References FramedFilter::fInputSource.
Referenced by AC3AudioStreamFramer::AC3AudioStreamFramer(), H264VideoRTPSink::auxSDPLine(), EndianSwap16::createNew(), HostFromNetworkOrder16::createNew(), NetworkFromHostOrder16::createNew(), PCMFromuLawAudioSource::createNew(), QCELPDeinterleaver::createNew(), MPEG4VideoStreamFramer::createNew(), createNew(), MPEG2IFrameIndexFromTransportStream::createNew(), MPEG1or2VideoStreamFramer::createNew(), MPEG1or2VideoStreamDiscreteFramer::createNew(), MPEG1or2AudioStreamFramer::createNew(), MP3Transcoder::createNew(), MP3ADUTranscoder::createNew(), MP3ADUdeinterleaver::createNew(), MP3ADUinterleaver::createNew(), MP3FromADUSource::createNew(), ADUFromMP3Source::createNew(), H264VideoStreamDiscreteFramer::createNew(), H263plusVideoStreamFramer::createNew(), DVVideoStreamFramer::createNew(), AC3AudioStreamFramer::createNew(), H264VideoRTPSink::doSpecialFrameHandling(), H264VideoFileServerMediaSubsession::getAuxSDPLine(), MP3AudioFileServerMediaSubsession::getBaseStreams(), MP3ADUinterleaverBase::getInputSource(), H263plusVideoStreamFramer::H263plusVideoStreamFramer(), MPEG1or2VideoStreamFramer::MPEG1or2VideoStreamFramer(), MPEG4VideoStreamFramer::MPEG4VideoStreamFramer(), H264VideoMatroskaFileServerMediaSubsession::seekStreamSource(), DVVideoFileServerMediaSubsession::seekStreamSource(), and ClientTrickPlayState::setSource().
00030 { return fInputSource; }
| void FramedFilter::detachInputSource | ( | ) | [inline, inherited] |
Definition at line 33 of file FramedFilter.hh.
References FramedFilter::fInputSource, and NULL.
Referenced by H264FUAFragmenter::~H264FUAFragmenter(), and T140IdleFilter::~T140IdleFilter().
00033 { fInputSource = NULL; }
| char const * FramedFilter::MIMEtype | ( | ) | const [protected, virtual, inherited] |
Reimplemented from MediaSource.
Reimplemented in ADUFromMP3Source, and MP3FromADUSource.
Definition at line 39 of file FramedFilter.cpp.
References FramedFilter::fInputSource, MediaSource::MIMEtype(), and NULL.
00039 { 00040 if (fInputSource == NULL) return ""; 00041 00042 return fInputSource->MIMEtype(); 00043 }
| void FramedFilter::getAttributes | ( | ) | const [protected, virtual, inherited] |
Reimplemented from MediaSource.
Reimplemented in MP3ADUTranscoder.
Definition at line 45 of file FramedFilter.cpp.
References FramedFilter::fInputSource, MediaSource::getAttributes(), and NULL.
00045 { 00046 if (fInputSource != NULL) fInputSource->getAttributes(); 00047 }
| void FramedFilter::doStopGettingFrames | ( | ) | [protected, virtual, inherited] |
Reimplemented from FramedSource.
Reimplemented in MPEG2TransportStreamFramer, MPEG2TransportStreamTrickModeFilter, T140IdleFilter, and QCELPDeinterleaver.
Definition at line 49 of file FramedFilter.cpp.
References FramedFilter::fInputSource, NULL, and FramedSource::stopGettingFrames().
Referenced by T140IdleFilter::doStopGettingFrames(), MPEG2TransportStreamTrickModeFilter::doStopGettingFrames(), and MPEG2TransportStreamFramer::doStopGettingFrames().
00049 { 00050 if (fInputSource != NULL) fInputSource->stopGettingFrames(); 00051 }
| 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(), 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(), doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MPEG1or2DemuxedElementaryStream::doGetNextFrame(), MP3FileSource::doGetNextFrame(), MP3ADUTranscoder::doGetNextFrame(), MP3ADUdeinterleaver::doGetNextFrame(), MP3ADUinterleaver::doGetNextFrame(), ADUFromMP3Source::doGetNextFrame(), H264VideoStreamDiscreteFramer::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), DeviceSource::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), ByteStreamFileSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), ByteStreamFileSource::doReadFromFile(), SegmentQueue::enqueueNewSegment(), DVVideoStreamFramer::getAndDeliverData(), StreamReplicator::getNextFrame(), DVVideoStreamFramer::getProfile(), MatroskaDemux::handleEndOfFile(), MPEG2IFrameIndexFromTransportStream::handleInputClosure1(), StreamReplicator::onSourceClosure(), and MPEG2TransportStreamTrickModeFilter::onSourceClosure1().
00095 { 00096 FramedSource* source = (FramedSource*)clientData; 00097 source->fIsCurrentlyAwaitingData = False; // because we got a close instead 00098 if (source->fOnCloseFunc != NULL) { 00099 (*(source->fOnCloseFunc))(source->fOnCloseClientData); 00100 } 00101 }
| void FramedSource::stopGettingFrames | ( | ) | [inherited] |
Definition at line 103 of file FramedSource.cpp.
References FramedSource::doStopGettingFrames(), False, and FramedSource::fIsCurrentlyAwaitingData.
Referenced by StreamReplicator::deactivateStreamReplica(), QCELPDeinterleaver::doStopGettingFrames(), MPEG2TransportStreamFromPESSource::doStopGettingFrames(), FramedFilter::doStopGettingFrames(), AMRDeinterleaver::doStopGettingFrames(), and MediaSink::stopPlaying().
00103 { 00104 fIsCurrentlyAwaitingData = False; // indicates that we can be read again 00105 00106 // Perform any specialized action now: 00107 doStopGettingFrames(); 00108 }
| unsigned FramedSource::maxFrameSize | ( | ) | const [virtual, inherited] |
Reimplemented in MPEG1or2DemuxedElementaryStream.
Definition at line 116 of file FramedSource.cpp.
Referenced by StreamParser::ensureValidBytes1().
| Boolean FramedSource::isCurrentlyAwaitingData | ( | ) | const [inline, inherited] |
Definition at line 60 of file FramedSource.hh.
References FramedSource::fIsCurrentlyAwaitingData.
Referenced by T140IdleFilter::afterGettingFrame(), afterPlaying(), InputESSourceRecord::askForNewData(), MPEG2TransportStreamFromESSource::awaitNewBuffer(), MatroskaFileParser::continueParsing(), QuickTimeFileSink::continuePlaying(), AVIFileSink::continuePlaying(), StreamReplicator::deactivateStreamReplica(), DeviceSource::deliverFrame(), MatroskaFileParser::deliverFrameWithinBlock(), T140IdleFilter::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), ByteStreamFileSource::fileReadableHandler(), StreamReplicator::getNextFrame(), BasicUDPSource::incomingPacketHandler1(), and TCPStreamSink::processBuffer().
00060 {return fIsCurrentlyAwaitingData;}
| void FramedSource::afterGetting | ( | FramedSource * | source | ) | [static, inherited] |
Definition at line 81 of file FramedSource.cpp.
References FramedSource::fAfterGettingClientData, FramedSource::fAfterGettingFunc, False, FramedSource::fDurationInMicroseconds, FramedSource::fFrameSize, FramedSource::fIsCurrentlyAwaitingData, FramedSource::fNumTruncatedBytes, FramedSource::fPresentationTime, and NULL.
Referenced by ByteStreamMultiFileSource::afterGettingFrame(), EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264VideoStreamDiscreteFramer::afterGettingFrame1(), MPEG2TransportStreamTrickModeFilter::attemptDeliveryToClient(), MPEGVideoStreamFramer::continueReadProcessing(), MPEG1or2AudioStreamFramer::continueReadProcessing(), H263plusVideoStreamFramer::continueReadProcessing(), T140IdleFilter::deliverEmptyFrame(), DeviceSource::deliverFrame(), MatroskaFileParser::deliverFrameBytes(), T140IdleFilter::deliverFromBuffer(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), StreamReplicator::deliverReceivedFrame(), WAVAudioFileSource::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), MPEG2TransportStreamTrickModeFilter::doGetNextFrame(), MPEG2TransportStreamMultiplexor::doGetNextFrame(), MP3FileSource::doGetNextFrame(), MP3ADUdeinterleaver::doGetNextFrame(), MP3ADUinterleaver::doGetNextFrame(), MP3FromADUSource::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), ByteStreamFileSource::doReadFromFile(), BasicUDPSource::incomingPacketHandler1(), and AC3AudioStreamFramer::parseNextFrame().
00081 { 00082 source->fIsCurrentlyAwaitingData = False; 00083 // indicates that we can be read again 00084 // Note that this needs to be done here, in case the "fAfterFunc" 00085 // called below tries to read another frame (which it usually will) 00086 00087 if (source->fAfterGettingFunc != NULL) { 00088 (*(source->fAfterGettingFunc))(source->fAfterGettingClientData, 00089 source->fFrameSize, source->fNumTruncatedBytes, 00090 source->fPresentationTime, 00091 source->fDurationInMicroseconds); 00092 } 00093 }
| 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::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] |
| 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 }
friend class MPEGVideoStreamParser [friend, inherited] |
Definition at line 74 of file MPEGVideoStreamFramer.hh.
friend class MediaLookupTable [friend, inherited] |
u_int32_t MPEG4VideoStreamDiscreteFramer::vop_time_increment_resolution [protected] |
Definition at line 62 of file MPEG4VideoStreamDiscreteFramer.hh.
Referenced by afterGettingFrame1(), and analyzeVOLHeader().
unsigned MPEG4VideoStreamDiscreteFramer::fNumVTIRBits [protected] |
Definition at line 63 of file MPEG4VideoStreamDiscreteFramer.hh.
Referenced by afterGettingFrame1(), and analyzeVOLHeader().
struct timeval MPEG4VideoStreamDiscreteFramer::fLastNonBFramePresentationTime [read, protected] |
Definition at line 65 of file MPEG4VideoStreamDiscreteFramer.hh.
Referenced by afterGettingFrame1(), and MPEG4VideoStreamDiscreteFramer().
unsigned MPEG4VideoStreamDiscreteFramer::fLastNonBFrameVop_time_increment [protected] |
Definition at line 66 of file MPEG4VideoStreamDiscreteFramer.hh.
Referenced by afterGettingFrame1().
unsigned MPEG4VideoStreamDiscreteFramer::fNumBitsSeenSoFar [private] |
Definition at line 69 of file MPEG4VideoStreamDiscreteFramer.hh.
Referenced by analyzeVOLHeader(), and getNextFrameBit().
u_int8_t MPEG4VideoStreamFramer::fProfileAndLevelIndication [protected, inherited] |
Definition at line 61 of file MPEG4VideoStreamFramer.hh.
Referenced by afterGettingFrame1(), MPEG4VideoStreamParser::parseVisualObjectSequence(), and MPEG4VideoStreamFramer::profile_and_level_indication().
unsigned char* MPEG4VideoStreamFramer::fConfigBytes [protected, inherited] |
Definition at line 62 of file MPEG4VideoStreamFramer.hh.
Referenced by afterGettingFrame1(), analyzeVOLHeader(), MPEG4VideoStreamFramer::completeNewConfig(), MPEG4VideoStreamFramer::getConfigBytes(), getNextFrameBit(), and MPEG4VideoStreamFramer::~MPEG4VideoStreamFramer().
unsigned MPEG4VideoStreamFramer::fNumConfigBytes [protected, inherited] |
Definition at line 63 of file MPEG4VideoStreamFramer.hh.
Referenced by afterGettingFrame1(), analyzeVOLHeader(), MPEG4VideoStreamFramer::completeNewConfig(), MPEG4VideoStreamFramer::getConfigBytes(), and getNextFrameBit().
double MPEGVideoStreamFramer::fFrameRate [protected, inherited] |
Definition at line 67 of file MPEGVideoStreamFramer.hh.
Referenced by MPEG1or2VideoStreamDiscreteFramer::afterGettingFrame1(), MPEG4VideoStreamParser::analyzeVOLHeader(), MPEGVideoStreamFramer::computePresentationTime(), MPEGVideoStreamFramer::continueReadProcessing(), H264VideoStreamParser::parse(), MPEG1or2VideoStreamParser::parseVideoSequenceHeader(), and MPEGVideoStreamFramer::setTimeCode().
unsigned MPEGVideoStreamFramer::fPictureCount [protected, inherited] |
Definition at line 68 of file MPEGVideoStreamFramer.hh.
Referenced by MPEGVideoStreamFramer::continueReadProcessing(), H264VideoStreamParser::parse(), MPEG1or2VideoStreamParser::parseSlice(), MPEG4VideoStreamParser::parseVideoObjectPlane(), and MPEGVideoStreamFramer::reset().
Boolean MPEGVideoStreamFramer::fPictureEndMarker [protected, inherited] |
Definition at line 69 of file MPEGVideoStreamFramer.hh.
Referenced by afterGettingFrame1(), MPEG1or2VideoStreamDiscreteFramer::afterGettingFrame1(), H264VideoStreamDiscreteFramer::afterGettingFrame1(), H264VideoStreamParser::parse(), MPEG1or2VideoStreamParser::parseSlice(), MPEG4VideoStreamParser::parseVideoObjectPlane(), MPEG4VideoStreamParser::parseVisualObjectSequenceEndCode(), MPEGVideoStreamFramer::pictureEndMarker(), and MPEGVideoStreamFramer::reset().
struct timeval MPEGVideoStreamFramer::fPresentationTimeBase [read, protected, inherited] |
Definition at line 70 of file MPEGVideoStreamFramer.hh.
Referenced by MPEGVideoStreamFramer::computePresentationTime(), and MPEGVideoStreamFramer::reset().
class MPEGVideoStreamParser* MPEGVideoStreamFramer::fParser [protected, inherited] |
Definition at line 73 of file MPEGVideoStreamFramer.hh.
Referenced by MPEGVideoStreamFramer::continueReadProcessing(), MPEGVideoStreamFramer::doGetNextFrame(), MPEGVideoStreamFramer::flushInput(), MPEG1or2VideoStreamFramer::MPEG1or2VideoStreamFramer(), MPEG4VideoStreamFramer::MPEG4VideoStreamFramer(), and MPEGVideoStreamFramer::~MPEGVideoStreamFramer().
FramedSource* FramedFilter::fInputSource [protected, inherited] |
Definition at line 47 of file FramedFilter.hh.
Referenced by QCELPDeinterleaver::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG2TransportStreamFramer::changeInputSource(), FramedFilter::detachInputSource(), EndianSwap16::doGetNextFrame(), HostFromNetworkOrder16::doGetNextFrame(), NetworkFromHostOrder16::doGetNextFrame(), PCMFromuLawAudioSource::doGetNextFrame(), uLawFromPCMAudioSource::doGetNextFrame(), T140IdleFilter::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG2IFrameIndexFromTransportStream::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MP3ADUTranscoder::doGetNextFrame(), MP3ADUdeinterleaver::doGetNextFrame(), MP3ADUinterleaver::doGetNextFrame(), MP3FromADUSource::doGetNextFrame(), ADUFromMP3Source::doGetNextFrame(), H264VideoStreamDiscreteFramer::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), QCELPDeinterleaver::doStopGettingFrames(), FramedFilter::doStopGettingFrames(), MPEG2TransportStreamTrickModeFilter::forgetInputSource(), DVVideoStreamFramer::getAndDeliverData(), MP3ADUTranscoder::getAttributes(), FramedFilter::getAttributes(), DVVideoStreamFramer::getProfile(), FramedFilter::inputSource(), FramedFilter::MIMEtype(), MPEG2TransportStreamTrickModeFilter::readTransportPacket(), MPEG2TransportStreamTrickModeFilter::seekToTransportPacket(), and FramedFilter::~FramedFilter().
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(), afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2VideoStreamDiscreteFramer::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264VideoStreamDiscreteFramer::afterGettingFrame1(), DVVideoStreamFramer::afterGettingFrame1(), MPEG2TransportStreamTrickModeFilter::attemptDeliveryToClient(), StreamReplica::copyReceivedFrame(), StreamReplicator::deactivateStreamReplica(), MPEG2TransportStreamMultiplexor::deliverDataToClient(), DeviceSource::deliverFrame(), T140IdleFilter::deliverFromBuffer(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), StreamReplicator::deliverReceivedFrame(), WAVAudioFileSource::doGetNextFrame(), EndianSwap16::doGetNextFrame(), HostFromNetworkOrder16::doGetNextFrame(), NetworkFromHostOrder16::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame(), MPEGVideoStreamFramer::doGetNextFrame(), doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MPEG1or2DemuxedElementaryStream::doGetNextFrame(), MPEG1or2AudioStreamFramer::doGetNextFrame(), H264VideoStreamDiscreteFramer::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), H263plusVideoStreamFramer::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), AC3AudioStreamFramer::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), ByteStreamFileSource::doReadFromFile(), DVVideoStreamFramer::DVVideoStreamFramer(), MP3FromADUSource::generateFrameFromHeadADU(), DVVideoStreamFramer::getAndDeliverData(), StreamReplicator::getNextFrame(), FramedSource::getNextFrame(), BasicUDPSource::incomingPacketHandler1(), MP3ADUdeinterleaver::releaseOutgoingFrame(), MP3ADUinterleaver::releaseOutgoingFrame(), and MatroskaDemuxedTrack::to().
unsigned FramedSource::fMaxSize [protected, inherited] |
Definition at line 75 of file FramedSource.hh.
Referenced by MPEG1or2VideoStreamDiscreteFramer::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), StreamReplica::copyReceivedFrame(), StreamReplicator::deactivateStreamReplica(), MPEG2TransportStreamMultiplexor::deliverDataToClient(), DeviceSource::deliverFrame(), T140IdleFilter::deliverFromBuffer(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), StreamReplicator::deliverReceivedFrame(), WAVAudioFileSource::doGetNextFrame(), EndianSwap16::doGetNextFrame(), HostFromNetworkOrder16::doGetNextFrame(), NetworkFromHostOrder16::doGetNextFrame(), PCMFromuLawAudioSource::doGetNextFrame(), uLawFromPCMAudioSource::doGetNextFrame(), QCELPDeinterleaver::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame(), MPEGVideoStreamFramer::doGetNextFrame(), doGetNextFrame(), MPEG2TransportStreamTrickModeFilter::doGetNextFrame(), MPEG2TransportStreamFramer::doGetNextFrame(), MPEG1or2VideoStreamDiscreteFramer::doGetNextFrame(), MPEG1or2DemuxedElementaryStream::doGetNextFrame(), MPEG1or2AudioStreamFramer::doGetNextFrame(), H264VideoStreamDiscreteFramer::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), H263plusVideoStreamFramer::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), ByteStreamMultiFileSource::doGetNextFrame(), ByteStreamMemoryBufferSource::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), AC3AudioStreamFramer::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), MP3FileSource::doGetNextFrame1(), ADUFromMP3Source::doGetNextFrame1(), ByteStreamFileSource::doReadFromFile(), DVVideoStreamFramer::getAndDeliverData(), StreamReplicator::getNextFrame(), FramedSource::getNextFrame(), BasicUDPSource::incomingPacketHandler1(), MatroskaDemuxedTrack::maxSize(), MP3ADUdeinterleaver::releaseOutgoingFrame(), and MP3ADUinterleaver::releaseOutgoingFrame().
unsigned FramedSource::fFrameSize [protected, inherited] |
Definition at line 76 of file FramedSource.hh.
Referenced by FramedSource::afterGetting(), StreamReplicator::afterGettingFrame(), ByteStreamMultiFileSource::afterGettingFrame(), EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264VideoStreamDiscreteFramer::afterGettingFrame1(), MPEG2TransportStreamTrickModeFilter::attemptDeliveryToClient(), MPEGVideoStreamFramer::continueReadProcessing(), MPEG1or2AudioStreamFramer::continueReadProcessing(), H263plusVideoStreamFramer::continueReadProcessing(), StreamReplica::copyReceivedFrame(), MPEG2TransportStreamMultiplexor::deliverDataToClient(), T140IdleFilter::deliverEmptyFrame(), DeviceSource::deliverFrame(), T140IdleFilter::deliverFromBuffer(), MPEG2IFrameIndexFromTransportStream::deliverIndexRecord(), 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(), MPEG2TransportStreamMultiplexor::deliverDataToClient(), T140IdleFilter::deliverEmptyFrame(), DeviceSource::deliverFrame(), T140IdleFilter::deliverFromBuffer(), QCELPDeinterleaver::doGetNextFrame(), H264FUAFragmenter::doGetNextFrame(), DVVideoStreamFramer::doGetNextFrame(), AMRDeinterleaver::doGetNextFrame(), AMRAudioFileSource::doGetNextFrame(), ADTSAudioFileSource::doGetNextFrame(), MultiFramedRTPSource::doGetNextFrame1(), FramedSource::getNextFrame(), MatroskaDemuxedTrack::numTruncatedBytes(), AC3AudioStreamFramer::parseNextFrame(), MP3ADUdeinterleaver::releaseOutgoingFrame(), and MP3ADUinterleaver::releaseOutgoingFrame().
struct timeval FramedSource::fPresentationTime [read, protected, inherited] |
Definition at line 78 of file FramedSource.hh.
Referenced by FramedSource::afterGetting(), StreamReplicator::afterGettingFrame(), ByteStreamMultiFileSource::afterGettingFrame(), EndianSwap16::afterGettingFrame1(), HostFromNetworkOrder16::afterGettingFrame1(), NetworkFromHostOrder16::afterGettingFrame1(), PCMFromuLawAudioSource::afterGettingFrame1(), uLawFromPCMAudioSource::afterGettingFrame1(), InputESSourceRecord::afterGettingFrame1(), MPEG2TransportStreamFramer::afterGettingFrame1(), MPEG1or2DemuxedElementaryStream::afterGettingFrame1(), MP3ADUTranscoder::afterGettingFrame1(), H264VideoStreamDiscreteFramer::afterGettingFrame1(), H264FUAFragmenter::afterGettingFrame1(), MPEG2TransportStreamTrickModeFilter::attemptDeliveryToClient(), MPEGVideoStreamFramer::computePresentationTime(), MPEGVideoStreamFramer::continueReadProcessing(), MPEG1or2AudioStreamFramer::continueReadProcessing(), H263plusVideoStreamFramer::continueReadProcessing(), StreamReplica::copyReceivedFrame(), T140IdleFilter::deliverEmptyFrame(), DeviceSource::deliverFrame(), T140IdleFilter::deliverFromBuffer(), 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().
1.5.2