Download raw body.
sys/videoio.h: sync with Linux
On Sun, 05 Oct 2025 01:03:04 +0200,
Kirill A. Korinsky <kirill@korins.ky> wrote:
>
> tech@,
>
> Linux had included a few more trivial changes into files which we used to
> make our sys/videoio.h.
>
> All changes looks like cosmetics.
>
> But I had run a bulk build with new sys/videoio.h
>
> No regression, as expected.
>
> Ok?
>
A bad wording here. I mean Ok after 7.8 is released.
> Changes:
>
> 1. media: uapi: Cleanup tab after define in headers
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=481c12018c252f7fc88b4bd05e882b9e1bf260c3
>
> 2. media: uapi: Move colorimetry controls at the end of the file
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4247053aaacda75480e1918e0d58a687ae5a266a
>
> 3. media: include: update Hans Verkuil's email address
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e8c8d961d8ad53d8d104d7474c08d8e4626c7767
>
> 4. media: uapi: v4l2-controls: Cleanup codec definitions
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=34837c444cd42236b2b43ce871f30d83776a3431
>
> 5. media: uapi: Cleanup tab after define in headers
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=481c12018c252f7fc88b4bd05e882b9e1bf260c3
>
>
> Diff:
>
> Index: sys/sys/videoio.h
> ===================================================================
> RCS file: /home/cvs/src/sys/sys/videoio.h,v
> diff -u -p -r1.26 videoio.h
> --- sys/sys/videoio.h 2 Aug 2025 09:27:59 -0000 1.26
> +++ sys/sys/videoio.h 2 Oct 2025 21:18:27 -0000
> @@ -54,7 +54,7 @@
> *
> * Author: Bill Dirks <bill@thedirks.org>
> * Justin Schoeman
> - * Hans Verkuil <hverkuil@xs4all.nl>
> + * Hans Verkuil <hverkuil@kernel.org>
> * et al.
> */
>
> @@ -1306,7 +1306,7 @@ enum v4l2_flash_strobe_source {
> #define V4L2_CID_JPEG_CLASS_BASE (V4L2_CTRL_CLASS_JPEG | 0x900)
> #define V4L2_CID_JPEG_CLASS (V4L2_CTRL_CLASS_JPEG | 1)
>
> -#define V4L2_CID_JPEG_CHROMA_SUBSAMPLING (V4L2_CID_JPEG_CLASS_BASE + 1)
> +#define V4L2_CID_JPEG_CHROMA_SUBSAMPLING (V4L2_CID_JPEG_CLASS_BASE + 1)
> enum v4l2_jpeg_chroma_subsampling {
> V4L2_JPEG_CHROMA_SUBSAMPLING_444 = 0,
> V4L2_JPEG_CHROMA_SUBSAMPLING_422 = 1,
> @@ -1315,15 +1315,15 @@ enum v4l2_jpeg_chroma_subsampling {
> V4L2_JPEG_CHROMA_SUBSAMPLING_410 = 4,
> V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY = 5,
> };
> -#define V4L2_CID_JPEG_RESTART_INTERVAL (V4L2_CID_JPEG_CLASS_BASE + 2)
> -#define V4L2_CID_JPEG_COMPRESSION_QUALITY (V4L2_CID_JPEG_CLASS_BASE + 3)
> +#define V4L2_CID_JPEG_RESTART_INTERVAL (V4L2_CID_JPEG_CLASS_BASE + 2)
> +#define V4L2_CID_JPEG_COMPRESSION_QUALITY (V4L2_CID_JPEG_CLASS_BASE + 3)
>
> -#define V4L2_CID_JPEG_ACTIVE_MARKER (V4L2_CID_JPEG_CLASS_BASE + 4)
> -#define V4L2_JPEG_ACTIVE_MARKER_APP0 (1 << 0)
> -#define V4L2_JPEG_ACTIVE_MARKER_APP1 (1 << 1)
> -#define V4L2_JPEG_ACTIVE_MARKER_COM (1 << 16)
> -#define V4L2_JPEG_ACTIVE_MARKER_DQT (1 << 17)
> -#define V4L2_JPEG_ACTIVE_MARKER_DHT (1 << 18)
> +#define V4L2_CID_JPEG_ACTIVE_MARKER (V4L2_CID_JPEG_CLASS_BASE + 4)
> +#define V4L2_JPEG_ACTIVE_MARKER_APP0 (1 << 0)
> +#define V4L2_JPEG_ACTIVE_MARKER_APP1 (1 << 1)
> +#define V4L2_JPEG_ACTIVE_MARKER_COM (1 << 16)
> +#define V4L2_JPEG_ACTIVE_MARKER_DQT (1 << 17)
> +#define V4L2_JPEG_ACTIVE_MARKER_DHT (1 << 18)
>
>
> /* Image source controls */
> @@ -1356,10 +1356,10 @@ enum v4l2_jpeg_chroma_subsampling {
> #define V4L2_CID_DV_CLASS_BASE (V4L2_CTRL_CLASS_DV | 0x900)
> #define V4L2_CID_DV_CLASS (V4L2_CTRL_CLASS_DV | 1)
>
> -#define V4L2_CID_DV_TX_HOTPLUG (V4L2_CID_DV_CLASS_BASE + 1)
> -#define V4L2_CID_DV_TX_RXSENSE (V4L2_CID_DV_CLASS_BASE + 2)
> -#define V4L2_CID_DV_TX_EDID_PRESENT (V4L2_CID_DV_CLASS_BASE + 3)
> -#define V4L2_CID_DV_TX_MODE (V4L2_CID_DV_CLASS_BASE + 4)
> +#define V4L2_CID_DV_TX_HOTPLUG (V4L2_CID_DV_CLASS_BASE + 1)
> +#define V4L2_CID_DV_TX_RXSENSE (V4L2_CID_DV_CLASS_BASE + 2)
> +#define V4L2_CID_DV_TX_EDID_PRESENT (V4L2_CID_DV_CLASS_BASE + 3)
> +#define V4L2_CID_DV_TX_MODE (V4L2_CID_DV_CLASS_BASE + 4)
> enum v4l2_dv_tx_mode {
> V4L2_DV_TX_MODE_DVI_D = 0,
> V4L2_DV_TX_MODE_HDMI = 1,
> @@ -1380,7 +1380,7 @@ enum v4l2_dv_it_content_type {
> V4L2_DV_IT_CONTENT_TYPE_NO_ITC = 4,
> };
>
> -#define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100)
> +#define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100)
> #define V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101)
> #define V4L2_CID_DV_RX_IT_CONTENT_TYPE (V4L2_CID_DV_CLASS_BASE + 102)
>
> @@ -1650,15 +1650,6 @@ struct v4l2_ctrl_h264_pred_weights {
> struct v4l2_h264_weight_factors weight_factors[2];
> };
>
> -#define V4L2_H264_SLICE_TYPE_P 0
> -#define V4L2_H264_SLICE_TYPE_B 1
> -#define V4L2_H264_SLICE_TYPE_I 2
> -#define V4L2_H264_SLICE_TYPE_SP 3
> -#define V4L2_H264_SLICE_TYPE_SI 4
> -
> -#define V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED 0x01
> -#define V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH 0x02
> -
> #define V4L2_H264_TOP_FIELD_REF 0x1
> #define V4L2_H264_BOTTOM_FIELD_REF 0x2
> #define V4L2_H264_FRAME_REF 0x3
> @@ -1679,8 +1670,17 @@ struct v4l2_h264_reference {
> * Maximum DPB size, as specified by section 'A.3.1 Level limits
> * common to the Baseline, Main, and Extended profiles'.
> */
> -#define V4L2_H264_NUM_DPB_ENTRIES 16
> -#define V4L2_H264_REF_LIST_LEN (2 * V4L2_H264_NUM_DPB_ENTRIES)
> +#define V4L2_H264_NUM_DPB_ENTRIES 16
> +#define V4L2_H264_REF_LIST_LEN (2 * V4L2_H264_NUM_DPB_ENTRIES)
> +
> +#define V4L2_H264_SLICE_TYPE_P 0
> +#define V4L2_H264_SLICE_TYPE_B 1
> +#define V4L2_H264_SLICE_TYPE_I 2
> +#define V4L2_H264_SLICE_TYPE_SP 3
> +#define V4L2_H264_SLICE_TYPE_SI 4
> +
> +#define V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED 0x01
> +#define V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH 0x02
>
> #define V4L2_CID_STATELESS_H264_SLICE_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 6)
> /**
> @@ -1820,7 +1820,6 @@ struct v4l2_ctrl_h264_decode_params {
> u_int32_t flags;
> };
>
> -
> /* Stateless FWHT control, used by the vicodec driver */
>
> /* Current FWHT version */
> @@ -2662,44 +2661,10 @@ struct v4l2_ctrl_hevc_scaling_matrix {
> u_int8_t scaling_list_dc_coef_32x32[2];
> };
>
> -#define V4L2_CID_COLORIMETRY_CLASS_BASE (V4L2_CTRL_CLASS_COLORIMETRY | 0x900)
> -#define V4L2_CID_COLORIMETRY_CLASS (V4L2_CTRL_CLASS_COLORIMETRY | 1)
> -
> -#define V4L2_CID_COLORIMETRY_HDR10_CLL_INFO (V4L2_CID_COLORIMETRY_CLASS_BASE + 0)
> -
> -struct v4l2_ctrl_hdr10_cll_info {
> - u_int16_t max_content_light_level;
> - u_int16_t max_pic_average_light_level;
> -};
> -
> -#define V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY (V4L2_CID_COLORIMETRY_CLASS_BASE + 1)
> -
> -#define V4L2_HDR10_MASTERING_PRIMARIES_X_LOW 5
> -#define V4L2_HDR10_MASTERING_PRIMARIES_X_HIGH 37000
> -#define V4L2_HDR10_MASTERING_PRIMARIES_Y_LOW 5
> -#define V4L2_HDR10_MASTERING_PRIMARIES_Y_HIGH 42000
> -#define V4L2_HDR10_MASTERING_WHITE_POINT_X_LOW 5
> -#define V4L2_HDR10_MASTERING_WHITE_POINT_X_HIGH 37000
> -#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_LOW 5
> -#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_HIGH 42000
> -#define V4L2_HDR10_MASTERING_MAX_LUMA_LOW 50000
> -#define V4L2_HDR10_MASTERING_MAX_LUMA_HIGH 100000000
> -#define V4L2_HDR10_MASTERING_MIN_LUMA_LOW 1
> -#define V4L2_HDR10_MASTERING_MIN_LUMA_HIGH 50000
> -
> -struct v4l2_ctrl_hdr10_mastering_display {
> - u_int16_t display_primaries_x[3];
> - u_int16_t display_primaries_y[3];
> - u_int16_t white_point_x;
> - u_int16_t white_point_y;
> - u_int32_t max_display_mastering_luminance;
> - u_int32_t min_display_mastering_luminance;
> -};
> -
> /* Stateless VP9 controls */
>
> #define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_ENABLED 0x1
> -#define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPDATE 0x2
> +#define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPDATE 0x2
>
> /**
> * struct v4l2_vp9_loop_filter - VP9 loop filter parameters
> @@ -3625,6 +3590,40 @@ struct v4l2_ctrl_av1_film_grain {
> #define V4L2_CID_MPEG_BASE V4L2_CID_CODEC_BASE
> #define V4L2_CID_MPEG_CX2341X_BASE V4L2_CID_CODEC_CX2341X_BASE
> #define V4L2_CID_MPEG_MFC51_BASE V4L2_CID_CODEC_MFC51_BASE
> +#define V4L2_CID_COLORIMETRY_CLASS_BASE (V4L2_CTRL_CLASS_COLORIMETRY | 0x900)
> +#define V4L2_CID_COLORIMETRY_CLASS (V4L2_CTRL_CLASS_COLORIMETRY | 1)
> +
> +#define V4L2_CID_COLORIMETRY_HDR10_CLL_INFO (V4L2_CID_COLORIMETRY_CLASS_BASE + 0)
> +
> +struct v4l2_ctrl_hdr10_cll_info {
> + u_int16_t max_content_light_level;
> + u_int16_t max_pic_average_light_level;
> +};
> +
> +#define V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY (V4L2_CID_COLORIMETRY_CLASS_BASE + 1)
> +
> +#define V4L2_HDR10_MASTERING_PRIMARIES_X_LOW 5
> +#define V4L2_HDR10_MASTERING_PRIMARIES_X_HIGH 37000
> +#define V4L2_HDR10_MASTERING_PRIMARIES_Y_LOW 5
> +#define V4L2_HDR10_MASTERING_PRIMARIES_Y_HIGH 42000
> +#define V4L2_HDR10_MASTERING_WHITE_POINT_X_LOW 5
> +#define V4L2_HDR10_MASTERING_WHITE_POINT_X_HIGH 37000
> +#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_LOW 5
> +#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_HIGH 42000
> +#define V4L2_HDR10_MASTERING_MAX_LUMA_LOW 50000
> +#define V4L2_HDR10_MASTERING_MAX_LUMA_HIGH 100000000
> +#define V4L2_HDR10_MASTERING_MIN_LUMA_LOW 1
> +#define V4L2_HDR10_MASTERING_MIN_LUMA_HIGH 50000
> +
> +struct v4l2_ctrl_hdr10_mastering_display {
> + u_int16_t display_primaries_x[3];
> + u_int16_t display_primaries_y[3];
> + u_int16_t white_point_x;
> + u_int16_t white_point_y;
> + u_int32_t max_display_mastering_luminance;
> + u_int32_t min_display_mastering_luminance;
> +};
> +
> /*
> * End of v4l2-controls.h
> */
> @@ -5108,8 +5107,8 @@ struct v4l2_bt_timings {
> } __attribute__ ((packed));
>
> /* Interlaced or progressive format */
> -#define V4L2_DV_PROGRESSIVE 0
> -#define V4L2_DV_INTERLACED 1
> +#define V4L2_DV_PROGRESSIVE 0
> +#define V4L2_DV_INTERLACED 1
>
> /* Polarities. If bit is not set, it is assumed to be negative polarity */
> #define V4L2_DV_VSYNC_POS_POL 0x00000001
> @@ -6281,15 +6280,15 @@ struct v4l2_remove_buffers {
> * Only implemented if CONFIG_VIDEO_ADV_DEBUG is defined.
> * You must be root to use these ioctls. Never use these in applications!
> */
> -#define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_dbg_register)
> -#define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_dbg_register)
> +#define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_dbg_register)
> +#define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_dbg_register)
>
> #define VIDIOC_S_HW_FREQ_SEEK _IOW('V', 82, struct v4l2_hw_freq_seek)
> -#define VIDIOC_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings)
> -#define VIDIOC_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings)
> -#define VIDIOC_DQEVENT _IOR('V', 89, struct v4l2_event)
> -#define VIDIOC_SUBSCRIBE_EVENT _IOW('V', 90, struct v4l2_event_subscription)
> -#define VIDIOC_UNSUBSCRIBE_EVENT _IOW('V', 91, struct v4l2_event_subscription)
> +#define VIDIOC_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings)
> +#define VIDIOC_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings)
> +#define VIDIOC_DQEVENT _IOR('V', 89, struct v4l2_event)
> +#define VIDIOC_SUBSCRIBE_EVENT _IOW('V', 90, struct v4l2_event_subscription)
> +#define VIDIOC_UNSUBSCRIBE_EVENT _IOW('V', 91, struct v4l2_event_subscription)
> #define VIDIOC_CREATE_BUFS _IOWR('V', 92, struct v4l2_create_buffers)
> #define VIDIOC_PREPARE_BUF _IOWR('V', 93, struct v4l2_buffer)
> #define VIDIOC_G_SELECTION _IOWR('V', 94, struct v4l2_selection)
>
--
wbr, Kirill
sys/videoio.h: sync with Linux