android - ffmpeg - avcodec_decode_audio3 总是返回 0,在 android 上使用 aac 解码

标签 android ffmpeg aac libavcodec decoder

我正在为android编写一个基于ffmpeg的音频解码器,我必须解码aac音频,但由于某种原因,它总是返回解码的0字节。

看起来我通过了一切权利。谁能告诉我在我的情况下出了什么问题。我从 ffplay.c 复制了代码。
avcodec_decode_audio3 函数总是返回零的原因是什么?

这是来自 ffplay.c 的代码:

AVPacket *pkt_temp = &is->audio_pkt_temp;
    AVPacket *pkt = &is->audio_pkt;
    AVCodecContext *dec= is->audio_st->codec;
    int n, len1, data_size;
    double pts;

          data_size = sizeof(is->audio_buf1);
        len1 = avcodec_decode_audio3(dec, (int16_t *)is->audio_buf1, &data_size, pkt_temp);
        if (len1 < 0) {
            pkt_temp->size = 0;
            break;
        } 

       if (data_size <= 0){
                   //This block always gets executed.
            continue;
    }

最佳答案

我能够解决我的问题,而不是使用上面的代码。但是我完全重写了我的音频代码,它没有任何线程或等待机制。我怀疑问题不在于上面的代码,而在于我将数据传递给函数的方式。

关于android - ffmpeg - avcodec_decode_audio3 总是返回 0,在 android 上使用 aac 解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5356870/

相关文章:

FFmpeg,如何将封面艺术(图像)嵌入到 .m4a

php - 来自 Web 服务器的响应主体的值为 "<body>&lt;script language="javaScript">window.parent.document.cookie ="Authorization=;path=/";

Android 库项目 libs 依赖项

android - 将 RAW AAC 打包到 m4a 容器中?

macos - Chrome 需要 quicktime,但 OS X 说它是内置的。如何在 chrome 中播放 quicktime 电影?

php - 在id3标签ffmpeg php中获取几个字段

java - ImageView隐藏父级的圆角

java - 在 ListView 中显示在线目录中的文件 - Android

FFmpeg幻灯片+音频+水印+保持纵横比

ffmpeg - 使用 FFMPEG 将视频转换为 mpg 格式