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

📄 g722interface.h

📁 音频编解码库的具体实现,分析流程清晰,编译测试通过
💻 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 + -