From: Marcus Glocker Subject: Re: sys/videoio.h: sync V4L2 with Linux-6.13-rc6 To: Jeremie Courreges-Anglas , "Kirill A. Korinsky" Cc: tech@openbsd.org Date: Mon, 13 Jan 2025 19:08:51 +0100 We probably also should update the video(4) man page with the objects which have changed when we want to update the sys/videoio.h file. That's what I've spotted so far. 'ycbcr_enc' is even a typo (duplicate) in the current man page. Index: share/man/man4/video.4 =================================================================== RCS file: /cvs/src/share/man/man4/video.4,v diff -u -p -u -p -r1.20 video.4 --- share/man/man4/video.4 31 Mar 2022 17:27:21 -0000 1.20 +++ share/man/man4/video.4 13 Jan 2025 17:59:35 -0000 @@ -80,7 +80,8 @@ struct v4l2_fmtdesc { u_int32_t flags; u_int8_t description[32]; u_int32_t pixelformat; - u_int32_t reserved[4]; + u_int32_t mbus_code; + u_int32_t reserved[3]; }; .Ed .It Dv VIDIOC_S_FMT Fa "struct v4l2_format *" @@ -95,6 +96,7 @@ struct v4l2_format { struct v4l2_vbi_format vbi; struct v4l2_sliced_vbi_format sliced; struct v4l2_sdr_format sdr; + struct v4l2_meta_format meta; u_int8_t raw_data[200]; } fmt; }; @@ -130,7 +132,9 @@ struct v4l2_requestbuffers { u_int32_t count; u_int32_t type; u_int32_t memory; - u_int32_t reserved[2]; + u_int32_t capabilities; + u_Int32_t flags; + u_int32_t reserved[3]; }; .Ed .It Dv VIDIOC_QUERYBUF Fa "struct v4l2_buffer *" @@ -154,7 +158,10 @@ struct v4l2_buffer { } m; u_int32_t length; u_int32_t reserved2; - u_int32_t reserved; + union { + int32_t request_fd; + u_int32_t reserved; + } }; .Ed .It Dv VIDIOC_QBUF Fa "struct v4l2_buffer *" @@ -265,6 +272,9 @@ enum v4l2_buf_type { V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE = 10, V4L2_BUF_TYPE_SDR_CAPTURE = 11, V4L2_BUF_TYPE_SDR_OUTPUT = 12, + V4L2_BUF_TYPE_META_CAPTURE = 13, + V4L2_BUF_TYPE_META_OUTPUT = 14, + /* Deprecated, do not use */ V4L2_BUF_TYPE_PRIVATE = 0x80, }; @@ -289,6 +299,40 @@ enum v4l2_ctrl_type { V4L2_CTRL_TYPE_U8 = 0x0100, V4L2_CTRL_TYPE_U16 = 0x0101, V4L2_CTRL_TYPE_U32 = 0x0102, + V4L2_CTRL_TYPE_AREA = 0x0106, + + /* Compound types are >= 0x0100 */ + V4L2_CTRL_TYPE_HDR10_CLL_INFO = 0x0110, + V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY = 0x0111, + + V4L2_CTRL_TYPE_H264_SPS = 0x0200, + V4L2_CTRL_TYPE_H264_PPS = 0x0201, + V4L2_CTRL_TYPE_H264_SCALING_MATRIX = 0x0202, + V4L2_CTRL_TYPE_H264_SLICE_PARAMS = 0x0203, + V4L2_CTRL_TYPE_H264_DECODE_PARAMS = 0x0204, + V4L2_CTRL_TYPE_H264_PRED_WEIGHTS = 0x0205, + + V4L2_CTRL_TYPE_FWHT_PARAMS = 0x0220, + + V4L2_CTRL_TYPE_VP8_FRAME = 0x0240, + + V4L2_CTRL_TYPE_MPEG2_QUANTISATION = 0x0250, + V4L2_CTRL_TYPE_MPEG2_SEQUENCE = 0x0251, + V4L2_CTRL_TYPE_MPEG2_PICTURE = 0x0252, + + V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR = 0x0260, + V4L2_CTRL_TYPE_VP9_FRAME = 0x0261, + + V4L2_CTRL_TYPE_HEVC_SPS = 0x0270, + V4L2_CTRL_TYPE_HEVC_PPS = 0x0271, + V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS = 0x0272, + V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX = 0x0273, + V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS = 0x0274, + + V4L2_CTRL_TYPE_AV1_SEQUENCE = 0x280, + V4L2_CTRL_TYPE_AV1_TILE_GROUP_ENTRY = 0x281, + V4L2_CTRL_TYPE_AV1_FRAME = 0x282, + V4L2_CTRL_TYPE_AV1_FILM_GRAIN = 0x283, }; enum v4l2_frmivaltypes { @@ -310,7 +354,6 @@ struct v4l2_pix_format { u_int32_t colorspace; u_int32_t priv; u_int32_t flags; - u_int32_t ycbcr_enc; union { u_int32_t ycbcr_enc; u_int32_t hsv_enc; @@ -323,7 +366,7 @@ struct v4l2_window { struct v4l2_rect w; u_int32_t field; u_int32_t chromakey; - struct v4l2_clip __user *clips; + struct v4l2_clip *clips; u_int32_t clipcount; void __user *bitmap; u_int8_t global_alpha;