AC3AudioStreamParser Class Reference

Inheritance diagram for AC3AudioStreamParser:

Inheritance graph
[legend]
Collaboration diagram for AC3AudioStreamParser:

Collaboration graph
[legend]

Public Member Functions

 AC3AudioStreamParser (AC3AudioStreamFramer *usingSource, FramedSource *inputSource)
virtual ~AC3AudioStreamParser ()
void testStreamCode (unsigned char ourStreamCode, unsigned char *ptr, unsigned size)
unsigned parseFrame (unsigned &numTruncatedBytes)
void registerReadInterest (unsigned char *to, unsigned maxSize)
AC3FrameParams const & currentFrame () const
Boolean haveParsedAFrame () const
void readAndSaveAFrame ()
virtual void flushInput ()

Protected Types

typedef void( clientContinueFunc )(void *clientData, unsigned char *ptr, unsigned size, struct timeval presentationTime)

Protected Member Functions

void saveParserState ()
virtual void restoreSavedParserState ()
u_int32_t get4Bytes ()
u_int32_t test4Bytes ()
u_int16_t get2Bytes ()
u_int8_t get1Byte ()
u_int8_t test1Byte (unsigned numBytes)
void getBytes (u_int8_t *to, unsigned numBytes)
void testBytes (u_int8_t *to, unsigned numBytes)
void skipBytes (unsigned numBytes)
void skipBits (unsigned numBits)
unsigned getBits (unsigned numBits)
unsigned curOffset () const
unsigned & totNumValidBytes ()
Boolean haveSeenEOF () const
unsigned bankSize () const

Private Member Functions

void afterGettingSavedFrame1 (unsigned frameSize)
void onSavedFrameClosure1 ()

Static Private Member Functions

static void afterGettingSavedFrame (void *clientData, unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds)
static void onSavedFrameClosure (void *clientData)

Private Attributes

AC3AudioStreamFramerfUsingSource
unsigned char * fTo
unsigned fMaxSize
Boolean fHaveParsedAFrame
unsigned char * fSavedFrame
unsigned fSavedFrameSize
char fSavedFrameFlag
AC3FrameParams fCurrentFrame

Detailed Description

Definition at line 40 of file AC3AudioStreamFramer.cpp.


Member Typedef Documentation

typedef void( StreamParser::clientContinueFunc)(void *clientData, unsigned char *ptr, unsigned size, struct timeval presentationTime) [protected, inherited]

Definition at line 33 of file StreamParser.hh.


Constructor & Destructor Documentation

AC3AudioStreamParser::AC3AudioStreamParser ( AC3AudioStreamFramer usingSource,
FramedSource inputSource 
)

Definition at line 218 of file AC3AudioStreamFramer.cpp.

00220   : StreamParser(inputSource, FramedSource::handleClosure, usingSource,
00221                  &AC3AudioStreamFramer::handleNewData, usingSource),
00222     fUsingSource(usingSource), fHaveParsedAFrame(False),
00223     fSavedFrame(NULL), fSavedFrameSize(0) {
00224 }

AC3AudioStreamParser::~AC3AudioStreamParser (  )  [virtual]

Definition at line 226 of file AC3AudioStreamFramer.cpp.

00226                                             {
00227 }


Member Function Documentation

void AC3AudioStreamParser::testStreamCode ( unsigned char  ourStreamCode,
unsigned char *  ptr,
unsigned  size 
)

Definition at line 236 of file AC3AudioStreamFramer.cpp.

References StreamParser::totNumValidBytes().

Referenced by AC3AudioStreamFramer::handleNewData().

00237                                                     {
00238   if (ourStreamCode == 0) return; // we assume that there's no stream code at the beginning of the data
00239 
00240   if (size < 4) return;
00241   unsigned char streamCode = *ptr;
00242 
00243   if (streamCode == ourStreamCode) {
00244     // Remove the first 4 bytes from the stream:
00245     memmove(ptr, ptr + 4, size - 4);
00246     totNumValidBytes() = totNumValidBytes() - 4;
00247   } else {
00248     // Discard all of the data that was just read:
00249     totNumValidBytes() = totNumValidBytes() - size;
00250   }
00251 }

unsigned AC3AudioStreamParser::parseFrame ( unsigned &  numTruncatedBytes  ) 

Definition at line 253 of file AC3AudioStreamFramer.cpp.

