我使用MediaCodec
类使用此link中给出的代码解码.mp4视频。
我能够在屏幕上获得渲染输出,但是当我尝试访问outputBuffers[outIndex]
时,我得到一个空指针错误。我无法弄清楚如何访问帧缓冲区来对其进行一些处理。
答案 0 :(得分:1)
这是预期的(虽然没有记录)行为。您可以将输出发送到ByteBuffer
或Surface
,但不能同时发送。{/ p>
可能会感兴趣的一些其他示例here。如果您解码为SurfaceTexture
,则可以将纹理渲染两次,一次渲染到View
,一次渲染到pbuffer曲面。您可以使用glReadPixels
获取数据并对其进行处理,也可以在GLES着色器中进行处理。
如果提取到ByteBuffer
,则必须自己解释数据,这在使用专有输出格式的设备上很难。您将从缓冲区到缓冲区CTS测试中注意到某些设备未被检查,因为格式未知。