android mediacodec 编码格式,android-如何显示解码的MediaCodec帧混乱

我想乱序显示MediaCodec的解码视频帧,或者省略帧,或多次显示帧.

我考虑过配置MediaCodec以使用Surface,反复调用MediaCodec.dequeueOutputBuffer(),保存生成的缓冲区索引,然后再调用MediaCodec.releaseOutputBuffer(desired_index,true),但是似乎没有办法增加数量输出缓冲区,因此如果我要处理许多要重新排列的帧,我可能会用完输出缓冲区.

我正在考虑的一个想法是使用glReadPixels()将像素数据读取到帧缓冲区中,适当地转换颜色格式,然后在需要显示帧时将其复制到SurfaceView.但这似乎是很多复制(和颜色格式转换)的开销,尤其是当我本来不需要修改像素数据时.

所以我想知道是否有更好,更高效的方法.也许有一种方法可以为每个解码帧配置不同的“表面/纹理/缓冲区”,然后通过一种方法告诉SurfaceView显示特定的“表面/纹理/缓冲区”(而不必执行内存复制).似乎必须有一种使用OpenGL完成此操作的方法,但是我对OpenGL还是很陌生,可以使用有关领域的建议进行调查.如果需要,我什至会去NDK.

到目前为止,我一直在审查Android文档以及fadden的bigflake和Grafika.谢谢.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值