#include <MultiFramedRTPSource.hh>
Inheritance diagram for BufferedPacket:


Public Member Functions | |
| BufferedPacket () | |
| virtual | ~BufferedPacket () |
| Boolean | hasUsableData () const |
| unsigned | useCount () const |
| Boolean | fillInData (RTPInterface &rtpInterface) |
| void | assignMiscParams (unsigned short rtpSeqNo, unsigned rtpTimestamp, struct timeval presentationTime, Boolean hasBeenSyncedUsingRTCP, Boolean rtpMarkerBit, struct timeval timeReceived) |
| void | skip (unsigned numBytes) |
| void | removePadding (unsigned numBytes) |
| void | appendData (unsigned char *newData, unsigned numBytes) |
| void | use (unsigned char *to, unsigned toSize, unsigned &bytesUsed, unsigned &bytesTruncated, unsigned short &rtpSeqNo, unsigned &rtpTimestamp, struct timeval &presentationTime, Boolean &hasBeenSyncedUsingRTCP, Boolean &rtpMarkerBit) |
| BufferedPacket *& | nextPacket () |
| unsigned short | rtpSeqNo () const |
| timeval const & | timeReceived () const |
| unsigned char * | data () const |
| unsigned | dataSize () const |
| Boolean | rtpMarkerBit () const |
| Boolean & | isFirstPacket () |
Protected Member Functions | |
| virtual void | reset () |
| virtual unsigned | nextEnclosedFrameSize (unsigned char *&framePtr, unsigned dataSize) |
| virtual void | getNextEnclosedFrameParameters (unsigned char *&framePtr, unsigned dataSize, unsigned &frameSize, unsigned &frameDurationInMicroseconds) |
Protected Attributes | |
| unsigned | fPacketSize |
| unsigned char * | fBuf |
| unsigned | fHead |
| unsigned | fTail |
Private Attributes | |
| BufferedPacket * | fNextPacket |
| unsigned | fUseCount |
| unsigned short | fRTPSeqNo |
| unsigned | fRTPTimestamp |
| timeval | fPresentationTime |
| Boolean | fHasBeenSyncedUsingRTCP |
| Boolean | fRTPMarkerBit |
| Boolean | fIsFirstPacket |
| timeval | fTimeReceived |
Definition at line 85 of file MultiFramedRTPSource.hh.
| BufferedPacket::BufferedPacket | ( | ) |
Definition at line 306 of file MultiFramedRTPSource.cpp.
00307 : fPacketSize(MAX_PACKET_SIZE), 00308 fBuf(new unsigned char[MAX_PACKET_SIZE]), 00309 fNextPacket(NULL) { 00310 }
| BufferedPacket::~BufferedPacket | ( | ) | [virtual] |
Definition at line 312 of file MultiFramedRTPSource.cpp.
References fBuf, and fNextPacket.
00312 { 00313 delete fNextPacket; 00314 delete[] fBuf; 00315 }
| Boolean BufferedPacket::hasUsableData | ( | ) | const [inline] |
Definition at line 90 of file MultiFramedRTPSource.hh.
Referenced by MultiFramedRTPSource::doGetNextFrame1().
| unsigned BufferedPacket::useCount | ( | ) | const [inline] |
Definition at line 91 of file MultiFramedRTPSource.hh.
References fUseCount.
Referenced by MultiFramedRTPSource::doGetNextFrame1().
00091 { return fUseCount; }
| Boolean BufferedPacket::fillInData | ( | RTPInterface & | rtpInterface | ) |
Definition at line 347 of file MultiFramedRTPSource.cpp.
References False, fBuf, fPacketSize, fTail, RTPInterface::handleRead(), reset(), and True.
Referenced by MultiFramedRTPSource::networkReadHandler().
00347 { 00348 reset(); 00349 00350 unsigned numBytesRead; 00351 struct sockaddr_in fromAddress; 00352 if (!rtpInterface.handleRead(&fBuf[fTail], fPacketSize-fTail, numBytesRead, 00353 fromAddress)) { 00354 return False; 00355 } 00356 fTail += numBytesRead; 00357 return True; 00358 }
| void BufferedPacket::assignMiscParams | ( | unsigned short | rtpSeqNo, | |
| unsigned | rtpTimestamp, | |||
| struct timeval | presentationTime, | |||
| Boolean | hasBeenSyncedUsingRTCP, | |||
| Boolean | rtpMarkerBit, | |||
| struct timeval | timeReceived | |||
| ) |
Definition at line 361 of file MultiFramedRTPSource.cpp.
References fHasBeenSyncedUsingRTCP, fPresentationTime, fRTPMarkerBit, fRTPSeqNo, fRTPTimestamp, and fTimeReceived.
Referenced by MultiFramedRTPSource::networkReadHandler().
00364 { 00365 fRTPSeqNo = rtpSeqNo; 00366 fRTPTimestamp = rtpTimestamp; 00367 fPresentationTime = presentationTime; 00368 fHasBeenSyncedUsingRTCP = hasBeenSyncedUsingRTCP; 00369 fRTPMarkerBit = rtpMarkerBit; 00370 fTimeReceived = timeReceived; 00371 }
| void BufferedPacket::skip | ( | unsigned | numBytes | ) |
Definition at line 373 of file MultiFramedRTPSource.cpp.
Referenced by MultiFramedRTPSource::doGetNextFrame1().
| void BufferedPacket::removePadding | ( | unsigned | numBytes | ) |
Definition at line 378 of file MultiFramedRTPSource.cpp.
Referenced by MultiFramedRTPSource::networkReadHandler().
| void BufferedPacket::appendData | ( | unsigned char * | newData, | |
| unsigned | numBytes | |||
| ) |
Definition at line 383 of file MultiFramedRTPSource.cpp.
References fBuf, fPacketSize, and fTail.
00383 { 00384 if (numBytes > fPacketSize-fTail) numBytes = fPacketSize - fTail; 00385 memmove(&fBuf[fTail], newData, numBytes); 00386 fTail += numBytes; 00387 }
| void BufferedPacket::use | ( | unsigned char * | to, | |
| unsigned | toSize, | |||
| unsigned & | bytesUsed, | |||
| unsigned & | bytesTruncated, | |||
| unsigned short & | rtpSeqNo, | |||
| unsigned & | rtpTimestamp, | |||
| struct timeval & | presentationTime, | |||
| Boolean & | hasBeenSyncedUsingRTCP, | |||
| Boolean & | rtpMarkerBit | |||
| ) |
Definition at line 389 of file MultiFramedRTPSource.cpp.
References fBuf, fHasBeenSyncedUsingRTCP, fHead, fPresentationTime, frameSize, fRTPMarkerBit, fRTPSeqNo, fRTPTimestamp, fTail, fUseCount, and getNextEnclosedFrameParameters().
Referenced by MultiFramedRTPSource::doGetNextFrame1().
00394 { 00395 unsigned char* origFramePtr = &fBuf[fHead]; 00396 unsigned char* newFramePtr = origFramePtr; // may change in the call below 00397 unsigned frameSize, frameDurationInMicroseconds; 00398 getNextEnclosedFrameParameters(newFramePtr, fTail - fHead, 00399 frameSize, frameDurationInMicroseconds); 00400 if (frameSize > toSize) { 00401 bytesTruncated = frameSize - toSize; 00402 bytesUsed = toSize; 00403 } else { 00404 bytesTruncated = 0; 00405 bytesUsed = frameSize; 00406 } 00407 00408 memmove(to, newFramePtr, bytesUsed); 00409 fHead += (newFramePtr - origFramePtr) + frameSize; 00410 ++fUseCount; 00411 00412 rtpSeqNo = fRTPSeqNo; 00413 rtpTimestamp = fRTPTimestamp; 00414 presentationTime = fPresentationTime; 00415 hasBeenSyncedUsingRTCP = fHasBeenSyncedUsingRTCP; 00416 rtpMarkerBit = fRTPMarkerBit; 00417 00418 // Update "fPresentationTime" for the next enclosed frame (if any): 00419 fPresentationTime.tv_usec += frameDurationInMicroseconds; 00420 if (fPresentationTime.tv_usec >= 1000000) { 00421 fPresentationTime.tv_sec += fPresentationTime.tv_usec/1000000; 00422 fPresentationTime.tv_usec = fPresentationTime.tv_usec%1000000; 00423 } 00424 }
| BufferedPacket*& BufferedPacket::nextPacket | ( | ) | [inline] |
Definition at line 107 of file MultiFramedRTPSource.hh.
References fNextPacket.
Referenced by ReorderingPacketBuffer::releaseUsedPacket(), and ReorderingPacketBuffer::storePacket().
00107 { return fNextPacket; }
| unsigned short BufferedPacket::rtpSeqNo | ( | ) | const [inline] |
Definition at line 109 of file MultiFramedRTPSource.hh.
References fRTPSeqNo.
Referenced by ReorderingPacketBuffer::getNextCompletedPacket(), and ReorderingPacketBuffer::storePacket().
00109 { return fRTPSeqNo; }
| struct timeval const& BufferedPacket::timeReceived | ( | ) | const [inline, read] |
Definition at line 110 of file MultiFramedRTPSource.hh.
References fTimeReceived.
Referenced by ReorderingPacketBuffer::getNextCompletedPacket().
00110 { return fTimeReceived; }
| unsigned char* BufferedPacket::data | ( | ) | const [inline] |
Definition at line 112 of file MultiFramedRTPSource.hh.
Referenced by MultiFramedRTPSource::networkReadHandler().
| unsigned BufferedPacket::dataSize | ( | ) | const [inline] |
Definition at line 113 of file MultiFramedRTPSource.hh.
Referenced by MultiFramedRTPSource::networkReadHandler().
| Boolean BufferedPacket::rtpMarkerBit | ( | ) | const [inline] |
Definition at line 114 of file MultiFramedRTPSource.hh.
References fRTPMarkerBit.
00114 { return fRTPMarkerBit; }
| Boolean& BufferedPacket::isFirstPacket | ( | ) | [inline] |
Definition at line 115 of file MultiFramedRTPSource.hh.
References fIsFirstPacket.
Referenced by ReorderingPacketBuffer::getNextCompletedPacket(), and ReorderingPacketBuffer::storePacket().
00115 { return fIsFirstPacket; }
| void BufferedPacket::reset | ( | ) | [protected, virtual] |
Reimplemented in JPEGBufferedPacket.
Definition at line 317 of file MultiFramedRTPSource.cpp.
References False, fHead, fIsFirstPacket, fTail, and fUseCount.
Referenced by fillInData(), and JPEGBufferedPacket::reset().
00317 { 00318 fHead = fTail = 0; 00319 fUseCount = 0; 00320 fIsFirstPacket = False; // by default 00321 }
| unsigned BufferedPacket::nextEnclosedFrameSize | ( | unsigned char *& | framePtr, | |
| unsigned | dataSize | |||
| ) | [protected, virtual] |
Reimplemented in AMRBufferedPacket, H264BufferedPacket, JPEGBufferedPacket, ADUBufferedPacket, MPEG4GenericBufferedPacket, LATMBufferedPacket, QCELPBufferedPacket, and QTGenericBufferedPacket.
Definition at line 325 of file MultiFramedRTPSource.cpp.
Referenced by getNextEnclosedFrameParameters().
00325 { 00326 // By default, use the entire buffered data, even though it may consist 00327 // of more than one frame, on the assumption that the client doesn't 00328 // care. (This is more efficient than delivering a frame at a time) 00329 return dataSize; 00330 }
| void BufferedPacket::getNextEnclosedFrameParameters | ( | unsigned char *& | framePtr, | |
| unsigned | dataSize, | |||
| unsigned & | frameSize, | |||
| unsigned & | frameDurationInMicroseconds | |||
| ) | [protected, virtual] |
Definition at line 333 of file MultiFramedRTPSource.cpp.
References nextEnclosedFrameSize().
Referenced by use().
00335 { 00336 // By default, use the entire buffered data, even though it may consist 00337 // of more than one frame, on the assumption that the client doesn't 00338 // care. (This is more efficient than delivering a frame at a time) 00339 00340 // For backwards-compatibility with existing uses of (the now deprecated) 00341 // "nextEnclosedFrameSize()", call that function to implement this one: 00342 frameSize = nextEnclosedFrameSize(framePtr, dataSize); 00343 00344 frameDurationInMicroseconds = 0; // by default. Subclasses should correct this. 00345 }
unsigned BufferedPacket::fPacketSize [protected] |
Definition at line 127 of file MultiFramedRTPSource.hh.
Referenced by appendData(), fillInData(), and JPEGBufferedPacket::reset().
unsigned char* BufferedPacket::fBuf [protected] |
Definition at line 128 of file MultiFramedRTPSource.hh.
Referenced by appendData(), data(), fillInData(), use(), and ~BufferedPacket().
unsigned BufferedPacket::fHead [protected] |
Definition at line 129 of file MultiFramedRTPSource.hh.
Referenced by data(), dataSize(), hasUsableData(), removePadding(), reset(), JPEGBufferedPacket::reset(), skip(), and use().
unsigned BufferedPacket::fTail [protected] |
Definition at line 130 of file MultiFramedRTPSource.hh.
Referenced by appendData(), dataSize(), fillInData(), hasUsableData(), removePadding(), reset(), JPEGBufferedPacket::reset(), skip(), and use().
BufferedPacket* BufferedPacket::fNextPacket [private] |
Definition at line 133 of file MultiFramedRTPSource.hh.
Referenced by nextPacket(), and ~BufferedPacket().
unsigned BufferedPacket::fUseCount [private] |
Definition at line 135 of file MultiFramedRTPSource.hh.
Referenced by reset(), use(), and useCount().
unsigned short BufferedPacket::fRTPSeqNo [private] |
Definition at line 136 of file MultiFramedRTPSource.hh.
Referenced by assignMiscParams(), rtpSeqNo(), and use().
unsigned BufferedPacket::fRTPTimestamp [private] |
Definition at line 137 of file MultiFramedRTPSource.hh.
Referenced by assignMiscParams(), and use().
struct timeval BufferedPacket::fPresentationTime [read, private] |
Definition at line 138 of file MultiFramedRTPSource.hh.
Referenced by assignMiscParams(), and use().
Definition at line 139 of file MultiFramedRTPSource.hh.
Referenced by assignMiscParams(), and use().
Boolean BufferedPacket::fRTPMarkerBit [private] |
Definition at line 140 of file MultiFramedRTPSource.hh.
Referenced by assignMiscParams(), rtpMarkerBit(), and use().
Boolean BufferedPacket::fIsFirstPacket [private] |
struct timeval BufferedPacket::fTimeReceived [read, private] |
Definition at line 142 of file MultiFramedRTPSource.hh.
Referenced by assignMiscParams(), and timeReceived().
1.5.2