This is an automatic generated email to let you know that the following patch were queued at the http://git.linuxtv.org/cgit.cgi/v4l-utils.git tree:
Subject: v4l-utils: sync with latest media-committers git repo Author: Hans Verkuil <hverk...@xs4all.nl> Date: Tue Mar 4 11:35:09 2025 +0100 This adds support for V4L2_CTRL_TYPE_RECT and V4L2_CTRL_WHICH_MIN/MAX_VAL. Also add the newly generated siemens_gigaset_rc20.toml rc-keymap. Signed-off-by: Hans Verkuil <hverk...@xs4all.nl> contrib/freebsd/include/linux/input-event-codes.h | 1 + contrib/freebsd/include/linux/v4l2-controls.h | 7 ++++ contrib/freebsd/include/linux/videodev2.h | 7 ++++ include/linux/bpf.h | 35 +++++++++++-------- include/linux/media-bus-format.h | 4 ++- include/linux/v4l2-controls.h | 7 ++++ include/linux/v4l2-dv-timings.h | 2 +- include/linux/videodev2.h | 7 ++++ utils/common/v4l2-pix-formats.h | 2 ++ utils/common/v4l2-tpg-core.c | 3 ++ utils/common/v4l2-tpg.h | 1 + utils/keytable/parse.h | 1 + utils/keytable/rc_keymaps/meson.build | 1 + .../keytable/rc_keymaps/siemens_gigaset_rc20.toml | 39 ++++++++++++++++++++++ utils/keytable/rc_maps.cfg | 1 + utils/v4l2-tracer/retrace-gen.cpp | 1 + utils/v4l2-tracer/trace-gen.cpp | 1 + utils/v4l2-tracer/v4l2-tracer-info-gen.h | 2 ++ 18 files changed, 107 insertions(+), 15 deletions(-) --- http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=c2920f93666da960c005fc2b727b850d9ac5b35a diff --git a/contrib/freebsd/include/linux/input-event-codes.h b/contrib/freebsd/include/linux/input-event-codes.h index de4647601e8b..7cd934c79930 100644 --- a/contrib/freebsd/include/linux/input-event-codes.h +++ b/contrib/freebsd/include/linux/input-event-codes.h @@ -519,6 +519,7 @@ #define KEY_NOTIFICATION_CENTER 0x1bc /* Show/hide the notification center */ #define KEY_PICKUP_PHONE 0x1bd /* Answer incoming call */ #define KEY_HANGUP_PHONE 0x1be /* Decline incoming call */ +#define KEY_LINK_PHONE 0x1bf /* AL Phone Syncing */ #define KEY_DEL_EOL 0x1c0 #define KEY_DEL_EOS 0x1c1 diff --git a/contrib/freebsd/include/linux/v4l2-controls.h b/contrib/freebsd/include/linux/v4l2-controls.h index 9fc663e6059e..8c06b28a4b70 100644 --- a/contrib/freebsd/include/linux/v4l2-controls.h +++ b/contrib/freebsd/include/linux/v4l2-controls.h @@ -217,6 +217,13 @@ enum v4l2_colorfx { */ #define V4L2_CID_USER_THP7312_BASE (V4L2_CID_USER_BASE + 0x11c0) +/* + * The base for the uvc driver controls. + * See linux/uvcvideo.h for the list of controls. + * We reserve 64 controls for this driver. + */ +#define V4L2_CID_USER_UVC_BASE (V4L2_CID_USER_BASE + 0x11e0) + /* MPEG-class control IDs */ /* The MPEG controls are applicable to all codec controls * and the 'MPEG' part of the define is historical */ diff --git a/contrib/freebsd/include/linux/videodev2.h b/contrib/freebsd/include/linux/videodev2.h index 41d0fde79dee..349d187f0dc1 100644 --- a/contrib/freebsd/include/linux/videodev2.h +++ b/contrib/freebsd/include/linux/videodev2.h @@ -867,6 +867,8 @@ struct v4l2_pix_format { /* Vendor specific - used for RaspberryPi PiSP */ #define V4L2_META_FMT_RPI_BE_CFG v4l2_fourcc('R', 'P', 'B', 'C') /* PiSP BE configuration */ +#define V4L2_META_FMT_RPI_FE_CFG v4l2_fourcc('R', 'P', 'F', 'C') /* PiSP FE configuration */ +#define V4L2_META_FMT_RPI_FE_STATS v4l2_fourcc('R', 'P', 'F', 'S') /* PiSP FE stats */ /* priv field value to indicates that subsequent fields are valid. */ @@ -1826,6 +1828,7 @@ struct v4l2_ext_control { int32_t *p_s32; int64_t *p_s64; struct v4l2_area *p_area; + struct v4l2_rect *p_rect; struct v4l2_ctrl_h264_sps *p_h264_sps; struct v4l2_ctrl_h264_pps *p_h264_pps; struct v4l2_ctrl_h264_scaling_matrix *p_h264_scaling_matrix; @@ -1874,6 +1877,8 @@ struct v4l2_ext_controls { #define V4L2_CTRL_WHICH_CUR_VAL 0 #define V4L2_CTRL_WHICH_DEF_VAL 0x0f000000 #define V4L2_CTRL_WHICH_REQUEST_VAL 0x0f010000 +#define V4L2_CTRL_WHICH_MIN_VAL 0x0f020000 +#define V4L2_CTRL_WHICH_MAX_VAL 0x0f030000 enum v4l2_ctrl_type { V4L2_CTRL_TYPE_INTEGER = 1, @@ -1892,6 +1897,7 @@ enum v4l2_ctrl_type { V4L2_CTRL_TYPE_U16 = 0x0101, V4L2_CTRL_TYPE_U32 = 0x0102, V4L2_CTRL_TYPE_AREA = 0x0106, + V4L2_CTRL_TYPE_RECT = 0x0107, V4L2_CTRL_TYPE_HDR10_CLL_INFO = 0x0110, V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY = 0x0111, @@ -1980,6 +1986,7 @@ struct v4l2_querymenu { #define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE 0x0200 #define V4L2_CTRL_FLAG_MODIFY_LAYOUT 0x0400 #define V4L2_CTRL_FLAG_DYNAMIC_ARRAY 0x0800 +#define V4L2_CTRL_FLAG_HAS_WHICH_MIN_MAX 0x1000 /* Query flags, to be ORed with the control ID */ #define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 diff --git a/include/linux/bpf.h b/include/linux/bpf.h index b9139231c3f7..535272c7b312 100644 --- a/include/linux/bpf.h +++ b/include/linux/bpf.h @@ -1116,11 +1116,15 @@ enum bpf_attach_type { BPF_NETKIT_PRIMARY, BPF_NETKIT_PEER, BPF_TRACE_KPROBE_SESSION, + BPF_TRACE_UPROBE_SESSION, __MAX_BPF_ATTACH_TYPE }; #define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE +/* Add BPF_LINK_TYPE(type, name) in bpf_types.h to keep bpf_link_type_strs[] + * in sync with the definitions below. + */ enum bpf_link_type { BPF_LINK_TYPE_UNSPEC = 0, BPF_LINK_TYPE_RAW_TRACEPOINT = 1, @@ -1569,6 +1573,16 @@ union bpf_attr { * If provided, prog_flags should have BPF_F_TOKEN_FD flag set. */ __s32 prog_token_fd; + /* The fd_array_cnt can be used to pass the length of the + * fd_array array. In this case all the [map] file descriptors + * passed in this array will be bound to the program, even if + * the maps are not referenced directly. The functionality is + * similar to the BPF_PROG_BIND_MAP syscall, but maps can be + * used by the verifier during the program load. If provided, + * then the fd_array[0,...,fd_array_cnt-1] is expected to be + * continuous. + */ + __u32 fd_array_cnt; }; struct { /* anonymous struct used by BPF_OBJ_* commands */ @@ -1970,6 +1984,8 @@ union bpf_attr { * program. * Return * The SMP id of the processor running the program. + * Attributes + * __bpf_fastcall * * long bpf_skb_store_bytes(struct sk_buff *skb, u32 offset, const void *from, u32 len, u64 flags) * Description @@ -3101,10 +3117,6 @@ union bpf_attr { * with the **CONFIG_BPF_KPROBE_OVERRIDE** configuration * option, and in this case it only works on functions tagged with * **ALLOW_ERROR_INJECTION** in the kernel code. - * - * Also, the helper is only available for the architectures having - * the CONFIG_FUNCTION_ERROR_INJECTION option. As of this writing, - * x86 architecture is the only one to support this feature. * Return * 0 * @@ -5369,7 +5381,7 @@ union bpf_attr { * Currently, the **flags** must be 0. Currently, nr_loops is * limited to 1 << 23 (~8 million) loops. * - * long (\*callback_fn)(u32 index, void \*ctx); + * long (\*callback_fn)(u64 index, void \*ctx); * * where **index** is the current index in the loop. The index * is zero-indexed. @@ -6047,11 +6059,6 @@ enum { BPF_F_MARK_ENFORCE = (1ULL << 6), }; -/* BPF_FUNC_clone_redirect and BPF_FUNC_redirect flags. */ -enum { - BPF_F_INGRESS = (1ULL << 0), -}; - /* BPF_FUNC_skb_set_tunnel_key and BPF_FUNC_skb_get_tunnel_key flags. */ enum { BPF_F_TUNINFO_IPV6 = (1ULL << 0), @@ -6198,10 +6205,12 @@ enum { BPF_F_BPRM_SECUREEXEC = (1ULL << 0), }; -/* Flags for bpf_redirect_map helper */ +/* Flags for bpf_redirect and bpf_redirect_map helpers */ enum { - BPF_F_BROADCAST = (1ULL << 3), - BPF_F_EXCLUDE_INGRESS = (1ULL << 4), + BPF_F_INGRESS = (1ULL << 0), /* used for skb path */ + BPF_F_BROADCAST = (1ULL << 3), /* used for XDP path */ + BPF_F_EXCLUDE_INGRESS = (1ULL << 4), /* used for XDP path */ +#define BPF_F_REDIRECT_FLAGS (BPF_F_INGRESS | BPF_F_BROADCAST | BPF_F_EXCLUDE_INGRESS) }; #define __bpf_md_ptr(type, name) \ diff --git a/include/linux/media-bus-format.h b/include/linux/media-bus-format.h index d4c1d991014b..ff62056feed5 100644 --- a/include/linux/media-bus-format.h +++ b/include/linux/media-bus-format.h @@ -34,7 +34,7 @@ #define MEDIA_BUS_FMT_FIXED 0x0001 -/* RGB - next is 0x1026 */ +/* RGB - next is 0x1028 */ #define MEDIA_BUS_FMT_RGB444_1X12 0x1016 #define MEDIA_BUS_FMT_RGB444_2X8_PADHI_BE 0x1001 #define MEDIA_BUS_FMT_RGB444_2X8_PADHI_LE 0x1002 @@ -68,6 +68,8 @@ #define MEDIA_BUS_FMT_ARGB8888_1X32 0x100d #define MEDIA_BUS_FMT_RGB888_1X32_PADHI 0x100f #define MEDIA_BUS_FMT_RGB101010_1X30 0x1018 +#define MEDIA_BUS_FMT_RGB101010_1X7X5_SPWG 0x1026 +#define MEDIA_BUS_FMT_RGB101010_1X7X5_JEIDA 0x1027 #define MEDIA_BUS_FMT_RGB666_1X36_CPADLO 0x1020 #define MEDIA_BUS_FMT_RGB888_1X36_CPADLO 0x1021 #define MEDIA_BUS_FMT_RGB121212_1X36 0x1019 diff --git a/include/linux/v4l2-controls.h b/include/linux/v4l2-controls.h index 9fc663e6059e..8c06b28a4b70 100644 --- a/include/linux/v4l2-controls.h +++ b/include/linux/v4l2-controls.h @@ -217,6 +217,13 @@ enum v4l2_colorfx { */ #define V4L2_CID_USER_THP7312_BASE (V4L2_CID_USER_BASE + 0x11c0) +/* + * The base for the uvc driver controls. + * See linux/uvcvideo.h for the list of controls. + * We reserve 64 controls for this driver. + */ +#define V4L2_CID_USER_UVC_BASE (V4L2_CID_USER_BASE + 0x11e0) + /* MPEG-class control IDs */ /* The MPEG controls are applicable to all codec controls * and the 'MPEG' part of the define is historical */ diff --git a/include/linux/v4l2-dv-timings.h b/include/linux/v4l2-dv-timings.h index ef0128c7369c..44a16e0e5a12 100644 --- a/include/linux/v4l2-dv-timings.h +++ b/include/linux/v4l2-dv-timings.h @@ -2,7 +2,7 @@ /* * V4L2 DV timings header. * - * Copyright (C) 2012-2016 Hans Verkuil <hans.verk...@cisco.com> + * Copyright (C) 2012-2016 Hans Verkuil <hansv...@cisco.com> */ #ifndef _V4L2_DV_TIMINGS_H diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index 23db72afdf60..f5f872948de9 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h @@ -833,6 +833,8 @@ struct v4l2_pix_format { /* Vendor specific - used for RaspberryPi PiSP */ #define V4L2_META_FMT_RPI_BE_CFG v4l2_fourcc('R', 'P', 'B', 'C') /* PiSP BE configuration */ +#define V4L2_META_FMT_RPI_FE_CFG v4l2_fourcc('R', 'P', 'F', 'C') /* PiSP FE configuration */ +#define V4L2_META_FMT_RPI_FE_STATS v4l2_fourcc('R', 'P', 'F', 'S') /* PiSP FE stats */ /* priv field value to indicates that subsequent fields are valid. */ @@ -1792,6 +1794,7 @@ struct v4l2_ext_control { __s32 *p_s32; __s64 *p_s64; struct v4l2_area *p_area; + struct v4l2_rect *p_rect; struct v4l2_ctrl_h264_sps *p_h264_sps; struct v4l2_ctrl_h264_pps *p_h264_pps; struct v4l2_ctrl_h264_scaling_matrix *p_h264_scaling_matrix; @@ -1840,6 +1843,8 @@ struct v4l2_ext_controls { #define V4L2_CTRL_WHICH_CUR_VAL 0 #define V4L2_CTRL_WHICH_DEF_VAL 0x0f000000 #define V4L2_CTRL_WHICH_REQUEST_VAL 0x0f010000 +#define V4L2_CTRL_WHICH_MIN_VAL 0x0f020000 +#define V4L2_CTRL_WHICH_MAX_VAL 0x0f030000 enum v4l2_ctrl_type { V4L2_CTRL_TYPE_INTEGER = 1, @@ -1858,6 +1863,7 @@ enum v4l2_ctrl_type { V4L2_CTRL_TYPE_U16 = 0x0101, V4L2_CTRL_TYPE_U32 = 0x0102, V4L2_CTRL_TYPE_AREA = 0x0106, + V4L2_CTRL_TYPE_RECT = 0x0107, V4L2_CTRL_TYPE_HDR10_CLL_INFO = 0x0110, V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY = 0x0111, @@ -1946,6 +1952,7 @@ struct v4l2_querymenu { #define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE 0x0200 #define V4L2_CTRL_FLAG_MODIFY_LAYOUT 0x0400 #define V4L2_CTRL_FLAG_DYNAMIC_ARRAY 0x0800 +#define V4L2_CTRL_FLAG_HAS_WHICH_MIN_MAX 0x1000 /* Query flags, to be ORed with the control ID */ #define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 diff --git a/utils/common/v4l2-pix-formats.h b/utils/common/v4l2-pix-formats.h index 0dc8ebf8af98..9d2dac5508ee 100644 --- a/utils/common/v4l2-pix-formats.h +++ b/utils/common/v4l2-pix-formats.h @@ -199,6 +199,8 @@ case V4L2_PIX_FMT_Y212: return "12-bit YUYV Packed"; case V4L2_PIX_FMT_Y216: return "16-bit YUYV Packed"; case V4L2_META_FMT_RPI_BE_CFG: return "RPi PiSP BE Config format"; + case V4L2_META_FMT_RPI_FE_CFG: return "RPi PiSP FE Config format"; + case V4L2_META_FMT_RPI_FE_STATS: return "RPi PiSP FE Statistics format"; case V4L2_PIX_FMT_MJPEG: return "Motion-JPEG"; case V4L2_PIX_FMT_JPEG: return "JFIF JPEG"; case V4L2_PIX_FMT_DV: return "1394"; diff --git a/utils/common/v4l2-tpg-core.c b/utils/common/v4l2-tpg-core.c index fe19327cd286..e54c49bd7d3e 100644 --- a/utils/common/v4l2-tpg-core.c +++ b/utils/common/v4l2-tpg-core.c @@ -1785,6 +1785,9 @@ static void tpg_precalculate_line(struct tpg_data *tpg) unsigned p; unsigned x; + if (WARN_ON_ONCE(!tpg->src_width || !tpg->scaled_width)) + return; + switch (tpg->pattern) { case TPG_PAT_GREEN: contrast = TPG_COLOR_100_RED; diff --git a/utils/common/v4l2-tpg.h b/utils/common/v4l2-tpg.h index f141e4080f55..216cb75e4ea0 100644 --- a/utils/common/v4l2-tpg.h +++ b/utils/common/v4l2-tpg.h @@ -34,6 +34,7 @@ typedef __s8 s8; #define max3(x, y, z) tpg_max((typeof(x))tpg_max(x, y), z) #define array_size(a, b) ((a) * (b)) #define array3_size(a, b, c) ((a) * (b) * (c)) +#define WARN_ON_ONCE(a) (a) static inline void vfree(void *p) { diff --git a/utils/keytable/parse.h b/utils/keytable/parse.h index 424b2fc92bc3..d81a16cc5830 100644 --- a/utils/keytable/parse.h +++ b/utils/keytable/parse.h @@ -445,6 +445,7 @@ struct parse_event key_events[] = { {"KEY_NOTIFICATION_CENTER", 0x1bc}, {"KEY_PICKUP_PHONE", 0x1bd}, {"KEY_HANGUP_PHONE", 0x1be}, + {"KEY_LINK_PHONE", 0x1bf}, {"KEY_DEL_EOL", 0x1c0}, {"KEY_DEL_EOS", 0x1c1}, {"KEY_INS_LINE", 0x1c2}, diff --git a/utils/keytable/rc_keymaps/meson.build b/utils/keytable/rc_keymaps/meson.build index 829507b47e6d..ecb154ce0d91 100644 --- a/utils/keytable/rc_keymaps/meson.build +++ b/utils/keytable/rc_keymaps/meson.build @@ -119,6 +119,7 @@ ir_keytable_rc_keymaps = files( 'real_audio_220_32_keys.toml', 'reddo.toml', 'samsung_ak59_00125a.toml', + 'siemens_gigaset_rc20.toml', 'snapstream_firefly.toml', 'streamzap.toml', 'su3000.toml', diff --git a/utils/keytable/rc_keymaps/siemens_gigaset_rc20.toml b/utils/keytable/rc_keymaps/siemens_gigaset_rc20.toml new file mode 100644 index 000000000000..9f4b590a2917 --- /dev/null +++ b/utils/keytable/rc_keymaps/siemens_gigaset_rc20.toml @@ -0,0 +1,39 @@ +# Generated with gen_keytables.pl from drivers/media/rc/keymaps/rc-siemens-gigaset-rc20.c +[[protocols]] +name = "siemens_gigaset_rc20" +protocol = "rc5" +variant = "rc5" +[protocols.scancodes] +0x1501 = "KEY_POWER" +0x1502 = "KEY_MUTE" +0x1503 = "KEY_NUMERIC_1" +0x1504 = "KEY_NUMERIC_2" +0x1505 = "KEY_NUMERIC_3" +0x1506 = "KEY_NUMERIC_4" +0x1507 = "KEY_NUMERIC_5" +0x1508 = "KEY_NUMERIC_6" +0x1509 = "KEY_NUMERIC_7" +0x150a = "KEY_NUMERIC_8" +0x150b = "KEY_NUMERIC_9" +0x150c = "KEY_NUMERIC_0" +0x150d = "KEY_UP" +0x150e = "KEY_LEFT" +0x150f = "KEY_OK" +0x1510 = "KEY_RIGHT" +0x1511 = "KEY_DOWN" +0x1512 = "KEY_SHUFFLE" +0x1513 = "KEY_EXIT" +0x1514 = "KEY_RED" +0x1515 = "KEY_GREEN" +0x1516 = "KEY_YELLOW" +0x1517 = "KEY_BLUE" +0x1518 = "KEY_MENU" +0x1519 = "KEY_TEXT" +0x151a = "KEY_MODE" +0x1521 = "KEY_EPG" +0x1522 = "KEY_FAVORITES" +0x1523 = "KEY_CHANNELUP" +0x1524 = "KEY_CHANNELDOWN" +0x1525 = "KEY_VOLUMEUP" +0x1526 = "KEY_VOLUMEDOWN" +0x1527 = "KEY_INFO" diff --git a/utils/keytable/rc_maps.cfg b/utils/keytable/rc_maps.cfg index e366c477dd5c..94806a3b63e4 100644 --- a/utils/keytable/rc_maps.cfg +++ b/utils/keytable/rc_maps.cfg @@ -134,6 +134,7 @@ * rc-rc6-mce rc6_mce.toml * rc-real-audio-220-32-keys real_audio_220_32_keys.toml * rc-reddo reddo.toml +* rc-siemens-gigaset-rc20 siemens_gigaset_rc20.toml * rc-snapstream-firefly snapstream_firefly.toml * rc-streamzap streamzap.toml * rc-su3000 su3000.toml diff --git a/utils/v4l2-tracer/retrace-gen.cpp b/utils/v4l2-tracer/retrace-gen.cpp index 52323a0b0d4d..8554dbb74d58 100644 --- a/utils/v4l2-tracer/retrace-gen.cpp +++ b/utils/v4l2-tracer/retrace-gen.cpp @@ -4076,6 +4076,7 @@ struct v4l2_ext_control *retrace_v4l2_ext_control_gen(json_object *parent_obj, s //__s32 *p_s32; //__s64 *p_s64; //struct v4l2_area *p_area; + //struct v4l2_rect *p_rect; //struct v4l2_ctrl_h264_sps *p_h264_sps; //struct v4l2_ctrl_h264_pps *p_h264_pps; //struct v4l2_ctrl_h264_scaling_matrix *p_h264_scaling_matrix; diff --git a/utils/v4l2-tracer/trace-gen.cpp b/utils/v4l2-tracer/trace-gen.cpp index c1075e771078..cf7c840e9006 100644 --- a/utils/v4l2-tracer/trace-gen.cpp +++ b/utils/v4l2-tracer/trace-gen.cpp @@ -2220,6 +2220,7 @@ void trace_v4l2_ext_control_gen(void *arg, json_object *parent_obj, std::string //__s32 *p_s32; //__s64 *p_s64; //struct v4l2_area *p_area; + //struct v4l2_rect *p_rect; //struct v4l2_ctrl_h264_sps *p_h264_sps; //struct v4l2_ctrl_h264_pps *p_h264_pps; //struct v4l2_ctrl_h264_scaling_matrix *p_h264_scaling_matrix; diff --git a/utils/v4l2-tracer/v4l2-tracer-info-gen.h b/utils/v4l2-tracer/v4l2-tracer-info-gen.h index 79d965bc9066..bcea6ddeabec 100644 --- a/utils/v4l2-tracer/v4l2-tracer-info-gen.h +++ b/utils/v4l2-tracer/v4l2-tracer-info-gen.h @@ -1694,6 +1694,7 @@ constexpr val_def v4l2_ctrl_type_val_def[] = { { V4L2_CTRL_TYPE_U16, "V4L2_CTRL_TYPE_U16" }, { V4L2_CTRL_TYPE_U32, "V4L2_CTRL_TYPE_U32" }, { V4L2_CTRL_TYPE_AREA, "V4L2_CTRL_TYPE_AREA" }, + { V4L2_CTRL_TYPE_RECT, "V4L2_CTRL_TYPE_RECT" }, { V4L2_CTRL_TYPE_HDR10_CLL_INFO, "V4L2_CTRL_TYPE_HDR10_CLL_INFO" }, { V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY, "V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY" }, { V4L2_CTRL_TYPE_H264_SPS, "V4L2_CTRL_TYPE_H264_SPS" }, @@ -1734,6 +1735,7 @@ constexpr flag_def v4l2_ctrl_flag_def[] = { { V4L2_CTRL_FLAG_EXECUTE_ON_WRITE, "V4L2_CTRL_FLAG_EXECUTE_ON_WRITE" }, { V4L2_CTRL_FLAG_MODIFY_LAYOUT, "V4L2_CTRL_FLAG_MODIFY_LAYOUT" }, { V4L2_CTRL_FLAG_DYNAMIC_ARRAY, "V4L2_CTRL_FLAG_DYNAMIC_ARRAY" }, + { V4L2_CTRL_FLAG_HAS_WHICH_MIN_MAX, "V4L2_CTRL_FLAG_HAS_WHICH_MIN_MAX" }, { V4L2_CTRL_FLAG_NEXT_CTRL, "V4L2_CTRL_FLAG_NEXT_CTRL" }, { V4L2_CTRL_FLAG_NEXT_COMPOUND, "V4L2_CTRL_FLAG_NEXT_COMPOUND" }, { 0, "" }