Index | Thread | Search

From:
Marcus Glocker <marcus@nazgul.ch>
Subject:
Re: sys/videoio.h: sync V4L2 with Linux-6.13-rc6
To:
"Kirill A. Korinsky" <kirill@korins.ky>, Jeremie Courreges-Anglas <jca@wxcvbn.org>
Cc:
tech@openbsd.org
Date:
Mon, 13 Jan 2025 20:40:38 +0100

Download raw body.

Thread
On Mon, Jan 13, 2025 at 07:23:24PM GMT, Kirill A. Korinsky wrote:

> On Mon, 13 Jan 2025 19:08:51 +0100,
> Marcus Glocker <marcus@nazgul.ch> 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.

I think it's OK to commit altogether.  If we would need to revert
(which I think is either unlikely), we also can revert the man page --
no big deal.  Lets wait for the bulk build results :-)

jca, you also build chromium*, yes?
 
> > 
> > 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
>