From f0678d73b1f379816cf8ea7fb25807ea49768997 Mon Sep 17 00:00:00 2001 From: Nicolas Dufresne Date: Mon, 11 Jul 2016 18:29:01 -0400 Subject: [PATCH] v4l2object: Don't assert when used by the monitor The monitor sets the object->element object as a GstObject. This works for debug traces, but will assert for ELEMENT_ERROR. This was the only case where that could happen. Add a check for that. --- sys/v4l2/gstv4l2object.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c index 8dfaa30..e7637d2 100644 --- a/sys/v4l2/gstv4l2object.c +++ b/sys/v4l2/gstv4l2object.c @@ -1159,12 +1159,17 @@ gst_v4l2_object_fill_format_list (GstV4l2Object * v4l2object, /* ERRORS */ failed: { + g_free (format); + + if (!GST_IS_ELEMENT (v4l2object->element)) + return FALSE; + GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS, (_("Failed to enumerate possible video formats device '%s' can work " "with"), v4l2object->videodev), ("Failed to get number %d in pixelformat enumeration for %s. (%d - %s)", n, v4l2object->videodev, errno, g_strerror (errno))); - g_free (format); + return FALSE; } } -- 2.7.4