From: Sebastian Rasmussen Date: Sat, 9 Aug 2014 09:36:38 +0000 (+0200) Subject: wrappercamerabinsrc: Unref elements after usage X-Git-Tag: accepted/tizen/unified/20220217.153506~2^2~10^2~9^2~12^2~2^2~272 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4e53109aa4124da4d98364208de7f545269b300b;p=platform%2Fupstream%2Fgstreamer.git wrappercamerabinsrc: Unref elements after usage gst_bin_get_by_name() and gst_bin_get_by_interface() both return references to elements that need to be unreferenced after usage. https://bugzilla.gnome.org/show_bug.cgi?id=734524 --- diff --git a/gst/camerabin2/gstwrappercamerabinsrc.c b/gst/camerabin2/gstwrappercamerabinsrc.c index 32fb38e..3f3a3b9 100644 --- a/gst/camerabin2/gstwrappercamerabinsrc.c +++ b/gst/camerabin2/gstwrappercamerabinsrc.c @@ -484,8 +484,10 @@ check_and_replace_src (GstWrapperCameraBinSrc * self) if (videoconvert) { if (!gst_element_link_pads (self->src_vid_src, "src", videoconvert, "sink")) { + gst_object_unref (videoconvert); return FALSE; } + gst_object_unref (videoconvert); } } @@ -675,8 +677,13 @@ gst_wrapper_camera_bin_src_construct_pipeline (GstBaseCameraSrc * bcamsrc) if (gst_pad_is_linked (gst_element_get_static_pad (src_csp, "src"))) gst_element_unlink (src_csp, capsfilter); if (!gst_element_link_many (src_csp, self->video_filter, filter_csp, - capsfilter, NULL)) + capsfilter, NULL)) { + gst_object_unref (src_csp); + gst_object_unref (capsfilter); goto done; + } + gst_object_unref (src_csp); + gst_object_unref (capsfilter); } } ret = TRUE; @@ -870,6 +877,7 @@ start_image_capture (GstWrapperCameraBinSrc * self) ret = gst_photography_prepare_for_capture (photography, (GstPhotographyCapturePrepared) img_capture_prepared, self->image_capture_caps, self); + gst_object_unref (photography); } else { g_mutex_unlock (&bcamsrc->capturing_mutex); gst_wrapper_camera_bin_reset_video_src_caps (self, @@ -909,6 +917,7 @@ gst_wrapper_camera_bin_src_set_mode (GstBaseCameraSrc * bcamsrc, "capture-mode")) { g_object_set (G_OBJECT (photography), "capture-mode", mode, NULL); } + gst_object_unref (photography); } else { GstCaps *anycaps = gst_caps_new_any (); gst_wrapper_camera_bin_reset_video_src_caps (self, anycaps);