我正在使用 libav 解码 aac 音频,然后使用 libmp3lame 将其转码为 mp3。我知道当我解码 aac 流时,我得到 AV_SAMPLE_FMT_FLTP 输出,而 mp3 编码器需要 AV_SAMPLE_FMT_S16P 中的输入。所以我正在使用 libswresample 的 swr_convert 进行样本格式转换。我知道没有。解码输出中的样本数与 libmp3lame 所需的样本数不同(即 1024)(即 1152)?为此,我也在做缓冲。
但它并没有因为缓冲而崩溃,它甚至没有到达那部分,它在 swr_convert 中崩溃。
如果我使用 gdb 看到堆栈跟踪,我会看到崩溃发生在某处
ff_float_to_int16.next()
可能是什么问题?