如何注册OMX核心以添加新的解码器

时间:2013-08-27 09:49:43

标签: android android-framework stagefright openmax

我指的是帖子:

Android: How to integrate a decoder to multimedia framework

在此之后,我在media_codecs.xml注册了我的新解码器(Android目前不支持)。

上述帖子的第2步要求我执行 OMX核心注册。但是,由于我对这个主题不熟悉,我无法按照步骤2进行操作。

我在C中有解码器的工作代码,并且已经移植到android。

所以我要求是否有人可以提供以下信息:

  • 为解码器执行OMX代码注册的分步指南 目前不支持android。

  • 我应该将我的工作C代码放在源代码树中以及如何使用 指定编译器来编译它

  • 最后,我想告诉我,我正在研究ICS代码和 解码器源代码的输出是YUV420。

任何人都请提供上述查询的指示。提前谢谢。

1 个答案:

答案 0 :(得分:6)

如果您不打算拥有自己的OMX Core,那么您可以考虑将您的编解码器添加到SoftOMXComponent插件本身,如下所述。

注意:此答案假设您具有能够重新编译<{1}}代码的部分,并且可以替换重建的库在你的平台上。

第1步:注册AOSP组件

在显示hereOMX源文件中,添加您的组件名称,如下所示

SoftOMXComponent

此处{ "OMX.sam.custom.h264.decoder", "sam_h264dec", "video_decoder.avc" } 表示您的组件名称,"OMX.sam.custom.h264.decoder"表示存储在文件系统中的库名称的后缀(下面更多),"sam_h264dec"表示解码器的作用,在此示例中是"video_decoder.avc"视频解码器。

第2步:生成库

您的H.264组件应构建为可动态加载的库,其名称应为OMX,并且应放在文件系统的 / system / lib 中。

第3步:创建组件

"libstagefright_soft_sam_h264dec.so"框架代码将查找名为Stagefright的符号来创建组件。因此,步骤2中提到的编解码器库应该支持此功能。

通过以下步骤并假设您的编解码器createSoftOMXComponentOMX扩展兼容,您应该能够集成解码器。

提示1:如果您希望始终选择组件,请确保步骤1中所述的组件名称已注册在显示的Android数组的最顶部参考。

提示2:如果您想了解有关生成动态可加载库的主题的更多信息,可以参考kComponents所示的代码here。< / p>