From: Kirill A. Korinsky Subject: Re: sys/videoio.h: sync with Linux To: tech@openbsd.org Date: Sun, 05 Oct 2025 01:58:46 +0200 On Sun, 05 Oct 2025 01:03:04 +0200, Kirill A. Korinsky 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 > * Justin Schoeman > - * Hans Verkuil > + * Hans Verkuil > * 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