From: Kirill A. Korinsky Subject: Re: sys/videoio.h: sync V4L2 with Linux-6.13-rc6 To: Marcus Glocker Cc: Jeremie Courreges-Anglas , tech@openbsd.org Date: Mon, 13 Jan 2025 19:23:24 +0100 On Mon, 13 Jan 2025 19:08:51 +0100, Marcus Glocker wrote: > > 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. > We defently need it. I think that it wise to commit it as the second step after some time if we hadn't reverted the first one. > > 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; -- wbr, Kirill