我发现从谷歌AOSP源代码和https://github.com/sonyxperiadev/device-sony-sgp321Bravia引擎如何在AOSP上调用?
还检索到的供应商的信息加入索尼的BRAVIA ENGINE库AOSP提高图像和视频质量。可以在libstagefright的awesomelocalrenderer中调用它,也可以在解码阶段调用OMX addPlugin。
我搜索了这两个地方,其代码与其他原生AOSP源代码相比较。我想知道索尼如何使用其BE库?
我发现从谷歌AOSP源代码和https://github.com/sonyxperiadev/device-sony-sgp321Bravia引擎如何在AOSP上调用?
还检索到的供应商的信息加入索尼的BRAVIA ENGINE库AOSP提高图像和视频质量。可以在libstagefright的awesomelocalrenderer中调用它,也可以在解码阶段调用OMX addPlugin。
我搜索了这两个地方,其代码与其他原生AOSP源代码相比较。我想知道索尼如何使用其BE库?
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
回调编解码器将解除由AwesomePlayer
调用的read
。
一旦帧是可用的,它是由AwesomePlayer
模块经受A/V
同步逻辑和经由render
呼叫被推入SurfaceTexture
。所有上述步骤都是作为AwesomePlayer::onVideoEvent
方法的一部分执行的。
该render
将queue
的缓冲区。此SurfaceTexture
是可用于组成SurfaceFlinger
的layers
之一。
当一个新的layer
是可用的,通过一系列的步骤,SurfaceFlinger
将调用HwComposer
执行的所有相关layers
组成。
AOSP
仅为HwComposer
提供模板或API
,其实际实施由供应商决定。
我的猜测是,所有供应商特定的二进制文件只是实现由Android/OMX定义的标准接口。
并且这些引擎被编译到可在/ system/vendor目录中找到的共享对象中。
Android系统只需要查看目录并加载必要的共享对象。
是的,在vendor/sony/lagan/proprietary/lib文件夹中。有几个库可以实现移动Bravia引擎,例如:libOmxEvrcDec.so,libl420colorconvert.so和libmm_color_converter.so等。根据索尼的文章,它说BE在解码阶段是用软件完成的,是否有可能测试哪个库可以做到这一点?感谢供应商文件夹中的 – shorttermmem
,有一个hwcomposer.msm8960.so。你能否请Awesomeplayer调用这个库?另外,你能解释一下msm8960是什么意思?非常感激! – shorttermmem
@FangBoy我用简短的流程编辑了我的帖子。如果您需要更多详细信息,请随时发布另一个具体查询。 'MSM8960'代表Qualcomm的Snapdragon芯片。更多信息请访问:https://developer.qualcomm.com/mobile-development/development-devices/snapdragon-s4-msm8960-mdps。 'HwComposer'已经被调整到特定的'SoC',因此你正在观察特定的包。 – Ganesh
第一条链接提供的文章称:软件层应用于图像和视频的解码步骤,其中MobileBRAVIA®Engine实时处理完成。这是否意味着BE2被加载到其他动态库中?因为hwcomposer用于SoC,例如,libOmxEvrcDec.so和libmm_color_converter.so。顺便说一下,这些库如何被AOSP源代码调用?谢谢! – shorttermmem