diff options
author | Wim Taymans <wtaymans@redhat.com> | 2016-04-12 11:56:08 +0200 |
---|---|---|
committer | Wim Taymans <wtaymans@redhat.com> | 2016-04-12 11:56:08 +0200 |
commit | c9c051d53d9d876f767696269fbf0cd9aac36d55 (patch) | |
tree | 5b14c46cb0aa1fa7d7504be30d5cfbe63dfa39c9 /sys | |
parent | 4a0de53cc17fa4ee9762df0f58d7a29729eb4939 (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.c | 20 |
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; } |