[Gstreamer-openmax] Support for hardware codecs

Rob Clark rob at ti.com
Wed Feb 24 06:10:05 PST 2010


On Feb 24, 2010, at 6:41 AM, Felipe Contreras wrote:

> On Tue, Feb 23, 2010 at 4:42 AM, Clark, Rob <rob at ti.com> wrote:
>> Ok, attached is a work-in-progress for what I'm thinking.. the basic idea is that the config file is just a list of GstStructure's, so no parser needed, just gst_structure_from_string().  These get stored within a parent GstStructure (so could be cached w/ gst_plugin_{get,set}_cache_data(), although that is not implemented yet.  The config file looks like:
>> 
>> -----8<----------8<-----
>> omx_mp3dec, library-name=libOMX_Core.so, component-name=OMX.TI.AUDIO.DECODE, component-role=audio_decode.dsp.mp3, rank=256;
>> omx_aacdec, library-name=libOMX_Core.so, component-name=OMX.TI.AUDIO.DECODE, component-role=audio_decode.dsp.aac, rank=256;
>> omx_volume, library-name=libomxil-bellagio.so.0, component-name=OMX.st.volume.component, rank=0;
>> ...
>> ----->8---------->8-----
> 
> We most probably will add more stuff so I think each element should
> span more than one line.
> 
>> (the component-role field is optional, others are mandatory)
> 
> I think rank should also be optional.

ok, should default rank=GST_RANK_NONE?

> 
>> I left for now the library-name/component-name/component-role properties in the base src/filter/sink elements.  But now they are just read-only properties, showing what is configured via the config file.  I think this is useful to see in output of gst-inspect, diagrams generated from .dot files of the pipeline, etc.
>> 
>> Right now I have a small default config, in case no config file is found.. but I could go either way on this, either making it complete or removing it altogether.  Anyone have any preference about whether the config file should just override a complete default table, or whether the config file should be mandatory?
>> 
>> The patch won't apply as-is on the gst-openmax tree from freedesktop.org (in our tree we've added component-role and some other stuff), but I'm just sending it as an RFC.  If people like the idea, I'll rebase it on current master from fd.o (after cleaning up a couple of quick-n-dirty aspects of the patch).
>> 
>> I've pushed the patch here, if this is an easier way for you to review:
>> 
>>  http://gitorious.org/robclark-gstreamer/gst-openmax/commit/4a8e4064c9b698d03ffce735257758cd0b8999f1
>> 
>> and since the patch seems to be too big and caused my original email to bounce, here it the link to the patch:
> 
> You didn't give me enough time to moderate it :) The patch doesn't
> look too big, I wonder why it was deferred.


sorry, I think it was just over the threshold.. 

I'll be more patient next time ;-)


> Anyway, the only important comment I have for now is that I think the
> type should also be configurable (you can use g_type_from_name())
> 
> I'm thinking something like:
> 
> ---
> omx_mp3dec_ti:
> 	type: GstOmxMp3Dec
> 	library-name: libOMX_Core.so.0
> 	component-name: OMX.TI.AUDIO.DECODE
> 	component-role: audio_decode.dsp.mp3
> 	rank: 256
> 
> omx_mp3dec_nokia:
> 	type: GstOmxMp3Dec
> 	library-name: libomxil_bellagio.so.0
> 	component-name: OMX.nokia.audio_decode.mp3
> 	rank: 128
> ---


ok, that seems reasonable..  are you ok w/ basically same thing in GstStructure syntax:

omx_mp3dec_ti,
	type=GstOmxMp3Dec,
	library-name=libOMX_Core.so.0,
	component-name=OMX.TI.AUDIO.DECODE,
	component-role=audio_decode.dsp.mp3,
	rank=256;

omx_mp3dec_nokia,
	type=GstOmxMp3Dec,
	library-name=libomxil_bellagio.so.0,
	component-name=OMX.nokia.audio_decode.mp3,
	rank=128;

note, w/ GstStructure, we can easily add parameters later if we want:

omx_h264dec_ti,
	type=GstOmxH264Dec,
	library-name=libOMX_Core.so,
	component-name=OMX.TI.DUCATI1.VIDEO.H264D,
	src-formats=(fourcc){NV12,YUYV},
	rank=256;


> 
> Oh, and I think the default configuration should be in a separate file.


ok, I'll do that..  expect an updated patch, rebased on latest gst-openmax master so you can more easily apply the patch and try it out


BR,
-R







More information about the Gstreamer-openmax mailing list