CI13LC SDK API手册  2.1.1
本手册用于描述CI13LC SDK各个组件和驱动API
结构体 | 宏定义 | 类型定义 | 枚举 | 函数
mp3coder.h 文件参考
#include "mp3common.h"

浏览源代码.

结构体

struct  _BitStreamInfo
 
struct  _FrameHeader
 
struct  _SideInfoSub
 
struct  _SideInfo
 
struct  CriticalBandInfo
 
struct  _DequantInfo
 
struct  _HuffmanInfo
 
struct  _HuffTabLookup
 
struct  _IMDCTInfo
 
struct  _BlockCount
 
struct  _ScaleFactorInfoSub
 
struct  _ScaleFactorJS
 
struct  _ScaleFactorInfo
 
struct  _SubbandInfo
 

宏定义

#define ASSERT(x)   /* do nothing */
 
#define MAX(a, b)   ((a) > (b) ? (a) : (b))
 
#define MIN(a, b)   ((a) < (b) ? (a) : (b))
 
#define CLIP_2N(y, n)
 
#define SIBYTES_MPEG1_MONO   17
 
#define SIBYTES_MPEG1_STEREO   32
 
#define SIBYTES_MPEG2_MONO   9
 
#define SIBYTES_MPEG2_STEREO   17
 
#define POW43_FRACBITS_LOW   22
 
#define POW43_FRACBITS_HIGH   12
 
#define DQ_FRACBITS_OUT   25 /* number of fraction bits in output of dequant */
 
#define IMDCT_SCALE   2 /* additional scaling (by sqrt(2)) for fast IMDCT36 */
 
#define HUFF_PAIRTABS   32
 
#define BLOCK_SIZE   18
 
#define NBANDS   32
 
#define MAX_REORDER_SAMPS   ((192-126)*3) /* largest critical band for short blocks (see sfBandTable) */
 
#define VBUF_LENGTH   (17 * 2 * NBANDS) /* for double-sized vbuf FIFO */
 
#define SetBitstreamPointer   STATNAME(SetBitstreamPointer)
 
#define GetBits   STATNAME(GetBits)
 
#define CalcBitsUsed   STATNAME(CalcBitsUsed)
 
#define DequantChannel   STATNAME(DequantChannel)
 
#define MidSideProc   STATNAME(MidSideProc)
 
#define IntensityProcMPEG1   STATNAME(IntensityProcMPEG1)
 
#define IntensityProcMPEG2   STATNAME(IntensityProcMPEG2)
 
#define FDCT32   STATNAME(FDCT32)
 
#define ISFMpeg1   STATNAME(ISFMpeg1)
 
#define ISFMpeg2   STATNAME(ISFMpeg2)
 
#define ISFIIP   STATNAME(ISFIIP)
 
#define uniqueIDTab   STATNAME(uniqueIDTab)
 
#define coef32   STATNAME(coef32)
 
#define polyCoef   STATNAME(polyCoef)
 
#define csa   STATNAME(csa)
 
#define imdctWin   STATNAME(imdctWin)
 
#define huffTable_0   STATNAME(huffTable_0)
 
#define huffTable_1   STATNAME(huffTable_1)
 
#define huffTable_2   STATNAME(huffTable_2)
 
#define huffTabOffset   STATNAME(huffTabOffset)
 
#define huffTabLookup   STATNAME(huffTabLookup)
 
#define quadTable   STATNAME(quadTable)
 
#define quadTabOffset   STATNAME(quadTabOffset)
 
#define quadTabMaxBits   STATNAME(quadTabMaxBits)
 

类型定义

typedef struct _BitStreamInfo BitStreamInfo
 
typedef struct _FrameHeader FrameHeader
 
typedef struct _SideInfoSub SideInfoSub
 
typedef struct _SideInfo SideInfo
 
typedef struct _DequantInfo DequantInfo
 
typedef struct _HuffmanInfo HuffmanInfo
 
typedef enum _HuffTabType HuffTabType
 
typedef struct _HuffTabLookup HuffTabLookup
 
typedef struct _IMDCTInfo IMDCTInfo
 
typedef struct _BlockCount BlockCount
 
typedef struct _ScaleFactorInfoSub ScaleFactorInfoSub
 
typedef struct _ScaleFactorJS ScaleFactorJS
 
typedef struct _ScaleFactorInfo ScaleFactorInfo
 
typedef struct _SubbandInfo SubbandInfo
 

枚举

enum  StereoMode {
  Stereo = 0x00,
  Joint = 0x01,
  Dual = 0x02,
  Mono = 0x03
}
 
enum  _HuffTabType {
  noBits,
  oneShot,
  loopNoLinbits,
  loopLinbits,
  quadA,
  quadB,
  invalidTab
}
 

