If your don't plan to have your own OMX Core
, then you can consider adding your codec to the SoftOMXComponent
plugin itself as described below.
Note: This answer assumes that you have the ability to recompile a portion of AOSP
code and can replace the rebuilt libraries on your platform.
Step 1: Registration of OMX
Component
In SoftOMXComponent
source file as shown here, add your component name as shown below
{ "OMX.sam.custom.h264.decoder", "sam_h264dec", "video_decoder.avc" }
Here "OMX.sam.custom.h264.decoder"
represents your component name, "sam_h264dec"
represents the suffix of the name of the library stored in the file system (more below) and "video_decoder.avc"
represents the role of your decoder, which in this example is a H.264
video decoder.
Step 2: Generation of library
Your OMX
component should be built as a dynamically loadable library whose name would be "libstagefright_soft_sam_h264dec.so"
and should be placed at /system/lib of your file system.
Step 3: Creation of the component
The Stagefright
framework code will look for a symbol named createSoftOMXComponent
to create the component. Hence, your codec library mentioned in Step 2 should support this function.
With these steps and assuming your codec is OMX
compatible with Android
extensions, you should be able to integrate your decoder.
Tip 1: If you wish that your component is always selected, please ensure that your component name as described in Step 1 is registered at the very top of kComponents
array in the shown reference.
Tip 2: If you wish to know more on the topic of generation of the dynamically loadable library, you could refer to the GSM Decoder
code as shown here.