FAAC源码阅读(3)——FAAC的接口

1、打开创建编码器

faacEncHandle FAACAPI faacEncOpen
(
unsigned long sampleRate,
unsigned int numChannels,
unsigned long *inputSamples,
unsigned long *maxOutputBytes
);

功能 :打开并初始化一个编码器
sampleRate:采样率
numChannels:声道的数量
inputSamples:输入的样本数
maxOutputBytes:最大的输出字节数

2、关闭编码器
void FAACAPI faacEncClose
(
faacEncHandle hEncoder
);
功能:关闭编码器

3、返回编码器当前的配置信息
faacEncConfigurationPtr FAACAPI
faacEncGetCurrentConfiguration
(
faacEncHandle hEncoder
);
功能:返回配置信息

4、设置编码器的配置信息
int FAACAPI faacEncSetConfiguration
(
faacDecHandle hDecoder,
faacEncConfigurationPtr config
);
功能:设置编码器的配置

5、编码
int FAACAPI faacEncEncode
(
faacEncHandle hEncoder,
short *inputBuffer,
unsigned int samplesInput,
unsigned char *outputBuffer,
unsigned int bufferSize
);
功能:编码一帧数据
hEncoder:编码器句柄
inputBuffer:待编码数据
samplesInput:输入的样本数
outputBuffer:输出缓存区
返回值:负数表示出错、正数表示编码后的数据长度

6、编码器的配置信息结构体
typedef struct faacEncConfiguration
{
unsigned int mpegVersion; //——MPEG的版本
unsigned int aacObjectType; //——AAC对象类型,有MAIN、LOW、LTP
unsigned int allowMidside; //——设置为1,表示允许中/侧编码
unsigned int useLfe;//——设置为1表示支持LFE频道,现在这个标识已经不再被支持了
unsigned int useTns;//——是否使用TNS
unsigned long bitRate;//——比特率
unsigned int bandWidth;//——带通宽度(Hz)
}








你可能感兴趣的:(FAAC源码阅读(3)——FAAC的接口)