1

我从 Google 找到了 AOSP 源代码,还从 https://github.com/sonyxperiadev/device-sony-sgp321检索了供应商的信息

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

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

4

2 回答 2

1

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

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

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

于 2013-10-08T05:38:07.220 回答
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回调将解除readAwesomePlayer.

  3. 一旦帧可用,它就会A/V由模块进行同步逻辑,并通过调用AwesomePlayer推入。所有上述步骤都作为方法的一部分执行。SurfaceTexturerenderAwesomePlayer::onVideoEvent

  4. render缓冲区queue。这SurfaceTexturelayers可用于组合的 之一SurfaceFlinger

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

  6. AOSP只提供一个模板或一个APIHwComposer其实际实现留给供应商。

于 2013-10-08T15:23:45.270 回答