aboutsummaryrefslogtreecommitdiff
path: root/Src/aacdec/incs/bitbuffer_c.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/aacdec/incs/bitbuffer_c.h')
-rw-r--r--Src/aacdec/incs/bitbuffer_c.h96
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