Index | Thread | Search

From:
Kirill A. Korinsky <kirill@korins.ky>
Subject:
Re: sys/videoio.h: sync with Linux
To:
tech@openbsd.org
Date:
Sun, 05 Oct 2025 01:58:46 +0200

Download raw body.

Thread
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