gst/playback/gstplaybin.c: Remove visualization from parent explicitely; works around...
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>
Mon, 8 Aug 2005 12:16:54 +0000 (12:16 +0000)
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>
Mon, 8 Aug 2005 12:16:54 +0000 (12:16 +0000)
Original commit message from CVS:
* gst/playback/gstplaybin.c: (remove_sinks):
Remove visualization from parent explicitely; works around some
apparent refcount issue that I haven't tracked down yet.

ChangeLog
gst/playback/gstplaybin.c

index 752eefd..b53f636 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2005-08-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
 
+       * gst/playback/gstplaybin.c: (remove_sinks):
+         Remove visualization from parent explicitely; works around some
+         apparent refcount issue that I haven't tracked down yet.
+
+2005-08-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
+
        * ext/alsa/gstalsasink.c: (set_hwparams):
          Assign debug category, add negotiation debug msgs.
 
index 93442d0..25738fd 100644 (file)
@@ -695,6 +695,13 @@ remove_sinks (GstPlayBin * play_bin)
   g_list_free (play_bin->sinks);
   play_bin->sinks = NULL;
 
+  /* FIXME: this is probably some refcounting problem */
+  if (play_bin->visualisation && GST_OBJECT_PARENT (play_bin->visualisation)) {
+    gst_bin_remove (GST_BIN (GST_OBJECT_PARENT (play_bin->visualisation)),
+        play_bin->visualisation);
+    gst_element_set_state (play_bin->visualisation, GST_STATE_NULL);
+  }
+
   if (play_bin->frame) {
     gst_buffer_unref (play_bin->frame);
     play_bin->frame = NULL;