gpt4 book ai didi

android - MediaCodec - 将 EOS 缓冲区发送到音频解码器时出现奇怪的错误

转载 作者:行者123 更新时间:2023-12-04 00:32:34 26 4
gpt4 key购买 nike

我正在用另一个文件中的音乐替换我的视频的音轨。所以我修改了标准ExtractDecodeEditEncodeTest代码(来自 bigflake)以便音频 MediaExtractor是从所说的“另一个文件”创建的。当我尝试将 EOS 缓冲区发送到音频解码器时,发生了一件奇怪的事情,但是,在这一行中:
this.audioDecoder.queueInputBuffer(decoderInputBufferIndex, 0, 0, 0, MediaCodec.BUFFER_FLAG_END_OF_STREAM);
这让我获得了 android.media.MediaCodec$CodecException: Error 0xfffffff3 .

当我在 try-catch-finally 循环中捕获它时,它显然是 android.media.MediaCodec.error_neg_13 (代码:-13)。然而,视频仍然看起来很好,但音轨被替换了。

据我搜索,这个错误没有任何内容,甚至在日志中也没有。有谁知道是什么原因造成的以及如何防止它发生?

最佳答案

你得到 android.media.MediaCodec.error_neg_13如果 MediaCodec.BUFFER_FLAG_END_OF_STREAM在包含要处理的数据的缓冲区中发送,而不是在空缓冲区中发送。

我的解决方案是发送 MediaCodec.BUFFER_FLAG_END_OF_STREAM在不包含任何数据的单独缓冲区中。

在我研究这个错误的过程中,我没有找到对 android.media.MediaCodec.error_neg_13 的任何引用。 ,甚至在 libstagefright 源代码中也没有,所以我不确定这是否是唯一的原因。

关于android - MediaCodec - 将 EOS 缓冲区发送到音频解码器时出现奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48919712/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com