123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- /***************************************************************************\
- *
- * (C) copyright Fraunhofer - IIS (1998)
- * All Rights Reserved
- *
- * filename: bitbuffer_c.h
- * project : MPEG-4 Audio Decoder
- * author : Stefan Gewinner [email protected]
- * contents/description: memory input class with transport format
- *
- * This software and/or program is protected by copyright law and
- * international treaties. Any reproduction or distribution of this
- * software and/or program, or any portion of it, may result in severe
- * civil and criminal penalties, and will be prosecuted to the maximum
- * extent possible under law.
- *
- * $Header: /cvs/root/winamp/aacdec/incs/bitbuffer_c.h,v 1.3 2012/05/08 20:16:49 audiodsp Exp $
- *
- \***************************************************************************/
- #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_InvalidCrcValue = 0xFFFFFFFF, */
- CBitBuffer_MaximumMarkers = 25*4
- /* , CAverageNumber_MaximumSize = 16 */
- };
- 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] ;
- /* CAverageNumber m_ActualBitrate ; */
- 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
|