StreamParser Class Reference

#include <StreamParser.hh>

Inheritance diagram for StreamParser:

Inheritance graph
[legend]
Collaboration diagram for StreamParser:

Collaboration graph
[legend]

Public Member Functions

virtual void flushInput ()

Protected Types

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

Protected Member Functions

 StreamParser (FramedSource *inputSource, FramedSource::onCloseFunc *onInputCloseFunc, void *onInputCloseClientData, clientContinueFunc *clientContinueFunc, void *clientContinueClientData)
virtual ~StreamParser ()
void saveParserState ()
virtual void restoreSavedParserState ()
u_int32_t get4Bytes ()
u_int32_t test4Bytes ()
u_int16_t get2Bytes ()
u_int8_t get1Byte ()
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

unsigned char * curBank ()
unsigned char * nextToParse ()
unsigned char * lastParsed ()
void ensureValidBytes (unsigned numBytesNeeded)
void ensureValidBytes1 (unsigned numBytesNeeded)
void afterGettingBytes1 (unsigned numBytesRead, struct timeval presentationTime)
void onInputClosure1 ()

Static Private Member Functions

static void afterGettingBytes (void *clientData, unsigned numBytesRead, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds)
static void onInputClosure (void *clientData)

Private Attributes

FramedSourcefInputSource
FramedSource::onCloseFuncfClientOnInputCloseFunc
void * fClientOnInputCloseClientData
clientContinueFuncfClientContinueFunc
void * fClientContinueClientData
unsigned char * fBank [2]
unsigned char fCurBankNum
unsigned char * fCurBank
unsigned fSavedParserIndex
unsigned char fSavedRemainingUnparsedBits
unsigned fCurParserIndex
unsigned char fRemainingUnparsedBits
unsigned fTotNumValidBytes
Boolean fHaveSeenEOF
timeval fLastSeenPresentationTime

Detailed Description

Definition at line 28 of file StreamParser.hh.


Member Typedef Documentation

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

Definition at line 33 of file StreamParser.hh.


Constructor & Destructor Documentation

StreamParser::StreamParser ( FramedSource inputSource,
FramedSource::onCloseFunc onInputCloseFunc,
void *  onInputCloseClientData,
clientContinueFunc clientContinueFunc,
void *  clientContinueClientData 
) [protected]

Definition at line 34 of file StreamParser.cpp.

References BANK_SIZE, fBank, fCurBank, fCurBankNum, and fLastSeenPresentationTime.

00039   : fInputSource(inputSource), fClientOnInputCloseFunc(onInputCloseFunc),
00040     fClientOnInputCloseClientData(onInputCloseClientData),
00041     fClientContinueFunc(clientContinueFunc),
00042     fClientContinueClientData(clientContinueClientData),
00043     fSavedParserIndex(0), fSavedRemainingUnparsedBits(0),
00044     fCurParserIndex(0), fRemainingUnparsedBits(0),
00045     fTotNumValidBytes(0), fHaveSeenEOF(False) {
00046   fBank[0] = new unsigned char[BANK_SIZE];
00047   fBank[1] = new unsigned char[BANK_SIZE];
00048   fCurBankNum = 0;
00049   fCurBank = fBank[fCurBankNum];
00050 
00051   fLastSeenPresentationTime.tv_sec = 0; fLastSeenPresentationTime.tv_usec = 0;
00052 }

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

Definition at line 54 of file StreamParser.cpp.

References fBank.

00054                             {
00055   delete[] fBank[0]; delete[] fBank[1];
00056 }


Member Function Documentation

void StreamParser::flushInput (  )  [virtual]

Reimplemented in H264VideoStreamParser, MPEG1or2VideoStreamParser, and MPEG4VideoStreamParser.

Definition at line 28 of file StreamParser.cpp.

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

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

void StreamParser::saveParserState (  )  [protected]

Definition at line 58 of file StreamParser.cpp.

References fCurParserIndex, fRemainingUnparsedBits, fSavedParserIndex, and fSavedRemainingUnparsedBits.

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

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

Reimplemented in H263plusVideoStreamParser, MatroskaFileParser, and MPEGVideoStreamParser.

Definition at line 63 of file StreamParser.cpp.

References fCurParserIndex, fRemainingUnparsedBits, fSavedParserIndex, and fSavedRemainingUnparsedBits.

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

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

Definition at line 46 of file StreamParser.hh.

References fCurParserIndex, fRemainingUnparsedBits, and test4Bytes().

Referenced by AC3AudioStreamParser::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]

Definition at line 53 of file StreamParser.hh.

References ensureValidBytes(), and nextToParse().

Referenced by get4Bytes(), getBits(), MPEG1or2AudioStreamParser::parse(), H264VideoStreamParser::parse(), AC3AudioStreamParser::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]

Definition at line 60 of file StreamParser.hh.

References ensureValidBytes(), fCurParserIndex, fRemainingUnparsedBits, and 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]

Definition at line 72 of file StreamParser.hh.

References curBank(), ensureValidBytes(), fCurParserIndex, and 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   }

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

Definition at line 78 of file StreamParser.hh.

References fCurParserIndex, fRemainingUnparsedBits, and testBytes().

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

00078                                                  {
00079     testBytes(to, numBytes);
00080     fCurParserIndex += numBytes;
00081     fRemainingUnparsedBits = 0;
00082   }

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

Definition at line 83 of file StreamParser.hh.

References ensureValidBytes(), and nextToParse().

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

00083                                                   { // as above, but doesn't advance ptr
00084     ensureValidBytes(numBytes);
00085     memmove(to, nextToParse(), numBytes);
00086   }

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

Definition at line 87 of file StreamParser.hh.

References ensureValidBytes(), and fCurParserIndex.

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

00087                                     {
00088     ensureValidBytes(numBytes);
00089     fCurParserIndex += numBytes;
00090   }

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

Definition at line 68 of file StreamParser.cpp.

References ensureValidBytes(), fCurParserIndex, and 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]

Definition at line 82 of file StreamParser.cpp.

References fCurParserIndex, fRemainingUnparsedBits, lastParsed(), and 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]

Definition at line 96 of file StreamParser.hh.

References fCurParserIndex.

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

00096 { return fCurParserIndex; }

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

Definition at line 98 of file StreamParser.hh.

References fTotNumValidBytes.

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

00098 { return fTotNumValidBytes; }

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

Definition at line 100 of file StreamParser.hh.

References fHaveSeenEOF.

Referenced by H264VideoStreamParser::parse().

00100 { return fHaveSeenEOF; }

unsigned StreamParser::bankSize (  )  const [protected]

Definition at line 115 of file StreamParser.cpp.

References BANK_SIZE.

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

00115                                       {
00116   return BANK_SIZE;
00117 }

unsigned char* StreamParser::curBank (  )  [inline, private]

Definition at line 105 of file StreamParser.hh.

References fCurBank.

Referenced by afterGettingBytes1(), ensureValidBytes1(), get1Byte(), lastParsed(), and nextToParse().

00105 { return fCurBank; }

unsigned char* StreamParser::nextToParse (  )  [inline, private]

Definition at line 106 of file StreamParser.hh.

References curBank(), and fCurParserIndex.

Referenced by get2Bytes(), test4Bytes(), and testBytes().

00106 { return &curBank()[fCurParserIndex]; }

unsigned char* StreamParser::lastParsed (  )  [inline, private]

Definition at line 107 of file StreamParser.hh.

References curBank(), and fCurParserIndex.

Referenced by getBits().

00107 { return &curBank()[fCurParserIndex-1]; }

void StreamParser::ensureValidBytes ( unsigned  numBytesNeeded  )  [inline, private]

Definition at line 110 of file StreamParser.hh.

References ensureValidBytes1(), fCurParserIndex, and fTotNumValidBytes.

Referenced by get1Byte(), get2Bytes(), skipBits(), skipBytes(), test4Bytes(), and testBytes().

00110                                                  {
00111     // common case: inlined:
00112     if (fCurParserIndex + numBytesNeeded <= fTotNumValidBytes) return;
00113 
00114     ensureValidBytes1(numBytesNeeded);
00115   }

void StreamParser::ensureValidBytes1 ( unsigned  numBytesNeeded  )  [private]

Definition at line 121 of file StreamParser.cpp.

References afterGettingBytes(), BANK_SIZE, curBank(), Medium::envir(), fBank, fCurBank, fCurBankNum, fCurParserIndex, fInputSource, fSavedParserIndex, fTotNumValidBytes, FramedSource::getNextFrame(), UsageEnvironment::internalError(), FramedSource::maxFrameSize(), NO_MORE_BUFFERED_INPUT, and onInputClosure().

Referenced by ensureValidBytes().

00121                                                             {
00122   // We need to read some more bytes from the input source.
00123   // First, clarify how much data to ask for:
00124   unsigned maxInputFrameSize = fInputSource->maxFrameSize();
00125   if (maxInputFrameSize > numBytesNeeded) numBytesNeeded = maxInputFrameSize;
00126 
00127   // First, check whether these new bytes would overflow the current
00128   // bank.  If so, start using a new bank now.
00129   if (fCurParserIndex + numBytesNeeded > BANK_SIZE) {
00130     // Swap banks, but save any still-needed bytes from the old bank:
00131     unsigned numBytesToSave = fTotNumValidBytes - fSavedParserIndex;
00132     unsigned char const* from = &curBank()[fSavedParserIndex];
00133 
00134     fCurBankNum = (fCurBankNum + 1)%2;
00135     fCurBank = fBank[fCurBankNum];
00136     memmove(curBank(), from, numBytesToSave);
00137     fCurParserIndex = fCurParserIndex - fSavedParserIndex;
00138     fSavedParserIndex = 0;
00139     fTotNumValidBytes = numBytesToSave;
00140   }
00141 
00142   // ASSERT: fCurParserIndex + numBytesNeeded > fTotNumValidBytes
00143   //      && fCurParserIndex + numBytesNeeded <= BANK_SIZE
00144   if (fCurParserIndex + numBytesNeeded > BANK_SIZE) {
00145     // If this happens, it means that we have too much saved parser state.
00146     // To fix this, increase BANK_SIZE as appropriate.
00147     fInputSource->envir() << "StreamParser internal error ("
00148                           << fCurParserIndex << " + "
00149                           << numBytesNeeded << " > "
00150                           << BANK_SIZE << ")\n";
00151     fInputSource->envir().internalError();
00152   }
00153 
00154   // Try to read as many new bytes as will fit in the current bank:
00155   unsigned maxNumBytesToRead = BANK_SIZE - fTotNumValidBytes;
00156   fInputSource->getNextFrame(&curBank()[fTotNumValidBytes],
00157                              maxNumBytesToRead,
00158                              afterGettingBytes, this,
00159                              onInputClosure, this);
00160 
00161   throw NO_MORE_BUFFERED_INPUT;
00162 }

void StreamParser::afterGettingBytes ( void *  clientData,
unsigned  numBytesRead,
unsigned  numTruncatedBytes,
struct timeval  presentationTime,
unsigned  durationInMicroseconds 
) [static, private]

Definition at line 164 of file StreamParser.cpp.

References afterGettingBytes1(), and NULL.

Referenced by ensureValidBytes1().

00168                                                                          {
00169   StreamParser* parser = (StreamParser*)clientData;
00170   if (parser != NULL) parser->afterGettingBytes1(numBytesRead, presentationTime);
00171 }

void StreamParser::afterGettingBytes1 ( unsigned  numBytesRead,
struct timeval  presentationTime 
) [private]

Definition at line 173 of file StreamParser.cpp.

References BANK_SIZE, curBank(), Medium::envir(), fClientContinueClientData, fClientContinueFunc, fInputSource, fLastSeenPresentationTime, fTotNumValidBytes, and restoreSavedParserState().

Referenced by afterGettingBytes(), and onInputClosure1().

00173                                                                                             {
00174   // Sanity check: Make sure we didn't get too many bytes for our bank:
00175   if (fTotNumValidBytes + numBytesRead > BANK_SIZE) {
00176     fInputSource->envir()
00177       << "StreamParser::afterGettingBytes() warning: read "
00178       << numBytesRead << " bytes; expected no more than "
00179       << BANK_SIZE - fTotNumValidBytes << "\n";
00180   }
00181 
00182   fLastSeenPresentationTime = presentationTime;
00183 
00184   unsigned char* ptr = &curBank()[fTotNumValidBytes];
00185   fTotNumValidBytes += numBytesRead;
00186 
00187   // Continue our original calling source where it left off:
00188   restoreSavedParserState();
00189       // Sigh... this is a crock; things would have been a lot simpler
00190       // here if we were using threads, with synchronous I/O...
00191   fClientContinueFunc(fClientContinueClientData, ptr, numBytesRead, presentationTime);
00192 }

void StreamParser::onInputClosure ( void *  clientData  )  [static, private]

Definition at line 194 of file StreamParser.cpp.

References NULL, and onInputClosure1().

