CI130X SDK API手册  2.2.0
本手册用于描述CI130X SDK各个组件和驱动API
结构体 | 宏定义 | 类型定义 | 枚举 | 函数 | 变量
aaccommon.h 文件参考
#include "aacdec.h"
#include "aacstatname.h"

浏览源代码.

结构体

struct  _AACDecInfo
 

宏定义

#define SYNCWORDH   0xff
 
#define SYNCWORDL   0xf0
 
#define MAX_NCHANS_ELEM   2 /* max number of channels in any single bitstream element (SCE,CPE,CCE,LFE) */
 
#define ADTS_HEADER_BYTES   7
 
#define NUM_SAMPLE_RATES   12
 
#define NUM_DEF_CHAN_MAPS   8
 
#define NUM_ELEMENTS   8
 
#define MAX_NUM_PCE_ADIF   16
 
#define MAX_WIN_GROUPS   8
 
#define MAX_SFB_SHORT   15
 
#define MAX_SF_BANDS   (MAX_SFB_SHORT*MAX_WIN_GROUPS) /* worst case = 15 sfb's * 8 windows for short block */
 
#define MAX_MS_MASK_BYTES   ((MAX_SF_BANDS + 7) >> 3)
 
#define MAX_PRED_SFB   41
 
#define MAX_TNS_FILTERS   8
 
#define MAX_TNS_COEFS   60
 
#define MAX_TNS_ORDER   20
 
#define MAX_PULSES   4
 
#define MAX_GAIN_BANDS   3
 
#define MAX_GAIN_WIN   8
 
#define MAX_GAIN_ADJUST   7
 
#define NSAMPS_LONG   1024
 
#define NSAMPS_SHORT   128
 
#define NUM_SYN_ID_BITS   3
 
#define NUM_INST_TAG_BITS   4
 
#define EXT_SBR_DATA   0x0d
 
#define EXT_SBR_DATA_CRC   0x0e
 
#define IS_ADIF(p)   ((p)[0] == 'A' && (p)[1] == 'D' && (p)[2] == 'I' && (p)[3] == 'F')
 
#define GET_ELE_ID(p)   ((AACElementID)(*(p) >> (8-NUM_SYN_ID_BITS)))
 

类型定义

typedef struct _AACDecInfo AACDecInfo
 

枚举

enum  {
  AAC_FF_Unknown = 0,
  AAC_FF_ADTS = 1,
  AAC_FF_ADIF = 2,
  AAC_FF_RAW = 3
}
 
enum  {
  AAC_ID_INVALID = -1,
  AAC_ID_SCE = 0,
  AAC_ID_CPE = 1,
  AAC_ID_CCE = 2,
  AAC_ID_LFE = 3,
  AAC_ID_DSE = 4,
  AAC_ID_PCE = 5,
  AAC_ID_FIL = 6,
  AAC_ID_END = 7
}
 

函数

AACDecInforaac_AllocateBuffers (void)
 
void raac_FreeBuffers (AACDecInfo *aacDecInfo)
 
void raac_ClearBuffers (AACDecInfo *aacDecInfo)
 
void raac_ClearBuffer (void *buf, int nBytes)
 
int raac_UnpackADTSHeader (AACDecInfo *aacDecInfo, unsigned char **buf, int *bitOffset, int *bitsAvail)
 
int raac_GetADTSChannelMapping (AACDecInfo *aacDecInfo, unsigned char *buf, int bitOffset, int bitsAvail)
 
int raac_UnpackADIFHeader (AACDecInfo *aacDecInfo, unsigned char **buf, int *bitOffset, int *bitsAvail)
 
int raac_SetRawBlockParams (AACDecInfo *aacDecInfo, int copyLast, int nChans, int sampRate, int profile)
 
int raac_PrepareRawBlock (AACDecInfo *aacDecInfo)
 
int raac_FlushCodec (AACDecInfo *aacDecInfo)
 
int raac_DecodeNextElement (AACDecInfo *aacDecInfo, unsigned char **buf, int *bitOffset, int *bitsAvail)
 
int raac_DecodeNoiselessData (AACDecInfo *aacDecInfo, unsigned char **buf, int *bitOffset, int *bitsAvail, int ch)
 
int raac_Dequantize (AACDecInfo *aacDecInfo, int ch)
 
int raac_StereoProcess (AACDecInfo *aacDecInfo)
 
int raac_DeinterleaveShortBlocks (AACDecInfo *aacDecInfo, int ch)
 
int raac_PNS (AACDecInfo *aacDecInfo, int ch)
 
int raac_TNSFilter (AACDecInfo *aacDecInfo, int ch)
 
int raac_IMDCT (AACDecInfo *aacDecInfo, int ch, int chBase, short *outbuf)
 
int raac_InitSBR (AACDecInfo *aacDecInfo)
 
void raac_FreeSBR (AACDecInfo *aacDecInfo)
 
int raac_DecodeSBRBitstream (AACDecInfo *aacDecInfo, int chBase)
 
int raac_DecodeSBRData (AACDecInfo *aacDecInfo, int chBase, short *outbuf)
 
