【问题标题】:How does Bravia Engine get called on AOSP?Bravia Engine 如何在 AOSP 上被调用?
【发布时间】:2013-10-14 08:27:49
【问题描述】:

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

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

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

【问题讨论】:

    标签: android-source sony stagefright


    【解决方案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 是可用于SurfaceFlinger 组合的layers 之一。

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

    6. AOSP 只为HwComposer 提供模板或API,具体实现留给供应商。

    【讨论】:

    • 在vendors文件夹中,有一个hwcomposer.msm8960.so。请问一下 Awesomeplayer 是如何调用这个库的?另外,你能解释一下msm8960代表什么吗?非常感谢!
    • @FangBoy 我用简短的流程编辑了我的帖子。如果您需要更多详细信息,请随时发布另一个特定查询。 MSM8960 代表高通的骁龙芯片。更多信息请访问:developer.qualcomm.com/mobile-development/development-devices/…HwComposer 已调整为特定的 SoC,因此您正在观察特定的包。
    • 第一个链接提供的文章说:软件层应用于图像和视频的解码步骤,其中 Mobile BRAVIA® Engine 处理是实时完成的。这是否意味着 BE2 已加载到其他动态库中?因为 hwcomposer 用于 SoC,例如 libOmxEvrcDec.so 和 libmm_color_converter.so。顺便说一句,这些库是如何被 AOSP 源代码调用的?谢谢!
    【解决方案2】:

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

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

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

    【讨论】:

    • 是的,在 vendor/sony/lagan/proprietary/lib 文件夹中。有几个库可以实现Mobile Bravia Engines,例如:libOmxEvrcDec.so、libl420colorconvert.so和libmm_color_converter.so等。根据索尼的文章,它说BE是在解码阶段在软件中完成的,是否可以测试哪个库可以做到这一点?谢谢
    猜你喜欢
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 2018-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多