📄 g722interface.h
字号:
/************************************************************************
FILE: g722interface.h
G.722 的音频格式:
* 采样率16kHZ,
* 每个sample 16bit;
* 码流16k, 24k 32k;
************************************************************************/
#ifndef __G722INTERFACE_H
#define __G722INTERFACE_H
#ifdef __cplusplus
extern "C" {
#endif
//G722.1 算法的码率 16000, 24000或32000
#define BIT_RATE_16000 16000
#define BIT_RATE_24000 24000
#define BIT_RATE_32000 32000
typedef struct {
int bitrate; // 输入/输出码流, 见宏定义
int CPU_TYPE; // CPU的类型
int bufferSize; // codec需要的内存大小
void * buffer; // 用户分配给codec的内存,需要用户自己释放, 保证至少按4byte对齐
int reserved; // 保留
}G722_CODEC_PARA;
/*
此函数填充两个字段 CPU_TYPE 和 bufferSize;
bufferSize返回codec需要的内存大小
CPU_TYPE 返回系统支持的cpu指令集,供codec里面选择优化代码
用户不要自己修改这两个变量,除非对修改的值很清楚。
--*/
void G722_GetEncoderMemSize(G722_CODEC_PARA * pPara);
void G722_GetDecoderMemSize(G722_CODEC_PARA * pPara);
/*--
初始化codec; 返回codec handle, 后面的编解码需要这个返回的handle;
--*/
void * G722_CreateEncoder(G722_CODEC_PARA * pPara);
void * G722_CreateDecoder(G722_CODEC_PARA * pPara);
/***********************************************************************
编码函数, 失败返回0, 成功返回非0;
handle G722_CreateEncoder的返回值
pSrcFrame pcm音频,16KHZ采样,16bit/sample
要求按4字节对齐
srcSize 必须是640的倍数。如果要编码40ms数据,则这个值是1280;
pDstStream 压缩后的码流数据,用户必须分配足够大的内存存放码流数据,具体大小要根据码流大小压缩长度
要求按4字节对齐
pStreamSize 输入pDstStream 内存大小,输出实际码流大小
***********************************************************************/
int G722_Encode(void *handle, short * pSrcFrame, int srcSize, char * pDstStream, int * pStreamSize);
/***********************************************************************
编码函数, 失败返回0, 成功返回非0;
handle G722_CreateEncoder的返回值
pSrcStream 要解码的码流数据,
要求按4字节对齐
streamSize 输入 pSrcStream 码流数据大小。
pDstFrame 输出pcm音频,16KHZ采样,16bit/sample, 用户必须分配足够大的内存存放音频数据,
要求按4字节对齐
pDstSize 输入pDstFrame内存大小, 输出实际音频数据大小,应该是640的倍数
***********************************************************************/
int G722_Decode(void *handle, char * pSrcStream, int streamSize, short * pDstFrame, int *pDstSize);
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -