尽管使用Android中的MediaCodec在屏幕上呈现帧,但outputBuffers返回空指针

时间:2013-09-13 01:21:23

标签: android media bytebuffer encoder mediacodec

我使用MediaCodec类使用此link中给出的代码解码.mp4视频。

我能够在屏幕上获得渲染输出,但是当我尝试访问outputBuffers[outIndex]时,我得到一个空指针错误。我无法弄清楚如何访问帧缓冲区来对其进行一些处理。

1 个答案:

答案 0 :(得分:1)

这是预期的(虽然没有记录)行为。您可以将输出发送到ByteBufferSurface,但不能同时发送。{/ p>

可能会感兴趣的一些其他示例here。如果您解码为SurfaceTexture,则可以将纹理渲染两次,一次渲染到View,一次渲染到pbuffer曲面。您可以使用glReadPixels获取数据并对其进行处理,也可以在GLES着色器中进行处理。

如果提取到ByteBuffer,则必须自己解释数据,这在使用专有输出格式的设备上很难。您将从缓冲区到缓冲区CTS测试中注意到某些设备未被检查,因为格式未知。