After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 589622 - Cannot use both playbin and input-selector
Cannot use both playbin and input-selector
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
0.10.23
Other Linux
: Normal blocker
: 0.10.24
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-07-24 15:56 UTC by Olivier Aubert
Modified: 2009-07-27 13:25 UTC
See Also:
GNOME target: ---
GNOME version: 2.25/2.26


Attachments
playbin: rename GType of stream selector pad to avoid clash with input-selector from -bad (1.01 KB, patch)
2009-07-24 18:30 UTC, Tim-Philipp Müller
committed Details | Review

Description Olivier Aubert 2009-07-24 15:56:47 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.
Comment 1 Tim-Philipp Müller 2009-07-24 18:14:15 UTC
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
Comment 2 Tim-Philipp Müller 2009-07-24 18:30:22 UTC
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.
Comment 3 Edward Hervey 2009-07-27 10:24:31 UTC
fixed or not fixed ?
Comment 4 Tim-Philipp Müller 2009-07-27 10:39:03 UTC
> fixed or not fixed ?

Say what? It depends on how you describe the bug..
 

Comment 5 Jan Schmidt 2009-07-27 13:21:19 UTC
makes sense
Comment 6 Tim-Philipp Müller 2009-07-27 13:25:42 UTC
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.