From da02191411ee0e26a30b6619f6429a3340ce5639 Mon Sep 17 00:00:00 2001 From: Benjamin Gaignard Date: Tue, 12 Nov 2024 12:12:17 +0100 Subject: [PATCH] v4l2codecs: Test ioctl return value and errno Fix error testing when using V4L2_FMTDESC_FLAG_ENUM_ALL by using both errno and the return value. Fixes !7686 (merged) Part-of: --- subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2decoder.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2decoder.c b/subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2decoder.c index 71a6df16bf..e6ff89429d 100644 --- a/subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2decoder.c +++ b/subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2decoder.c @@ -539,7 +539,7 @@ gst_v4l2_decoder_enum_src_formats_full (GstV4l2Decoder * self, ret = ioctl (self->video_fd, VIDIOC_ENUM_FMT, &fmtdesc); /* If the driver can't enumerate all the pixels formats * return empty caps */ - if (enum_all && ret == -EINVAL) { + if (enum_all && ret < 0 && errno == EINVAL) { gst_caps_unref (caps); return gst_static_caps_get (&default_src_caps); }