Android MediaCodec:反向链接到输入

时间:2016-04-25 07:42:26

标签: android video

我通过RTP / H.264(Profile Baseline)接收视频数据。我正在构建一个完整的NAL单元(使用NAL(网络抽象限制)分隔符0x09)并将其推送到MediaCodec。之后我通过OpenGL将解码后的图像渲染到SurfaceTexture。到目前为止,这确实很有效。

现在我需要在渲染调用中知道当前渲染的视频帧。所以我需要稍后在渲染部分附加到视频帧的元信息。

我的第一个想法是使用一个简单的队列:

1)queue.offer(videoFrameId) 2)mediaCodec.queueInputBuffer() 3)mediaCodec.deqeueOutputBuffer() 4)mediaCodec.releaseOutputBuffer()

然后在渲染方面:

1)onFrameAvailable(SurfaceTexture) 2)queue.poll() 3)render()

但这很快就不同步了。对MediaCodec.queueInputBuffer的调用多于onFrameAvailable()。看起来好像视频帧是从多个NAL单元构建的。

有没有办法从原始视频帧到渲染获取参考?我仅限于SDK 19 API。

谢谢

0 个答案:

没有答案