如何在AOSP上调用Bravia Engine?

时间:2013-10-07 16:50:59

标签: android-source sony stagefright

我从Google找到了AOSP源代码,并从https://github.com/sonyxperiadev/device-sony-sgp321

检索了供应商的信息

索尼将其Bravia Engine库添加到AOSP以改善图像和视频质量。它可以在libstagefright的awesomelocalrenderer中调用,也可以在解码阶段调用,当调用OMX addPlugin时。

我搜索了两个地方,代码与其他原生AOSP源代码相同。我想知道索尼如何使用它的BE库?

2 个答案:

答案 0 :(得分:1)

我的猜测是所有特定于供应商的二进制文件都只是实现Android / OMX定义的标准接口。

这些引擎被编译到共享对象中,可以在/ system / vendor目录中找到。

Android系统只需要查看目录并加载必要的共享对象。

答案 1 :(得分:1)

Bravia引擎主要用于在框架上渲染之前的视频/图像后处理。 http://developer.sonymobile.com/2012/06/21/mobile-bravia-engine-explained-video/有一个有趣的链接。

AOSP中,我假设读取菜单中的用户设置,并在框架的SurfaceFlingerHwComposer部分启用/应用后续过滤。另一个感兴趣的链接可能是:http://blog.gsmarena.com/heres-what-sony-ericsson-mobile-bravia-engine-really-does-review/

编辑: 视频解码器之间的互动 - AwesomePlayer - HwComposer

以下是回放和合成管道中不同参与者之间交互的摘要。

  1. AwesomePlayer充当OMX Video Decoder的接收器。因此,它将不断轮询可用于渲染和处理的新帧。

  2. OMX Video Decoder完成解码器时,编解码器的FillBufferDone回调将取消阻止read调用的AwesomePlayer

  3. 一旦该帧可用,它就会受A/V模块的AwesomePlayer同步逻辑的影响,并通过SurfaceTexture调用推送到render。所有上述步骤都是AwesomePlayer::onVideoEvent方法的一部分。

  4. renderqueue缓冲区。此SurfaceTexturelayers的合成SurfaceFlinger之一。

  5. 当新的layer可用时,SurfaceFlinger会通过一系列步骤调用HwComposer来执行所有相关layers的合成。

  6. AOSP仅为API提供模板或HwComposer,其实际执行权归供应商所有。