GNOME Bugzilla – Bug 589622
Cannot use both playbin and input-selector
Last modified: 2009-07-27 13:25:42 UTC
The following simple program exhibits an incompatibility between playbin and playbin2 : ---- #! /usr/bin/python import gst import gtk uri='file:///media/video/Bataille.avi' p1=gst.parse_launch('playbin uri=%s' % uri) p1.set_state(gst.STATE_PAUSED) p2=gst.parse_launch('playbin2 uri=%s' % uri) p2.set_state(gst.STATE_PAUSED) gtk.main() ---- It crashes with the following error/warning messages : /home/oaubert/lang/python/bug.py:14: Warning: cannot register existing type `GstSelectorPad' gtk.main() /home/oaubert/lang/python/bug.py:14: Warning: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed gtk.main() (bug.py:1413): GStreamer-CRITICAL **: gst_pad_set_event_function: assertion `GST_IS_PAD (pad)' failed (bug.py:1413): GStreamer-CRITICAL **: gst_pad_set_getcaps_function: assertion `GST_IS_PAD (pad)' failed (bug.py:1413): GStreamer-CRITICAL **: gst_pad_set_chain_function: assertion `GST_IS_PAD (pad)' failed (bug.py:1413): GStreamer-CRITICAL **: gst_pad_set_internal_link_function: assertion `GST_IS_PAD (pad)' failed (bug.py:1413): GStreamer-CRITICAL **: gst_pad_set_bufferalloc_function: assertion `GST_IS_PAD (pad)' failed (bug.py:1413): GStreamer-CRITICAL **: gst_pad_set_active: assertion `GST_IS_PAD (pad)' failed (bug.py:1413): GStreamer-CRITICAL **: gst_element_add_pad: assertion `GST_IS_PAD (pad)' failed (bug.py:1413): GStreamer-CRITICAL **: gst_pad_set_event_function: assertion `GST_IS_PAD (pad)' failed (bug.py:1413): GStreamer-CRITICAL **: gst_pad_set_getcaps_function: assertion `GST_IS_PAD (pad)' failed (bug.py:1413): GStreamer-CRITICAL **: gst_pad_set_chain_function: assertion `GST_IS_PAD (pad)' failed (bug.py:1413): GStreamer-CRITICAL **: gst_pad_set_internal_link_function: assertion `GST_IS_PAD (pad)' failed (bug.py:1413): GStreamer-CRITICAL **: gst_pad_set_bufferalloc_function: assertion `GST_IS_PAD (pad)' failed (bug.py:1413): GStreamer-CRITICAL **: gst_pad_set_active: assertion `GST_IS_PAD (pad)' failed (bug.py:1413): GStreamer-CRITICAL **: gst_element_add_pad: assertion `GST_IS_PAD (pad)' failed --- This looks like an error in gst-plugins-base/gst/playback/gststreamselector.c:gst_selector_pad_get_type, but it is typical code so I do not know what leads to this.
This is actually an incompatibility between playbin and input-selector from -bad. In -base git it's no longer a problem to use playbin and playbin2 concurrently, since playbin2 now uses an internal input-selector with its own type name. Easily reproducable with: $ gst-launch-0.10 playbin uri=file:///... fakesrc ! input-selector ! fakesink
Created attachment 139171 [details] [review] playbin: rename GType of stream selector pad to avoid clash with input-selector from -bad Rename the GType of the pads of playbin's internal stream selector element so they don't use the same type name as input-selector's pads. Fixes #589622.
fixed or not fixed ?
> fixed or not fixed ? Say what? It depends on how you describe the bug..
makes sense
commit 789f5b04888a4a6ba4802335dbb305f4b43b9cda Author: Tim-Philipp Müller <tim.muller@collabora.co.uk> Date: Fri Jul 24 19:26:40 2009 +0100 playbin: rename GType of stream selector pad to avoid clash with input-selector from -bad Rename the GType of the pads of playbin's internal stream selector element so they don't use the same type name as input-selector's pads. Fixes #589622.