diff --git a/ChangeLog b/ChangeLog index 752eefde28..b53f636295 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-08-08 Ronald S. Bultje + + * 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 * ext/alsa/gstalsasink.c: (set_hwparams): diff --git a/gst/playback/gstplaybin.c b/gst/playback/gstplaybin.c index 93442d08a7..25738fd648 100644 --- a/gst/playback/gstplaybin.c +++ b/gst/playback/gstplaybin.c @@ -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;