函数

void STATNAME() SetBitstreamPointer (BitStreamInfo *bsi, int nBytes, unsigned char *buf)
 
unsigned int STATNAME() GetBits (BitStreamInfo *bsi, int nBits)
 
int STATNAME() CalcBitsUsed (BitStreamInfo *bsi, unsigned char *startBuf, int startOffset)
 
int STATNAME() DequantChannel (int *sampleBuf, int *workBuf, int *nonZeroBound, FrameHeader *fh, SideInfoSub *sis, ScaleFactorInfoSub *sfis, CriticalBandInfo *cbi)
 
void STATNAME() MidSideProc (int x[MAX_NCHAN][MAX_NSAMP], int nSamps, int mOut[2])
 
void STATNAME() IntensityProcMPEG1 (int x[MAX_NCHAN][MAX_NSAMP], int nSamps, FrameHeader *fh, ScaleFactorInfoSub *sfis, CriticalBandInfo *cbi, int midSideFlag, int mixFlag, int mOut[2])
 
void STATNAME() IntensityProcMPEG2 (int x[MAX_NCHAN][MAX_NSAMP], int nSamps, FrameHeader *fh, ScaleFactorInfoSub *sfis, CriticalBandInfo *cbi, ScaleFactorJS *sfjs, int midSideFlag, int mixFlag, int mOut[2])
 
void STATNAME() FDCT32 (int *x, int *d, int offset, int oddBlock, int gb)
 
const HuffTabLookup STATNAME (huffTabLookup) [32]
 
const int STATNAME (huffTabOffset) [32]
 
const unsigned short STATNAME (huffTable_0) []
 
const unsigned short STATNAME (huffTable_1) []
 
const unsigned short STATNAME (huffTable_2) []
 
const unsigned char STATNAME (quadTable) [64+16]
 
const int STATNAME (quadTabOffset) [2]
 
const int STATNAME (quadTabMaxBits) [2]
 
void PolyphaseMono (short *pcm, int *vbuf, const int *coefBase)
 
void PolyphaseStereo (short *pcm, int *vbuf, const int *coefBase)
 
const int STATNAME (imdctWin) [4][36]
 
const int STATNAME (ISFMpeg1) [2][7]
 
const int STATNAME (ISFMpeg2) [2][2][16]
 
const int STATNAME (ISFIIP) [2][2]
 
const int STATNAME (csa) [8][2]
 
const int STATNAME (coef32) [31]
 
const int STATNAME (polyCoef) [264]
 

结构体说明

◆ _BitStreamInfo

struct _BitStreamInfo
成员变量
unsigned char * bytePtr
int cachedBits
unsigned int iCache
int nBytes

◆ _FrameHeader

struct _FrameHeader
成员变量
int brIdx
int copyFlag
int crc
int CRCWord
int emphasis
int layer
int modeExt
int origFlag
int paddingBit
int privateBit
const SFBandTable * sfBand
StereoMode sMode
int srIdx
MPEGVersion ver

◆ _SideInfoSub

struct _SideInfoSub
成员变量
int blockType
int count1TableSelect
int globalGain
int mixedBlock
int nBigvals
int part23Length
int preFlag
int region0Count
int region1Count
int sfactScale
int sfCompress
int subBlockGain[3]
int tableSelect[3]
int winSwitchFlag

◆ _SideInfo

struct _SideInfo
成员变量
int mainDataBegin
int privateBits
int scfsi[MAX_NCHAN][MAX_SCFBD]
SideInfoSub sis[MAX_NGRAN][MAX_NCHAN]

◆ CriticalBandInfo

struct CriticalBandInfo
成员变量
int cbEndL
int cbEndS[3]
int cbEndSMax
int cbType

◆ _DequantInfo

struct _DequantInfo
成员变量
CriticalBandInfo cbi[MAX_NCHAN]
int workBuf[((192-126) *3)]

◆ _HuffmanInfo

struct _HuffmanInfo
成员变量
int gb[MAX_NCHAN]
int huffDecBuf[MAX_NCHAN][MAX_NSAMP]
int nonZeroBound[MAX_NCHAN]

◆ _HuffTabLookup

struct _HuffTabLookup
成员变量
int linBits
HuffTabType tabType

◆ _IMDCTInfo

struct _IMDCTInfo
成员变量
int gb[MAX_NCHAN]
int numPrevIMDCT[MAX_NCHAN]
int outBuf[MAX_NCHAN][18][32]
int overBuf[MAX_NCHAN][MAX_NSAMP/2]
int prevType[MAX_NCHAN]
int prevWinSwitch[MAX_NCHAN]

◆ _BlockCount

