summaryrefslogtreecommitdiff
path: root/gst-libs/gst/basecamerabinsrc
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2016-07-15 11:48:25 +0200
committerThiago Santos <thiagossantos@gmail.com>2016-07-15 13:41:48 -0300
commitd29ec01b8a63b8b9422fc05f88a30b0c3efbf423 (patch)
tree5dacf603b601c7479958ac40abe9f73f4a296172 /gst-libs/gst/basecamerabinsrc
parent6697feae5f9fce255ece8c24d21e8e27276bdddf (diff)
downloadgstreamer-plugins-bad-d29ec01b8a63b8b9422fc05f88a30b0c3efbf423.tar.gz
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
Diffstat (limited to 'gst-libs/gst/basecamerabinsrc')
-rw-r--r--gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c b/gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c
index cfdc07421..48ec2fec8 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);