Android解码器dequeueOutputBuffer返回-1

时间:2015-06-24 12:57:35

标签: android mediacodec decoder exoplayer

我尝试在我的设备上运行ExoPlayer演示应用,但我遇到了这个问题:

outputIndex = codec.dequeueOutputBuffer(outputBufferInfo, 0);

始终返回-1。

我在stackoverflow上查看了所有问题和答案,但没有什么可以帮助我。 我在MediaFormat中的csd-0和csd-1缓冲区中设置了sps和pps头文件(我尝试使用启动代码而没有),将其设置在一个缓冲区csd-0中,使用MediaCodec.BUFFER_FLAG_CODEC_CONFIG调用queueInputBuffer,将超时更改为10000甚至到-1。一切都在其他设备上运行,但不是我需要的地方。解码器 - OMX.amlogic.avc.decoder.awesome

修改 如果我将超时设置为-1,那么没有任何反应,我等待dequeueOutputBuffer,但是logcat显示:

Warning message AMessage(what = 'omx ', target = 5) = {
int32_t type = 0
void *node = 0x51
int32_t event = 2130706433
int32_t data1 = 0
int32_t data2 = 0
} unhandled in root state.

编辑2:我发现,amlogic解码器的输出缓冲区大小小于输入。但在视频总是显示的其他设备上,情况正好相反:输出缓冲区大小更大。这很重要吗?

也许有人有同样的问题?是编解码器规范吗?我还需要尝试什么?

0 个答案:

没有答案