1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /***************************************************************************\
- *
- * (C) copyright Fraunhofer - IIS (2000)
- * All Rights Reserved
- *
- * $Header: /cvs/root/winamp/aacdec/incs/mp4dec_helpers/bitstream_c.h,v 1.3 2012/05/08 20:16:50 audiodsp Exp $
- * project : MPEG-4 Audio Decoder
- * contents/description: bitstream module interface
- *
- * 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.
- *
- \***************************************************************************/
- #ifndef __BITSTREAMC_H__
- #define __BITSTREAMC_H__
- #include "mp4dec_helpers/machine.h"
- /* CRC Markers for SetPositionMarker(). */
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef enum CSBitStream_MarkerPosition
- {
- CSBitStream_ChannelElementStart,
- CSBitStream_ChannelElementStop,
- CSBitStream_AncillaryElementStart,
- CSBitStream_AncillaryElementStop,
- CSBitStream_SecondIndividualChannelStart,
- CSBitStream_CurrentPosition
- } CSBitStream_MarkerPosition;
- typedef enum {
- NO_EPCONF = -1,
- EPCONF0 = 0,
- EPCONF1 = 1,
- EPCONF2 = 2,
- EPCONF3 = 3
- } __epconf_types;
- typedef struct CSBitStream
- {
- void (*ByteAlign) (struct CSBitStream *self);
- void (*PushBack) (struct CSBitStream *self, INT32 n);
- INT32 (*Get) (struct CSBitStream *self, INT32 elemID, INT32 n);
- void (*SetPositionMarker) (struct CSBitStream *self, INT32 id);
- void (*SetCRCPositionMarker) (struct CSBitStream *self, CSBitStream_MarkerPosition position) ;
-
- INT32 (*GetBitCount) (struct CSBitStream *self);
- INT32 (*GetValidBits) (struct CSBitStream *self);
- INT32 (*GetValidBitsEp1) (struct CSBitStream *self, INT32 err_sens_class);
- UINT8* (*GetDataPointer) (struct CSBitStream *self);
- UINT32 m_BitsInCache;
- UINT32 m_CacheWord;
- INT32 m_erFlag;
- } CSBitStream, *CSBitStreamPtr;
- INT32 __getBits (CSBitStreamPtr self, INT32 elemID, INT32 nBits);
- void __pushBack (CSBitStreamPtr self, INT32 nBits);
- void __byteAlign (CSBitStreamPtr self);
- void __setPositionMarker (CSBitStreamPtr self, INT32 id);
- void __setCRCPositionMarker (CSBitStreamPtr self, CSBitStream_MarkerPosition position) ;
- INT32 __getBitCount (CSBitStreamPtr self);
- INT32 __getValidBits (CSBitStreamPtr self);
- INT32 __getValidBits_ep1 (CSBitStreamPtr self, INT32 err_sens_class);
- UINT8* __getDataPointer (CSBitStreamPtr self);
- #ifdef __cplusplus
- }
- #endif
- #endif
|