2

我指的是帖子:

Android:如何将解码器集成到多媒体框架

在它之后,我已经在media_codecs.xml.

上述帖子的第 2 步要求我执行OMX 核心注册。但是,由于我对这个主题真的很陌生,所以我无法遵循第 2 步。

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

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

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

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

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

任何人请提供有关上述查询的指针。提前致谢。

4

1 回答 1

6

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

注意:此答案假设您有能力重新编译部分代码AOSP,并且可以替换您平台上重新构建的库。

第 1 步:OMX组件注册

此处SoftOMXComponent显示的源文件中,添加您的组件名称,如下所示

{ "OMX.sam.custom.h264.decoder", "sam_h264dec", "video_decoder.avc" }

这里"OMX.sam.custom.h264.decoder"代表您的组件名称,"sam_h264dec"代表存储在文件系统中的库名称的后缀(更多下文)并"video_decoder.avc"代表您的解码器的角色,在此示例中为H.264视频解码器。

第 2 步:库的生成

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

第 3 步:创建组件

框架代码将Stagefright寻找一个命名createSoftOMXComponent为创建组件的符号。因此,您在第 2 步中提到的编解码器库应该支持此功能。

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

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

提示 2:如果您想了解更多关于生成动态可加载库的主题,您可以参考此处GSM Decoder显示的代码。

于 2013-09-02T00:33:42.540 回答