References Medium::envir(), fCurrentFrame, fHaveParsedAFrame, fMaxSize, AC3FrameParams::frameSize, frameSize, fSavedFrame, fSavedFrameSize, fTo, fUsingSource, StreamParser::get4Bytes(), StreamParser::getBytes(), AC3FrameParams::hdr0, AC3FrameParams::hdr1, NULL, StreamParser::saveParserState(), AC3FrameParams::setParamsFromHeader(), StreamParser::skipBytes(), StreamParser::test4Bytes(), and True.

Referenced by AC3AudioStreamFramer::parseNextFrame().

00253                                                                      {
00254   if (fSavedFrameSize > 0) {
00255     // We've already read and parsed a frame.  Use it instead:
00256     memmove(fTo, fSavedFrame, fSavedFrameSize);
00257     delete[] fSavedFrame; fSavedFrame = NULL;
00258     unsigned frameSize = fSavedFrameSize;
00259     fSavedFrameSize = 0;
00260     return frameSize;
00261   }
00262 
00263   try {
00264     saveParserState();
00265 
00266     // We expect an AC3 audio header (first 2 bytes == 0x0B77) at the start:
00267     while (1) {
00268       unsigned next4Bytes = test4Bytes();
00269       if (next4Bytes>>16 == 0x0B77) break;
00270       skipBytes(1);
00271       saveParserState();
00272     }
00273     fCurrentFrame.hdr0 = get4Bytes();
00274     fCurrentFrame.hdr1 = test4Bytes();
00275 
00276     fCurrentFrame.setParamsFromHeader();
00277     fHaveParsedAFrame = True;
00278 
00279     // Copy the frame to the requested destination:
00280     unsigned frameSize = fCurrentFrame.frameSize;
00281     if (frameSize > fMaxSize) {
00282       numTruncatedBytes = frameSize - fMaxSize;
00283       frameSize = fMaxSize;
00284     } else {
00285       numTruncatedBytes = 0;
00286     }
00287 
00288     fTo[0] = fCurrentFrame.hdr0 >> 24;
00289     fTo[1] = fCurrentFrame.hdr0 >> 16;
00290     fTo[2] = fCurrentFrame.hdr0 >> 8;
00291     fTo[3] = fCurrentFrame.hdr0;
00292     getBytes(&fTo[4], frameSize-4);
00293     skipBytes(numTruncatedBytes);
00294 
00295     return frameSize;
00296   } catch (int /*e*/) {
00297 #ifdef DEBUG
00298     fUsingSource->envir() << "AC3AudioStreamParser::parseFrame() EXCEPTION (This is normal behavior - *not* an error)\n";
00299 #endif
00300     return 0;  // the parsing got interrupted
00301   }
00302 }

void AC3AudioStreamParser::registerReadInterest ( unsigned char *  to,
unsigned  maxSize 
)

Definition at line 229 of file AC3AudioStreamFramer.cpp.

References fMaxSize, and fTo.

Referenced by AC3AudioStreamFramer::doGetNextFrame().

00230                                                                    {
00231   fTo = to;
00232   fMaxSize = maxSize;
00233 }

AC3FrameParams const& AC3AudioStreamParser::currentFrame (  )  const [inline]

Definition at line 54 of file AC3AudioStreamFramer.cpp.

References fCurrentFrame.

Referenced by AC3AudioStreamFramer::currentFramePlayTime(), and AC3AudioStreamFramer::samplingRate().

00054 { return fCurrentFrame; }

Boolean AC3AudioStreamParser::haveParsedAFrame (  )  const [inline]

Definition at line 56 of file AC3AudioStreamFramer.cpp.

References fHaveParsedAFrame.

Referenced by AC3AudioStreamFramer::samplingRate().

00056 { return fHaveParsedAFrame; }

void AC3AudioStreamParser::readAndSaveAFrame (  ) 

Definition at line 304 of file AC3AudioStreamFramer.cpp.

References afterGettingSavedFrame(), TaskScheduler::doEventLoop(), Medium::envir(), fSavedFrame, fSavedFrameFlag, fSavedFrameSize, fUsingSource, FramedSource::getNextFrame(), onSavedFrameClosure(), and UsageEnvironment::taskScheduler().

Referenced by AC3AudioStreamFramer::samplingRate().

