【问题标题】:What is the raw data color format after android hardware decoding?android硬件解码后的原始数据颜色格式是什么?
【发布时间】:2013-11-11 07:09:43
【问题描述】:

硬件解码是否有固定的颜色格式,或者每个不同的安卓设备都有自己的颜色格式?

我想获取硬件解码产生的原始数据并自己渲染。

谢谢。

【问题讨论】:

  • 不同安卓设备硬件解码后颜色格式不同。将硬件解码和渲染分开是很复杂的。因此,将这两个步骤放在一起是一个好主意。因此,您无需关心颜色格式。

标签: android video colors hardware-acceleration stagefright


【解决方案1】:

在不同的android 设备的情况下,每个供应商通常实现标准color formatsSoC 特定格式之一,这将与处理管道的其余部分进行良好调整。

JellyBean 开始,android 公开了一个名为MediaCodec 的新对象类,它为开发人员提供了将codec 的实例创建为独立组件的灵活性。对于您的要求,我觉得MediaCodec 是一个合适的人选。下面列出了一些有用的参考资料,可以帮助您实现目标。

  1. Creation of MediaCodec

  2. Providing a surface to the underlying codec for buffer allocation

  3. Queueing an input buffer

  4. Retrieving an available output buffer 这里输出缓冲区被推入一个队列,如图所示here

  5. Rendering of the available output buffer after A/V sync

如果您希望在视频解码器的输出上引入任何特定处理,您可以在上面的步骤 4 和 5 之间进行,或者将其作为 SurfaceTexture / Surface 的一部分进行处理,该部分提供给 @987654341 @。希望这会有所帮助..

【讨论】:

    【解决方案2】:

    查看CTS EncodeDecodeTest 源中的缓冲区到缓冲区测试。它演示了如何访问各种已知的解码器格式。

    注意有“未知”的解码器格式;特别是,一些流行的设备将解码为未发布的平铺格式(CTS 测试目前免费通过)。

    解码到 Surface 并渲染它通常更容易(当然也更快)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-13
      • 1970-01-01
      • 2014-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      • 2011-11-28
      相关资源
      最近更新 更多