int raac_FlushCodecSBR (AACDecInfo *aacDecInfo)
 

变量

const int raac_sampRateTab [12]
 
const int raac_predSFBMax [12]
 
const int raac_channelMapTab [8]
 
const int raac_elementNumChans [8]
 
const unsigned char raac_sfBandTotalShort [12]
 
const unsigned char raac_sfBandTotalLong [12]
 
const int raac_sfBandTabShortOffset [12]
 
const int raac_sfBandTabShortTabSize [12]
 
const short raac_sfBandTabShort [76]
 
const int raac_sfBandTabLongOffset [12]
 
const int raac_sfBandTabLongTabSize [12]
 
const short raac_sfBandTabLong [325]
 
const int raac_tnsMaxBandsShortOffset [3]
 
const unsigned char raac_tnsMaxBandsShort [2 *12]
 
const unsigned char raac_tnsMaxOrderShort [3]
 
const int raac_tnsMaxBandsLongOffset [3]
 
const unsigned char raac_tnsMaxBandsLong [2 *12]
 
const unsigned char raac_tnsMaxOrderLong [3]
 

结构体说明

◆ _AACDecInfo

struct _AACDecInfo
成员变量
int adtsBlocksLeft
int bitRate
int currBlockID
int currInstTag
unsigned char * fillBuf
int fillCount
int fillExtType
int format
int frameCount
int nChans
int pnsUsed
int prevBlockID
int profile
void * psInfoBase
void * psInfoSBR
void * rawSampleBuf[2]
int rawSampleBytes
int rawSampleFBits
int sampRate
int sbDeinterleaveReqd[2]
int sbrEnabled
int tnsUsed

宏定义说明

◆ ADTS_HEADER_BYTES

#define ADTS_HEADER_BYTES   7

◆ EXT_SBR_DATA

#define EXT_SBR_DATA   0x0d

◆ EXT_SBR_DATA_CRC

#define EXT_SBR_DATA_CRC   0x0e

◆ GET_ELE_ID

#define GET_ELE_ID (   p)    ((AACElementID)(*(p) >> (8-NUM_SYN_ID_BITS)))

◆ IS_ADIF

#define IS_ADIF (   p)    ((p)[0] == 'A' && (p)[1] == 'D' && (p)[2] == 'I' && (p)[3] == 'F')

◆ MAX_GAIN_ADJUST

#define MAX_GAIN_ADJUST   7

◆ MAX_GAIN_BANDS

#define MAX_GAIN_BANDS   3

◆ MAX_GAIN_WIN

#define MAX_GAIN_WIN   8

◆ MAX_MS_MASK_BYTES

#define MAX_MS_MASK_BYTES   ((MAX_SF_BANDS + 7) >> 3)

◆ MAX_NCHANS_ELEM

#define MAX_NCHANS_ELEM   2 /* max number of channels in any single bitstream element (SCE,CPE,CCE,LFE) */

◆ MAX_NUM_PCE_ADIF

#define MAX_NUM_PCE_ADIF   16

◆ MAX_PRED_SFB

#define MAX_PRED_SFB   41

◆ MAX_PULSES

#define MAX_PULSES   4

◆ MAX_SF_BANDS

#define MAX_SF_BANDS   (MAX_SFB_SHORT*MAX_WIN_GROUPS) /* worst case = 15 sfb's * 8 windows for short block */

◆ MAX_SFB_SHORT

#define MAX_SFB_SHORT   15

◆ MAX_TNS_COEFS

#define MAX_TNS_COEFS   60

◆ MAX_TNS_FILTERS

#define MAX_TNS_FILTERS   8

◆ MAX_TNS_ORDER

#define MAX_TNS_ORDER   20

◆ MAX_WIN_GROUPS

#define MAX_WIN_GROUPS   8

◆ NSAMPS_LONG

#define NSAMPS_LONG   1024

◆ NSAMPS_SHORT

#define NSAMPS_SHORT   128

◆ NUM_DEF_CHAN_MAPS

#define NUM_DEF_CHAN_MAPS   8

◆ NUM_ELEMENTS

#define NUM_ELEMENTS   8

◆ NUM_INST_TAG_BITS

#define NUM_INST_TAG_BITS   4

◆ NUM_SAMPLE_RATES

#define NUM_SAMPLE_RATES   12

◆ NUM_SYN_ID_BITS

#define NUM_SYN_ID_BITS   3

◆ SYNCWORDH

#define SYNCWORDH   0xff

◆ SYNCWORDL

#define SYNCWORDL   0xf0

类型定义说明

◆ AACDecInfo

typedef struct _AACDecInfo AACDecInfo

枚举类型说明

◆ anonymous enum

anonymous enum
枚举值
AAC_FF_Unknown 
AAC_FF_ADTS 
AAC_FF_ADIF 
AAC_FF_RAW 

◆ anonymous enum

anonymous enum
枚举值
AAC_ID_INVALID 
AAC_ID_SCE 
AAC_ID_CPE 
AAC_ID_CCE 
AAC_ID_LFE 
AAC_ID_DSE 
AAC_ID_PCE 
AAC_ID_FIL 
AAC_ID_END 