Referenced by ensureValidBytes1().

00194                                                   {
00195   StreamParser* parser = (StreamParser*)clientData;
00196   if (parser != NULL) parser->onInputClosure1();
00197 }

void StreamParser::onInputClosure1 (  )  [private]

Definition at line 199 of file StreamParser.cpp.

References afterGettingBytes1(), False, fClientOnInputCloseClientData, fClientOnInputCloseFunc, fHaveSeenEOF, fLastSeenPresentationTime, NULL, and True.

Referenced by onInputClosure().

00199                                    {
00200   if (!fHaveSeenEOF) {
00201     // We're hitting EOF for the first time.  Set our 'EOF' flag, and continue parsing, as if we'd just read 0 bytes of data.
00202     // This allows the parser to re-parse any remaining unparsed data (perhaps while testing for EOF at the end):
00203     fHaveSeenEOF = True;
00204     afterGettingBytes1(0, fLastSeenPresentationTime);
00205   } else {
00206     // We're hitting EOF for the second time.  Now, we handle the source input closure:
00207     fHaveSeenEOF = False;
00208     if (fClientOnInputCloseFunc != NULL) (*fClientOnInputCloseFunc)(fClientOnInputCloseClientData);
00209   }
00210 }


Field Documentation

FramedSource* StreamParser::fInputSource [private]

Reimplemented in MatroskaFileParser.

Definition at line 128 of file StreamParser.hh.

Referenced by afterGettingBytes1(), and ensureValidBytes1().

FramedSource::onCloseFunc* StreamParser::fClientOnInputCloseFunc [private]

Definition at line 129 of file StreamParser.hh.

Referenced by onInputClosure1().

void* StreamParser::fClientOnInputCloseClientData [private]

Definition at line 130 of file StreamParser.hh.

Referenced by onInputClosure1().

clientContinueFunc* StreamParser::fClientContinueFunc [private]

Definition at line 131 of file StreamParser.hh.

Referenced by afterGettingBytes1().

void* StreamParser::fClientContinueClientData [private]

Definition at line 132 of file StreamParser.hh.

Referenced by afterGettingBytes1().

unsigned char* StreamParser::fBank[2] [private]

Definition at line 135 of file StreamParser.hh.

Referenced by ensureValidBytes1(), StreamParser(), and ~StreamParser().

unsigned char StreamParser::fCurBankNum [private]

Definition at line 136 of file StreamParser.hh.

Referenced by ensureValidBytes1(), and StreamParser().

unsigned char* StreamParser::fCurBank [private]

Definition at line 137 of file StreamParser.hh.

Referenced by curBank(), ensureValidBytes1(), and StreamParser().

unsigned StreamParser::fSavedParserIndex [private]

Definition at line 140 of file StreamParser.hh.

Referenced by ensureValidBytes1(), flushInput(), restoreSavedParserState(), and saveParserState().

unsigned char StreamParser::fSavedRemainingUnparsedBits [private]

Definition at line 141 of file StreamParser.hh.

Referenced by flushInput(), restoreSavedParserState(), and saveParserState().

unsigned StreamParser::fCurParserIndex [private]

Definition at line 144 of file StreamParser.hh.

Referenced by curOffset(), ensureValidBytes(), ensureValidBytes1(), flushInput(), get1Byte(), get2Bytes(), get4Bytes(), getBits(), getBytes(), lastParsed(), nextToParse(), restoreSavedParserState(), saveParserState(), skipBits(), and skipBytes().

unsigned char StreamParser::fRemainingUnparsedBits [private]

Definition at line 145 of file StreamParser.hh.

Referenced by flushInput(), get1Byte(), get2Bytes(), get4Bytes(), getBits(), getBytes(), restoreSavedParserState(), saveParserState(), and skipBits().

unsigned StreamParser::fTotNumValidBytes [private]

Definition at line 148 of file StreamParser.hh.

Referenced by afterGettingBytes1(), ensureValidBytes(), ensureValidBytes1(), flushInput(), and totNumValidBytes().

Boolean StreamParser::fHaveSeenEOF [private]

Definition at line 151 of file StreamParser.hh.

Referenced by haveSeenEOF(), and onInputClosure1().

struct timeval StreamParser::fLastSeenPresentationTime [read, private]

Definition at line 153 of file StreamParser.hh.

Referenced by afterGettingBytes1(), onInputClosure1(), and StreamParser().


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