diff options
author | Jean-Francois Mauguit <jfmauguit@mac.com> | 2024-09-24 09:03:25 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-24 09:03:25 -0400 |
commit | bab614c421ed7ae329d26bf028c4a3b1d2450f5a (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/aacdec/incs/bitbuffer_c.h | |
parent | 4bde6044fddf053f31795b9eaccdd2a5a527d21f (diff) | |
parent | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (diff) | |
download | winamp-bab614c421ed7ae329d26bf028c4a3b1d2450f5a.tar.gz |
Merge pull request #5 from WinampDesktop/community
Merge to main
Diffstat (limited to 'Src/aacdec/incs/bitbuffer_c.h')
-rw-r--r-- | Src/aacdec/incs/bitbuffer_c.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/Src/aacdec/incs/bitbuffer_c.h b/Src/aacdec/incs/bitbuffer_c.h new file mode 100644 index 00000000..bab4ca27 --- /dev/null +++ b/Src/aacdec/incs/bitbuffer_c.h @@ -0,0 +1,96 @@ +/***************************************************************************\ + * + * (C) copyright Fraunhofer - IIS (1998) + * All Rights Reserved + * + * filename: bitbuffer_c.h + * project : MPEG-4 Audio Decoder + * author : Stefan Gewinner gew@iis.fhg.de + * 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 |