2013-10-07 29 views

回答

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回调编解码器将解除由AwesomePlayer调用的read

  3. 一旦帧是可用的,它是由AwesomePlayer模块经受A/V同步逻辑和经由render呼叫被推入SurfaceTexture。所有上述步骤都是作为AwesomePlayer::onVideoEvent方法的一部分执行的。

  4. renderqueue的缓冲区。此SurfaceTexture是可用于组成SurfaceFlingerlayers之一。

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

  6. AOSP仅为HwComposer提供模板或API,其实际实施由供应商决定。

+0

,有一个hwcomposer.msm8960.so。你能否请Awesomeplayer调用这个库?另外,你能解释一下msm8960是什么意思?非常感激! – shorttermmem

+1

@FangBoy我用简短的流程编辑了我的帖子。如果您需要更多详细信息,请随时发布另一个具体查询。 'MSM8960'代表Qualcomm的Snapdragon芯片。更多信息请访问:https://developer.qualcomm.com/mobile-development/development-devices/snapdragon-s4-msm8960-mdps。 'HwComposer'已经被调整到特定的'SoC',因此你正在观察特定的包。 – Ganesh

+0

第一条链接提供的文章称:软件层应用于图像和视频的解码步骤,其中MobileBRAVIA®Engine实时处理完成。这是否意味着BE2被加载到其他动态库中?因为hwcomposer用于SoC,例如,libOmxEvrcDec.so和libmm_color_converter.so。顺便说一下,这些库如何被AOSP源代码调用?谢谢! – shorttermmem

1

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

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

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

+0

是的,在vendor/sony/lagan/proprietary/lib文件夹中。有几个库可以实现移动Bravia引擎,例如:libOmxEvrcDec.so,libl420colorconvert.so和libmm_color_converter.so等。根据索尼的文章,它说BE在解码阶段是用软件完成的,是否有可能测试哪个库可以做到这一点?感谢供应商文件夹中的 – shorttermmem

相关问题