[gst-devel] autoplug ranking for a better spider

Steve Baker steve at stevebaker.org
Thu May 30 13:09:03 CEST 2002


I have implemented this and have added rankings to the following
elements:
ext/a52dec/gsta52dec.c:                      GST_ELEMENT_RANK_PRIMARY
ext/audiofile/gstafparse.c:                  GST_ELEMENT_RANK_PRIMARY
ext/avifile/gstwincodec.cc:                  GST_ELEMENT_RANK_PRIMARY
ext/flac/gstflac.c:                          GST_ELEMENT_RANK_PRIMARY
ext/gsm/gstgsm.c:                            GST_ELEMENT_RANK_PRIMARY
ext/hermes/gstcolorspace.c:                  GST_ELEMENT_RANK_PRIMARY
ext/jpeg/gstjpeg.c:                          GST_ELEMENT_RANK_PRIMARY
ext/mad/gstmad.c:                            GST_ELEMENT_RANK_PRIMARY
ext/mikmod/gstmikmod.c:                      GST_ELEMENT_RANK_PRIMARY
ext/mjpegtools/gstjpegmmxdec.c:              GST_ELEMENT_RANK_PRIMARY
ext/mpeg2dec/gstmpeg2dec.c:                  GST_ELEMENT_RANK_PRIMARY
ext/openquicktime/gstopenquicktimedecoder.c: GST_ELEMENT_RANK_SECONDARY
ext/sidplay/gstsiddec.cc:                    GST_ELEMENT_RANK_PRIMARY
ext/vorbis/vorbis.c:                         GST_ELEMENT_RANK_PRIMARY
gst/ac3parse/gstac3parse.c:                  GST_ELEMENT_RANK_SECONDARY
gst/auparse/gstauparse.c:                    GST_ELEMENT_RANK_SECONDARY
gst/avi/gstaviaudiodecoder.c:                GST_ELEMENT_RANK_PRIMARY
gst/avi/gstavidemux.c:                       GST_ELEMENT_RANK_PRIMARY
gst/flx/gstflxdec.c:                         GST_ELEMENT_RANK_PRIMARY
gst/intfloat/gstfloat2int.c:                 GST_ELEMENT_RANK_PRIMARY
gst/intfloat/gstint2float.c:                 GST_ELEMENT_RANK_PRIMARY
gst/law/alaw.c:                              GST_ELEMENT_RANK_PRIMARY
gst/law/mulaw.c:                             GST_ELEMENT_RANK_PRIMARY
gst/modplug/gstmodplug.cc:                   GST_ELEMENT_RANK_PRIMARY
gst/mpegstream/gstmpegdemux.c:               GST_ELEMENT_RANK_PRIMARY
gst/qtdemux/qtdemux.c:                       GST_ELEMENT_RANK_PRIMARY
gst/rtjpeg/gstrtjpeg.c:                      GST_ELEMENT_RANK_PRIMARY
gst/wavparse/gstwavparse.c:                  GST_ELEMENT_RANK_SECONDARY

If there are others which you think should be included, or if some
PRIMARYs need to be swapped with SECONDARYs then let me know.

cheers

On Thu, 2002-05-30 at 10:29, Baker, Steve wrote:
> The current autoplug algorithm has a few problems which could be summed up
> as:
> - it sometimes uses completely bogus elements to build a pipeline
> - it sometimes uses inferior (mpg123) libs when better (mad) ones exist
> - it cycles through many plugins (ogg, avi) when it should be checking
> popular (mad) ones first (i'm not sure if this is really a problem)
> 
> I have a simple proposal to fix this which I would like some comment on.
> 
> A autoplug_rank integer could be added to the GstElementDetails struct which
> every plugin must populate. This value would be:
> - zero if the plugin should never be used for autoplugging
> - the higher the value, the earlier it should be checked for autoplugging
> 
> Most plugins could just use a few predefined ranks, such as:
> GST_AUTOPLUG_RANK_NONE = 0
> GST_AUTOPLUG_RANK_PRIMARY = 256
> GST_AUTOPLUG_RANK_SECONDARY = 128
> GST_AUTOPLUG_RANK_MARGINAL = 64
> or whatever.  Tweaks could be made so that some PRIMARY ranks are a bit
> higher than others, so that they are tried first.
> 
> Then, the only change that is needed is in
> gst_autoplug_factories_filters_with_sink_caps which would:
> - ignore factories with GST_AUTOPLUG_RANK_NONE
> - return a list which is sorted descending on autoplug_rank
> 
> And that is all there is to it.  Another option is to add the autoplug_rank
> to the GstElementFactory struct, then only elements which want to
> participate in autoplugging need to call
> gst_element_factory_set_autoplug_rank.
> 
> Thoughts? Flames?
> 
> cheers
> 
> _______________________________________________________________
> 
> Don't miss the 2002 Sprint PCS Application Developer's Conference
> August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm
> 
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel







More information about the gstreamer-devel mailing list