summaryrefslogtreecommitdiff
path: root/gst/camerabin2
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@hotmail.com>2014-08-09 11:36:38 +0200
committerTim-Philipp Müller <tim@centricular.com>2014-08-10 14:17:55 +0100
commit5d1fedd18ef5587335afbc713ea54c9b9a835765 (patch)
tree381b638952c82d0808819bd3757c39dc8a9e2843 /gst/camerabin2
parentb53433fbbf7e62ad19850bbe178455c17ddd6970 (diff)
downloadgstreamer-plugins-bad-5d1fedd18ef5587335afbc713ea54c9b9a835765.tar.gz
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
Diffstat (limited to 'gst/camerabin2')
-rw-r--r--gst/camerabin2/gstwrappercamerabinsrc.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/gst/camerabin2/gstwrappercamerabinsrc.c b/gst/camerabin2/gstwrappercamerabinsrc.c
index 187899b68..c9bf85ff2 100644
--- a/gst/camerabin2/gstwrappercamerabinsrc.c
+++ b/gst/camerabin2/gstwrappercamerabinsrc.c
@@ -488,8 +488,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);
}
}
@@ -676,8 +678,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;
@@ -872,6 +879,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,
@@ -911,6 +919,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);