2

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

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

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

提前致谢。

4

1 回答 1

2

In general, you could follow the steps pointed in this question for integrating a decoder into OMX Core.

HEVC is not yet part of the OMX IL specification. Hence, you would have to introduce a new role like video_decoder.hevc for your component while registering in media_codecs.xml. Please do check that your OMX core can support this new role.

If you are trying to play only elementary streams, you can consider modifying the stagefright command line utility to read the elementary stream data and feed the decoder.

Another option is to modify the current recordVideo utility to read a frame data and create a decoder instead of the encoder. With these, I presume you should be able to play your decoder from command line.

EDIT: If you wish to build a new OMX component, I would recommend that you could refer to the Bellagio Component Writers Guide which should give good information on how to build an OMX component. This gives a pretty comprehensive guide to build a new component. Please do ensure that you are able to identify the dependencies with the Bellagio implementation and your core implementation.

Also, you could look at other public domain OMX implementations as here: 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/

I feel Bellagio could work as a good starting reference if you haven't build an OMX component earlier. The sources for Bellagio are available on Sourceforge.

于 2014-02-20T15:15:59.283 回答