⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tccxxx_aacdec.h

📁 自己在wince的环境下做的一移动数字电视驱动
💻 H
字号:
/************************************************************************************** * EAAC+ decoder * * aacdec.h - public C API for AAC decoder **************************************************************************************/#ifndef _AACDEC_H#define _AACDEC_H//#define ENABLE_FILE_PLAY // WINCE NOT USED#ifdef ENABLE_FILE_PLAY//#include "selfifc.h"#endif#ifdef __cplusplusextern "C" {#endif#ifndef NULL#define NULL    0#endif/* according to spec (13818-7 section 8.2.2, 14496-3 section 4.5.3) * max size of input buffer =  *    6144 bits =  768 bytes per SCE or CCE-I *   12288 bits = 1536 bytes per CPE *       0 bits =    0 bytes per CCE-D (uses bits from the SCE/CPE/CCE-I it is coupled to) */#ifndef AAC_MAX_NCHANS				/* if max channels isn't set in makefile, */#define AAC_MAX_NCHANS		2		/* set to default max number of channels  */#endif#define AAC_MAX_NSAMPS		1024#define AAC_MAINBUF_SIZE	(768 * AAC_MAX_NCHANS)#define	AAC_SUPPORT_LD#define AAC_NUM_PROFILES	3#define AAC_PROFILE_MP		0#define AAC_PROFILE_LC		1#define AAC_PROFILE_SSR		2#define AAC_PROFILE_LD		21#define AAC_PROFILE_LTP     3	// V207#define AAC_TRANSFORM_LENGTH_1024#define AAC_TRANSFORM_LENGTH_960enum {	ERR_AAC_NONE                          =   0,	ERR_AAC_INDATA_UNDERFLOW              =  -1,	ERR_AAC_NULL_POINTER                  =  -2,	ERR_AAC_INVALID_ADTS_HEADER           =  -3,	ERR_AAC_INVALID_ADIF_HEADER           =  -4,	ERR_AAC_INVALID_FRAME                 =  -5,	ERR_AAC_MPEG4_UNSUPPORTED             =  -6,	ERR_AAC_CHANNEL_MAP                   =  -7,	ERR_AAC_SYNTAX_ELEMENT                =  -8,	ERR_AAC_DEQUANT                       =  -9,	ERR_AAC_STEREO_PROCESS                = -10,	ERR_AAC_PNS                           = -11,	ERR_AAC_SHORT_BLOCK_DEINT             = -12,	ERR_AAC_TNS                           = -13,	ERR_AAC_IMDCT                         = -14,	ERR_AAC_NCHANS_TOO_HIGH               = -15,	ERR_AAC_SBR_INIT                      = -16,	ERR_AAC_SBR_BITSTREAM                 = -17,	ERR_AAC_SBR_DATA                      = -18,	ERR_AAC_SBR_PCM_FORMAT                = -19,	ERR_AAC_SBR_NCHANS_TOO_HIGH           = -20,	ERR_AAC_SBR_SINGLERATE_UNSUPPORTED    = -21,	ERR_AAC_RAWBLOCK_PARAMS               = -22,	ERR_AAC_PS_INIT                      = -23,	ERR_AAC_SECTION_READ                 = -24,		ERR_AAC_HUFFMAN_SPEC				 = -25,	//JR-KIM 2007.10.16, (Added)		ERR_AAC_CANNOT_DECODE_THIS_PROFILE   = -26,	// V207		ERR_UNKNOWN               = -9999};typedef struct _AACFrameInfo {	int bitRate;	int nChans;	int sampRateCore;	int sampRateOut;	int bitsPerSample;	int outputSamps;			int profile;	int tnsUsed;	int pnsUsed;	int format;				//GYkim 2007.07.10	int total_play_time;	//GYkim 2007.07.12	int atom_meta_ofst;		//GYkim 2007.07.12	int	file_size;			//GYkim 2007.07.12		int nDSE_data_count;	//GYkim 2007.09.10		unsigned char	*pDSE_data_buff;//GYkim 2007.09.10		int TransformLength;		//JR-KIM 2007.10.23	int nDSE_curr_instTag;	//JR-KIM 2007.11.27} AACFrameInfo;/* AAC file format */typedef void *HAACDecoder;#if 0 // WINCE NOT USED//NEW_VER_START  #define AAC_MAX_PCM_LENGTH 1024#define SEEK_SET 0 /* start of stream (see fseek) */#define SEEK_CUR 1 /* current position in stream (see fseek) */#define SEEK_END 2 /* end of stream (see fseek) */#define FILE_CHUNK_NUM  10#define MP4_LIB// New Structures and defines.#define READBUF_SIZE	(2 * AAC_MAINBUF_SIZE * AAC_MAX_NCHANS)	/* pick something big enough to hold a bunch of frames */enum {	AAC_FF_Unknown = 0,		/* should be 0 on init */	AAC_FF_ADTS = 1,	AAC_FF_ADIF = 2,	AAC_FF_MP4 = 3,//GYkim 2007.07.10	AAC_FF_RAW =  4};#define		PCM_BUFF_NUM	1#define		STCO_BFSZ	10*1024#define		MAX_ADTS_SCAN_NUM 512#define		TEST_ADTS_SCAN_NUM 512#ifdef ENABLE_FILE_PLAYunsigned int  STCO_buffer[STCO_BFSZ];extern unsigned int *gEAACp_stco_buffer;extern unsigned int gEAACp_stco_buffer_sz;#endif#else#define		PCM_BUFF_NUM	1#endif typedef struct _CodecOpen_data {	HAACDecoder		hAACDecoder;	AACFrameInfo	*haacFrameInfo;	void			*inFile;#ifdef ENABLE_FILE_PLAY		SFWrapper		*hMP4FF_transport;#endif		int				nFrameCount;	unsigned char	*readBuf;	unsigned char	*readPtr;	int				bytesLeft;	unsigned long   id3tag_size_offst;//JR-KIM 2007.10.16, (Added)	unsigned long   avg_length_frame; //JR-KIM 2007.10.16, (Added)} CodecOpenData;#if 0 // WINCE NOT USEDtypedef struct{		HAACDecoder 	*hAACDecoder;	CodecOpenData	stCodecOpendata;#ifdef ENABLE_FILE_PLAY		SFWrapper		MP4FF_transport;#endif		AACFrameInfo 	aacFrameInfo;	int				bytesLeft;	unsigned char 	*readPtr;	int				eofReached;		char 			pcEncodedData[READBUF_SIZE];	short 			psLeft[2048*PCM_BUFF_NUM+1024]; 	short 			psRight[2048*PCM_BUFF_NUM+1024];	//BufferState 	*pOutput; 	void			*pOutput;	int				buffer_ptr[2];	unsigned short 	usValid;	unsigned int 	usSampleRate;	unsigned char 	ucChannels;	unsigned char 	ucIsVBR;	unsigned long 	ulFirstFrame;	unsigned long 	ulLength;	unsigned long 	ulTimeLength;	unsigned long	ulBitRate;	unsigned long 	ulTimePos;	} tAAC;#endif/* public C API */HAACDecoder EAACPlus_Get_Instance(void);void AACFreeDecoder(HAACDecoder hAACDecoder);int AACDecode_parsing(HAACDecoder hAACDecoder, unsigned char **inbuf, int *bytesLeft);int AACDecode(HAACDecoder hAACDecoder, unsigned char **inbuf, int *bytesLeft, short *ch_L, short *ch_R);int AACFindSyncWord(unsigned char *buf, int nBytes);void AACGetLastFrameInfo(HAACDecoder hAACDecoder, AACFrameInfo *aacFrameInfo);int AACSetRawBlockParams(HAACDecoder hAACDecoder, int copyLast, AACFrameInfo *aacFrameInfo);int AACFlushCodec(HAACDecoder hAACDecoder);int EAACPlusCodecSeek(HAACDecoder hAACDecoder, unsigned int frm_cnt); //JR-KIM 2007.10.16, (Added)unsigned int EAACPlus_Get_Instance_Size(void);HAACDecoder EAACPlus_Create(void *instance);int EAACPlusCodecSetTrasformLength(HAACDecoder hAACDecoder, AACFrameInfo *aacFrameInfo); //JR-KIM 2007.11.08, (Added)#define EAACPlusCodecGetInstance EAACPlus_Get_Instance#define EAACPlusCodecDecode AACDecode#define EAACPlusCodecParsing AACDecode_parsing#define EAACPlusCodecSetRawBlockParams AACSetRawBlockParams#define EAACPlusCodecGetLastFrameInfo AACGetLastFrameInfo#ifdef __cplusplus}#endif#endif	/* _AACDEC_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -