summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorWim Taymans <wtaymans@redhat.com>2016-04-12 11:56:08 +0200
committerWim Taymans <wtaymans@redhat.com>2016-04-12 11:56:08 +0200
commitc9c051d53d9d876f767696269fbf0cd9aac36d55 (patch)
tree5b14c46cb0aa1fa7d7504be30d5cfbe63dfa39c9 /sys
parent4a0de53cc17fa4ee9762df0f58d7a29729eb4939 (diff)
v4l2: avoid leaking GValues
unset the GValue if we don't use it any more to avoid leaks.
Diffstat (limited to 'sys')
-rw-r--r--sys/v4l2/gstv4l2object.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
index 3622553f3..da83d0875 100644
--- a/sys/v4l2/gstv4l2object.c
+++ b/sys/v4l2/gstv4l2object.c
@@ -1738,14 +1738,14 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
} else if (g_str_equal (mimetype, "video/x-bayer")) {
const gchar *format = gst_structure_get_string (structure, "format");
if (format) {
- if (!g_ascii_strcasecmp (format, "bggr"))
- fourcc = V4L2_PIX_FMT_SBGGR8;
- else if (!g_ascii_strcasecmp (format, "gbrg"))
- fourcc = V4L2_PIX_FMT_SGBRG8;
- else if (!g_ascii_strcasecmp (format, "grbg"))
- fourcc = V4L2_PIX_FMT_SGRBG8;
- else if (!g_ascii_strcasecmp (format, "rggb"))
- fourcc = V4L2_PIX_FMT_SRGGB8;
+ if (!g_ascii_strcasecmp (format, "bggr"))
+ fourcc = V4L2_PIX_FMT_SBGGR8;
+ else if (!g_ascii_strcasecmp (format, "gbrg"))
+ fourcc = V4L2_PIX_FMT_SGBRG8;
+ else if (!g_ascii_strcasecmp (format, "grbg"))
+ fourcc = V4L2_PIX_FMT_SGRBG8;
+ else if (!g_ascii_strcasecmp (format, "rggb"))
+ fourcc = V4L2_PIX_FMT_SRGGB8;
}
} else if (g_str_equal (mimetype, "video/x-sonix")) {
fourcc = V4L2_PIX_FMT_SN9C10X;
@@ -2163,6 +2163,8 @@ gst_v4l2_object_fill_colorimetry_list (GValue * list,
if (!found)
gst_value_list_append_and_take_value (list, &colorimetry);
+ else
+ g_value_unset (&colorimetry);
}
static void
@@ -2265,6 +2267,8 @@ gst_v4l2_object_add_colorspace (GstV4l2Object * v4l2object, GstStructure * s,
if (gst_value_list_get_size (&list) > 0)
gst_structure_take_value (s, "colorimetry", &list);
+ else
+ g_value_unset (&list);
return;
}