[gstreamer-bugs] [Bug 583255] [playbin2] deadlock when disabling visualisations

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Sep 30 12:19:59 PDT 2009


https://bugzilla.gnome.org/show_bug.cgi?id=583255
  GStreamer | gst-plugins-base | git

--- Comment #14 from Jan Schmidt <thaytan at mad.scientist.com> 2009-09-30 19:19:50 UTC ---
Switching to playbin2 prematurely causes a regression in Totem :-P

OK - let's apply the hacky fix. The secondary lockup can be worked around in
Totem:

diff --git a/src/backend/bacon-video-widget-gst-0.10.c
b/src/backend/bacon-video-widget-gst-0.10.c
index 5500d99..e963d46 100644
--- a/src/backend/bacon-video-widget-gst-0.10.c
+++ b/src/backend/bacon-video-widget-gst-0.10.c
@@ -5950,6 +5950,7 @@ bvw_update_interface_implementations (BaconVideoWidget
*bvw)
   GstElement *video_sink = NULL;
   GstElement *element = NULL;
   GstIterator *iter;
+  GstElement *play;

   if (g_thread_self() != gui_thread) {
     if (bvw->priv->balance)
@@ -5969,8 +5970,14 @@ bvw_update_interface_implementations (BaconVideoWidget
*bvw)
     return;
   }

+  play = gst_object_ref(bvw->priv->play);
+
+  g_mutex_unlock (bvw->priv->lock);
   g_object_get (bvw->priv->play, "video-sink", &video_sink, NULL);
   g_assert (video_sink != NULL);
+  g_mutex_lock (bvw->priv->lock);
+
+  gst_object_unref(play);

   /* We try to get an element supporting XOverlay interface */
   if (GST_IS_BIN (video_sink)) {

-- 
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