函数说明

◆ raac_AllocateBuffers()

AACDecInfo* raac_AllocateBuffers ( void  )

◆ raac_ClearBuffer()

void raac_ClearBuffer ( void *  buf,
int  nBytes 
)

◆ raac_ClearBuffers()

void raac_ClearBuffers ( AACDecInfo aacDecInfo)

◆ raac_DecodeNextElement()

int raac_DecodeNextElement ( AACDecInfo aacDecInfo,
unsigned char **  buf,
int *  bitOffset,
int *  bitsAvail 
)

◆ raac_DecodeNoiselessData()

int raac_DecodeNoiselessData ( AACDecInfo aacDecInfo,
unsigned char **  buf,
int *  bitOffset,
int *  bitsAvail,
int  ch 
)

◆ raac_DecodeSBRBitstream()

int raac_DecodeSBRBitstream ( AACDecInfo aacDecInfo,
int  chBase 
)

◆ raac_DecodeSBRData()

int raac_DecodeSBRData ( AACDecInfo aacDecInfo,
int  chBase,
short *  outbuf 
)

◆ raac_DeinterleaveShortBlocks()

int raac_DeinterleaveShortBlocks ( AACDecInfo aacDecInfo,
int  ch 
)

◆ raac_Dequantize()

int raac_Dequantize ( AACDecInfo aacDecInfo,
int  ch 
)

◆ raac_FlushCodec()

int raac_FlushCodec ( AACDecInfo aacDecInfo)

◆ raac_FlushCodecSBR()

int raac_FlushCodecSBR ( AACDecInfo aacDecInfo)

◆ raac_FreeBuffers()

void raac_FreeBuffers ( AACDecInfo aacDecInfo)

◆ raac_FreeSBR()

void raac_FreeSBR ( AACDecInfo aacDecInfo)

◆ raac_GetADTSChannelMapping()

int raac_GetADTSChannelMapping ( AACDecInfo aacDecInfo,
unsigned char *  buf,
int  bitOffset,
int  bitsAvail 
)

◆ raac_IMDCT()

int raac_IMDCT ( AACDecInfo aacDecInfo,
int  ch,
int  chBase,
short *  outbuf 
)

◆ raac_InitSBR()

int raac_InitSBR ( AACDecInfo aacDecInfo)

◆ raac_PNS()

int raac_PNS ( AACDecInfo aacDecInfo,
int  ch 
)

◆ raac_PrepareRawBlock()

int raac_PrepareRawBlock ( AACDecInfo aacDecInfo)

◆ raac_SetRawBlockParams()

int raac_SetRawBlockParams ( AACDecInfo aacDecInfo,
int  copyLast,
int  nChans,
int  sampRate,
int  profile 
)

◆ raac_StereoProcess()

int raac_StereoProcess ( AACDecInfo aacDecInfo)

◆ raac_TNSFilter()

int raac_TNSFilter ( AACDecInfo aacDecInfo,
int  ch 
)

◆ raac_UnpackADIFHeader()

int raac_UnpackADIFHeader ( AACDecInfo aacDecInfo,
unsigned char **  buf,
int *  bitOffset,
int *  bitsAvail 
)

◆ raac_UnpackADTSHeader()

int raac_UnpackADTSHeader ( AACDecInfo aacDecInfo,
unsigned char **  buf,
int *  bitOffset,
int *  bitsAvail 
)

变量说明

◆ raac_channelMapTab

const int raac_channelMapTab[8]

◆ raac_elementNumChans

const int raac_elementNumChans[8]

◆ raac_predSFBMax

const int raac_predSFBMax[12]

◆ raac_sampRateTab

const int raac_sampRateTab[12]

◆ raac_sfBandTabLong

const short raac_sfBandTabLong[325]

◆ raac_sfBandTabLongOffset

const int raac_sfBandTabLongOffset[12]

◆ raac_sfBandTabLongTabSize

const int raac_sfBandTabLongTabSize[12]

◆ raac_sfBandTabShort

const short raac_sfBandTabShort[76]

◆ raac_sfBandTabShortOffset

const int raac_sfBandTabShortOffset[12]

◆ raac_sfBandTabShortTabSize

const int raac_sfBandTabShortTabSize[12]

◆ raac_sfBandTotalLong

const unsigned char raac_sfBandTotalLong[12]

◆ raac_sfBandTotalShort

const unsigned char raac_sfBandTotalShort[12]

◆ raac_tnsMaxBandsLong

const unsigned char raac_tnsMaxBandsLong[2 *12]

◆ raac_tnsMaxBandsLongOffset

const int raac_tnsMaxBandsLongOffset[3]

◆ raac_tnsMaxBandsShort

const unsigned char raac_tnsMaxBandsShort[2 *12]

◆ raac_tnsMaxBandsShortOffset

const int raac_tnsMaxBandsShortOffset[3]

◆ raac_tnsMaxOrderLong

const unsigned char raac_tnsMaxOrderLong[3]

◆ raac_tnsMaxOrderShort

const unsigned char raac_tnsMaxOrderShort[3]