diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2016-07-15 11:48:25 +0200 |
---|---|---|
committer | Thiago Santos <thiagossantos@gmail.com> | 2016-07-15 13:41:48 -0300 |
commit | d29ec01b8a63b8b9422fc05f88a30b0c3efbf423 (patch) | |
tree | 5dacf603b601c7479958ac40abe9f73f4a296172 /gst-libs/gst/basecamerabinsrc | |
parent | 6697feae5f9fce255ece8c24d21e8e27276bdddf (diff) | |
download | gstreamer-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.c | 7 |
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); |