[gstreamer-bugs] [Bug 407282] [decodebin2] autoplug-sort signal has GList ** parameter
GStreamer (bugzilla.gnome.org)
bugzilla-daemon at bugzilla.gnome.org
Sat Mar 3 08:01:28 PST 2007
Do not reply to this via email (we are currently unable to handle email
responses and they get discarded). You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=407282
GStreamer | gst-plugins-base | Ver: HEAD CVS
René Stadler changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |mail at renestadler.de
------- Comment #5 from René Stadler 2007-03-03 15:59 UTC -------
(In reply to comment #4)
...
> Unfortunately the above patch doesn't work though, because a _copy_ of the
> GValueArray will be passed to the callback. Only way to prevent this is to use
> G_TYPE_POINTER again, which defeats half of the purpose of the proposed change
> *sigh*.
I'm getting the impression that it's better to avoid the current design of the
autoplug-sort signal altogether. I don't see the point of letting an app sort
the list of compatible factories: decodebin2 takes the list (which was possibly
mutated by a signal handler) and tries to create elements from it until it
finds one that actually has a sink pad, is able to switch to the READY state
and can be linked to the discovered pad. Now I'm wondering: Doesn't this
succeed for the very first element factory most of the time? How about doing
this instead:
Rename the autoplug-sort signal to autoplug-select (or something). Keep the
caps and factory list/array as paramters, but make the signal return a factory
instead of a boolean. Where autoplug-sort is emitted, emit autoplug-select
instead, with the caps and the factory list as before (except for the list
being const of course). Try to plug using the returned factory (dismiss the
pad on a NULL return, like -sort does with a FALSE return). On failure, remove
the failed factory from the list and emit the signal again (until a proper
element is found or the list is exhausted).
--
Configure bugmail: http://bugzilla.gnome.org/userprefs.cgi?tab=email
More information about the Gstreamer-bugs
mailing list