我从Google找到了AOSP源代码,并从https://github.com/sonyxperiadev/device-sony-sgp321
检索了供应商的信息索尼将其Bravia Engine库添加到AOSP以改善图像和视频质量。它可以在libstagefright的awesomelocalrenderer中调用,也可以在解码阶段调用,当调用OMX addPlugin时。
我搜索了两个地方,代码与其他原生AOSP源代码相同。我想知道索尼如何使用它的BE库?
答案 0 :(得分:1)
我的猜测是所有特定于供应商的二进制文件都只是实现Android / OMX定义的标准接口。
这些引擎被编译到共享对象中,可以在/ system / vendor目录中找到。
Android系统只需要查看目录并加载必要的共享对象。
答案 1 :(得分:1)
Bravia引擎主要用于在框架上渲染之前的视频/图像后处理。 http://developer.sonymobile.com/2012/06/21/mobile-bravia-engine-explained-video/有一个有趣的链接。
在AOSP
中,我假设读取菜单中的用户设置,并在框架的SurfaceFlinger
或HwComposer
部分启用/应用后续过滤。另一个感兴趣的链接可能是:http://blog.gsmarena.com/heres-what-sony-ericsson-mobile-bravia-engine-really-does-review/
编辑: 视频解码器之间的互动 - AwesomePlayer - HwComposer
以下是回放和合成管道中不同参与者之间交互的摘要。
AwesomePlayer
充当OMX Video Decoder
的接收器。因此,它将不断轮询可用于渲染和处理的新帧。
当OMX Video Decoder
完成解码器时,编解码器的FillBufferDone
回调将取消阻止read
调用的AwesomePlayer
。
一旦该帧可用,它就会受A/V
模块的AwesomePlayer
同步逻辑的影响,并通过SurfaceTexture
调用推送到render
。所有上述步骤都是AwesomePlayer::onVideoEvent
方法的一部分。
render
将queue
缓冲区。此SurfaceTexture
是layers
的合成SurfaceFlinger
之一。
当新的layer
可用时,SurfaceFlinger
会通过一系列步骤调用HwComposer
来执行所有相关layers
的合成。
AOSP
仅为API
提供模板或HwComposer
,其实际执行权归供应商所有。