github.com/google/syzkaller@v0.0.0-20240517125934-c0f1611a36d6/sys/linux/dev_video4linux.txt (about)

     1  # Copyright 2018 syzkaller project authors. All rights reserved.
     2  # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
     3  
     4  include <linux/time.h>
     5  include <linux/types.h>
     6  include <uapi/asm/ioctl.h>
     7  include <uapi/linux/fcntl.h>
     8  include <uapi/linux/videodev2.h>
     9  include <uapi/linux/v4l2-common.h>
    10  include <uapi/linux/v4l2-subdev.h>
    11  include <uapi/linux/v4l2-mediabus.h>
    12  include <uapi/linux/media-bus-format.h>
    13  include <uapi/linux/v4l2-controls.h>
    14  include <uapi/linux/media.h>
    15  
    16  resource fd_video[fd]
    17  resource fd_v4l2_buffer[fd]
    18  
    19  syz_open_dev$video(dev ptr[in, string["/dev/video#"]], id intptr, flags flags[open_flags]) fd_video
    20  syz_open_dev$video4linux(dev ptr[in, string["/dev/v4l-subdev#"]], id intptr, flags flags[open_flags]) fd_video
    21  
    22  # TODO: we now get wrong values for ioctl commands that involve v4l2_buffer and v4l2_event.
    23  # Our definition uses 32-bit timespec, while kernel uses 64-bit timespec when __KERNEL__ is defined.
    24  
    25  # Special support for CONFIG_VIDEO_VIMC/VIM2M/VIVID/VICODEC.
    26  # Here we assume that all of them are enabled and the following arguments are passed on command line:
    27  # vivid.n_devs=16 vivid.multiplanar=1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2
    28  openat$vimc0(fd const[AT_FDCWD], file ptr[in, string["/dev/video0"]], flags const[O_RDWR], mode const[0]) fd_video
    29  openat$vimc1(fd const[AT_FDCWD], file ptr[in, string["/dev/video1"]], flags const[O_RDWR], mode const[0]) fd_video
    30  openat$vimc2(fd const[AT_FDCWD], file ptr[in, string["/dev/video2"]], flags const[O_RDWR], mode const[0]) fd_video
    31  syz_open_dev$vivid(dev ptr[in, string["/dev/video#"]], id proc[3, 4], flags const[O_RDWR]) fd_video
    32  openat$vicodec0(fd const[AT_FDCWD], file ptr[in, string["/dev/video36"]], flags const[O_RDWR], mode const[0]) fd_video
    33  openat$vicodec1(fd const[AT_FDCWD], file ptr[in, string["/dev/video37"]], flags const[O_RDWR], mode const[0]) fd_video
    34  # TODO: there are some complex rules as to what ioctl's are applicable to what devices
    35  # (see determine_valid_ioctls in v4l2-dev.c). We don't have these rules described.
    36  # Currently we just apply all ioctl's to all v4l devices.
    37  syz_open_dev$swradio(dev ptr[in, string["/dev/swradio#"]], id proc[0, 2], flags const[O_RDWR]) fd_video
    38  syz_open_dev$radio(dev ptr[in, string["/dev/radio#"]], id proc[0, 4], flags const[O_RDWR]) fd_video
    39  syz_open_dev$vbi(dev ptr[in, string["/dev/vbi#"]], id proc[0, 4], flags const[O_RDWR]) fd_video
    40  
    41  ioctl$VIDIOC_QUERYCAP(fd fd_video, cmd const[VIDIOC_QUERYCAP], arg ptr[out, v4l2_capability])
    42  ioctl$VIDIOC_ENUM_FMT(fd fd_video, cmd const[VIDIOC_ENUM_FMT], arg ptr[inout, v4l2_fmtdesc[v4l2_buf_type]])
    43  ioctl$VIDIOC_G_FMT(fd fd_video, cmd const[VIDIOC_G_FMT], arg ptr[inout, v4l2_format[v4l2_buf_type]])
    44  ioctl$VIDIOC_S_FMT(fd fd_video, cmd const[VIDIOC_S_FMT], arg ptr[inout, v4l2_format[v4l2_buf_type]])
    45  ioctl$VIDIOC_REQBUFS(fd fd_video, cmd const[VIDIOC_REQBUFS], arg ptr[inout, v4l2_requestbuffers[v4l2_buf_type]])
    46  # This variant serves as fd_v4l2_buffer constructor.
    47  # Potentially more ioctl can create fd_v4l2_buffer, but the kernel code is hard to understand.
    48  ioctl$VIDIOC_QUERYBUF_DMABUF(fd fd_video, cmd const[VIDIOC_QUERYBUF], arg ptr[inout, v4l2_buffer[v4l2_buf_type, V4L2_MEMORY_DMABUF, fd_v4l2_buffer]])
    49  ioctl$VIDIOC_QUERYBUF(fd fd_video, cmd const[VIDIOC_QUERYBUF], arg ptr[inout, v4l2_buffer_t[v4l2_buf_type]])
    50  ioctl$VIDIOC_G_FBUF(fd fd_video, cmd const[VIDIOC_G_FBUF], arg ptr[inout, v4l2_framebuffer])
    51  ioctl$VIDIOC_S_FBUF(fd fd_video, cmd const[VIDIOC_S_FBUF], arg ptr[in, v4l2_framebuffer])
    52  ioctl$VIDIOC_OVERLAY(fd fd_video, cmd const[VIDIOC_OVERLAY], arg ptr[in, int32])
    53  ioctl$VIDIOC_QBUF(fd fd_video, cmd const[VIDIOC_QBUF], arg ptr[inout, v4l2_buffer_t[v4l2_buf_type]])
    54  ioctl$VIDIOC_EXPBUF(fd fd_video, cmd const[VIDIOC_EXPBUF], arg ptr[inout, v4l2_exportbuffer[v4l2_buf_type]])
    55  ioctl$VIDIOC_DQBUF(fd fd_video, cmd const[VIDIOC_DQBUF], arg ptr[inout, v4l2_buffer_t[v4l2_buf_type]])
    56  ioctl$VIDIOC_STREAMON(fd fd_video, cmd const[VIDIOC_STREAMON], arg ptr[in, int32])
    57  ioctl$VIDIOC_STREAMOFF(fd fd_video, cmd const[VIDIOC_STREAMOFF], arg ptr[in, int32])
    58  ioctl$VIDIOC_G_PARM(fd fd_video, cmd const[VIDIOC_G_PARM], arg ptr[inout, v4l2_streamparm])
    59  ioctl$VIDIOC_S_PARM(fd fd_video, cmd const[VIDIOC_S_PARM], arg ptr[inout, v4l2_streamparm])
    60  ioctl$VIDIOC_G_STD(fd fd_video, cmd const[VIDIOC_G_STD], arg ptr[out, v4l2_std_id])
    61  ioctl$VIDIOC_S_STD(fd fd_video, cmd const[VIDIOC_S_STD], arg ptr[in, v4l2_std_id])
    62  ioctl$VIDIOC_ENUMSTD(fd fd_video, cmd const[VIDIOC_ENUMSTD], arg ptr[inout, v4l2_standard])
    63  ioctl$VIDIOC_ENUMINPUT(fd fd_video, cmd const[VIDIOC_ENUMINPUT], arg ptr[inout, v4l2_input])
    64  ioctl$VIDIOC_G_CTRL(fd fd_video, cmd const[VIDIOC_G_CTRL], arg ptr[inout, v4l2_control])
    65  ioctl$VIDIOC_S_CTRL(fd fd_video, cmd const[VIDIOC_S_CTRL], arg ptr[inout, v4l2_control])
    66  ioctl$VIDIOC_G_TUNER(fd fd_video, cmd const[VIDIOC_G_TUNER], arg ptr[inout, v4l2_tuner])
    67  ioctl$VIDIOC_S_TUNER(fd fd_video, cmd const[VIDIOC_S_TUNER], arg ptr[in, v4l2_tuner])
    68  ioctl$VIDIOC_G_AUDIO(fd fd_video, cmd const[VIDIOC_G_AUDIO], arg ptr[out, v4l2_audio])
    69  ioctl$VIDIOC_S_AUDIO(fd fd_video, cmd const[VIDIOC_S_AUDIO], arg ptr[in, v4l2_audio])
    70  ioctl$VIDIOC_QUERYCTRL(fd fd_video, cmd const[VIDIOC_QUERYCTRL], arg ptr[inout, v4l2_queryctrl])
    71  ioctl$VIDIOC_QUERYMENU(fd fd_video, cmd const[VIDIOC_QUERYMENU], arg ptr[inout, v4l2_querymenu])
    72  ioctl$VIDIOC_G_INPUT(fd fd_video, cmd const[VIDIOC_G_INPUT], arg ptr[out, int32])
    73  ioctl$VIDIOC_S_INPUT(fd fd_video, cmd const[VIDIOC_S_INPUT], arg ptr[inout, int32])
    74  ioctl$VIDIOC_G_EDID(fd fd_video, cmd const[VIDIOC_G_EDID], arg ptr[inout, v4l2_edid])
    75  ioctl$VIDIOC_S_EDID(fd fd_video, cmd const[VIDIOC_S_EDID], arg ptr[inout, v4l2_edid])
    76  ioctl$VIDIOC_G_OUTPUT(fd fd_video, cmd const[VIDIOC_G_OUTPUT], arg ptr[out, int32])
    77  ioctl$VIDIOC_S_OUTPUT(fd fd_video, cmd const[VIDIOC_S_OUTPUT], arg ptr[inout, int32])
    78  ioctl$VIDIOC_ENUMOUTPUT(fd fd_video, cmd const[VIDIOC_ENUMOUTPUT], arg ptr[inout, v4l2_output])
    79  ioctl$VIDIOC_G_AUDOUT(fd fd_video, cmd const[VIDIOC_G_AUDOUT], arg ptr[out, v4l2_audioout])
    80  ioctl$VIDIOC_S_AUDOUT(fd fd_video, cmd const[VIDIOC_S_AUDOUT], arg ptr[in, v4l2_audioout])
    81  ioctl$VIDIOC_G_MODULATOR(fd fd_video, cmd const[VIDIOC_G_MODULATOR], arg ptr[inout, v4l2_modulator])
    82  ioctl$VIDIOC_S_MODULATOR(fd fd_video, cmd const[VIDIOC_S_MODULATOR], arg ptr[in, v4l2_modulator])
    83  ioctl$VIDIOC_G_FREQUENCY(fd fd_video, cmd const[VIDIOC_G_FREQUENCY], arg ptr[inout, v4l2_frequency])
    84  ioctl$VIDIOC_S_FREQUENCY(fd fd_video, cmd const[VIDIOC_S_FREQUENCY], arg ptr[in, v4l2_frequency])
    85  ioctl$VIDIOC_CROPCAP(fd fd_video, cmd const[VIDIOC_CROPCAP], arg ptr[inout, v4l2_cropcap])
    86  ioctl$VIDIOC_G_CROP(fd fd_video, cmd const[VIDIOC_G_CROP], arg ptr[inout, v4l2_crop])
    87  ioctl$VIDIOC_S_CROP(fd fd_video, cmd const[VIDIOC_S_CROP], arg ptr[in, v4l2_crop])
    88  ioctl$VIDIOC_G_JPEGCOMP(fd fd_video, cmd const[VIDIOC_G_JPEGCOMP], arg ptr[out, v4l2_jpegcompression])
    89  ioctl$VIDIOC_S_JPEGCOMP(fd fd_video, cmd const[VIDIOC_S_JPEGCOMP], arg ptr[in, v4l2_jpegcompression])
    90  ioctl$VIDIOC_QUERYSTD(fd fd_video, cmd const[VIDIOC_QUERYSTD], arg ptr[out, v4l2_std_id])
    91  ioctl$VIDIOC_TRY_FMT(fd fd_video, cmd const[VIDIOC_TRY_FMT], arg ptr[inout, v4l2_format[v4l2_buf_type]])
    92  ioctl$VIDIOC_ENUMAUDIO(fd fd_video, cmd const[VIDIOC_ENUMAUDIO], arg ptr[inout, v4l2_audio])
    93  ioctl$VIDIOC_ENUMAUDOUT(fd fd_video, cmd const[VIDIOC_ENUMAUDOUT], arg ptr[inout, v4l2_audioout])
    94  ioctl$VIDIOC_G_PRIORITY(fd fd_video, cmd const[VIDIOC_G_PRIORITY], arg flags[v4l2_priority])
    95  ioctl$VIDIOC_S_PRIORITY(fd fd_video, cmd const[VIDIOC_S_PRIORITY], arg flags[v4l2_priority])
    96  ioctl$VIDIOC_G_SLICED_VBI_CAP(fd fd_video, cmd const[VIDIOC_G_SLICED_VBI_CAP], arg ptr[inout, v4l2_sliced_vbi_cap])
    97  ioctl$VIDIOC_LOG_STATUS(fd fd_video, cmd const[VIDIOC_LOG_STATUS], arg const[0])
    98  ioctl$VIDIOC_G_EXT_CTRLS(fd fd_video, cmd const[VIDIOC_G_EXT_CTRLS], arg ptr[inout, v4l2_ext_controls])
    99  ioctl$VIDIOC_S_EXT_CTRLS(fd fd_video, cmd const[VIDIOC_S_EXT_CTRLS], arg ptr[inout, v4l2_ext_controls])
   100  ioctl$VIDIOC_TRY_EXT_CTRLS(fd fd_video, cmd const[VIDIOC_TRY_EXT_CTRLS], arg ptr[inout, v4l2_ext_controls])
   101  ioctl$VIDIOC_ENUM_FRAMESIZES(fd fd_video, cmd const[VIDIOC_ENUM_FRAMESIZES], arg ptr[inout, v4l2_frmsizeenum])
   102  ioctl$VIDIOC_ENUM_FRAMEINTERVALS(fd fd_video, cmd const[VIDIOC_ENUM_FRAMEINTERVALS], arg ptr[inout, v4l2_frmivalenum])
   103  ioctl$VIDIOC_G_ENC_INDEX(fd fd_video, cmd const[VIDIOC_G_ENC_INDEX], arg ptr[out, v4l2_enc_idx])
   104  ioctl$VIDIOC_ENCODER_CMD(fd fd_video, cmd const[VIDIOC_ENCODER_CMD], arg ptr[inout, v4l2_encoder_cmd])
   105  ioctl$VIDIOC_TRY_ENCODER_CMD(fd fd_video, cmd const[VIDIOC_TRY_ENCODER_CMD], arg ptr[inout, v4l2_encoder_cmd])
   106  ioctl$VIDIOC_DBG_S_REGISTER(fd fd_video, cmd const[VIDIOC_DBG_S_REGISTER], arg ptr[in, v4l2_dbg_register])
   107  ioctl$VIDIOC_DBG_G_REGISTER(fd fd_video, cmd const[VIDIOC_DBG_G_REGISTER], arg ptr[inout, v4l2_dbg_register])
   108  ioctl$VIDIOC_S_HW_FREQ_SEEK(fd fd_video, cmd const[VIDIOC_S_HW_FREQ_SEEK], arg ptr[in, v4l2_hw_freq_seek])
   109  ioctl$VIDIOC_S_DV_TIMINGS(fd fd_video, cmd const[VIDIOC_S_DV_TIMINGS], arg ptr[inout, v4l2_dv_timings])
   110  ioctl$VIDIOC_G_DV_TIMINGS(fd fd_video, cmd const[VIDIOC_G_DV_TIMINGS], arg ptr[inout, v4l2_dv_timings])
   111  ioctl$VIDIOC_DQEVENT(fd fd_video, cmd const[VIDIOC_DQEVENT], arg ptr[out, v4l2_event])
   112  ioctl$VIDIOC_SUBSCRIBE_EVENT(fd fd_video, cmd const[VIDIOC_SUBSCRIBE_EVENT], arg ptr[in, v4l2_event_subscription])
   113  ioctl$VIDIOC_UNSUBSCRIBE_EVENT(fd fd_video, cmd const[VIDIOC_UNSUBSCRIBE_EVENT], arg ptr[in, v4l2_event_subscription])
   114  ioctl$VIDIOC_CREATE_BUFS(fd fd_video, cmd const[VIDIOC_CREATE_BUFS], arg ptr[inout, v4l2_create_buffers[v4l2_buf_type]])
   115  ioctl$VIDIOC_PREPARE_BUF(fd fd_video, cmd const[VIDIOC_PREPARE_BUF], arg ptr[inout, v4l2_buffer_t[v4l2_buf_type]])
   116  ioctl$VIDIOC_G_SELECTION(fd fd_video, cmd const[VIDIOC_G_SELECTION], arg ptr[inout, v4l2_selection])
   117  ioctl$VIDIOC_S_SELECTION(fd fd_video, cmd const[VIDIOC_S_SELECTION], arg ptr[inout, v4l2_selection])
   118  ioctl$VIDIOC_DECODER_CMD(fd fd_video, cmd const[VIDIOC_DECODER_CMD], arg ptr[inout, v4l2_decoder_cmd])
   119  ioctl$VIDIOC_TRY_DECODER_CMD(fd fd_video, cmd const[VIDIOC_TRY_DECODER_CMD], arg ptr[inout, v4l2_decoder_cmd])
   120  ioctl$VIDIOC_ENUM_DV_TIMINGS(fd fd_video, cmd const[VIDIOC_ENUM_DV_TIMINGS], arg ptr[inout, v4l2_enum_dv_timings])
   121  ioctl$VIDIOC_QUERY_DV_TIMINGS(fd fd_video, cmd const[VIDIOC_QUERY_DV_TIMINGS], arg ptr[out, v4l2_dv_timings])
   122  ioctl$VIDIOC_DV_TIMINGS_CAP(fd fd_video, cmd const[VIDIOC_DV_TIMINGS_CAP], arg ptr[inout, v4l2_dv_timings_cap])
   123  ioctl$VIDIOC_ENUM_FREQ_BANDS(fd fd_video, cmd const[VIDIOC_ENUM_FREQ_BANDS], arg ptr[inout, v4l2_frequency_band])
   124  ioctl$VIDIOC_DBG_G_CHIP_INFO(fd fd_video, cmd const[VIDIOC_DBG_G_CHIP_INFO], arg ptr[inout, v4l2_dbg_chip_info])
   125  ioctl$VIDIOC_QUERY_EXT_CTRL(fd fd_video, cmd const[VIDIOC_QUERY_EXT_CTRL], arg ptr[inout, v4l2_query_ext_ctrl])
   126  ioctl$VIDIOC_SUBDEV_G_FMT(fd fd_video, cmd const[VIDIOC_SUBDEV_G_FMT], arg ptr[inout, v4l2_subdev_format])
   127  ioctl$VIDIOC_SUBDEV_S_FMT(fd fd_video, cmd const[VIDIOC_SUBDEV_S_FMT], arg ptr[inout, v4l2_subdev_format])
   128  ioctl$VIDIOC_SUBDEV_G_FRAME_INTERVAL(fd fd_video, cmd const[VIDIOC_SUBDEV_G_FRAME_INTERVAL], arg ptr[inout, v4l2_subdev_frame_interval])
   129  ioctl$VIDIOC_SUBDEV_S_FRAME_INTERVAL(fd fd_video, cmd const[VIDIOC_SUBDEV_S_FRAME_INTERVAL], arg ptr[inout, v4l2_subdev_frame_interval])
   130  ioctl$VIDIOC_SUBDEV_ENUM_MBUS_CODE(fd fd_video, cmd const[VIDIOC_SUBDEV_ENUM_MBUS_CODE], arg ptr[inout, v4l2_subdev_mbus_code_enum])
   131  ioctl$VIDIOC_SUBDEV_ENUM_FRAME_SIZE(fd fd_video, cmd const[VIDIOC_SUBDEV_ENUM_FRAME_SIZE], arg ptr[inout, v4l2_subdev_frame_size_enum])
   132  ioctl$VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL(fd fd_video, cmd const[VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL], arg ptr[inout, v4l2_subdev_frame_interval_enum])
   133  ioctl$VIDIOC_SUBDEV_G_CROP(fd fd_video, cmd const[VIDIOC_SUBDEV_G_CROP], arg ptr[inout, v4l2_subdev_crop])
   134  ioctl$VIDIOC_SUBDEV_S_CROP(fd fd_video, cmd const[VIDIOC_SUBDEV_S_CROP], arg ptr[inout, v4l2_subdev_crop])
   135  ioctl$VIDIOC_SUBDEV_G_SELECTION(fd fd_video, cmd const[VIDIOC_SUBDEV_G_SELECTION], arg ptr[inout, v4l2_subdev_selection])
   136  ioctl$VIDIOC_SUBDEV_S_SELECTION(fd fd_video, cmd const[VIDIOC_SUBDEV_S_SELECTION], arg ptr[inout, v4l2_subdev_selection])
   137  ioctl$VIDIOC_SUBDEV_G_EDID(fd fd_video, cmd const[VIDIOC_SUBDEV_G_EDID], arg ptr[inout, v4l2_edid])
   138  ioctl$VIDIOC_SUBDEV_S_EDID(fd fd_video, cmd const[VIDIOC_SUBDEV_S_EDID], arg ptr[inout, v4l2_edid])
   139  ioctl$VIDIOC_SUBDEV_S_DV_TIMINGS(fd fd_video, cmd const[VIDIOC_SUBDEV_S_DV_TIMINGS], arg ptr[inout, v4l2_dv_timings])
   140  ioctl$VIDIOC_SUBDEV_G_DV_TIMINGS(fd fd_video, cmd const[VIDIOC_SUBDEV_G_DV_TIMINGS], arg ptr[inout, v4l2_dv_timings])
   141  ioctl$VIDIOC_SUBDEV_ENUM_DV_TIMINGS(fd fd_video, cmd const[VIDIOC_SUBDEV_ENUM_DV_TIMINGS], arg ptr[inout, v4l2_enum_dv_timings])
   142  ioctl$VIDIOC_SUBDEV_QUERY_DV_TIMINGS(fd fd_video, cmd const[VIDIOC_SUBDEV_QUERY_DV_TIMINGS], arg ptr[out, v4l2_dv_timings])
   143  ioctl$VIDIOC_SUBDEV_DV_TIMINGS_CAP(fd fd_video, cmd const[VIDIOC_SUBDEV_DV_TIMINGS_CAP], arg ptr[inout, v4l2_dv_timings_cap])
   144  
   145  # Generally we don't specify close on resources,
   146  # but fd_v4l2_buffer is not used as input anywhere else (why is it needed?).
   147  # So this is added to prevent compilation errors.
   148  close$fd_v4l2_buffer(fd fd_v4l2_buffer)
   149  
   150  v4l2_capability {
   151  	driver		array[int8, 16]
   152  	card		array[int8, 32]
   153  	bus_info	array[int8, 32]
   154  	version		int32
   155  	capabilities	flags[v4l2_capability_capabilities, int32]
   156  	device_caps	int32
   157  	reserved	array[const[0, int32], 3]
   158  }
   159  
   160  type v4l2_fmtdesc[BUF_TYPE] {
   161  	index		int32
   162  	type		flags[BUF_TYPE, int32]
   163  	flags		flags[v4l2_fmtdesc_flags, int32]
   164  	description	array[int8, 32]
   165  	pixelformat	flags[v4l2_pix_format_pixelformat, int32]
   166  	reserved	array[const[0, int32], 4]
   167  }
   168  
   169  type v4l2_format[BUF_TYPE] {
   170  	type	flags[BUF_TYPE, int32]
   171  	fmt	v4l2_format_fmt
   172  }
   173  
   174  v4l2_format_fmt [
   175  	pix		v4l2_pix_format
   176  	pix_mp		v4l2_pix_format_mplane
   177  	win		v4l2_window
   178  	vbi		v4l2_vbi_format
   179  	sliced		v4l2_sliced_vbi_format
   180  	sdr		v4l2_sdr_format
   181  	raw_data	array[int8, 200]
   182  ]
   183  
   184  v4l2_pix_format {
   185  	width		int32
   186  	height		int32
   187  	pixelformat	flags[v4l2_pix_format_pixelformat, int32]
   188  	field		flags[v4l2_field, int32]
   189  	bytesperline	int32
   190  	sizeimage	int32
   191  	colorspace	flags[v4l2_colorspace, int32]
   192  	priv		int32
   193  	flags		flags[v4l2_pix_format_flags, int32]
   194  	ycbcr_enc	flags[v4l2_ycbcr_encoding, int32]
   195  	quantization	flags[v4l2_quantization, int32]
   196  	xfer_func	flags[v4l2_xfer_func, int32]
   197  }
   198  
   199  v4l2_pix_format_mplane {
   200  	width		int32
   201  	height		int32
   202  	pixelformat	flags[v4l2_pix_format_pixelformat, int32]
   203  	field		flags[v4l2_field, int32]
   204  	colorspace	flags[v4l2_colorspace, int32]
   205  	plane_fmt	array[v4l2_plane_pix_format, 8]
   206  	num_planes	int8
   207  	flags		int8
   208  	ycbcr_enc	flags[v4l2_ycbcr_encoding, int8]
   209  	quantization	flags[v4l2_quantization, int8]
   210  	xfer_func	flags[v4l2_xfer_func, int8]
   211  	reserved	array[const[0, int8], 7]
   212  } [packed]
   213  
   214  v4l2_plane_pix_format {
   215  	sizeimage	int32
   216  	bytesperline	int32
   217  	reserved	array[const[0, int16], 6]
   218  } [packed]
   219  
   220  v4l2_window {
   221  	w		v4l2_rect
   222  	field		flags[v4l2_field, int32]
   223  	chromakey	int32
   224  	clips		ptr[inout, v4l2_clip]
   225  	clipcount	int32
   226  	bitmap		buffer[inout]
   227  	global_alpha	int8
   228  }
   229  
   230  v4l2_rect {
   231  	left	int32
   232  	top	int32
   233  	width	int32
   234  	height	int32
   235  }
   236  
   237  v4l2_clip {
   238  	c	v4l2_rect
   239  	next	ptr[inout, v4l2_clip, opt]
   240  }
   241  
   242  v4l2_vbi_format {
   243  	sampling_rate		int32
   244  	offset			int32
   245  	samples_per_line	int32
   246  	sample_format		flags[v4l2_pix_format_pixelformat, int32]
   247  	start			array[int32, 2]
   248  	count			array[int32, 2]
   249  	flags			flags[v4l2_vbi_format_flags, int32]
   250  	reserved		array[const[0, int32], 2]
   251  }
   252  
   253  v4l2_sliced_vbi_format {
   254  	service_set	int16
   255  	service_lines	array[int16, 48]
   256  	io_size		int32
   257  	reserved	array[const[0, int32], 2]
   258  }
   259  
   260  v4l2_sdr_format {
   261  	pixelformat	flags[v4l2_pix_format_pixelformat, int32]
   262  	buffersize	int32
   263  	reserved	array[const[0, int8], 24]
   264  } [packed]
   265  
   266  type v4l2_requestbuffers[BUF_TYPE] {
   267  	count		int32
   268  	type		flags[BUF_TYPE, int32]
   269  	memory		flags[v4l2_memory, int32]
   270  	capabilities	const[0, int32]
   271  	flags		int8
   272  	reserved	array[const[0, int8], 3]
   273  }
   274  
   275  type v4l2_buffer_t[BUF_TYPE] [
   276  	mmap			v4l2_buffer[BUF_TYPE, V4L2_MEMORY_MMAP, intptr]
   277  	userptr			v4l2_buffer[BUF_TYPE, V4L2_MEMORY_USERPTR, ptr[out, int8]]
   278  	overlay			v4l2_buffer[BUF_TYPE, V4L2_MEMORY_OVERLAY, int32]
   279  	fd			v4l2_buffer[BUF_TYPE, V4L2_MEMORY_DMABUF, fd_v4l2_buffer[opt]]
   280  	multiplanar_mmap	v4l2_buffer[BUF_TYPE, V4L2_MEMORY_MMAP, ptr[inout, array[v4l2_plane[intptr], 2]]]
   281  	multiplanar_userptr	v4l2_buffer[BUF_TYPE, V4L2_MEMORY_USERPTR, ptr[inout, array[v4l2_plane[ptr[out, int8]], 2]]]
   282  	multiplanar_overlay	v4l2_buffer[BUF_TYPE, V4L2_MEMORY_OVERLAY, ptr[inout, array[v4l2_plane[int32], 2]]]
   283  	multiplanar_fd		v4l2_buffer[BUF_TYPE, V4L2_MEMORY_DMABUF, ptr[inout, array[v4l2_plane[fd_v4l2_buffer[opt]], 2]]]
   284  ]
   285  
   286  # TODO: The field directions needs to be defined. Recursively v4l2_plane, v4l2_plane_union needs checking.
   287  type v4l2_buffer[BUF_TYPE, MEM_TYPE, ARG_TYPE] {
   288  	index		int32
   289  	type		flags[BUF_TYPE, int32]
   290  	bytesused	len[type, int32]
   291  	flags		flags[v4l2_buffer_flags, int32]
   292  	field		int32
   293  	timestamp	timeval
   294  	timecode	v4l2_timecode
   295  	sequence	int32
   296  	memory		const[MEM_TYPE, int32]
   297  	m		alignptr[ARG_TYPE]	(out)
   298  	length		int32
   299  	reserved2	const[0, int32]
   300  	request_fd	fd_request[opt]
   301  }
   302  
   303  v4l2_timecode {
   304  	type		flags[v4l2_timecode_type, int32]
   305  	flags		flags[v4l2_timecode_flags, int32]
   306  	frames		int8
   307  	seconds		int8
   308  	minutes		int8
   309  	hours		int8
   310  	userbits	array[int8, 4]
   311  }
   312  
   313  type v4l2_plane[ARG_TYPE] {
   314  	bytesused	int32
   315  	length		int32
   316  	m		alignptr[ARG_TYPE]
   317  	data_offset	int32
   318  	reserved	array[const[0, int32], 11]
   319  }
   320  
   321  v4l2_framebuffer {
   322  	capability	flags[v4l2_framebuffer_capability, int32]
   323  	flags		flags[v4l2_framebuffer_flags, int32]
   324  	base		buffer[inout]
   325  	fmt		v4l2_framebuffer_union
   326  }
   327  
   328  v4l2_framebuffer_union {
   329  	width		int32
   330  	height		int32
   331  	pixelformat	flags[v4l2_pix_format_pixelformat, int32]
   332  	field		flags[v4l2_field, int32]
   333  	bytesperline	int32
   334  	sizeimage	int32
   335  	colorspace	flags[v4l2_colorspace, int32]
   336  	priv		int32
   337  }
   338  
   339  type v4l2_exportbuffer[BUF_TYPE] {
   340  	type		flags[BUF_TYPE, int32]
   341  	index		int32
   342  	plane		int32
   343  	flags		flags[pipe_flags, int32]
   344  	fd		fd_dma_buf	(out)
   345  	reserved	array[const[0, int32], 11]
   346  }
   347  
   348  v4l2_streamparm {
   349  	type	flags[v4l2_buf_type, int32]
   350  	parm	v4l2_streamparm_union
   351  }
   352  
   353  v4l2_streamparm_union [
   354  	capture		v4l2_captureparm
   355  	output		v4l2_outputparm
   356  	raw_data	array[int8, 200]
   357  ]
   358  
   359  v4l2_captureparm {
   360  	capability	flags[v4l2_captureparm_cap, int32]
   361  	capturemode	flags[v4l2_captureparm_mode, int32]
   362  	timeperframe	v4l2_fract
   363  	extendedmode	int32
   364  	readbuffers	int32
   365  	reserved	array[const[0, int32], 4]
   366  }
   367  
   368  v4l2_fract {
   369  	numerator	int32
   370  	denominator	int32
   371  }
   372  
   373  v4l2_outputparm {
   374  	capability	flags[v4l2_captureparm_cap, int32]
   375  	outputmode	flags[v4l2_captureparm_mode, int32]
   376  	timeperframe	v4l2_fract
   377  	extendedmode	int32
   378  	writebuffers	int32
   379  	reserved	array[const[0, int32], 4]
   380  }
   381  
   382  v4l2_control {
   383  	id	int32
   384  	value	int32
   385  }
   386  
   387  v4l2_tuner {
   388  	index		int32
   389  	name		array[int8, 32]
   390  	type		flags[v4l2_tuner_type, int32]
   391  	capability	flags[v4l2_tuner_capability, int32]
   392  	rangelow	int32
   393  	rangehigh	int32
   394  	rxsubchans	flags[v4l2_tuner_rxsubchans, int32]
   395  	audmode		flags[v4l2_tuner_audmode, int32]
   396  	signal		int32
   397  	afc		int32
   398  	reserved	array[const[0, int32], 4]
   399  }
   400  
   401  v4l2_audio {
   402  	index		int32
   403  	name		array[int8, 32]
   404  	capability	flags[v4l2_audio_capability, int32]
   405  	mode		flags[v4l2_audio_mode, int32]
   406  	reserved	array[const[0, int32], 2]
   407  }
   408  
   409  v4l2_queryctrl {
   410  	id		int32
   411  	type		flags[v4l2_ctrl_type, int32]
   412  	name		array[int8, 32]
   413  	minimum		int32
   414  	maximum		int32
   415  	step		int32
   416  	default_value	int32
   417  	flags		flags[v4l2_control_flags, int32]
   418  	reserved	array[const[0, int32], 2]
   419  }
   420  
   421  v4l2_querymenu {
   422  	id		int32
   423  	index		int32
   424  	union		v4l2_querymenu_union
   425  	reserved	const[0, int32]
   426  } [packed]
   427  
   428  v4l2_querymenu_union [
   429  	name	array[int8, 32]
   430  	value	int64
   431  ]
   432  
   433  v4l2_edid {
   434  	pad		const[0, int32]
   435  	start_block	int32
   436  	blocks		int32
   437  	reserved	array[const[0, int32], 5]
   438  	edid		ptr[inout, int8]
   439  }
   440  
   441  v4l2_audioout {
   442  	index		int32
   443  	name		array[int8, 32]
   444  	capability	flags[v4l2_audio_capability, int32]
   445  	mode		flags[v4l2_audio_mode, int32]
   446  	reserved	array[const[0, int32], 2]
   447  }
   448  
   449  v4l2_modulator {
   450  	index		int32
   451  	name		array[int8, 32]
   452  	capability	flags[v4l2_tuner_capability, int32]
   453  	rangelow	int32
   454  	rangehigh	int32
   455  	txsubchans	flags[v4l2_tuner_rxsubchans, int32]
   456  	type		flags[v4l2_tuner_type, int32]
   457  	reserved	array[const[0, int32], 3]
   458  }
   459  
   460  v4l2_frequency {
   461  	tuner		int32
   462  	type		flags[v4l2_tuner_type, int32]
   463  	frequency	int32
   464  	reserved	array[const[0, int32], 8]
   465  }
   466  
   467  v4l2_cropcap {
   468  	type		flags[v4l2_buf_type, int32]
   469  	bounds		v4l2_rect
   470  	defrect		v4l2_rect
   471  	pixelaspect	v4l2_fract
   472  }
   473  
   474  v4l2_crop {
   475  	type	flags[v4l2_buf_type, int32]
   476  	c	v4l2_rect
   477  }
   478  
   479  v4l2_jpegcompression {
   480  	quality		int32
   481  	APPn		int32[0:15]
   482  	APP_len		int32[0:60]
   483  	APP_data	array[int8, 60]
   484  	COM_len		int32[0:60]
   485  	COM_data	array[int8, 60]
   486  	jpeg_markers	flags[v4l2_jpeg_markers, int32]
   487  }
   488  
   489  v4l2_sliced_vbi_cap {
   490  	service_set	int16
   491  	service_lines	array[int16, 48]
   492  	type		flags[v4l2_buf_type, int32]
   493  	reserved	array[const[0, int32], 3]
   494  }
   495  
   496  v4l2_ext_controls {
   497  	ctrl_class	flags[v4l2_ext_ctrl_class, int32]
   498  	count		int32
   499  	error_idx	int32
   500  	request_fd	fd_request[opt]	(in)
   501  	reserved	const[0, int32]
   502  	controls	ptr[inout, v4l2_ext_control]
   503  }
   504  
   505  v4l2_ext_control {
   506  	id		flags[v4l2_ext_controls, int32]
   507  	size		int32
   508  	reserved2	array[const[0, int32], 1]
   509  	union		v4l2_ext_u
   510  } [packed]
   511  
   512  v4l2_ext_u [
   513  	value	int32
   514  	value64	int64
   515  	string	ptr[inout, int8]
   516  	p_u8	ptr[inout, int8]
   517  	p_u16	ptr[inout, int16]
   518  	p_u32	ptr[inout, int32]
   519  	ptr	intptr
   520  ]
   521  
   522  v4l2_frmsizeenum {
   523  	index		int32
   524  	pixel_format	flags[v4l2_pix_format_pixelformat, int32]
   525  	type		flags[v4l2_frmsizetypes, int32]
   526  	union		v4l2_frmsizeenum_union
   527  	reserved	array[const[0, int32], 2]
   528  }
   529  
   530  v4l2_frmsizeenum_union [
   531  	discrete	v4l2_frmsize_discrete
   532  	stepwise	v4l2_frmsize_stepwise
   533  ]
   534  
   535  v4l2_frmsize_discrete {
   536  	width	int32
   537  	height	int32
   538  }
   539  
   540  v4l2_frmsize_stepwise {
   541  	min_width	int32
   542  	max_width	int32
   543  	step_width	int32
   544  	min_height	int32
   545  	max_height	int32
   546  	step_height	int32
   547  }
   548  
   549  v4l2_frmivalenum {
   550  	index		int32
   551  	pixel_format	flags[v4l2_pix_format_pixelformat, int32]
   552  	width		int32
   553  	height		int32
   554  	type		flags[v4l2_frmivaltypes, int32]
   555  	union		v4l2_frmivalenum_union
   556  	reserved	array[const[0, int32], 2]
   557  }
   558  
   559  v4l2_frmivalenum_union [
   560  	discrete	v4l2_fract
   561  	stepwise	v4l2_frmival_stepwise
   562  ]
   563  
   564  v4l2_frmival_stepwise {
   565  	min	v4l2_fract
   566  	max	v4l2_fract
   567  	step	v4l2_fract
   568  }
   569  
   570  v4l2_enc_idx {
   571  	entries		int32
   572  	entries_cap	int32
   573  	reserved	array[const[0, int32], 4]
   574  	entry		array[v4l2_enc_idx_entry, 64]
   575  }
   576  
   577  v4l2_enc_idx_entry {
   578  	offset		int64
   579  	pts		int64
   580  	length		int32
   581  	flags		flags[v4l2_enc_idx_flags, int32]
   582  	reserved	array[const[0, int32], 2]
   583  }
   584  
   585  v4l2_dbg_register {
   586  	match	v4l2_dbg_match
   587  	size	bytesize[reg, int32]
   588  	reg	int64
   589  	val	int64
   590  } [packed]
   591  
   592  v4l2_dbg_match {
   593  	type	flags[v4l2_dbg_match_type, int32]
   594  	union	v4l2_dbg_match_union
   595  } [packed]
   596  
   597  v4l2_dbg_match_union [
   598  	addr	int32
   599  	name	array[int8, 32]
   600  ]
   601  
   602  v4l2_hw_freq_seek {
   603  	tuner		int32
   604  	type		flags[v4l2_tuner_type, int32]
   605  	seek_upward	int32
   606  	wrap_around	int32
   607  	spacing		int32
   608  	rangelow	int32
   609  	rangehigh	int32
   610  	reserved	array[const[0, int32], 5]
   611  }
   612  
   613  v4l2_dv_timings {
   614  	type	flags[v4l2_dv_timings_type, int32]
   615  	union	v4l2_dv_timings_union
   616  } [packed]
   617  
   618  v4l2_dv_timings_union [
   619  	bt		v4l2_bt_timings
   620  	reserved	array[const[0, int32], 32]
   621  ]
   622  
   623  v4l2_bt_timings {
   624  	width		int32
   625  	height		int32
   626  	interlaced	flags[v4l2_bt_timings_interlaced, int32]
   627  	polarities	flags[v4l2_bt_timings_polarities, int32]
   628  	pixelclock	int64
   629  	hfrontporch	int32
   630  	hsync		int32
   631  	hbackporch	int32
   632  	vfrontporch	int32
   633  	vsync		int32
   634  	vbackporch	int32
   635  	il_vfrontporch	int32
   636  	il_vsync	int32
   637  	il_vbackporch	int32
   638  	standards	flags[v4l2_bt_timings_standards, int32]
   639  	flags		flags[v4l2_bt_timings_flags, int32]
   640  	picture_aspect	v4l2_fract
   641  	cea861_vic	int8
   642  	hdmi_vic	int8
   643  	reserved	array[const[0, int8], 46]
   644  } [packed]
   645  
   646  v4l2_encoder_cmd {
   647  	cmd	flags[v4l2_encoder_cmd_cmd, int32]
   648  	flags	flags[v4l2_encoder_flags, int32]
   649  	data	array[int32, 8]
   650  }
   651  
   652  v4l2_event {
   653  	type		flags[v4l2_event_type, int32]
   654  	u		v4l2_event_union
   655  	pending		int32
   656  	sequence	int32
   657  	timestamp	timespec
   658  	id		int32
   659  	reserved	array[const[0, int32], 8]
   660  }
   661  
   662  v4l2_event_union [
   663  	vsync		v4l2_event_vsync
   664  	ctrl		v4l2_event_ctrl
   665  	frame_sync	v4l2_event_frame_sync
   666  	src_change	v4l2_event_src_change
   667  	motion_det	v4l2_event_motion_det
   668  	data		array[int8, 64]
   669  ]
   670  
   671  v4l2_event_vsync {
   672  	field	flags[v4l2_field_1, int8]
   673  } [packed]
   674  
   675  v4l2_event_ctrl {
   676  	changes		flags[v4l2_event_ctrl_changes, int32]
   677  	type		flags[v4l2_ctrl_type, int32]
   678  	u		v4l2_event_ctrl_union
   679  	flags		int32
   680  	minimum		int32
   681  	maximum		int32
   682  	step		int32
   683  	default_value	int32
   684  }
   685  
   686  v4l2_event_ctrl_union [
   687  	value	int32
   688  	value64	int64
   689  ]
   690  
   691  v4l2_event_frame_sync {
   692  	frame_sequence	int32
   693  }
   694  
   695  v4l2_event_src_change {
   696  	changes	flags[v4l2_event_src_changes, int32]
   697  }
   698  
   699  v4l2_event_motion_det {
   700  	flags		flags[v4l2_event_motion_det_flags, int32]
   701  	frame_sequence	int32
   702  	region_mask	int32
   703  }
   704  
   705  v4l2_event_subscription {
   706  	type		flags[v4l2_event_type, int32]
   707  	id		int32
   708  	flags		flags[v4l2_event_subscription_flags, int32]
   709  	reserved	array[const[0, int32], 5]
   710  }
   711  
   712  type v4l2_create_buffers[BUF_TYPE] {
   713  	index		int32
   714  	count		int32
   715  	memory		flags[v4l2_memory, int32]
   716  	format		v4l2_format[BUF_TYPE]
   717  	capabilities	int32
   718  	reserved	array[const[0, int32], 7]
   719  }
   720  
   721  v4l2_selection {
   722  	type		flags[v4l2_buf_type_1, int32]
   723  	target		flags[v4l2_selection_target, int32]
   724  	flags		flags[v4l2_selection_flags, int32]
   725  	r		v4l2_rect
   726  	reserved	array[const[0, int32], 9]
   727  }
   728  
   729  v4l2_decoder_cmd {
   730  	cmd	flags[v4l2_decoder_cmd_cmd, int32]
   731  	flags	flags[v4l2_decoder_cmd_flags, int32]
   732  	u	v4l2_decoder_cmd_u
   733  }
   734  
   735  v4l2_decoder_cmd_u [
   736  	stop_pts	int64
   737  	start		v4l2_decoder_cmd_start
   738  	raw_data	array[int32, 16]
   739  ]
   740  
   741  v4l2_decoder_cmd_start {
   742  	speed	int32
   743  	format	flags[v4l2_decoder_cmd_format, int32]
   744  }
   745  
   746  v4l2_enum_dv_timings {
   747  	index		int32
   748  	pad		const[0, int32]
   749  	reserved	array[const[0, int32], 2]
   750  	timings		v4l2_dv_timings
   751  }
   752  
   753  v4l2_dv_timings_cap {
   754  	type		flags[v4l2_dv_timings_type, int32]
   755  	pad		const[0, int32]
   756  	reserved	array[const[0, int32], 2]
   757  	u		v4l2_dv_timings_cap_u
   758  }
   759  
   760  v4l2_dv_timings_cap_u [
   761  	bt		v4l2_bt_timings_cap
   762  	raw_data	array[int32, 32]
   763  ]
   764  
   765  v4l2_bt_timings_cap {
   766  	min_width	int32
   767  	max_width	int32
   768  	min_height	int32
   769  	max_height	int32
   770  	min_pixelclock	int64
   771  	max_pixelclock	int64
   772  	standards	flags[v4l2_bt_timings_standards, int32]
   773  	capabilities	flags[v4l2_bt_timings_cap_capabilities, int32]
   774  	reserved	array[const[0, int32], 16]
   775  } [packed]
   776  
   777  v4l2_frequency_band {
   778  	tuner		int32
   779  	type		flags[v4l2_tuner_type, int32]
   780  	index		int32
   781  	capability	flags[v4l2_tuner_capability, int32]
   782  	rangelow	int32
   783  	rangehigh	int32
   784  	modulation	flags[v4l2_frequency_band_modulation, int32]
   785  	reserved	array[const[0, int32], 9]
   786  }
   787  
   788  v4l2_dbg_chip_info {
   789  	match		v4l2_dbg_match
   790  	name		array[int8, 32]
   791  	flags		flags[v4l2_dbg_chip_info_flags, int32]
   792  	reserved	array[const[0, int32], 32]
   793  } [packed]
   794  
   795  v4l2_query_ext_ctrl {
   796  	id		flags[v4l2_query_ext_ctrl, int32]
   797  	type		flags[v4l2_ctrl_type, int32]
   798  	name		array[int8, 32]
   799  	minimum		int64
   800  	maximum		int64
   801  	step		int64
   802  	default_value	int64
   803  	flags		int32
   804  	elem_size	int32
   805  	elems		int32
   806  	nr_of_dims	int32
   807  	dims		array[int32, 4]
   808  	reserved	array[const[0, int32], 32]
   809  }
   810  
   811  type v4l2_std_id flags[v4l2_std_id, int64]
   812  
   813  v4l2_standard {
   814  	index		int32
   815  	id		v4l2_std_id
   816  	name		array[int8, 24]
   817  	frameperiod	v4l2_fract
   818  	framelines	int32
   819  	reserved	array[const[0, int32], 4]
   820  }
   821  
   822  v4l2_input {
   823  	index		int32
   824  	name		array[int8, 32]
   825  	type		flags[v4l2_input_type, int32]
   826  	audioset	int32
   827  	tuner		flags[v4l2_tuner_type, int32]
   828  	std		v4l2_std_id
   829  	status		flags[v4l2_input_status, int32]
   830  	capabilities	flags[v4l2_input_capabilities, int32]
   831  	reserved	array[const[0, int32], 3]
   832  }
   833  
   834  v4l2_output {
   835  	index		int32
   836  	name		array[int8, 32]
   837  	type		flags[v4l2_output_type, int32]
   838  	audioset	int32
   839  	modulator	int32
   840  	std		v4l2_std_id
   841  	capabilities	flags[v4l2_output_capabilities, int32]
   842  	reserved	array[const[0, int32], 3]
   843  }
   844  
   845  v4l2_subdev_format {
   846  	which		flags[v4l2_subdev_format_whence, int32]
   847  	pad		const[0, int32]
   848  	format		v4l2_mbus_framefmt
   849  	reserved	array[const[0, int32], 8]
   850  }
   851  
   852  v4l2_mbus_framefmt {
   853  	width		int32
   854  	height		int32
   855  	code		flags[media_bus_fmt, int32]
   856  	field		flags[v4l2_field, int32]
   857  	colorspace	flags[v4l2_colorspace, int32]
   858  	ycbcr_enc	flags[v4l2_ycbcr_encoding, int16]
   859  	quantization	flags[v4l2_quantization, int16]
   860  	xfer_func	flags[v4l2_xfer_func, int16]
   861  	reserved	array[const[0, int16], 11]
   862  }
   863  
   864  v4l2_subdev_frame_interval {
   865  	pad		const[0, int32]
   866  	interval	v4l2_fract
   867  	reserved	array[const[0, int32], 9]
   868  }
   869  
   870  v4l2_subdev_mbus_code_enum {
   871  	pad		const[0, int32]
   872  	index		int32
   873  	code		flags[media_bus_fmt, int32]
   874  	which		flags[v4l2_subdev_format_whence, int32]
   875  	reserved	array[const[0, int32], 8]
   876  }
   877  
   878  v4l2_subdev_frame_size_enum {
   879  	index		int32
   880  	pad		const[0, int32]
   881  	code		flags[media_bus_fmt, int32]
   882  	min_width	int32
   883  	max_width	int32
   884  	min_height	int32
   885  	max_height	int32
   886  	which		flags[v4l2_subdev_format_whence, int32]
   887  	reserved	array[const[0, int32], 8]
   888  }
   889  
   890  v4l2_subdev_frame_interval_enum {
   891  	index		int32
   892  	pad		const[0, int32]
   893  	code		flags[media_bus_fmt, int32]
   894  	width		int32
   895  	height		int32
   896  	interval	v4l2_fract
   897  	which		flags[v4l2_subdev_format_whence, int32]
   898  	reserved	array[const[0, int32], 8]
   899  }
   900  
   901  v4l2_subdev_crop {
   902  	which		flags[v4l2_subdev_format_whence, int32]
   903  	pad		const[0, int32]
   904  	rect		v4l2_rect
   905  	reserved	array[const[0, int32], 8]
   906  }
   907  
   908  v4l2_subdev_selection {
   909  	which		flags[v4l2_subdev_format_whence, int32]
   910  	pad		const[0, int32]
   911  	target		flags[v4l2_selection_target, int32]
   912  	flags		flags[v4l2_selection_flags, int32]
   913  	r		v4l2_rect
   914  	reserved	array[const[0, int32], 8]
   915  }
   916  
   917  v4l2_jpeg_markers = V4L2_JPEG_MARKER_DHT, V4L2_JPEG_MARKER_DQT, V4L2_JPEG_MARKER_DRI, V4L2_JPEG_MARKER_COM, V4L2_JPEG_MARKER_APP
   918  v4l2_subdev_format_whence = V4L2_SUBDEV_FORMAT_TRY, V4L2_SUBDEV_FORMAT_ACTIVE
   919  v4l2_buf_type_1 = V4L2_BUF_TYPE_VIDEO_CAPTURE, V4L2_BUF_TYPE_VIDEO_OUTPUT, V4L2_BUF_TYPE_VIDEO_OVERLAY, V4L2_BUF_TYPE_VBI_CAPTURE, V4L2_BUF_TYPE_VBI_OUTPUT, V4L2_BUF_TYPE_SLICED_VBI_CAPTURE, V4L2_BUF_TYPE_SLICED_VBI_OUTPUT, V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY, V4L2_BUF_TYPE_SDR_CAPTURE, V4L2_BUF_TYPE_SDR_OUTPUT
   920  v4l2_field_1 = V4L2_FIELD_ANY, V4L2_FIELD_NONE, V4L2_FIELD_TOP, V4L2_FIELD_BOTTOM
   921  v4l2_field = V4L2_FIELD_INTERLACED, V4L2_FIELD_SEQ_TB, V4L2_FIELD_SEQ_BT, V4L2_FIELD_ALTERNATE, V4L2_FIELD_INTERLACED_TB, V4L2_FIELD_INTERLACED_BT, v4l2_field_1
   922  v4l2_colorspace = V4L2_COLORSPACE_DEFAULT, V4L2_COLORSPACE_SMPTE170M, V4L2_COLORSPACE_SMPTE240M, V4L2_COLORSPACE_REC709, V4L2_COLORSPACE_BT878, V4L2_COLORSPACE_470_SYSTEM_M, V4L2_COLORSPACE_470_SYSTEM_BG, V4L2_COLORSPACE_JPEG, V4L2_COLORSPACE_SRGB, V4L2_COLORSPACE_OPRGB, V4L2_COLORSPACE_BT2020, V4L2_COLORSPACE_RAW, V4L2_COLORSPACE_DCI_P3
   923  v4l2_ycbcr_encoding = V4L2_YCBCR_ENC_DEFAULT, V4L2_YCBCR_ENC_601, V4L2_YCBCR_ENC_709, V4L2_YCBCR_ENC_XV601, V4L2_YCBCR_ENC_XV709, V4L2_YCBCR_ENC_BT2020, V4L2_YCBCR_ENC_BT2020_CONST_LUM, V4L2_YCBCR_ENC_SMPTE240M
   924  v4l2_quantization = V4L2_QUANTIZATION_DEFAULT, V4L2_QUANTIZATION_FULL_RANGE, V4L2_QUANTIZATION_LIM_RANGE
   925  v4l2_xfer_func = V4L2_XFER_FUNC_DEFAULT, V4L2_XFER_FUNC_709, V4L2_XFER_FUNC_SRGB, V4L2_XFER_FUNC_OPRGB, V4L2_XFER_FUNC_SMPTE240M, V4L2_XFER_FUNC_NONE, V4L2_XFER_FUNC_DCI_P3, V4L2_XFER_FUNC_SMPTE2084
   926  v4l2_buf_type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, v4l2_buf_type_1
   927  v4l2_memory = V4L2_MEMORY_MMAP, V4L2_MEMORY_USERPTR, V4L2_MEMORY_OVERLAY, V4L2_MEMORY_DMABUF
   928  v4l2_tuner_type = V4L2_TUNER_RADIO, V4L2_TUNER_ANALOG_TV, V4L2_TUNER_DIGITAL_TV, V4L2_TUNER_SDR, V4L2_TUNER_RF
   929  v4l2_ctrl_type = V4L2_CTRL_TYPE_INTEGER, V4L2_CTRL_TYPE_BOOLEAN, V4L2_CTRL_TYPE_MENU, V4L2_CTRL_TYPE_BUTTON, V4L2_CTRL_TYPE_INTEGER64, V4L2_CTRL_TYPE_CTRL_CLASS, V4L2_CTRL_TYPE_STRING, V4L2_CTRL_TYPE_BITMASK, V4L2_CTRL_TYPE_INTEGER_MENU, V4L2_CTRL_COMPOUND_TYPES, V4L2_CTRL_TYPE_U8, V4L2_CTRL_TYPE_U16, V4L2_CTRL_TYPE_U32
   930  v4l2_priority = V4L2_PRIORITY_UNSET, V4L2_PRIORITY_BACKGROUND, V4L2_PRIORITY_INTERACTIVE, V4L2_PRIORITY_RECORD, V4L2_PRIORITY_DEFAULT
   931  media_bus_fmt = MEDIA_BUS_FMT_FIXED, MEDIA_BUS_FMT_RGB444_1X12, MEDIA_BUS_FMT_RGB444_2X8_PADHI_BE, MEDIA_BUS_FMT_RGB444_2X8_PADHI_LE, MEDIA_BUS_FMT_RGB555_2X8_PADHI_BE, MEDIA_BUS_FMT_RGB555_2X8_PADHI_LE, MEDIA_BUS_FMT_RGB565_1X16, MEDIA_BUS_FMT_BGR565_2X8_BE, MEDIA_BUS_FMT_BGR565_2X8_LE, MEDIA_BUS_FMT_RGB565_2X8_BE, MEDIA_BUS_FMT_RGB565_2X8_LE, MEDIA_BUS_FMT_RGB666_1X18, MEDIA_BUS_FMT_RBG888_1X24, MEDIA_BUS_FMT_RGB666_1X24_CPADHI, MEDIA_BUS_FMT_RGB666_1X7X3_SPWG, MEDIA_BUS_FMT_BGR888_1X24, MEDIA_BUS_FMT_GBR888_1X24, MEDIA_BUS_FMT_RGB888_1X24, MEDIA_BUS_FMT_RGB888_2X12_BE, MEDIA_BUS_FMT_RGB888_2X12_LE, MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA, MEDIA_BUS_FMT_ARGB8888_1X32, MEDIA_BUS_FMT_RGB888_1X32_PADHI, MEDIA_BUS_FMT_Y8_1X8, MEDIA_BUS_FMT_UV8_1X8, MEDIA_BUS_FMT_UYVY8_1_5X8, MEDIA_BUS_FMT_VYUY8_1_5X8, MEDIA_BUS_FMT_YUYV8_1_5X8, MEDIA_BUS_FMT_YVYU8_1_5X8, MEDIA_BUS_FMT_UYVY8_2X8, MEDIA_BUS_FMT_VYUY8_2X8, MEDIA_BUS_FMT_YUYV8_2X8, MEDIA_BUS_FMT_YVYU8_2X8, MEDIA_BUS_FMT_Y10_1X10, MEDIA_BUS_FMT_UYVY10_2X10, MEDIA_BUS_FMT_VYUY10_2X10, MEDIA_BUS_FMT_YUYV10_2X10, MEDIA_BUS_FMT_YVYU10_2X10, MEDIA_BUS_FMT_Y12_1X12, MEDIA_BUS_FMT_UYVY12_2X12, MEDIA_BUS_FMT_VYUY12_2X12, MEDIA_BUS_FMT_YUYV12_2X12, MEDIA_BUS_FMT_YVYU12_2X12, MEDIA_BUS_FMT_UYVY8_1X16, MEDIA_BUS_FMT_VYUY8_1X16, MEDIA_BUS_FMT_YUYV8_1X16, MEDIA_BUS_FMT_YVYU8_1X16, MEDIA_BUS_FMT_YDYUYDYV8_1X16, MEDIA_BUS_FMT_UYVY10_1X20, MEDIA_BUS_FMT_VYUY10_1X20, MEDIA_BUS_FMT_YUYV10_1X20, MEDIA_BUS_FMT_YVYU10_1X20, MEDIA_BUS_FMT_VUY8_1X24, MEDIA_BUS_FMT_YUV8_1X24, MEDIA_BUS_FMT_UYVY12_1X24, MEDIA_BUS_FMT_VYUY12_1X24, MEDIA_BUS_FMT_YUYV12_1X24, MEDIA_BUS_FMT_YVYU12_1X24, MEDIA_BUS_FMT_YUV10_1X30, MEDIA_BUS_FMT_AYUV8_1X32, MEDIA_BUS_FMT_SBGGR8_1X8, MEDIA_BUS_FMT_SGBRG8_1X8, MEDIA_BUS_FMT_SGRBG8_1X8, MEDIA_BUS_FMT_SRGGB8_1X8, MEDIA_BUS_FMT_SBGGR10_ALAW8_1X8, MEDIA_BUS_FMT_SGBRG10_ALAW8_1X8, MEDIA_BUS_FMT_SGRBG10_ALAW8_1X8, MEDIA_BUS_FMT_SRGGB10_ALAW8_1X8, MEDIA_BUS_FMT_SBGGR10_DPCM8_1X8, MEDIA_BUS_FMT_SGBRG10_DPCM8_1X8, MEDIA_BUS_FMT_SGRBG10_DPCM8_1X8, MEDIA_BUS_FMT_SRGGB10_DPCM8_1X8, MEDIA_BUS_FMT_SBGGR10_2X8_PADHI_BE, MEDIA_BUS_FMT_SBGGR10_2X8_PADHI_LE, MEDIA_BUS_FMT_SBGGR10_2X8_PADLO_BE, MEDIA_BUS_FMT_SBGGR10_2X8_PADLO_LE, MEDIA_BUS_FMT_SBGGR10_1X10, MEDIA_BUS_FMT_SGBRG10_1X10, MEDIA_BUS_FMT_SGRBG10_1X10, MEDIA_BUS_FMT_SRGGB10_1X10, MEDIA_BUS_FMT_SBGGR12_1X12, MEDIA_BUS_FMT_SGBRG12_1X12, MEDIA_BUS_FMT_SGRBG12_1X12, MEDIA_BUS_FMT_SRGGB12_1X12, MEDIA_BUS_FMT_JPEG_1X8, MEDIA_BUS_FMT_S5C_UYVY_JPEG_1X8, MEDIA_BUS_FMT_AHSV8888_1X32
   932  v4l2_pix_format_flags = V4L2_PIX_FMT_FLAG_PREMUL_ALPHA
   933  v4l2_pix_format_pixelformat = V4L2_PIX_FMT_RGB332, V4L2_PIX_FMT_RGB444, V4L2_PIX_FMT_ARGB444, V4L2_PIX_FMT_XRGB444, V4L2_PIX_FMT_RGB555, V4L2_PIX_FMT_ARGB555, V4L2_PIX_FMT_XRGB555, V4L2_PIX_FMT_RGB565, V4L2_PIX_FMT_RGB555X, V4L2_PIX_FMT_ARGB555X, V4L2_PIX_FMT_XRGB555X, V4L2_PIX_FMT_RGB565X, V4L2_PIX_FMT_BGR666, V4L2_PIX_FMT_BGR24, V4L2_PIX_FMT_RGB24, V4L2_PIX_FMT_BGR32, V4L2_PIX_FMT_ABGR32, V4L2_PIX_FMT_XBGR32, V4L2_PIX_FMT_RGB32, V4L2_PIX_FMT_ARGB32, V4L2_PIX_FMT_XRGB32, V4L2_PIX_FMT_GREY, V4L2_PIX_FMT_Y4, V4L2_PIX_FMT_Y6, V4L2_PIX_FMT_Y10, V4L2_PIX_FMT_Y12, V4L2_PIX_FMT_Y16, V4L2_PIX_FMT_Y16_BE, V4L2_PIX_FMT_Y10BPACK, V4L2_PIX_FMT_PAL8, V4L2_PIX_FMT_UV8, V4L2_PIX_FMT_YUYV, V4L2_PIX_FMT_YYUV, V4L2_PIX_FMT_YVYU, V4L2_PIX_FMT_UYVY, V4L2_PIX_FMT_VYUY, V4L2_PIX_FMT_Y41P, V4L2_PIX_FMT_YUV444, V4L2_PIX_FMT_YUV555, V4L2_PIX_FMT_YUV565, V4L2_PIX_FMT_YUV32, V4L2_PIX_FMT_HI240, V4L2_PIX_FMT_NV12_16L16, V4L2_PIX_FMT_M420, V4L2_PIX_FMT_NV12, V4L2_PIX_FMT_NV21, V4L2_PIX_FMT_NV16, V4L2_PIX_FMT_NV61, V4L2_PIX_FMT_NV24, V4L2_PIX_FMT_NV42, V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_NV21M, V4L2_PIX_FMT_NV16M, V4L2_PIX_FMT_NV61M, V4L2_PIX_FMT_NV12MT, V4L2_PIX_FMT_NV12MT_16X16, V4L2_PIX_FMT_YUV410, V4L2_PIX_FMT_YVU410, V4L2_PIX_FMT_YUV411P, V4L2_PIX_FMT_YUV420, V4L2_PIX_FMT_YVU420, V4L2_PIX_FMT_YUV422P, V4L2_PIX_FMT_YUV420M, V4L2_PIX_FMT_YVU420M, V4L2_PIX_FMT_YUV422M, V4L2_PIX_FMT_YVU422M, V4L2_PIX_FMT_YUV444M, V4L2_PIX_FMT_YVU444M, V4L2_PIX_FMT_SBGGR8, V4L2_PIX_FMT_SGBRG8, V4L2_PIX_FMT_SGRBG8, V4L2_PIX_FMT_SRGGB8, V4L2_PIX_FMT_SBGGR10, V4L2_PIX_FMT_SGBRG10, V4L2_PIX_FMT_SGRBG10, V4L2_PIX_FMT_SRGGB10, V4L2_PIX_FMT_SBGGR10P, V4L2_PIX_FMT_SGBRG10P, V4L2_PIX_FMT_SGRBG10P, V4L2_PIX_FMT_SRGGB10P, V4L2_PIX_FMT_SBGGR10ALAW8, V4L2_PIX_FMT_SGBRG10ALAW8, V4L2_PIX_FMT_SGRBG10ALAW8, V4L2_PIX_FMT_SRGGB10ALAW8, V4L2_PIX_FMT_SBGGR10DPCM8, V4L2_PIX_FMT_SGBRG10DPCM8, V4L2_PIX_FMT_SGRBG10DPCM8, V4L2_PIX_FMT_SRGGB10DPCM8, V4L2_PIX_FMT_SBGGR12, V4L2_PIX_FMT_SGBRG12, V4L2_PIX_FMT_SGRBG12, V4L2_PIX_FMT_SRGGB12, V4L2_PIX_FMT_SBGGR16, V4L2_PIX_FMT_MJPEG, V4L2_PIX_FMT_JPEG, V4L2_PIX_FMT_DV, V4L2_PIX_FMT_MPEG, V4L2_PIX_FMT_H264, V4L2_PIX_FMT_H264_NO_SC, V4L2_PIX_FMT_H264_MVC, V4L2_PIX_FMT_H263, V4L2_PIX_FMT_MPEG1, V4L2_PIX_FMT_MPEG2, V4L2_PIX_FMT_MPEG4, V4L2_PIX_FMT_XVID, V4L2_PIX_FMT_VC1_ANNEX_G, V4L2_PIX_FMT_VC1_ANNEX_L, V4L2_PIX_FMT_VP8, V4L2_PIX_FMT_VP9, V4L2_PIX_FMT_HEVC, V4L2_PIX_FMT_CPIA1, V4L2_PIX_FMT_WNVA, V4L2_PIX_FMT_SN9C10X, V4L2_PIX_FMT_SN9C20X_I420, V4L2_PIX_FMT_PWC1, V4L2_PIX_FMT_PWC2, V4L2_PIX_FMT_ET61X251, V4L2_PIX_FMT_SPCA501, V4L2_PIX_FMT_SPCA505, V4L2_PIX_FMT_SPCA508, V4L2_PIX_FMT_SPCA561, V4L2_PIX_FMT_PAC207, V4L2_PIX_FMT_MR97310A, V4L2_PIX_FMT_JL2005BCD, V4L2_PIX_FMT_SN9C2028, V4L2_PIX_FMT_SQ905C, V4L2_PIX_FMT_PJPG, V4L2_PIX_FMT_OV511, V4L2_PIX_FMT_OV518, V4L2_PIX_FMT_STV0680, V4L2_PIX_FMT_TM6000, V4L2_PIX_FMT_CIT_YYVYUY, V4L2_PIX_FMT_KONICA420, V4L2_PIX_FMT_JPGL, V4L2_PIX_FMT_SE401, V4L2_PIX_FMT_S5C_UYVY_JPG, V4L2_PIX_FMT_Y8I, V4L2_PIX_FMT_Y12I, V4L2_PIX_FMT_Z16
   934  v4l2_fmtdesc_flags = V4L2_FMT_FLAG_COMPRESSED, V4L2_FMT_FLAG_EMULATED
   935  v4l2_capability_capabilities = V4L2_CAP_VIDEO_CAPTURE, V4L2_CAP_VIDEO_OUTPUT, V4L2_CAP_VIDEO_OVERLAY, V4L2_CAP_VBI_CAPTURE, V4L2_CAP_VBI_OUTPUT, V4L2_CAP_SLICED_VBI_CAPTURE, V4L2_CAP_SLICED_VBI_OUTPUT, V4L2_CAP_RDS_CAPTURE, V4L2_CAP_VIDEO_OUTPUT_OVERLAY, V4L2_CAP_HW_FREQ_SEEK, V4L2_CAP_RDS_OUTPUT, V4L2_CAP_VIDEO_CAPTURE_MPLANE, V4L2_CAP_VIDEO_OUTPUT_MPLANE, V4L2_CAP_VIDEO_M2M_MPLANE, V4L2_CAP_VIDEO_M2M, V4L2_CAP_TUNER, V4L2_CAP_AUDIO, V4L2_CAP_RADIO, V4L2_CAP_MODULATOR, V4L2_CAP_SDR_CAPTURE, V4L2_CAP_EXT_PIX_FORMAT, V4L2_CAP_SDR_OUTPUT, V4L2_CAP_READWRITE, V4L2_CAP_STREAMING, V4L2_CAP_TOUCH, V4L2_CAP_DEVICE_CAPS
   936  v4l2_framebuffer_capability = V4L2_FBUF_CAP_EXTERNOVERLAY, V4L2_FBUF_CAP_CHROMAKEY, V4L2_FBUF_CAP_LOCAL_ALPHA, V4L2_FBUF_CAP_GLOBAL_ALPHA, V4L2_FBUF_CAP_LOCAL_INV_ALPHA, V4L2_FBUF_CAP_SRC_CHROMAKEY
   937  v4l2_framebuffer_flags = V4L2_FBUF_FLAG_PRIMARY, V4L2_FBUF_FLAG_OVERLAY, V4L2_FBUF_FLAG_CHROMAKEY, V4L2_FBUF_FLAG_LOCAL_ALPHA, V4L2_FBUF_FLAG_GLOBAL_ALPHA, V4L2_FBUF_FLAG_LOCAL_INV_ALPHA, V4L2_FBUF_FLAG_SRC_CHROMAKEY
   938  v4l2_vbi_format_flags = V4L2_VBI_UNSYNC, V4L2_VBI_INTERLACED, V4L2_VBI_ITU_525_F1_START, V4L2_VBI_ITU_525_F2_START, V4L2_VBI_ITU_625_F1_START, V4L2_VBI_ITU_625_F2_START
   939  v4l2_buffer_flags = V4L2_BUF_FLAG_MAPPED, V4L2_BUF_FLAG_QUEUED, V4L2_BUF_FLAG_DONE, V4L2_BUF_FLAG_KEYFRAME, V4L2_BUF_FLAG_PFRAME, V4L2_BUF_FLAG_BFRAME, V4L2_BUF_FLAG_ERROR, V4L2_BUF_FLAG_TIMECODE, V4L2_BUF_FLAG_PREPARED, V4L2_BUF_FLAG_NO_CACHE_INVALIDATE, V4L2_BUF_FLAG_NO_CACHE_CLEAN, V4L2_BUF_FLAG_TIMESTAMP_MASK, V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN, V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC, V4L2_BUF_FLAG_TIMESTAMP_COPY, V4L2_BUF_FLAG_TSTAMP_SRC_MASK, V4L2_BUF_FLAG_TSTAMP_SRC_EOF, V4L2_BUF_FLAG_TSTAMP_SRC_SOE, V4L2_BUF_FLAG_LAST
   940  v4l2_timecode_type = V4L2_TC_TYPE_24FPS, V4L2_TC_TYPE_25FPS, V4L2_TC_TYPE_30FPS, V4L2_TC_TYPE_50FPS, V4L2_TC_TYPE_60FPS
   941  v4l2_timecode_flags = V4L2_TC_FLAG_DROPFRAME, V4L2_TC_FLAG_COLORFRAME, V4L2_TC_USERBITS_field, V4L2_TC_USERBITS_USERDEFINED, V4L2_TC_USERBITS_8BITCHARS
   942  v4l2_captureparm_cap = V4L2_CAP_TIMEPERFRAME
   943  v4l2_captureparm_mode = V4L2_MODE_HIGHQUALITY
   944  v4l2_tuner_capability = V4L2_TUNER_CAP_LOW, V4L2_TUNER_CAP_NORM, V4L2_TUNER_CAP_HWSEEK_BOUNDED, V4L2_TUNER_CAP_HWSEEK_WRAP, V4L2_TUNER_CAP_STEREO, V4L2_TUNER_CAP_LANG2, V4L2_TUNER_CAP_SAP, V4L2_TUNER_CAP_LANG1, V4L2_TUNER_CAP_RDS, V4L2_TUNER_CAP_RDS_BLOCK_IO, V4L2_TUNER_CAP_RDS_CONTROLS, V4L2_TUNER_CAP_FREQ_BANDS, V4L2_TUNER_CAP_HWSEEK_PROG_LIM, V4L2_TUNER_CAP_1HZ
   945  v4l2_tuner_rxsubchans = V4L2_TUNER_SUB_MONO, V4L2_TUNER_SUB_STEREO, V4L2_TUNER_SUB_LANG2, V4L2_TUNER_SUB_SAP, V4L2_TUNER_SUB_LANG1, V4L2_TUNER_SUB_RDS
   946  v4l2_tuner_audmode = V4L2_TUNER_MODE_MONO, V4L2_TUNER_MODE_STEREO, V4L2_TUNER_MODE_LANG2, V4L2_TUNER_MODE_SAP, V4L2_TUNER_MODE_LANG1, V4L2_TUNER_MODE_LANG1_LANG2
   947  v4l2_audio_capability = V4L2_AUDCAP_STEREO, V4L2_AUDCAP_AVL
   948  v4l2_audio_mode = V4L2_AUDMODE_AVL
   949  v4l2_control_flags = V4L2_CTRL_FLAG_DISABLED, V4L2_CTRL_FLAG_GRABBED, V4L2_CTRL_FLAG_READ_ONLY, V4L2_CTRL_FLAG_UPDATE, V4L2_CTRL_FLAG_INACTIVE, V4L2_CTRL_FLAG_SLIDER, V4L2_CTRL_FLAG_WRITE_ONLY, V4L2_CTRL_FLAG_VOLATILE, V4L2_CTRL_FLAG_HAS_PAYLOAD, V4L2_CTRL_FLAG_EXECUTE_ON_WRITE
   950  v4l2_ext_ctrl_class = V4L2_CTRL_CLASS_USER, V4L2_CTRL_CLASS_CODEC, V4L2_CTRL_CLASS_CAMERA, V4L2_CTRL_CLASS_FM_TX, V4L2_CTRL_CLASS_FLASH, V4L2_CTRL_CLASS_JPEG, V4L2_CTRL_CLASS_IMAGE_SOURCE, V4L2_CTRL_CLASS_IMAGE_PROC, V4L2_CTRL_CLASS_DV, V4L2_CTRL_CLASS_FM_RX, V4L2_CTRL_CLASS_RF_TUNER, V4L2_CTRL_CLASS_DETECT, V4L2_CTRL_ID_MASK, V4L2_CTRL_MAX_DIMS, V4L2_CTRL_WHICH_CUR_VAL, V4L2_CTRL_WHICH_DEF_VAL
   951  #Comeback and add others from include/uapi/linux/videodev2.h#1617. Once after syz-extract able to detect with special chars
   952  v4l2_ext_controls = V4L2_CID_USER_CLASS, V4L2_CID_BRIGHTNESS, V4L2_CID_CONTRAST, V4L2_CID_SATURATION, V4L2_CID_HUE, V4L2_CID_AUDIO_VOLUME, V4L2_CID_AUDIO_BALANCE, V4L2_CID_AUDIO_BASS, V4L2_CID_AUDIO_TREBLE, V4L2_CID_AUDIO_MUTE, V4L2_CID_AUDIO_LOUDNESS, V4L2_CID_BLACK_LEVEL, V4L2_CID_AUTO_WHITE_BALANCE, V4L2_CID_DO_WHITE_BALANCE, V4L2_CID_RED_BALANCE, V4L2_CID_BLUE_BALANCE, V4L2_CID_GAMMA, V4L2_CID_EXPOSURE, V4L2_CID_AUTOGAIN, V4L2_CID_GAIN, V4L2_CID_HFLIP, V4L2_CID_VFLIP, V4L2_CID_POWER_LINE_FREQUENCY, V4L2_CID_HUE_AUTO, V4L2_CID_WHITE_BALANCE_TEMPERATURE, V4L2_CID_SHARPNESS, V4L2_CID_BACKLIGHT_COMPENSATION, V4L2_CID_CHROMA_AGC, V4L2_CID_COLOR_KILLER, V4L2_CID_COLORFX, V4L2_CID_AUTOBRIGHTNESS, V4L2_CID_BAND_STOP_FILTER, V4L2_CID_ROTATE, V4L2_CID_BG_COLOR, V4L2_CID_CHROMA_GAIN, V4L2_CID_ILLUMINATORS_1, V4L2_CID_ILLUMINATORS_2, V4L2_CID_MIN_BUFFERS_FOR_CAPTURE, V4L2_CID_MIN_BUFFERS_FOR_OUTPUT, V4L2_CID_ALPHA_COMPONENT, V4L2_CID_COLORFX_CBCR, V4L2_CID_CODEC_CLASS, V4L2_CID_MPEG_STREAM_TYPE, V4L2_CID_MPEG_STREAM_PID_PMT, V4L2_CID_MPEG_STREAM_PID_AUDIO, V4L2_CID_MPEG_STREAM_PID_VIDEO, V4L2_CID_MPEG_STREAM_PID_PCR, V4L2_CID_MPEG_STREAM_PES_ID_AUDIO, V4L2_CID_MPEG_STREAM_PES_ID_VIDEO, V4L2_CID_MPEG_STREAM_VBI_FMT, V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ, V4L2_CID_MPEG_AUDIO_ENCODING, V4L2_CID_MPEG_AUDIO_L1_BITRATE, V4L2_CID_MPEG_AUDIO_L2_BITRATE, V4L2_CID_MPEG_AUDIO_L3_BITRATE, V4L2_CID_MPEG_AUDIO_MODE, V4L2_CID_MPEG_AUDIO_MODE_EXTENSION, V4L2_CID_MPEG_AUDIO_EMPHASIS, V4L2_CID_MPEG_AUDIO_CRC, V4L2_CID_MPEG_AUDIO_MUTE, V4L2_CID_MPEG_AUDIO_AAC_BITRATE, V4L2_CID_MPEG_AUDIO_AC3_BITRATE, V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK, V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK, V4L2_CID_MPEG_VIDEO_ENCODING, V4L2_CID_MPEG_VIDEO_ASPECT, V4L2_CID_MPEG_VIDEO_B_FRAMES, V4L2_CID_MPEG_VIDEO_GOP_SIZE, V4L2_CID_MPEG_VIDEO_GOP_CLOSURE, V4L2_CID_MPEG_VIDEO_PULLDOWN, V4L2_CID_MPEG_VIDEO_BITRATE_MODE, V4L2_CID_MPEG_VIDEO_BITRATE, V4L2_CID_MPEG_VIDEO_BITRATE_PEAK, V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION, V4L2_CID_MPEG_VIDEO_MUTE, V4L2_CID_MPEG_VIDEO_MUTE_YUV, V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE, V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER, V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB, V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE, V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE, V4L2_CID_MPEG_VIDEO_HEADER_MODE, V4L2_CID_MPEG_VIDEO_MAX_REF_PIC, V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP, V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP, V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP, V4L2_CID_MPEG_VIDEO_H263_MIN_QP, V4L2_CID_MPEG_VIDEO_H263_MAX_QP, V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP, V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP, V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP, V4L2_CID_MPEG_VIDEO_H264_MAX_QP, V4L2_CID_MPEG_VIDEO_H264_MIN_QP, V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM, V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE, V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE, V4L2_CID_MPEG_VIDEO_H264_I_PERIOD, V4L2_CID_MPEG_VIDEO_H264_LEVEL, V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA, V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA, V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE, V4L2_CID_MPEG_VIDEO_H264_PROFILE, V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT, V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH, V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE, V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC, V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING, V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0, V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE, V4L2_CID_MPEG_VIDEO_H264_FMO, V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE, V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP, V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION, V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE, V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH, V4L2_CID_MPEG_VIDEO_H264_ASO, V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER, V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING, V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE, V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER, V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP, V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP, V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP, V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP, V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP, V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP, V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL, V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE, V4L2_CID_MPEG_VIDEO_MPEG4_QPEL, V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES, V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB, V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE, V4L2_CID_MPEG_VIDEO_VBV_SIZE, V4L2_CID_MPEG_VIDEO_DEC_PTS, V4L2_CID_MPEG_VIDEO_DEC_FRAME, V4L2_CID_MPEG_VIDEO_VBV_DELAY, V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE, V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE, V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER, V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME, V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS, V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4, V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES, V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL, V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS, V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD, V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL, V4L2_CID_MPEG_VIDEO_VPX_MIN_QP, V4L2_CID_MPEG_VIDEO_VPX_MAX_QP, V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP, V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP, V4L2_CID_MPEG_VIDEO_VPX_PROFILE, V4L2_CID_CAMERA_CLASS, V4L2_CID_EXPOSURE_AUTO, V4L2_CID_EXPOSURE_ABSOLUTE, V4L2_CID_EXPOSURE_AUTO_PRIORITY, V4L2_CID_PAN_RELATIVE, V4L2_CID_TILT_RELATIVE, V4L2_CID_PAN_RESET, V4L2_CID_TILT_RESET, V4L2_CID_PAN_ABSOLUTE, V4L2_CID_TILT_ABSOLUTE, V4L2_CID_FOCUS_ABSOLUTE, V4L2_CID_FOCUS_RELATIVE, V4L2_CID_FOCUS_AUTO, V4L2_CID_ZOOM_ABSOLUTE, V4L2_CID_ZOOM_RELATIVE, V4L2_CID_ZOOM_CONTINUOUS, V4L2_CID_PRIVACY, V4L2_CID_IRIS_ABSOLUTE, V4L2_CID_IRIS_RELATIVE, V4L2_CID_AUTO_EXPOSURE_BIAS, V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE, V4L2_CID_WIDE_DYNAMIC_RANGE, V4L2_CID_IMAGE_STABILIZATION, V4L2_CID_ISO_SENSITIVITY, V4L2_CID_ISO_SENSITIVITY_AUTO, V4L2_CID_EXPOSURE_METERING, V4L2_CID_SCENE_MODE, V4L2_CID_3A_LOCK, V4L2_CID_AUTO_FOCUS_START, V4L2_CID_AUTO_FOCUS_STOP, V4L2_CID_AUTO_FOCUS_STATUS, V4L2_CID_AUTO_FOCUS_RANGE, V4L2_CID_PAN_SPEED, V4L2_CID_TILT_SPEED, V4L2_CID_FM_TX_CLASS, V4L2_CID_RDS_TX_DEVIATION, V4L2_CID_RDS_TX_PI, V4L2_CID_RDS_TX_PTY, V4L2_CID_RDS_TX_PS_NAME, V4L2_CID_RDS_TX_RADIO_TEXT, V4L2_CID_RDS_TX_MONO_STEREO, V4L2_CID_RDS_TX_ARTIFICIAL_HEAD, V4L2_CID_RDS_TX_COMPRESSED, V4L2_CID_RDS_TX_DYNAMIC_PTY, V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT, V4L2_CID_RDS_TX_TRAFFIC_PROGRAM, V4L2_CID_RDS_TX_MUSIC_SPEECH, V4L2_CID_RDS_TX_ALT_FREQS_ENABLE, V4L2_CID_RDS_TX_ALT_FREQS, V4L2_CID_AUDIO_LIMITER_ENABLED, V4L2_CID_AUDIO_LIMITER_RELEASE_TIME, V4L2_CID_AUDIO_LIMITER_DEVIATION, V4L2_CID_AUDIO_COMPRESSION_ENABLED, V4L2_CID_AUDIO_COMPRESSION_GAIN, V4L2_CID_AUDIO_COMPRESSION_THRESHOLD, V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME, V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME, V4L2_CID_PILOT_TONE_ENABLED, V4L2_CID_PILOT_TONE_DEVIATION, V4L2_CID_PILOT_TONE_FREQUENCY, V4L2_CID_TUNE_PREEMPHASIS, V4L2_CID_TUNE_POWER_LEVEL, V4L2_CID_TUNE_ANTENNA_CAPACITOR, V4L2_CID_FLASH_CLASS, V4L2_CID_FLASH_LED_MODE, V4L2_CID_FLASH_STROBE_SOURCE, V4L2_CID_FLASH_STROBE, V4L2_CID_FLASH_STROBE_STOP, V4L2_CID_FLASH_STROBE_STATUS, V4L2_CID_FLASH_TIMEOUT, V4L2_CID_FLASH_INTENSITY, V4L2_CID_FLASH_TORCH_INTENSITY, V4L2_CID_FLASH_INDICATOR_INTENSITY, V4L2_CID_FLASH_FAULT, V4L2_CID_FLASH_CHARGE, V4L2_CID_FLASH_READY, V4L2_CID_JPEG_CLASS, V4L2_CID_JPEG_CHROMA_SUBSAMPLING, V4L2_CID_JPEG_RESTART_INTERVAL, V4L2_CID_JPEG_COMPRESSION_QUALITY, V4L2_CID_JPEG_ACTIVE_MARKER, V4L2_CID_IMAGE_SOURCE_CLASS, V4L2_CID_VBLANK, V4L2_CID_HBLANK, V4L2_CID_ANALOGUE_GAIN, V4L2_CID_TEST_PATTERN_RED, V4L2_CID_TEST_PATTERN_GREENR, V4L2_CID_TEST_PATTERN_BLUE, V4L2_CID_TEST_PATTERN_GREENB, V4L2_CID_IMAGE_PROC_CLASS, V4L2_CID_LINK_FREQ, V4L2_CID_PIXEL_RATE, V4L2_CID_TEST_PATTERN, V4L2_CID_DV_CLASS, V4L2_CID_DV_TX_HOTPLUG, V4L2_CID_DV_TX_RXSENSE, V4L2_CID_DV_TX_EDID_PRESENT, V4L2_CID_DV_TX_MODE, V4L2_CID_DV_TX_RGB_RANGE, V4L2_CID_DV_TX_IT_CONTENT_TYPE, V4L2_CID_DV_RX_POWER_PRESENT, V4L2_CID_DV_RX_RGB_RANGE, V4L2_CID_DV_RX_IT_CONTENT_TYPE, V4L2_CID_FM_RX_CLASS, V4L2_CID_TUNE_DEEMPHASIS, V4L2_CID_RDS_RECEPTION, V4L2_CID_RF_TUNER_CLASS, V4L2_CID_RF_TUNER_RF_GAIN, V4L2_CID_RF_TUNER_LNA_GAIN_AUTO, V4L2_CID_RF_TUNER_LNA_GAIN, V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO, V4L2_CID_RF_TUNER_MIXER_GAIN, V4L2_CID_RF_TUNER_IF_GAIN_AUTO, V4L2_CID_RF_TUNER_IF_GAIN, V4L2_CID_RF_TUNER_BANDWIDTH_AUTO, V4L2_CID_RF_TUNER_BANDWIDTH, V4L2_CID_RF_TUNER_PLL_LOCK, V4L2_CID_RDS_RX_PTY, V4L2_CID_RDS_RX_PS_NAME, V4L2_CID_RDS_RX_RADIO_TEXT, V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT, V4L2_CID_RDS_RX_TRAFFIC_PROGRAM, V4L2_CID_RDS_RX_MUSIC_SPEECH, V4L2_CID_DETECT_CLASS, V4L2_CID_DETECT_MD_MODE, V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD, V4L2_CID_DETECT_MD_THRESHOLD_GRID, V4L2_CID_DETECT_MD_REGION_GRID
   953  v4l2_frmsizetypes = V4L2_FRMSIZE_TYPE_DISCRETE, V4L2_FRMSIZE_TYPE_CONTINUOUS, V4L2_FRMSIZE_TYPE_STEPWISE
   954  v4l2_frmivaltypes = V4L2_FRMIVAL_TYPE_DISCRETE, V4L2_FRMIVAL_TYPE_CONTINUOUS, V4L2_FRMIVAL_TYPE_STEPWISE
   955  v4l2_enc_idx_flags = V4L2_ENC_IDX_FRAME_I, V4L2_ENC_IDX_FRAME_P, V4L2_ENC_IDX_FRAME_B, V4L2_ENC_IDX_FRAME_MASK
   956  v4l2_dbg_match_type = V4L2_CHIP_MATCH_BRIDGE, V4L2_CHIP_MATCH_SUBDEV, V4L2_CHIP_MATCH_I2C_DRIVER, V4L2_CHIP_MATCH_I2C_ADDR, V4L2_CHIP_MATCH_AC97
   957  v4l2_frequency_band_modulation = V4L2_BAND_MODULATION_VSB, V4L2_BAND_MODULATION_FM, V4L2_BAND_MODULATION_AM
   958  v4l2_dv_timings_type = V4L2_DV_BT_656_1120
   959  v4l2_bt_timings_interlaced = V4L2_DV_PROGRESSIVE, V4L2_DV_INTERLACED
   960  v4l2_bt_timings_polarities = V4L2_DV_VSYNC_POS_POL, V4L2_DV_HSYNC_POS_POL
   961  v4l2_bt_timings_standards = V4L2_DV_BT_STD_CEA861, V4L2_DV_BT_STD_DMT, V4L2_DV_BT_STD_CVT, V4L2_DV_BT_STD_GTF, V4L2_DV_BT_STD_SDI
   962  v4l2_bt_timings_flags = V4L2_DV_FL_REDUCED_BLANKING, V4L2_DV_FL_CAN_REDUCE_FPS, V4L2_DV_FL_REDUCED_FPS, V4L2_DV_FL_HALF_LINE, V4L2_DV_FL_IS_CE_VIDEO, V4L2_DV_FL_FIRST_FIELD_EXTRA_LINE
   963  v4l2_encoder_cmd_cmd = V4L2_ENC_CMD_START, V4L2_ENC_CMD_STOP, V4L2_ENC_CMD_PAUSE, V4L2_ENC_CMD_RESUME
   964  v4l2_encoder_flags = V4L2_ENC_CMD_STOP_AT_GOP_END
   965  v4l2_decoder_cmd_cmd = V4L2_DEC_CMD_START, V4L2_DEC_CMD_STOP, V4L2_DEC_CMD_PAUSE, V4L2_DEC_CMD_RESUME
   966  v4l2_decoder_cmd_flags = V4L2_DEC_CMD_START_MUTE_AUDIO, V4L2_DEC_CMD_PAUSE_TO_BLACK, V4L2_DEC_CMD_STOP_TO_BLACK, V4L2_DEC_CMD_STOP_IMMEDIATELY
   967  v4l2_decoder_cmd_format = V4L2_DEC_START_FMT_NONE, V4L2_DEC_START_FMT_GOP
   968  v4l2_event_src_changes = V4L2_EVENT_SRC_CH_RESOLUTION
   969  v4l2_event_type = V4L2_EVENT_ALL, V4L2_EVENT_VSYNC, V4L2_EVENT_EOS, V4L2_EVENT_CTRL, V4L2_EVENT_FRAME_SYNC, V4L2_EVENT_SOURCE_CHANGE, V4L2_EVENT_MOTION_DET, V4L2_EVENT_PRIVATE_START
   970  v4l2_event_ctrl_changes = V4L2_EVENT_CTRL_CH_VALUE, V4L2_EVENT_CTRL_CH_FLAGS, V4L2_EVENT_CTRL_CH_RANGE
   971  v4l2_event_motion_det_flags = V4L2_EVENT_MD_FL_HAVE_FRAME_SEQ
   972  v4l2_event_subscription_flags = V4L2_EVENT_SUB_FL_SEND_INITIAL, V4L2_EVENT_SUB_FL_ALLOW_FEEDBACK
   973  v4l2_selection_target = V4L2_SEL_TGT_CROP, V4L2_SEL_TGT_CROP_DEFAULT, V4L2_SEL_TGT_CROP_BOUNDS, V4L2_SEL_TGT_NATIVE_SIZE, V4L2_SEL_TGT_COMPOSE, V4L2_SEL_TGT_COMPOSE_DEFAULT, V4L2_SEL_TGT_COMPOSE_BOUNDS, V4L2_SEL_TGT_COMPOSE_PADDED
   974  v4l2_selection_flags = V4L2_SEL_FLAG_GE, V4L2_SEL_FLAG_LE, V4L2_SEL_FLAG_KEEP_CONFIG
   975  v4l2_bt_timings_cap_capabilities = V4L2_DV_BT_CAP_INTERLACED, V4L2_DV_BT_CAP_PROGRESSIVE, V4L2_DV_BT_CAP_REDUCED_BLANKING, V4L2_DV_BT_CAP_CUSTOM
   976  v4l2_dbg_chip_info_flags = V4L2_CHIP_FL_READABLE, V4L2_CHIP_FL_WRITABLE
   977  v4l2_std_id = V4L2_STD_PAL_B, V4L2_STD_PAL_B1, V4L2_STD_PAL_G, V4L2_STD_PAL_H, V4L2_STD_PAL_I, V4L2_STD_PAL_D, V4L2_STD_PAL_D1, V4L2_STD_PAL_K, V4L2_STD_PAL_M, V4L2_STD_PAL_N, V4L2_STD_PAL_Nc, V4L2_STD_PAL_60, V4L2_STD_NTSC_M, V4L2_STD_NTSC_M_JP, V4L2_STD_NTSC_443, V4L2_STD_NTSC_M_KR, V4L2_STD_SECAM_B, V4L2_STD_SECAM_D, V4L2_STD_SECAM_G, V4L2_STD_SECAM_H, V4L2_STD_SECAM_K, V4L2_STD_SECAM_K1, V4L2_STD_SECAM_L, V4L2_STD_SECAM_LC, V4L2_STD_ATSC_8_VSB, V4L2_STD_ATSC_16_VSB, V4L2_STD_NTSC, V4L2_STD_SECAM_DK, V4L2_STD_SECAM, V4L2_STD_PAL_BG, V4L2_STD_PAL_DK, V4L2_STD_PAL, V4L2_STD_B, V4L2_STD_G, V4L2_STD_H, V4L2_STD_L, V4L2_STD_GH, V4L2_STD_DK, V4L2_STD_BG, V4L2_STD_MN, V4L2_STD_MTS, V4L2_STD_525_60, V4L2_STD_625_50, V4L2_STD_ATSC, V4L2_STD_UNKNOWN, V4L2_STD_ALL
   978  v4l2_input_status = V4L2_IN_ST_NO_POWER, V4L2_IN_ST_NO_SIGNAL, V4L2_IN_ST_NO_COLOR, V4L2_IN_ST_HFLIP, V4L2_IN_ST_VFLIP, V4L2_IN_ST_NO_H_LOCK, V4L2_IN_ST_COLOR_KILL, V4L2_IN_ST_NO_V_LOCK, V4L2_IN_ST_NO_STD_LOCK, V4L2_IN_ST_NO_SYNC, V4L2_IN_ST_NO_EQU, V4L2_IN_ST_NO_CARRIER, V4L2_IN_ST_MACROVISION, V4L2_IN_ST_NO_ACCESS, V4L2_IN_ST_VTR
   979  v4l2_input_type = V4L2_INPUT_TYPE_TUNER, V4L2_INPUT_TYPE_CAMERA, V4L2_INPUT_TYPE_TOUCH
   980  v4l2_input_capabilities = V4L2_IN_CAP_DV_TIMINGS, V4L2_IN_CAP_CUSTOM_TIMINGS, V4L2_IN_CAP_STD, V4L2_IN_CAP_NATIVE_SIZE
   981  v4l2_output_type = V4L2_OUTPUT_TYPE_MODULATOR, V4L2_OUTPUT_TYPE_ANALOG, V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY
   982  v4l2_output_capabilities = V4L2_OUT_CAP_DV_TIMINGS, V4L2_OUT_CAP_CUSTOM_TIMINGS, V4L2_OUT_CAP_STD, V4L2_OUT_CAP_NATIVE_SIZE
   983  v4l2_query_ext_ctrl = V4L2_CTRL_FLAG_NEXT_CTRL, V4L2_CTRL_FLAG_NEXT_COMPOUND