summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Dufresne <nicolas.dufresne@collabora.com>2017-09-13 11:52:09 -0400
committerNicolas Dufresne <nicolas.dufresne@collabora.com>2017-09-13 11:52:56 -0400
commit177a858b5550c8f0f8d948e42eab65a6a80b7ad6 (patch)
treeef8e1c3a5c1b5448805e7b60e6c0a97765cb86e9
parenta76da0ca751d9ee669b4c6dc35c2b4616e0a12ec (diff)
downloadgstreamer-plugins-good-177a858b5550c8f0f8d948e42eab65a6a80b7ad6.tar.gz
v4l2object: Don't leak the par value
-rw-r--r--sys/v4l2/gstv4l2object.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
index b3f0aece0..09a688c6b 100644
--- a/sys/v4l2/gstv4l2object.c
+++ b/sys/v4l2/gstv4l2object.c
@@ -644,13 +644,17 @@ gst_v4l2_object_set_property_helper (GstV4l2Object * v4l2object,
break;
}
case PROP_PIXEL_ASPECT_RATIO:
- g_free (v4l2object->par);
+ if (v4l2object->par) {
+ g_value_unset (v4l2object->par);
+ g_free (v4l2object->par);
+ }
v4l2object->par = g_new0 (GValue, 1);
g_value_init (v4l2object->par, GST_TYPE_FRACTION);
if (!g_value_transform (value, v4l2object->par)) {
g_warning ("Could not transform string to aspect ratio");
gst_value_set_fraction (v4l2object->par, 1, 1);
}
+
GST_DEBUG_OBJECT (v4l2object->element, "set PAR to %d/%d",
gst_value_get_fraction_numerator (v4l2object->par),
gst_value_get_fraction_denominator (v4l2object->par));
@@ -880,6 +884,12 @@ gst_v4l2_object_close (GstV4l2Object * v4l2object)
gst_v4l2_object_clear_format_list (v4l2object);
}
+ if (v4l2object->par) {
+ g_value_unset (v4l2object->par);
+ g_free (v4l2object->par);
+ v4l2object->par = NULL;
+ }
+
return TRUE;
}