00304                                              {
00305   unsigned const maxAC3FrameSize = 4000;
00306   fSavedFrame = new unsigned char[maxAC3FrameSize];
00307   fSavedFrameSize = 0;
00308 
00309   fSavedFrameFlag = 0;
00310   fUsingSource->getNextFrame(fSavedFrame, maxAC3FrameSize,
00311                              afterGettingSavedFrame, this,
00312                              onSavedFrameClosure, this);
00313   fUsingSource->envir().taskScheduler().doEventLoop(&fSavedFrameFlag);
00314 }

void AC3AudioStreamParser::afterGettingSavedFrame ( void *  clientData,
unsigned  frameSize,
unsigned  numTruncatedBytes,
struct timeval  presentationTime,
unsigned  durationInMicroseconds 
) [static, private]

Definition at line 317 of file AC3AudioStreamFramer.cpp.

References afterGettingSavedFrame1().

Referenced by readAndSaveAFrame().

00320                                                               {
00321   AC3AudioStreamParser* parser = (AC3AudioStreamParser*)clientData;
00322   parser->afterGettingSavedFrame1(frameSize);
00323 }

void AC3AudioStreamParser::afterGettingSavedFrame1 ( unsigned  frameSize  )  [private]

Definition at line 326 of file AC3AudioStreamFramer.cpp.

References fSavedFrameFlag, and fSavedFrameSize.

Referenced by afterGettingSavedFrame().

00326                                             {
00327   fSavedFrameSize = frameSize;
00328   fSavedFrameFlag = ~0;
00329 }

void AC3AudioStreamParser::onSavedFrameClosure ( void *  clientData  )  [static, private]

Definition at line 331 of file AC3AudioStreamFramer.cpp.

References onSavedFrameClosure1().

Referenced by readAndSaveAFrame().

00331                                                                {
00332   AC3AudioStreamParser* parser = (AC3AudioStreamParser*)clientData;
00333   parser->onSavedFrameClosure1();
00334 }

void AC3AudioStreamParser::onSavedFrameClosure1 (  )  [private]

Definition at line 336 of file AC3AudioStreamFramer.cpp.

References fSavedFrame, fSavedFrameFlag, fSavedFrameSize, and NULL.

Referenced by onSavedFrameClosure().

00336                                                 {
00337   delete[] fSavedFrame; fSavedFrame = NULL;
00338   fSavedFrameSize = 0;
00339   fSavedFrameFlag = ~0;
00340 }

void StreamParser::flushInput (  )  [virtual, inherited]

Reimplemented in H264VideoStreamParser, MPEG1or2VideoStreamParser, and MPEG4VideoStreamParser.

Definition at line 28 of file StreamParser.cpp.

References StreamParser::fCurParserIndex, StreamParser::fRemainingUnparsedBits, StreamParser::fSavedParserIndex, StreamParser::fSavedRemainingUnparsedBits, and StreamParser::fTotNumValidBytes.

Referenced by MPEGVideoStreamFramer::flushInput(), MPEG4VideoStreamParser::flushInput(), MPEG1or2VideoStreamParser::flushInput(), MPEG1or2Demux::flushInput(), MPEG1or2AudioStreamFramer::flushInput(), H264VideoStreamParser::flushInput(), AC3AudioStreamFramer::flushInput(), and MatroskaFileParser::resetStateAfterSeeking().

void StreamParser::saveParserState (  )  [protected, inherited]

Definition at line 58 of file StreamParser.cpp.

References StreamParser::fCurParserIndex, StreamParser::fRemainingUnparsedBits, StreamParser::fSavedParserIndex, and StreamParser::fSavedRemainingUnparsedBits.

Referenced by MPEG1or2AudioStreamParser::parse(), parseFrame(), MPEGVideoStreamParser::setParseState(), MPEGProgramStreamParser::setParseState(), MatroskaFileParser::setParseState(), and H263plusVideoStreamParser::setParseState().

void StreamParser::restoreSavedParserState (  )  [protected, virtual, inherited]

Reimplemented in H263plusVideoStreamParser, MatroskaFileParser, and MPEGVideoStreamParser.

Definition at line 63 of file StreamParser.cpp.

References StreamParser::fCurParserIndex, StreamParser::fRemainingUnparsedBits, StreamParser::fSavedParserIndex, and StreamParser::fSavedRemainingUnparsedBits.

