Android:为视频解码器创建OMX组件

时间:2014-02-20 04:44:34

标签: android ffmpeg stagefright video-codecs openmax

我的新任务是将HEVC的解码器(FFMPEG)集成到Android的Stagefright。为此,我首先需要创建一个OMX组件,我接下来要在media_codecs.xml中注册我的编解码器,然后在OMX中注册OMXCore组件。

是否有任何指南或步骤为视频解码器创建OMX组件?其次,这个解码器只播放基本流(.bin.h265文件),所以这里没有容器格式。

在为视频编解码器创建OMX组件时,任何人都可以提供一些步骤或指南。任何类型的指针对我都很有帮助。

提前致谢。

1 个答案:

答案 0 :(得分:2)

通常,您可以按照steps pointed in this question将解码器集成到OMX核心。

HEVC尚未成为OMX IL规范的一部分。因此,您必须在role注册时为您的组件引入新的video_decoder.hevc media_codecs.xml。请检查您的OMX核心是否支持此新role

如果您尝试仅播放基本流,可以考虑修改stagefright command line utility以读取基本流数据并提供解码器。

另一种选择是修改当前recordVideo utility以读取帧数据并创建decoder而不是encoder。有了这些,我认为你应该能够从命令行播放你的解码器。

编辑:如果您希望构建新的OMX组件,我建议您参考Bellagio Component Writers Guide,它应提供有关如何构建OMX组件。这为构建新组件提供了非常全面的指南。请确保您能够通过Bellagio实施和核心实施来识别依赖关系。

此外,您可以在此处查看其他公共域OMX实现: http://androidxref.com/4.4.2_r1/xref/hardware/ti/omap4xxx/domx/ http://androidxref.com/4.4.2_r1/xref/hardware/qcom/media/mm-video-v4l2/vidc/

如果您之前没有构建OMX组件,我觉得Bellagio可以作为一个很好的起始参考。 Bellagio的来源可在Sourceforge上找到。