From 232ea470f633f6b73df1b23c4047cb4c4ab94712 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Wed, 16 Feb 2005 13:33:12 +0000 Subject: [PATCH] gst/playback/gstplaybin.c: Invert bin_add/link order to workaround deadlock in opt. Original commit message from CVS: * gst/playback/gstplaybin.c: (add_sink): Invert bin_add/link order to workaround deadlock in opt. --- ChangeLog | 5 +++++ gst/playback/gstplaybin.c | 8 +++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9f32f4c..5b2473c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-02-16 Ronald S. Bultje + + * gst/playback/gstplaybin.c: (add_sink): + Invert bin_add/link order to workaround deadlock in opt. + 2005-02-15 Ronald S. Bultje * gst/modplug/gstmodplug.cc: diff --git a/gst/playback/gstplaybin.c b/gst/playback/gstplaybin.c index 85c8f9f..769abf6 100644 --- a/gst/playback/gstplaybin.c +++ b/gst/playback/gstplaybin.c @@ -692,14 +692,13 @@ add_sink (GstPlayBin * play_bin, GstElement * sink, GstPad * srcpad) gboolean res; /* we found a sink for this stream, now try to install it */ - gst_bin_add (GST_BIN (play_bin), sink); + sinkpad = gst_element_get_pad (sink, "sink"); + res = gst_pad_link (srcpad, sinkpad); GST_DEBUG ("Adding sink with state %d (parent: %d, peer: %d)\n", GST_STATE (sink), GST_STATE (play_bin), GST_STATE (gst_pad_get_parent (srcpad))); - sinkpad = gst_element_get_pad (sink, "sink"); /* try to link the pad of the sink to the stream */ - res = gst_pad_link (srcpad, sinkpad); if (!res) { gchar *capsstr; @@ -707,12 +706,11 @@ add_sink (GstPlayBin * play_bin, GstElement * sink, GstPad * srcpad) capsstr = gst_caps_to_string (gst_pad_get_caps (srcpad)); g_warning ("could not link %s", capsstr); g_free (capsstr); - GST_LOG ("removing sink %p", sink); - gst_bin_remove (GST_BIN (play_bin), sink); } else { /* we got the sink succesfully linked, now keep the sink * in out internal list */ play_bin->sinks = g_list_prepend (play_bin->sinks, sink); + gst_bin_add (GST_BIN (play_bin), sink); } return res; -- 2.7.4