版本
初次发布文章时的版本为faac-1.29.9.2
本文所提及的优化方法已经在gitee创建相应工程,此工程中使用的版本为faac-1.30,链接如下
gitee.com/dma/faac-memory-optimization
使用方法
详细使用方法参见例程 frontend\main.c
// 常用PCM都是 int16_t 类型,这里使用 sizeof(int16_t) 申请采样点的内存
channel = 2; // 声道数
hEncoder = faacEncOpen(44100, channel, &inputSamples, &maxOutputBytes);
in_buf16 = malloc(inputSamples * sizeof(int16_t));
out_buf = malloc(maxOutputBytes);
faacEncConfigurationPtr config = faacEncGetCurrentConfiguration(hEncoder);
config->mpegVersion = MPEG4;
config->aacObjectType = LOW;
// config->jointmode = JOINT_NONE;
// config->useLfe = 0;
// config->useTns = 0;
config->bitRate = 64000;
config->bandWidth = 32000;
// config->quantqual = 0;
config->outputFormat = ADTS_STREAM;
config->inputFormat = FAAC_INPUT_16BIT;
// config->pnslevel = 0;
if (!faacEncSetConfiguration(hEncoder, config))
{
fprintf(stderr, "Unsupported output format!\n");