live
Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Private Member Functions | Private Attributes
OggFileParser Class Reference

#include <OggFileParser.hh>

Inheritance diagram for OggFileParser:
Inheritance graph
[legend]
Collaboration diagram for OggFileParser:
Collaboration graph
[legend]

Public Member Functions

 OggFileParser (OggFile &ourFile, FramedSource *inputSource, FramedSource::onCloseFunc *onEndFunc, void *onEndClientData, OggDemux *ourDemux=NULL)
 
virtual ~OggFileParser ()
 
void continueParsing ()
 
virtual void flushInput ()
 

Static Public Member Functions

static void continueParsing (void *clientData, unsigned char *ptr, unsigned size, struct timeval presentationTime)
 

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_int16_t test2Bytes ()
 
u_int8_t get1Byte ()
 
u_int8_t test1Byte ()
 
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

Boolean needHeaders ()
 
Boolean parse ()
 
Boolean parseStartOfFile ()
 
u_int8_t parseInitialPage ()
 
void parseAndDeliverPages ()
 
Boolean parseAndDeliverPage ()
 
Boolean deliverPacketWithinPage ()
 
void parseStartOfPage (u_int8_t &header_type_flag, u_int32_t &bitstream_serial_number)
 
Boolean validateHeader (OggTrack *track, u_int8_t const *p, unsigned headerSize)
 

Private Attributes

OggFilefOurFile
 
FramedSourcefInputSource
 
FramedSource::onCloseFuncfOnEndFunc
 
void * fOnEndClientData
 
OggDemuxfOurDemux
 
OggParseState fCurrentParseState
 
unsigned fNumUnfulfilledTracks
 
PacketSizeTablefPacketSizeTable
 
u_int32_t fCurrentTrackNumber
 
u_int8_t * fSavedPacket
 

Detailed Description

Definition at line 50 of file OggFileParser.hh.

Member Typedef Documentation

◆ clientContinueFunc

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

Definition at line 33 of file StreamParser.hh.

Constructor & Destructor Documentation

◆ OggFileParser()

OggFileParser::OggFileParser ( OggFile ourFile,
FramedSource inputSource,
FramedSource::onCloseFunc onEndFunc,
void *  onEndClientData,
OggDemux ourDemux = NULL 
)

◆ ~OggFileParser()

virtual OggFileParser::~OggFileParser ( )
virtual

Member Function Documentation

◆ bankSize()

unsigned StreamParser::bankSize ( ) const
protectedinherited

◆ continueParsing() [1/2]

static void OggFileParser::continueParsing ( void *  clientData,
unsigned char *  ptr,
unsigned  size,
struct timeval  presentationTime 
)
static

◆ continueParsing() [2/2]

void OggFileParser::continueParsing ( )

◆ curOffset()

unsigned StreamParser::curOffset ( ) const
inlineprotectedinherited

Definition at line 107 of file StreamParser.hh.

107 { return fCurParserIndex; }
unsigned fCurParserIndex

References StreamParser::fCurParserIndex.

◆ deliverPacketWithinPage()

Boolean OggFileParser::deliverPacketWithinPage ( )
private

◆ flushInput()

virtual void StreamParser::flushInput ( )
virtualinherited

◆ get1Byte()

u_int8_t StreamParser::get1Byte ( )
inlineprotectedinherited

Definition at line 79 of file StreamParser.hh.

79  { // byte-aligned
82  return curBank()[fCurParserIndex++];
83  }
unsigned fCurParserIndex
unsigned char fRemainingUnparsedBits
void ensureValidBytes(unsigned numBytesNeeded)
unsigned char * curBank()

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

Referenced by MPEGVideoStreamParser::saveToNextCode(), and MPEGVideoStreamParser::skipToNextCode().

◆ get2Bytes()

u_int16_t StreamParser::get2Bytes ( )
inlineprotectedinherited

Definition at line 60 of file StreamParser.hh.

60  {
62 
63  unsigned char const* ptr = nextToParse();
64  u_int16_t result = (ptr[0]<<8)|ptr[1];
65 
66  fCurParserIndex += 2;
68 
69  return result;
70  }
unsigned fCurParserIndex
unsigned char fRemainingUnparsedBits
void ensureValidBytes(unsigned numBytesNeeded)
unsigned char * nextToParse()

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

◆ get4Bytes()

u_int32_t StreamParser::get4Bytes ( )
inlineprotectedinherited

Definition at line 46 of file StreamParser.hh.

46  { // byte-aligned; returned in big-endian order
47  u_int32_t result = test4Bytes();
48  fCurParserIndex += 4;
50 
51  return result;
52  }
unsigned fCurParserIndex
unsigned char fRemainingUnparsedBits
u_int32_t test4Bytes()
Definition: StreamParser.hh:53

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

Referenced by MPEGVideoStreamParser::saveToNextCode(), and MPEGVideoStreamParser::skipToNextCode().

◆ getBits()

unsigned StreamParser::getBits ( unsigned  numBits)
protectedinherited

◆ getBytes()

void StreamParser::getBytes ( u_int8_t *  to,
unsigned  numBytes 
)
inlineprotectedinherited

Definition at line 89 of file StreamParser.hh.

89  {
90  testBytes(to, numBytes);
91  fCurParserIndex += numBytes;
93  }
void testBytes(u_int8_t *to, unsigned numBytes)
Definition: StreamParser.hh:94
unsigned fCurParserIndex
unsigned char fRemainingUnparsedBits

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

◆ haveSeenEOF()

Boolean StreamParser::haveSeenEOF ( ) const
inlineprotectedinherited

