From d29ec01b8a63b8b9422fc05f88a30b0c3efbf423 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Fri, 15 Jul 2016 11:48:25 +0200 Subject: [PATCH] camerabinpreview: fix bus leak We were never removing the watch introduced in gst_camerabin_create_preview_pipeline() so its extra ref on the bus was never released. https://bugzilla.gnome.org/show_bug.cgi?id=768838 --- gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c b/gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c index cfdc074..48ec2fe 100644 --- a/gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c +++ b/gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c @@ -235,7 +235,14 @@ gst_camerabin_destroy_preview_pipeline (GstCameraBinPreviewPipelineData * g_cond_clear (&preview->processing_cond); if (preview->pipeline) { + GstBus *bus; + gst_element_set_state (preview->pipeline, GST_STATE_NULL); + + bus = gst_pipeline_get_bus (GST_PIPELINE (preview->pipeline)); + gst_bus_remove_watch (bus); + gst_object_unref (bus); + gst_object_unref (preview->pipeline); } g_free (preview); -- 2.7.4