v4l2: Support bools for setting extra-controls
authorSebastian Dröge <sebastian@centricular.com>
Thu, 4 Nov 2021 14:04:30 +0000 (16:04 +0200)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Thu, 4 Nov 2021 15:21:40 +0000 (15:21 +0000)
They're just mapped to 0 / 1 and can already be set as integers, but
being able to set them as booleans seems useful.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1308>

subprojects/gst-plugins-good/sys/v4l2/v4l2_calls.c

index 6afdefb..c13b142 100644 (file)
@@ -1064,6 +1064,9 @@ set_control (GQuark field_id, const GValue * value, gpointer user_data)
   if (G_VALUE_HOLDS (value, G_TYPE_INT)) {
     gst_v4l2_set_attribute (v4l2object, GPOINTER_TO_INT (d),
         g_value_get_int (value));
+  } else if (G_VALUE_HOLDS (value, G_TYPE_BOOLEAN)) {
+    gst_v4l2_set_attribute (v4l2object, GPOINTER_TO_INT (d),
+        g_value_get_boolean (value));
   } else if (G_VALUE_HOLDS (value, G_TYPE_STRING)) {
     gst_v4l2_set_string_attribute (v4l2object, GPOINTER_TO_INT (d),
         g_value_get_string (value));