v4l2src: fix spurious SOURCE_CHANGED error-level log messages
authorTim-Philipp Müller <tim@centricular.com>
Mon, 19 Apr 2021 10:14:00 +0000 (11:14 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Mon, 19 Apr 2021 10:29:44 +0000 (11:29 +0100)
They're harmless, and some drivers at least return EINVAL
instead of ENOTTY for unsupported events (here: uvcvideo).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/955>

sys/v4l2/v4l2_calls.c

index b6b51af..299eab0 100644 (file)
@@ -1257,10 +1257,15 @@ gst_v4l2_subscribe_event (GstV4l2Object * v4l2object, guint32 event, guint32 id)
   /* ERRORS */
 failed:
   {
-    if (errno != ENOTTY)
+    if (errno == ENOTTY || errno == EINVAL) {
+      GST_DEBUG_OBJECT (v4l2object->dbg_obj,
+          "Cannot subscribe to '%s' event: %s",
+          gst_v4l2_event_to_string (event), "not supported");
+    } else {
       GST_ERROR_OBJECT (v4l2object->dbg_obj,
           "Cannot subscribe to '%s' event: %s",
           gst_v4l2_event_to_string (event), g_strerror (errno));
+    }
     return FALSE;
   }
 }