
Public Member Functions | |
| InterleavingFrames (unsigned maxCycleSize) | |
| virtual | ~InterleavingFrames () |
| Boolean | haveReleaseableFrame () |
| void | getIncomingFrameParams (unsigned char index, unsigned char *&dataPtr, unsigned &bytesAvailable) |
| void | getReleasingFrameParams (unsigned char index, unsigned char *&dataPtr, unsigned &bytesInUse, struct timeval &presentationTime, unsigned &durationInMicroseconds) |
| void | setFrameParams (unsigned char index, unsigned char icc, unsigned char ii, unsigned frameSize, struct timeval presentationTime, unsigned durationInMicroseconds) |
| unsigned | nextIndexToRelease () |
| void | releaseNext () |
Private Attributes | |
| unsigned | fMaxCycleSize |
| unsigned | fNextIndexToRelease |
| InterleavingFrameDescriptor * | fDescriptors |
Definition at line 83 of file MP3ADUinterleaving.cpp.
| InterleavingFrames::InterleavingFrames | ( | unsigned | maxCycleSize | ) |
Definition at line 333 of file MP3ADUinterleaving.cpp.
00334 : fMaxCycleSize(maxCycleSize), fNextIndexToRelease(0), 00335 fDescriptors(new InterleavingFrameDescriptor[maxCycleSize]) { 00336 }
| InterleavingFrames::~InterleavingFrames | ( | ) | [virtual] |
Definition at line 337 of file MP3ADUinterleaving.cpp.
References fDescriptors.
00337 { 00338 delete[] fDescriptors; 00339 }
| Boolean InterleavingFrames::haveReleaseableFrame | ( | ) |
Definition at line 341 of file MP3ADUinterleaving.cpp.
References fDescriptors, fNextIndexToRelease, and InterleavingFrameDescriptor::frameDataSize.
Referenced by MP3ADUinterleaver::doGetNextFrame().
00341 { 00342 return fDescriptors[fNextIndexToRelease].frameDataSize > 0; 00343 }
| void InterleavingFrames::getIncomingFrameParams | ( | unsigned char | index, | |
| unsigned char *& | dataPtr, | |||
| unsigned & | bytesAvailable | |||
| ) |
Definition at line 345 of file MP3ADUinterleaving.cpp.
References fDescriptors, InterleavingFrameDescriptor::frameData, and MAX_FRAME_SIZE.
Referenced by MP3ADUinterleaver::doGetNextFrame().
00347 { 00348 InterleavingFrameDescriptor& desc = fDescriptors[index]; 00349 dataPtr = &desc.frameData[0]; 00350 bytesAvailable = MAX_FRAME_SIZE; 00351 }
| void InterleavingFrames::getReleasingFrameParams | ( | unsigned char | index, | |
| unsigned char *& | dataPtr, | |||
| unsigned & | bytesInUse, | |||
| struct timeval & | presentationTime, | |||
| unsigned & | durationInMicroseconds | |||
| ) |
Definition at line 353 of file MP3ADUinterleaving.cpp.
References InterleavingFrameDescriptor::durationInMicroseconds, fDescriptors, InterleavingFrameDescriptor::frameData, InterleavingFrameDescriptor::frameDataSize, and InterleavingFrameDescriptor::presentationTime.
Referenced by MP3ADUinterleaver::releaseOutgoingFrame().
00357 { 00358 InterleavingFrameDescriptor& desc = fDescriptors[index]; 00359 dataPtr = &desc.frameData[0]; 00360 bytesInUse = desc.frameDataSize; 00361 presentationTime = desc.presentationTime; 00362 durationInMicroseconds = desc.durationInMicroseconds; 00363 }
| void InterleavingFrames::setFrameParams | ( | unsigned char | index, | |
| unsigned char | icc, | |||
| unsigned char | ii, | |||
| unsigned | frameSize, | |||
| struct timeval | presentationTime, | |||
| unsigned | durationInMicroseconds | |||
| ) |
Definition at line 365 of file MP3ADUinterleaving.cpp.
References InterleavingFrameDescriptor::durationInMicroseconds, fDescriptors, InterleavingFrameDescriptor::frameData, InterleavingFrameDescriptor::frameDataSize, ADUdescriptor::getRemainingFrameSize(), and InterleavingFrameDescriptor::presentationTime.
Referenced by MP3ADUinterleaver::afterGettingFrame().
00370 { 00371 InterleavingFrameDescriptor& desc = fDescriptors[index]; 00372 desc.frameDataSize = frameSize; 00373 desc.presentationTime = presentationTime; 00374 desc.durationInMicroseconds = durationInMicroseconds; 00375 00376 // Advance over the ADU descriptor, to get to the MPEG 'syncword': 00377 unsigned char* ptr = &desc.frameData[0]; 00378 (void)ADUdescriptor::getRemainingFrameSize(ptr); 00379 00380 // Replace the next 11 bits with (ii,icc): 00381 *ptr++ = ii; 00382 *ptr &=~ 0xE0; 00383 *ptr |= (icc<<5); 00384 }
| unsigned InterleavingFrames::nextIndexToRelease | ( | ) | [inline] |
Definition at line 101 of file MP3ADUinterleaving.cpp.
Referenced by MP3ADUinterleaver::releaseOutgoingFrame().
00101 {return fNextIndexToRelease;}
| void InterleavingFrames::releaseNext | ( | ) |
Definition at line 386 of file MP3ADUinterleaving.cpp.
References fDescriptors, fMaxCycleSize, fNextIndexToRelease, and InterleavingFrameDescriptor::frameDataSize.
Referenced by MP3ADUinterleaver::releaseOutgoingFrame().
00386 { 00387 fDescriptors[fNextIndexToRelease].frameDataSize = 0; 00388 fNextIndexToRelease = (fNextIndexToRelease+1)%fMaxCycleSize; 00389 }
unsigned InterleavingFrames::fMaxCycleSize [private] |
unsigned InterleavingFrames::fNextIndexToRelease [private] |
Definition at line 106 of file MP3ADUinterleaving.cpp.
Referenced by haveReleaseableFrame(), and releaseNext().
class InterleavingFrameDescriptor* InterleavingFrames::fDescriptors [private] |
Definition at line 107 of file MP3ADUinterleaving.cpp.
Referenced by getIncomingFrameParams(), getReleasingFrameParams(), haveReleaseableFrame(), releaseNext(), setFrameParams(), and ~InterleavingFrames().
1.5.2