[Bug 698712] playbin: autoplug video decoder and sink based on caps features
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Tue Apr 30 00:39:25 PDT 2013
https://bugzilla.gnome.org/show_bug.cgi?id=698712
GStreamer | gst-plugins-base | git
--- Comment #57 from Sebastian Dröge <slomo at circular-chaos.org> 2013-04-30 07:39:18 UTC ---
The list lengths here are:
audio: 487
video: 626
And we're iterating over these lists a lot. As we're always looking for the
decoder factory in this list it might make sense to use either a hash table
with the decoder factory as key, or some kind of balanced binary tree structure
(or equivalent) like GSequence.
Or the optimization to keep the list itself much smaller. I'm not going to push
it the way it is now without optimizing this part a bit.
Also for some reason it causes g_criticals(), e.g. in gst123 when playing a
video file:
(gst123:1674): GLib-GObject-WARNING **: invalid cast from `GstXvImageSink' to
`GstBin'
(gst123:1674): GStreamer-CRITICAL **: gst_bin_iterate_sinks: assertion
`GST_IS_BIN (bin)' failed
(gst123:1674): GStreamer-CRITICAL **: gst_iterator_next: assertion `it != NULL'
failed
(gst123:1674): GLib-GObject-CRITICAL **: g_value_unset: assertion `G_IS_VALUE
(value)' failed
But that's probably a bug in there. I guess it assumes that the sinks are
always bins (and by default it would often be autovideosink, a bin), which is
not true anymore after your change (xvimagesink is chosen here because it fits
best, which is right).
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list