camerabin examples: memory leak in camerabin examples code

should unref after set object. The object will be refed when set
property.

https://bugzilla.gnome.org/show_bug.cgi?id=744219
This commit is contained in:
Song Bing 2015-02-10 15:53:21 +08:00 committed by Thiago Santos
parent 4ccd425772
commit 2d0e6d96c6

View file

@ -595,6 +595,7 @@ setup_pipeline_element (GstElement * element, const gchar * property_name,
elem = gst_parse_launch (element_name, &error); elem = gst_parse_launch (element_name, &error);
if (elem) { if (elem) {
g_object_set (element, property_name, elem, NULL); g_object_set (element, property_name, elem, NULL);
g_object_unref (elem);
} else { } else {
GST_WARNING ("can't create element '%s' for property '%s'", element_name, GST_WARNING ("can't create element '%s' for property '%s'", element_name,
property_name); property_name);
@ -695,6 +696,7 @@ setup_pipeline (void)
if (setup_pipeline_element (wrapper, "video-source", videosrc_name, NULL)) { if (setup_pipeline_element (wrapper, "video-source", videosrc_name, NULL)) {
g_object_set (camerabin, "camera-source", wrapper, NULL); g_object_set (camerabin, "camera-source", wrapper, NULL);
g_object_unref (wrapper);
} else { } else {
GST_WARNING ("Failed to set videosrc to %s", videosrc_name); GST_WARNING ("Failed to set videosrc to %s", videosrc_name);
} }
@ -718,15 +720,19 @@ setup_pipeline (void)
if (imagepp_name) { if (imagepp_name) {
ipp = create_ipp_bin (); ipp = create_ipp_bin ();
if (ipp) if (ipp) {
g_object_set (camerabin, "image-filter", ipp, NULL); g_object_set (camerabin, "image-filter", ipp, NULL);
g_object_unref (ipp);
}
else else
GST_WARNING ("Could not create ipp elements"); GST_WARNING ("Could not create ipp elements");
} }
prof = load_encoding_profile (); prof = load_encoding_profile ();
if (prof) if (prof) {
g_object_set (G_OBJECT (camerabin), "video-profile", prof, NULL); g_object_set (G_OBJECT (camerabin), "video-profile", prof, NULL);
gst_encoding_profile_unref (prof);
}
GST_INFO_OBJECT (camerabin, "elements created"); GST_INFO_OBJECT (camerabin, "elements created");