struct _BlockCount
成员变量
int currWinSwitch
int gbIn
int gbOut
int nBlocksLong
int nBlocksPrev
int nBlocksTotal
int prevType
int prevWinSwitch

◆ _ScaleFactorInfoSub

struct _ScaleFactorInfoSub
成员变量
char l[23]
char s[13][3]

◆ _ScaleFactorJS

struct _ScaleFactorJS
成员变量
int intensityScale
int nr[4]
int slen[4]

◆ _ScaleFactorInfo

struct _ScaleFactorInfo

◆ _SubbandInfo

struct _SubbandInfo
成员变量
int vbuf[MAX_NCHAN *(17 *2 *32)]
int vindex

宏定义说明

◆ ASSERT

#define ASSERT (   x)    /* do nothing */

◆ BLOCK_SIZE

#define BLOCK_SIZE   18

◆ CalcBitsUsed

#define CalcBitsUsed   STATNAME(CalcBitsUsed)

◆ CLIP_2N

#define CLIP_2N (   y,
 
)
值:
{ \
int sign = (y) >> 31; \
if (sign != (y) >> (n)) { \
(y) = sign ^ ((1 << (n)) - 1); \
} \
}

◆ coef32

#define coef32   STATNAME(coef32)

◆ csa

#define csa   STATNAME(csa)

◆ DequantChannel

#define DequantChannel   STATNAME(DequantChannel)

◆ DQ_FRACBITS_OUT

#define DQ_FRACBITS_OUT   25 /* number of fraction bits in output of dequant */

◆ FDCT32

#define FDCT32   STATNAME(FDCT32)

◆ GetBits

#define GetBits   STATNAME(GetBits)

◆ HUFF_PAIRTABS

#define HUFF_PAIRTABS   32

◆ huffTable_0

#define huffTable_0   STATNAME(huffTable_0)

◆ huffTable_1

#define huffTable_1   STATNAME(huffTable_1)

◆ huffTable_2

#define huffTable_2   STATNAME(huffTable_2)

◆ huffTabLookup

#define huffTabLookup   STATNAME(huffTabLookup)

◆ huffTabOffset

#define huffTabOffset   STATNAME(huffTabOffset)

◆ IMDCT_SCALE

#define IMDCT_SCALE   2 /* additional scaling (by sqrt(2)) for fast IMDCT36 */

◆ imdctWin

#define imdctWin   STATNAME(imdctWin)

◆ IntensityProcMPEG1

#define IntensityProcMPEG1   STATNAME(IntensityProcMPEG1)

◆ IntensityProcMPEG2

#define IntensityProcMPEG2   STATNAME(IntensityProcMPEG2)

◆ ISFIIP

#define ISFIIP   STATNAME(ISFIIP)

◆ ISFMpeg1

#define ISFMpeg1   STATNAME(ISFMpeg1)

◆ ISFMpeg2

#define ISFMpeg2   STATNAME(ISFMpeg2)

◆ MAX

#define MAX (   a,
 
)    ((a) > (b) ? (a) : (b))

◆ MAX_REORDER_SAMPS

#define MAX_REORDER_SAMPS   ((192-126)*3) /* largest critical band for short blocks (see sfBandTable) */

◆ MidSideProc

#define MidSideProc   STATNAME(MidSideProc)

◆ MIN

#define MIN (   a,
 
)    ((a) < (b) ? (a) : (b))

◆ NBANDS

#define NBANDS   32

◆ polyCoef

#define polyCoef   STATNAME(polyCoef)

◆ POW43_FRACBITS_HIGH

#define POW43_FRACBITS_HIGH   12

◆ POW43_FRACBITS_LOW

#define POW43_FRACBITS_LOW   22

◆ quadTable

#define quadTable   STATNAME(quadTable)

◆ quadTabMaxBits

#define quadTabMaxBits   STATNAME(quadTabMaxBits)

◆ quadTabOffset

#define quadTabOffset   STATNAME(quadTabOffset)

◆ SetBitstreamPointer

#define SetBitstreamPointer   STATNAME(SetBitstreamPointer)

◆ SIBYTES_MPEG1_MONO

#define SIBYTES_MPEG1_MONO   17

◆ SIBYTES_MPEG1_STEREO

#define SIBYTES_MPEG1_STEREO   32

◆ SIBYTES_MPEG2_MONO

#define SIBYTES_MPEG2_MONO   9

◆ SIBYTES_MPEG2_STEREO

#define SIBYTES_MPEG2_STEREO   17

◆ uniqueIDTab

#define uniqueIDTab   STATNAME(uniqueIDTab)

◆ VBUF_LENGTH

#define VBUF_LENGTH   (17 * 2 * NBANDS) /* for double-sized vbuf FIFO */

