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
This commit is contained in:
Sebastian Rasmussen 2014-08-09 11:36:38 +02:00 committed by Tim-Philipp Müller
parent b53433fbbf
commit 5d1fedd18e

View file

@ -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);