123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #ifndef __BITBUFFER_C_H__
- #define __BITBUFFER_C_H__
- #include "mp4dec_helpers/machine.h"
- #include "mp4dec_helpers/bitstream_c.h"
- struct CSStreamInfo;
- enum
- {
- CSBitBuffer_BufferSize = 8192,
- CSBitBuffer_BufferBits = CSBitBuffer_BufferSize*8,
-
- CBitBuffer_MaximumMarkers = 25*4
-
- };
- typedef struct
- {
- CSBitStream_MarkerPosition what ;
- UINT32 m_elementBits ;
- UINT32 m_ValidBits;
- UINT32 m_BitCnt;
- UINT32 m_BitNdx;
- } CMarker, *CMarkerPtr ;
- typedef struct CSBitBuffer
- {
- CSBitStream base ;
- UINT32 m_ValidBits;
- UINT32 m_ReadOffset;
- UINT32 m_BitCnt;
- UINT32 m_BitNdx;
- UINT32 m_FramesLeftInPacket ;
- UINT32 m_FrameCrcValue ;
- INT32 m_isEOF ;
- UINT8 m_Buffer [CSBitBuffer_BufferSize] ;
-
- UINT32 m_LastBufferFullness ;
- UINT32 m_LastFrameLength ;
- CMarker m_MarkerList [CBitBuffer_MaximumMarkers] ;
- UINT32 m_Markers ;
- } CSBitBuffer, *CSBitBufferPtr ;
- #ifdef __cplusplus
- extern "C" {
- #endif
- void CSBitBuffer_Initialize(CSBitBufferPtr self);
- void CSBitBuffer_Feed(CSBitBufferPtr self, const UINT8 pBuf[], const UINT32 cbSize, UINT32 *cbValid);
- INT32 CSBitBuffer_IsDecodableFrame(CSBitBufferPtr self, struct CSStreamInfo *info);
- INT32 CSBitBuffer_IsCrcConsistent(CSBitBufferPtr self) ;
- void CSBitBuffer_SetEOF(CSBitBufferPtr self) ;
- #ifdef __cplusplus
- }
- #endif
- #endif
|