Java Nexus 10上的Android MediaCodec存在问题

Java Nexus 10上的Android MediaCodec存在问题,java,android,android-mediacodec,Java,Android,Android Mediacodec,我已经编写了一个android应用程序,可以从移动dvr/nvr流式传输h.264帧,该解决方案可以在我测试过的所有设备上运行,Nexus 10除外。它成功地在galaxy设备、Nexus 7和多个摩托罗拉设备上传输视频,没有任何问题。没有抛出异常,并且日志没有显示任何异常,但在调试时 MediaCodec.dequeueInputBuffer(10000); 始终返回-1,因此从不提供有效的输入缓冲区索引以向其发送帧。我假设我正在正确配置MediaCodec,因为它可以在所有其他经过测试的设

我已经编写了一个android应用程序,可以从移动dvr/nvr流式传输h.264帧,该解决方案可以在我测试过的所有设备上运行,Nexus 10除外。它成功地在galaxy设备、Nexus 7和多个摩托罗拉设备上传输视频,没有任何问题。没有抛出异常,并且日志没有显示任何异常,但在调试时

MediaCodec.dequeueInputBuffer(10000);
始终返回-1,因此从不提供有效的输入缓冲区索引以向其发送帧。我假设我正在正确配置MediaCodec,因为它可以在所有其他经过测试的设备上工作。是否有其他人也有类似的问题,如果有,Nexus10是否有已知的修复方法或原因

public void ConfigureDecoder(Surface s, int w, int h)
{
    try
    {
        Decoder = MediaCodec.createDecoderByType("video/avc");
        MediaFormat mFormat = MediaFormat.createVideoFormat("video/avc", w, h);
        Decoder.configure(mFormat, s, null, 0);
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
}

你是在Nexus10上进行编码还是解码?还有:什么版本的Android?能否显示配置设备的代码?logcat有什么奇怪的地方吗?Android的版本是4.3,但它也在运行4.2的Nexus10和另一个运行4.4的Nexus10上进行了测试。logcat中也没有奇怪的显示。代码似乎合理(与CTS测试中的代码非常相似)。如果您从未获得提供输入的机会,那么输入流不会有问题,因此我将重点关注配置。通常情况下,
configure()
如果不喜欢某样东西,就会抱怨。“w”和“h”的典型值是什么?您在
dequeueInputBuffer()
上循环多长时间?某些设备的编解码器可能需要比其他设备更长的启动时间。您的设备上的Grafika演示()有问题吗?