I have a new task of integrating a decoder(HEVC
) from FFMPEG
to Android's Stagefright
. To do this, i first need to created an OMX
component, My next thing is to register my codec in media_codecs.xml
and then the OMX
component registration in OMXCore
.
Is there any guide or steps to create an OMX
component for a video decoder? Secondly, this decoder plays only elementary streams (.bin
or .h265
files) so there is no container format here.
Can anyone provide some steps or guidelines to be followed while creating the OMX
component for a video codec. Any sort of pointers will be really helpful to me.
Thanks in advance.
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.