类型定义说明

◆ BitStreamInfo

typedef struct _BitStreamInfo BitStreamInfo

◆ BlockCount

typedef struct _BlockCount BlockCount

◆ DequantInfo

typedef struct _DequantInfo DequantInfo

◆ FrameHeader

typedef struct _FrameHeader FrameHeader

◆ HuffmanInfo

typedef struct _HuffmanInfo HuffmanInfo

◆ HuffTabLookup

typedef struct _HuffTabLookup HuffTabLookup

◆ HuffTabType

◆ IMDCTInfo

typedef struct _IMDCTInfo IMDCTInfo

◆ ScaleFactorInfo

◆ ScaleFactorInfoSub

◆ ScaleFactorJS

typedef struct _ScaleFactorJS ScaleFactorJS

◆ SideInfo

typedef struct _SideInfo SideInfo

◆ SideInfoSub

typedef struct _SideInfoSub SideInfoSub

◆ SubbandInfo

typedef struct _SubbandInfo SubbandInfo

枚举类型说明

◆ _HuffTabType

枚举值
noBits 
oneShot 
loopNoLinbits 
loopLinbits 
quadA 
quadB 
invalidTab 

◆ StereoMode

枚举值
Stereo 
Joint 
Dual 
Mono 

函数说明

◆ CalcBitsUsed()

int STATNAME() CalcBitsUsed ( BitStreamInfo bsi,
unsigned char *  startBuf,
int  startOffset 
)

◆ DequantChannel()

int STATNAME() DequantChannel ( int *  sampleBuf,
int *  workBuf,
int *  nonZeroBound,
FrameHeader fh,
SideInfoSub sis,
ScaleFactorInfoSub sfis,
CriticalBandInfo cbi 
)

◆ FDCT32()

void STATNAME() FDCT32 ( int *  x,
int *  d,
int  offset,
int  oddBlock,
int  gb 
)

◆ GetBits()

unsigned int STATNAME() GetBits ( BitStreamInfo bsi,
int  nBits 
)

◆ IntensityProcMPEG1()

void STATNAME() IntensityProcMPEG1 ( int  x[MAX_NCHAN][MAX_NSAMP],
int  nSamps,
FrameHeader fh,
ScaleFactorInfoSub sfis,
CriticalBandInfo cbi,
int  midSideFlag,
int  mixFlag,
int  mOut[2] 
)

◆ IntensityProcMPEG2()

void STATNAME() IntensityProcMPEG2 ( int  x[MAX_NCHAN][MAX_NSAMP],
int  nSamps,
FrameHeader fh,
ScaleFactorInfoSub sfis,
CriticalBandInfo cbi,
ScaleFactorJS sfjs,
int  midSideFlag,
int  mixFlag,
int  mOut[2] 
)

◆ MidSideProc()

void STATNAME() MidSideProc ( int  x[MAX_NCHAN][MAX_NSAMP],
int  nSamps,
int  mOut[2] 
)

◆ PolyphaseMono()

void PolyphaseMono ( short *  pcm,
int *  vbuf,
const int *  coefBase 
)

◆ PolyphaseStereo()

void PolyphaseStereo ( short *  pcm,
int *  vbuf,
const int *  coefBase 
)

◆ SetBitstreamPointer()

void STATNAME() SetBitstreamPointer ( BitStreamInfo bsi,
int  nBytes,
unsigned char *  buf 
)

◆ STATNAME() [1/15]

const HuffTabLookup STATNAME ( huffTabLookup  )

◆ STATNAME() [2/15]

const int STATNAME ( huffTabOffset  )

◆ STATNAME() [3/15]

const unsigned short STATNAME ( huffTable_0  )

◆ STATNAME() [4/15]

const unsigned short STATNAME ( huffTable_1  )

◆ STATNAME() [5/15]

const unsigned short STATNAME ( huffTable_2  )

◆ STATNAME() [6/15]

const unsigned char STATNAME ( quadTable  )

◆ STATNAME() [7/15]

const int STATNAME ( quadTabOffset  )

◆ STATNAME() [8/15]

const int STATNAME ( quadTabMaxBits  )

◆ STATNAME() [9/15]

const int STATNAME ( imdctWin  )

◆ STATNAME() [10/15]

const int STATNAME ( ISFMpeg1  )

◆ STATNAME() [11/15]

const int STATNAME ( ISFMpeg2  )

◆ STATNAME() [12/15]

const int STATNAME ( ISFIIP  )

◆ STATNAME() [13/15]

const int STATNAME ( csa  )

◆ STATNAME() [14/15]

const int STATNAME ( coef32  )

◆ STATNAME() [15/15]

const int STATNAME ( polyCoef  )