Referenced by StreamParser::afterGettingBytes1(), MPEGProgramStreamParser::parsePESPacket(), MPEGVideoStreamParser::restoreSavedParserState(), MatroskaFileParser::restoreSavedParserState(), and H263plusVideoStreamParser::restoreSavedParserState().

u_int32_t StreamParser::get4Bytes (  )  [inline, protected, inherited]

Definition at line 46 of file StreamParser.hh.

References StreamParser::fCurParserIndex, StreamParser::fRemainingUnparsedBits, and StreamParser::test4Bytes().

Referenced by parseFrame(), MPEG1or2VideoStreamParser::parseGOPHeader(), MPEG4VideoStreamParser::parseGroupOfVideoObjectPlane(), MPEGProgramStreamParser::parsePackHeader(), MPEGProgramStreamParser::parsePESPacket(), MPEG1or2VideoStreamParser::parsePictureHeader(), MPEG4VideoStreamParser::parseVideoObjectLayer(), MPEG4VideoStreamParser::parseVideoObjectPlane(), MPEG1or2VideoStreamParser::parseVideoSequenceHeader(), MPEG4VideoStreamParser::parseVisualObject(), MPEG4VideoStreamParser::parseVisualObjectSequence(), MPEGVideoStreamParser::saveToNextCode(), and MPEGVideoStreamParser::skipToNextCode().

00046                         { // byte-aligned; returned in big-endian order
00047     u_int32_t result = test4Bytes();
00048     fCurParserIndex += 4;
00049     fRemainingUnparsedBits = 0;
00050 
00051     return result;
00052   }

u_int32_t StreamParser::test4Bytes (  )  [inline, protected, inherited]

Definition at line 53 of file StreamParser.hh.

References StreamParser::ensureValidBytes(), and StreamParser::nextToParse().

Referenced by StreamParser::get4Bytes(), StreamParser::getBits(), MPEG1or2AudioStreamParser::parse(), H264VideoStreamParser::parse(), parseFrame(), MPEG1or2VideoStreamParser::parseGOPHeader(), MPEGProgramStreamParser::parsePackHeader(), MPEGProgramStreamParser::parsePESPacket(), MPEGProgramStreamParser::parseSystemHeader(), MPEG1or2VideoStreamParser::parseVideoSequenceHeader(), and MPEG4VideoStreamParser::parseVisualObjectSequence().

00053                          { // as above, but doesn't advance ptr
00054     ensureValidBytes(4);
00055 
00056     unsigned char const* ptr = nextToParse();
00057     return (ptr[0]<<24)|(ptr[1]<<16)|(ptr[2]<<8)|ptr[3];
00058   }

u_int16_t StreamParser::get2Bytes (  )  [inline, protected, inherited]

Definition at line 60 of file StreamParser.hh.

References StreamParser::ensureValidBytes(), StreamParser::fCurParserIndex, StreamParser::fRemainingUnparsedBits, and StreamParser::nextToParse().

Referenced by MPEGProgramStreamParser::parsePESPacket(), and MPEGProgramStreamParser::parseSystemHeader().

00060                         {
00061     ensureValidBytes(2);
00062 
00063     unsigned char const* ptr = nextToParse();
00064     u_int16_t result = (ptr[0]<<8)|ptr[1];
00065 
00066     fCurParserIndex += 2;
00067     fRemainingUnparsedBits = 0;
00068 
00069     return result;
00070   }

u_int8_t StreamParser::get1Byte (  )  [inline, protected, inherited]

Definition at line 72 of file StreamParser.hh.

References StreamParser::curBank(), StreamParser::ensureValidBytes(), StreamParser::fCurParserIndex, and StreamParser::fRemainingUnparsedBits.

Referenced by MatroskaFileParser::deliverFrameWithinBlock(), H264VideoStreamParser::parse(), MatroskaFileParser::parseBlock(), MatroskaFileParser::parseEBMLNumber(), MatroskaFileParser::parseEBMLVal_binary(), MatroskaFileParser::parseEBMLVal_string(), MatroskaFileParser::parseEBMLVal_unsigned64(), MPEG1or2VideoStreamParser::parseGOPHeader(), H263plusVideoStreamParser::parseH263Frame(), MPEGProgramStreamParser::parsePackHeader(), MPEGProgramStreamParser::parsePESPacket(), MPEG4VideoStreamParser::parseVideoObjectPlane(), MPEG1or2VideoStreamParser::parseVideoSequenceHeader(), MPEG4VideoStreamParser::parseVisualObject(), MPEG4VideoStreamParser::parseVisualObjectSequence(), MPEGVideoStreamParser::saveToNextCode(), and MPEGVideoStreamParser::skipToNextCode().

