avcodec_decode_audio4()中的缓冲区错误

avcodec_decode_audio4()中的缓冲区错误,audio,ffmpeg,decoding,Audio,Ffmpeg,Decoding,我已将我的ffmpeg版本升级到最新提交版本,现在我可以看到音频解码功能avcodec\u decode\u audio3已被弃用,当我使用新功能avcodec\u decode\u audio4时,根据其中所需的更改,我得到如下错误: [amrnb@003a5000]获取缓冲区()失败。 我无法找到导致此错误的原因。任何人都有使用此新功能的示例: avcodec\u decode\u audio4((AVCodecContext*avctx,AVFrame*frame,int*got\u fr

我已将我的ffmpeg版本升级到最新提交版本,现在我可以看到音频解码功能
avcodec\u decode\u audio3
已被弃用,当我使用新功能
avcodec\u decode\u audio4
时,根据其中所需的更改,我得到如下错误:

[amrnb@003a5000]获取缓冲区()失败。

我无法找到导致此错误的原因。任何人都有使用此新功能的示例:


avcodec\u decode\u audio4((AVCodecContext*avctx,AVFrame*frame,int*got\u frame\u ptr,AVPacket*avpkt)

检查ffmpeg源代码中的示例。它使用函数
avcodec\u decode\u audio4

谢谢,我使用了相同的示例,只是简单地复制粘贴了其中的代码,len仍然是-22,它返回的错误是get\u buffer()失败。这是什么类型的媒体?你可以用ffmpeg解码它,还是在ffplay中播放?它的amr_nb音频。我已经用以前版本的ffmpeg和audio3功能成功解码。此外,我还尝试使用最新的windows ffmpeg二进制文件,并且我能够解码和播放解码后的音频。只有当我尝试用ffmpeg解码时,才会出现此问题audio4在我的应用程序中用于相同媒体。奇怪的是,
avcodec\u decode\u audio3
调用
avcodec\u decode\u audio4
,请参阅。您确定输入缓冲区大小足够且没有运行不足吗?此外,它在第一次或第二次解码调用时失败,还是在稍后某个时间失败?是的,我也检查过,inbuf对我来说没有问题nbuf[AUDIO_INBUF_SIZE+FF_INPUT_PADDING_SIZE];因此,输入缓冲区是avpkt.SIZE=fread(INBUF,1,AUDIO_INBUF_SIZE,f);因此它应该足够有效。此外,它在第一次解码调用时第一次失败。错误似乎很奇怪。据你所知,这个错误的具体原因是什么?我对AAC文件也有同样的问题。你最终找到解决方案了吗?