22#ifndef _H263PLUS_VIDEO_STREAM_PARSER_HH
23#define _H263PLUS_VIDEO_STREAM_PARSER_HH
25#ifndef _STREAM_PARSER_HH
31#define H263_TIMESCALE 1000
34#define H263_BASIC_FRAME_RATE 30
37#define H263_REQUIRE_HEADER_SIZE_BYTES 5
40#define H263_STARTCODE_SIZE_BYTES 3
44#define H263_BUFFER_SIZE 256 * 1024
48#define ADDITIONAL_BYTES_NEEDED H263_REQUIRE_HEADER_SIZE_BYTES - H263_STARTCODE_SIZE_BYTES
51#define H263_DEFAULT_CBR_TOLERANCE 10
81 unsigned parse(u_int64_t & currentDuration);
#define H263_BASIC_FRAME_RATE
struct _MaxBitrate_CTX MaxBitrate_CTX
#define H263_REQUIRE_HEADER_SIZE_BYTES
struct _H263INFO H263INFO
H263plusVideoStreamParser(class H263plusVideoStreamFramer *usingSource, FramedSource *inputSource)
virtual ~H263plusVideoStreamParser()
unsigned parse(u_int64_t ¤tDuration)
virtual void restoreSavedParserState()
void registerReadInterest(unsigned char *to, unsigned maxSize)
u_int8_t GetTRDifference(u_int8_t nextTR, u_int8_t currentTR)
unsigned char * fStartOfFrame
void GetMaxBitrate(MaxBitrate_CTX *ctx, u_int32_t frameSize, u_int8_t frameTRDiff)
unsigned numTruncatedBytes() const
u_int8_t fNextHeader[H263_REQUIRE_HEADER_SIZE_BYTES]
bool GetWidthAndHeight(u_int8_t fmt, u_int16_t *width, u_int16_t *height)
MaxBitrate_CTX fMaxBitrateCtx
class H263plusVideoStreamFramer * fUsingSource
bool ParseShortHeader(u_int8_t *headerBuffer, H263INFO *outputInfoStruct)
unsigned fNumTruncatedBytes
u_int64_t CalculateDuration(u_int8_t trDiff)
unsigned fSavedNumTruncatedBytes
u_int32_t bitrateTable[H263_BASIC_FRAME_RATE]