00072                       { // byte-aligned
00073     ensureValidBytes(1);
00074     fRemainingUnparsedBits = 0;
00075     return curBank()[fCurParserIndex++];
00076   }

u_int8_t StreamParser::test1Byte ( unsigned  numBytes  )  [inline, protected, inherited]

Definition at line 77 of file StreamParser.hh.

References StreamParser::ensureValidBytes(), and StreamParser::nextToParse().

00077                                         { // as above, but doesn't advance ptr
00078     ensureValidBytes(1);
00079     return nextToParse()[0];
00080   }

void StreamParser::getBytes ( u_int8_t *  to,
unsigned  numBytes 
) [inline, protected, inherited]

Definition at line 82 of file StreamParser.hh.

References StreamParser::fCurParserIndex, StreamParser::fRemainingUnparsedBits, and StreamParser::testBytes().

Referenced by MatroskaFileParser::deliverFrameBytes(), MPEG1or2AudioStreamParser::parse(), parseFrame(), MPEG4VideoStreamParser::parseGroupOfVideoObjectPlane(), H263plusVideoStreamParser::parseH263Frame(), and MPEGProgramStreamParser::parsePESPacket().

00082                                                  {
00083     testBytes(to, numBytes);
00084     fCurParserIndex += numBytes;
00085     fRemainingUnparsedBits = 0;
00086   }

void StreamParser::testBytes ( u_int8_t *  to,
unsigned  numBytes 
) [inline, protected, inherited]

Definition at line 87 of file StreamParser.hh.

References StreamParser::ensureValidBytes(), and StreamParser::nextToParse().

Referenced by StreamParser::getBytes(), and H264VideoStreamParser::parse().

00087                                                   { // as above, but doesn't advance ptr
00088     ensureValidBytes(numBytes);
00089     memmove(to, nextToParse(), numBytes);
00090   }

void StreamParser::skipBytes ( unsigned  numBytes  )  [inline, protected, inherited]

Definition at line 91 of file StreamParser.hh.

References StreamParser::ensureValidBytes(), and StreamParser::fCurParserIndex.

Referenced by MatroskaFileParser::deliverFrameBytes(), MPEG1or2AudioStreamParser::parse(), H264VideoStreamParser::parse(), MatroskaFileParser::parseBlock(), parseFrame(), MPEGProgramStreamParser::parsePackHeader(), MPEGProgramStreamParser::parsePESPacket(), MPEGProgramStreamParser::parseSystemHeader(), and MatroskaFileParser::skipHeader().

00091                                     {
00092     ensureValidBytes(numBytes);
00093     fCurParserIndex += numBytes;
00094   }

void StreamParser::skipBits ( unsigned  numBits  )  [protected, inherited]

Definition at line 68 of file StreamParser.cpp.

References StreamParser::ensureValidBytes(), StreamParser::fCurParserIndex, and StreamParser::fRemainingUnparsedBits.

Referenced by MPEGProgramStreamParser::parsePackHeader().

00068                                             {
00069   if (numBits <= fRemainingUnparsedBits) {
00070     fRemainingUnparsedBits -= numBits;
00071   } else {
00072     numBits -= fRemainingUnparsedBits;
00073 
00074     unsigned numBytesToExamine = (numBits+7)/8; // round up
00075     ensureValidBytes(numBytesToExamine);
00076     fCurParserIndex += numBytesToExamine;
00077 
00078     fRemainingUnparsedBits = 8*numBytesToExamine - numBits;
00079   }
00080 }

unsigned StreamParser::getBits ( unsigned  numBits  )  [protected, inherited]

Definition at line 82 of file StreamParser.cpp.

References StreamParser::fCurParserIndex, StreamParser::fRemainingUnparsedBits, StreamParser::lastParsed(), and StreamParser::test4Bytes().

Referenced by MPEGProgramStreamParser::parsePackHeader(), and MPEGProgramStreamParser::parsePESPacket().

00082                                                {
00083   if (numBits <= fRemainingUnparsedBits) {
00084     unsigned char lastByte = *lastParsed();
00085     lastByte >>= (fRemainingUnparsedBits - numBits);
00086     fRemainingUnparsedBits -= numBits;
00087 
00088     return (unsigned)lastByte &~ ((~0)<<numBits);
00089   } else {
00090     unsigned char lastByte;
00091     if (fRemainingUnparsedBits > 0) {
00092       lastByte = *lastParsed();
00093     } else {
00094       lastByte = 0;
00095     }
00096 
00097     unsigned remainingBits = numBits - fRemainingUnparsedBits; // > 0
00098 
00099     // For simplicity, read the next 4 bytes, even though we might not
00100     // need all of them here:
00101     unsigned result = test4Bytes();
00102 
00103     result >>= (32 - remainingBits);
00104     result |= (lastByte << remainingBits);
00105     if (numBits < 32) result &=~ ((~0)<<numBits);
00106 
00107     unsigned const numRemainingBytes = (remainingBits+7)/8;
00108     fCurParserIndex += numRemainingBytes;
00109     fRemainingUnparsedBits = 8*numRemainingBytes - remainingBits;
00110 
00111     return result;
00112   }
00113 }

unsigned StreamParser::curOffset (  )  const [inline, protected, inherited]

Definition at line 100 of file StreamParser.hh.

References StreamParser::fCurParserIndex.

Referenced by H264VideoStreamParser::parse(), MatroskaFileParser::parseBlock(), and MPEGProgramStreamParser::parsePESPacket().

00100 { return fCurParserIndex; }

unsigned& StreamParser::totNumValidBytes (  )  [inline, protected, inherited]

Definition at line 102 of file StreamParser.hh.

References StreamParser::fTotNumValidBytes.

Referenced by H264VideoStreamParser::parse(), and testStreamCode().

00102 { return fTotNumValidBytes; }

Boolean StreamParser::haveSeenEOF (  )  const [inline, protected, inherited]

Definition at line 104 of file StreamParser.hh.

References StreamParser::fHaveSeenEOF.

Referenced by H264VideoStreamParser::parse().

00104 { return fHaveSeenEOF; }

unsigned StreamParser::bankSize (  )  const [protected, inherited]

Definition at line 115 of file StreamParser.cpp.

References BANK_SIZE.

Referenced by MatroskaFileParser::deliverFrameBytes(), and MatroskaFileParser::skipHeader().

00115                                       {
00116   return BANK_SIZE;
00117 }


Field Documentation

AC3AudioStreamFramer* AC3AudioStreamParser::fUsingSource [private]

Definition at line 69 of file AC3AudioStreamFramer.cpp.

Referenced by parseFrame(), and readAndSaveAFrame().

unsigned char* AC3AudioStreamParser::fTo [private]

Definition at line 70 of file AC3AudioStreamFramer.cpp.

Referenced by parseFrame(), and registerReadInterest().

unsigned AC3AudioStreamParser::fMaxSize [private]

Definition at line 71 of file AC3AudioStreamFramer.cpp.

Referenced by parseFrame(), and registerReadInterest().

Boolean AC3AudioStreamParser::fHaveParsedAFrame [private]

Definition at line 73 of file AC3AudioStreamFramer.cpp.

Referenced by haveParsedAFrame(), and parseFrame().

unsigned char* AC3AudioStreamParser::fSavedFrame [private]

Definition at line 74 of file AC3AudioStreamFramer.cpp.

Referenced by onSavedFrameClosure1(), parseFrame(), and readAndSaveAFrame().

unsigned AC3AudioStreamParser::fSavedFrameSize [private]

Definition at line 75 of file AC3AudioStreamFramer.cpp.

Referenced by afterGettingSavedFrame1(), onSavedFrameClosure1(), parseFrame(), and readAndSaveAFrame().

char AC3AudioStreamParser::fSavedFrameFlag [private]

Definition at line 76 of file AC3AudioStreamFramer.cpp.

Referenced by afterGettingSavedFrame1(), onSavedFrameClosure1(), and readAndSaveAFrame().

AC3FrameParams AC3AudioStreamParser::fCurrentFrame [private]

Definition at line 79 of file AC3AudioStreamFramer.cpp.

Referenced by currentFrame(), and parseFrame().


The documentation for this class was generated from the following file:
Generated on Mon Apr 29 13:31:08 2013 for live by  doxygen 1.5.2