Definition at line 111 of file StreamParser.hh.

111 { return fHaveSeenEOF; }
Boolean fHaveSeenEOF

References StreamParser::fHaveSeenEOF.

◆ needHeaders()

Boolean OggFileParser::needHeaders ( )
inlineprivate

Definition at line 62 of file OggFileParser.hh.

62 { return fNumUnfulfilledTracks > 0; }
unsigned fNumUnfulfilledTracks

References fNumUnfulfilledTracks.

◆ parse()

Boolean OggFileParser::parse ( )
private

◆ parseAndDeliverPage()

Boolean OggFileParser::parseAndDeliverPage ( )
private

◆ parseAndDeliverPages()

void OggFileParser::parseAndDeliverPages ( )
private

◆ parseInitialPage()

u_int8_t OggFileParser::parseInitialPage ( )
private

◆ parseStartOfFile()

Boolean OggFileParser::parseStartOfFile ( )
private

◆ parseStartOfPage()

void OggFileParser::parseStartOfPage ( u_int8_t &  header_type_flag,
u_int32_t &  bitstream_serial_number 
)
private

◆ restoreSavedParserState()

virtual void StreamParser::restoreSavedParserState ( )
protectedvirtualinherited

◆ saveParserState()

void StreamParser::saveParserState ( )
protectedinherited

◆ skipBits()

void StreamParser::skipBits ( unsigned  numBits)
protectedinherited

◆ skipBytes()

void StreamParser::skipBytes ( unsigned  numBytes)
inlineprotectedinherited

Definition at line 98 of file StreamParser.hh.

98  {
99  ensureValidBytes(numBytes);
100  fCurParserIndex += numBytes;
101  }
unsigned fCurParserIndex
void ensureValidBytes(unsigned numBytesNeeded)

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

◆ test1Byte()

u_int8_t StreamParser::test1Byte ( )
inlineprotectedinherited

Definition at line 84 of file StreamParser.hh.

84  { // as above, but doesn't advance ptr
86  return nextToParse()[0];
87  }
void ensureValidBytes(unsigned numBytesNeeded)
unsigned char * nextToParse()

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

◆ test2Bytes()

u_int16_t StreamParser::test2Bytes ( )
inlineprotectedinherited

Definition at line 71 of file StreamParser.hh.

71  {
73 
74  unsigned char const* ptr = nextToParse();
75  return (ptr[0]<<8)|ptr[1];
76  }
void ensureValidBytes(unsigned numBytesNeeded)
unsigned char * nextToParse()

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

◆ test4Bytes()

u_int32_t StreamParser::test4Bytes ( )
inlineprotectedinherited

Definition at line 53 of file StreamParser.hh.

53  { // as above, but doesn't advance ptr
55 
56  unsigned char const* ptr = nextToParse();
57  return (ptr[0]<<24)|(ptr[1]<<16)|(ptr[2]<<8)|ptr[3];
58  }
void ensureValidBytes(unsigned numBytesNeeded)
unsigned char * nextToParse()

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

Referenced by StreamParser::get4Bytes().

◆ testBytes()

void StreamParser::testBytes ( u_int8_t *  to,
unsigned  numBytes 
)
inlineprotectedinherited

Definition at line 94 of file StreamParser.hh.

94  { // as above, but doesn't advance ptr
95  ensureValidBytes(numBytes);
96  memmove(to, nextToParse(), numBytes);
97  }
void ensureValidBytes(unsigned numBytesNeeded)
unsigned char * nextToParse()

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

Referenced by StreamParser::getBytes().

◆ totNumValidBytes()

unsigned& StreamParser::totNumValidBytes ( )
inlineprotectedinherited

Definition at line 109 of file StreamParser.hh.

109 { return fTotNumValidBytes; }
unsigned fTotNumValidBytes

References StreamParser::fTotNumValidBytes.

◆ validateHeader()

Boolean OggFileParser::validateHeader ( OggTrack track,
u_int8_t const *  p,
unsigned  headerSize 
)
private

Field Documentation

◆ fCurrentParseState

OggParseState OggFileParser::fCurrentParseState
private

Definition at line 83 of file OggFileParser.hh.

◆ fCurrentTrackNumber

u_int32_t OggFileParser::fCurrentTrackNumber
private

Definition at line 87 of file OggFileParser.hh.

◆ fInputSource

FramedSource* OggFileParser::fInputSource
private

Definition at line 79 of file OggFileParser.hh.

◆ fNumUnfulfilledTracks

unsigned OggFileParser::fNumUnfulfilledTracks
private

Definition at line 85 of file OggFileParser.hh.

Referenced by needHeaders().

◆ fOnEndClientData

void* OggFileParser::fOnEndClientData
private

Definition at line 81 of file OggFileParser.hh.

◆ fOnEndFunc

FramedSource::onCloseFunc* OggFileParser::fOnEndFunc
private

Definition at line 80 of file OggFileParser.hh.

◆ fOurDemux

OggDemux* OggFileParser::fOurDemux
private

Definition at line 82 of file OggFileParser.hh.

◆ fOurFile

OggFile& OggFileParser::fOurFile
private

Definition at line 78 of file OggFileParser.hh.

◆ fPacketSizeTable

PacketSizeTable* OggFileParser::fPacketSizeTable
private

Definition at line 86 of file OggFileParser.hh.

◆ fSavedPacket

u_int8_t* OggFileParser::fSavedPacket
private

Definition at line 88 of file OggFileParser.hh.


The documentation for this class was generated from the following file: