如果您不打算拥有自己的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 步中提到的编解码器库应该支持此功能。
通过这些步骤并假设您的编解码器OMX
与Android
扩展兼容,您应该能够集成您的解码器。
提示 1:如果您希望始终选择您的组件,请确保您在步骤 1 中描述的组件名称已注册在kComponents
所示参考中数组的最顶部。
提示 2:如果您想了解更多关于生成动态可加载库的主题,您可以参考此处GSM Decoder
显示的代码。