mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-20 07:16:55 +00:00
playbin: Only give sinks a new bus if they have no parent yet
Otherwise we will remove the bus that would proxy messages to playsink and never set it again. If the sink is already in playsink, all failures are fatal anyway as it's either a sink that worked before or one that was set by the user. https://bugzilla.gnome.org/show_bug.cgi?id=701997
This commit is contained in:
parent
d7f1d9954f
commit
9ab6ab4257
1 changed files with 6 additions and 4 deletions
|
@ -4006,10 +4006,12 @@ activate_sink (GstPlayBin * playbin, GstElement * sink, gboolean * activated)
|
||||||
gst_context_unref (context);
|
gst_context_unref (context);
|
||||||
}
|
}
|
||||||
|
|
||||||
bus = gst_bus_new ();
|
if (!GST_OBJECT_PARENT (sink)) {
|
||||||
gst_bus_set_sync_handler (bus, (GstBusSyncHandler) activate_sink_bus_handler,
|
bus = gst_bus_new ();
|
||||||
playbin, NULL);
|
gst_bus_set_sync_handler (bus,
|
||||||
gst_element_set_bus (sink, bus);
|
(GstBusSyncHandler) activate_sink_bus_handler, playbin, NULL);
|
||||||
|
gst_element_set_bus (sink, bus);
|
||||||
|
}
|
||||||
|
|
||||||
sret = gst_element_set_state (sink, GST_STATE_READY);
|
sret = gst_element_set_state (sink, GST_STATE_READY);
|
||||||
if (sret == GST_STATE_CHANGE_FAILURE)
|
if (sret == GST_STATE_CHANGE_FAILURE)
|
||||||
|
|
Loading…
Reference in a new issue