Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save srikanth007m/35fee62c4af6a6561cc8508ac6c41b5b to your computer and use it in GitHub Desktop.
Save srikanth007m/35fee62c4af6a6561cc8508ac6c41b5b to your computer and use it in GitHub Desktop.
msm_video
include <stdio.h>
include <linux/ioctl.h>
include <linux/time.h>
include <linux/types.h>
include <uapi/linux/videodev2.h>
include <uapi/linux/v4l2-common.h>
include <uapi/linux/v4l2-subdev.h>
include <uapi/linux/v4l2-mediabus.h>
include <uapi/linux/media-bus-format.h>
resource fd_msmvideo[fd]
resource fd_dmabuf[fd]
resource fd_v4l2_buffer[fd]
resource v4l2_std_id[int32]
syz_open_dev$video(dev ptr[in, string["/dev/video#"]], id intptr, flags flags[open_flags]) fd_msmvideo
syz_open_dev$video4linux(dev ptr[in, string["/dev/video4linux"]], id const[0], flags flags[open_flags]) fd_msmvideo
ioctl$VIDIOC_QUERYCAP(fd fd_msmvideo, cmd const[VIDIOC_QUERYCAP], arg ptr[out, v4l2_capability])
ioctl$VIDIOC_RESERVED(fd fd_msmvideo, cmd const[VIDIOC_RESERVED], arg const[0])
ioctl$VIDIOC_ENUM_FMT(fd fd_msmvideo, cmd const[VIDIOC_ENUM_FMT], arg ptr[inout, v4l2_fmtdesc])
#ioctl$VIDIOC_G_FMT(fd fd_msmvideo, cmd const[VIDIOC_G_FMT], arg ptr[inout, v4l2_format])
#ioctl$VIDIOC_S_FMT(fd fd_msmvideo, cmd const[VIDIOC_S_FMT], arg ptr[inout, v4l2_format])
ioctl$VIDIOC_REQBUFS(fd fd_msmvideo, cmd const[VIDIOC_REQBUFS], arg ptr[inout, v4l2_requestbuffers])
ioctl$VIDIOC_QUERYBUF(fd fd_msmvideo, cmd const[VIDIOC_QUERYBUF], arg ptr[inout, v4l2_buffer])
ioctl$VIDIOC_G_FBUF(fd fd_msmvideo, cmd const[VIDIOC_G_FBUF], arg ptr[out, v4l2_framebuffer])
ioctl$VIDIOC_S_FBUF(fd fd_msmvideo, cmd const[VIDIOC_S_FBUF], arg ptr[in, v4l2_framebuffer])
ioctl$VIDIOC_OVERLAY(fd fd_msmvideo, cmd const[VIDIOC_OVERLAY], arg ptr[in, int32])
ioctl$VIDIOC_QBUF(fd fd_msmvideo, cmd const[VIDIOC_QBUF], arg ptr[inout, v4l2_buffer])
ioctl$VIDIOC_EXPBUF(fd fd_msmvideo, cmd const[VIDIOC_EXPBUF], arg ptr[inout, v4l2_exportbuffer])
ioctl$VIDIOC_DQBUF(fd fd_msmvideo, cmd const[VIDIOC_DQBUF], arg ptr[inout, v4l2_buffer])
ioctl$VIDIOC_STREAMON(fd fd_msmvideo, cmd const[VIDIOC_STREAMON], arg ptr[in, int32])
ioctl$VIDIOC_STREAMOFF(fd fd_msmvideo, cmd const[VIDIOC_STREAMOFF], arg ptr[in, int32])
ioctl$VIDIOC_G_PARM(fd fd_msmvideo, cmd const[VIDIOC_G_PARM], arg ptr[inout, v4l2_streamparm])
ioctl$VIDIOC_S_PARM(fd fd_msmvideo, cmd const[VIDIOC_S_PARM], arg ptr[inout, v4l2_streamparm])
ioctl$VIDIOC_G_STD(fd fd_msmvideo, cmd const[VIDIOC_G_STD], arg ptr[out, v4l2_std_id])
ioctl$VIDIOC_S_STD(fd fd_msmvideo, cmd const[VIDIOC_S_STD], arg ptr[in, v4l2_std_id])
ioctl$VIDIOC_ENUMSTD(fd fd_msmvideo, cmd const[VIDIOC_ENUMSTD], arg ptr[inout, v4l2_standard])
ioctl$VIDIOC_ENUMINPUT(fd fd_msmvideo, cmd const[VIDIOC_ENUMINPUT], arg ptr[inout, v4l2_input])
ioctl$VIDIOC_G_CTRL(fd fd_msmvideo, cmd const[VIDIOC_G_CTRL], arg ptr[inout, v4l2_control])
ioctl$VIDIOC_S_CTRL(fd fd_msmvideo, cmd const[VIDIOC_S_CTRL], arg ptr[inout, v4l2_control])
ioctl$VIDIOC_G_TUNER(fd fd_msmvideo, cmd const[VIDIOC_G_TUNER], arg ptr[inout, v4l2_tuner])
ioctl$VIDIOC_S_TUNER(fd fd_msmvideo, cmd const[VIDIOC_S_TUNER], arg ptr[in, v4l2_tuner])
ioctl$VIDIOC_G_AUDIO(fd fd_msmvideo, cmd const[VIDIOC_G_AUDIO], arg ptr[out, v4l2_audio])
ioctl$VIDIOC_S_AUDIO(fd fd_msmvideo, cmd const[VIDIOC_S_AUDIO], arg ptr[in, v4l2_audio])
ioctl$VIDIOC_QUERYCTRL(fd fd_msmvideo, cmd const[VIDIOC_QUERYCTRL], arg ptr[inout, v4l2_queryctrl])
ioctl$VIDIOC_QUERYMENU(fd fd_msmvideo, cmd const[VIDIOC_QUERYMENU], arg ptr[inout, v4l2_querymenu])
ioctl$VIDIOC_G_INPUT(fd fd_msmvideo, cmd const[VIDIOC_G_INPUT], arg ptr[out, int32])
ioctl$VIDIOC_S_INPUT(fd fd_msmvideo, cmd const[VIDIOC_S_INPUT], arg ptr[inout, int32])
ioctl$VIDIOC_G_EDID(fd fd_msmvideo, cmd const[VIDIOC_G_EDID], arg ptr[inout, v4l2_edid])
ioctl$VIDIOC_S_EDID(fd fd_msmvideo, cmd const[VIDIOC_S_EDID], arg ptr[inout, v4l2_edid])
ioctl$VIDIOC_G_OUTPUT(fd fd_msmvideo, cmd const[VIDIOC_G_OUTPUT], arg ptr[out, int32])
ioctl$VIDIOC_S_OUTPUT(fd fd_msmvideo, cmd const[VIDIOC_S_OUTPUT], arg ptr[inout, int32])
ioctl$VIDIOC_ENUMOUTPUT(fd fd_msmvideo, cmd const[VIDIOC_ENUMOUTPUT], arg ptr[inout, v4l2_output])
ioctl$VIDIOC_G_AUDOUT(fd fd_msmvideo, cmd const[VIDIOC_G_AUDOUT], arg ptr[out, v4l2_audioout])
ioctl$VIDIOC_S_AUDOUT(fd fd_msmvideo, cmd const[VIDIOC_S_AUDOUT], arg ptr[in, v4l2_audioout])
ioctl$VIDIOC_G_MODULATOR(fd fd_msmvideo, cmd const[VIDIOC_G_MODULATOR], arg ptr[inout, v4l2_modulator])
ioctl$VIDIOC_S_MODULATOR(fd fd_msmvideo, cmd const[VIDIOC_S_MODULATOR], arg ptr[in, v4l2_modulator])
ioctl$VIDIOC_G_FREQUENCY(fd fd_msmvideo, cmd const[VIDIOC_G_FREQUENCY], arg ptr[inout, v4l2_frequency])
ioctl$VIDIOC_S_FREQUENCY(fd fd_msmvideo, cmd const[VIDIOC_S_FREQUENCY], arg ptr[in, v4l2_frequency])
ioctl$VIDIOC_CROPCAP(fd fd_msmvideo, cmd const[VIDIOC_CROPCAP], arg ptr[inout, v4l2_cropcap])
ioctl$VIDIOC_G_CROP(fd fd_msmvideo, cmd const[VIDIOC_G_CROP], arg ptr[inout, v4l2_crop])
ioctl$VIDIOC_S_CROP(fd fd_msmvideo, cmd const[VIDIOC_S_CROP], arg ptr[in, v4l2_crop])
ioctl$VIDIOC_G_JPEGCOMP(fd fd_msmvideo, cmd const[VIDIOC_G_JPEGCOMP], arg ptr[out, v4l2_jpegcompression])
ioctl$VIDIOC_S_JPEGCOMP(fd fd_msmvideo, cmd const[VIDIOC_S_JPEGCOMP], arg ptr[in, v4l2_jpegcompression])
ioctl$VIDIOC_QUERYSTD(fd fd_msmvideo, cmd const[VIDIOC_QUERYSTD], arg ptr[out, v4l2_std_id])
#ioctl$VIDIOC_TRY_FMT(fd fd_msmvideo, cmd const[VIDIOC_TRY_FMT], arg ptr[inout, v4l2_format])
ioctl$VIDIOC_ENUMAUDIO(fd fd_msmvideo, cmd const[VIDIOC_ENUMAUDIO], arg ptr[inout, v4l2_audio])
ioctl$VIDIOC_ENUMAUDOUT(fd fd_msmvideo, cmd const[VIDIOC_ENUMAUDOUT], arg ptr[inout, v4l2_audioout])
ioctl$VIDIOC_G_PRIORITY(fd fd_msmvideo, cmd const[VIDIOC_G_PRIORITY], arg flags[v4l2_priority])
ioctl$VIDIOC_S_PRIORITY(fd fd_msmvideo, cmd const[VIDIOC_S_PRIORITY], arg flags[v4l2_priority])
ioctl$VIDIOC_G_SLICED_VBI_CAP(fd fd_msmvideo, cmd const[VIDIOC_G_SLICED_VBI_CAP], arg ptr[inout, v4l2_sliced_vbi_cap])
ioctl$VIDIOC_LOG_STATUS(fd fd_msmvideo, cmd const[VIDIOC_LOG_STATUS], arg const[0])
ioctl$VIDIOC_G_EXT_CTRLS(fd fd_msmvideo, cmd const[VIDIOC_G_EXT_CTRLS], arg ptr[inout, v4l2_ext_controls])
ioctl$VIDIOC_S_EXT_CTRLS(fd fd_msmvideo, cmd const[VIDIOC_S_EXT_CTRLS], arg ptr[inout, v4l2_ext_controls])
ioctl$VIDIOC_TRY_EXT_CTRLS(fd fd_msmvideo, cmd const[VIDIOC_TRY_EXT_CTRLS], arg ptr[inout, v4l2_ext_controls])
ioctl$VIDIOC_ENUM_FRAMESIZES(fd fd_msmvideo, cmd const[VIDIOC_ENUM_FRAMESIZES], arg ptr[inout, v4l2_frmsizeenum])
ioctl$VIDIOC_ENUM_FRAMEINTERVALS(fd fd_msmvideo, cmd const[VIDIOC_ENUM_FRAMEINTERVALS], arg ptr[inout, v4l2_frmivalenum])
ioctl$VIDIOC_G_ENC_INDEX(fd fd_msmvideo, cmd const[VIDIOC_G_ENC_INDEX], arg ptr[out, v4l2_enc_idx])
ioctl$VIDIOC_ENCODER_CMD(fd fd_msmvideo, cmd const[VIDIOC_ENCODER_CMD], arg ptr[inout, v4l2_encoder_cmd])
ioctl$VIDIOC_TRY_ENCODER_CMD(fd fd_msmvideo, cmd const[VIDIOC_TRY_ENCODER_CMD], arg ptr[inout, v4l2_encoder_cmd])
ioctl$VIDIOC_DBG_S_REGISTER(fd fd_msmvideo, cmd const[VIDIOC_DBG_S_REGISTER], arg ptr[in, v4l2_dbg_register])
ioctl$VIDIOC_DBG_G_REGISTER(fd fd_msmvideo, cmd const[VIDIOC_DBG_G_REGISTER], arg ptr[inout, v4l2_dbg_register])
ioctl$VIDIOC_S_HW_FREQ_SEEK(fd fd_msmvideo, cmd const[VIDIOC_S_HW_FREQ_SEEK], arg ptr[in, v4l2_hw_freq_seek])
ioctl$VIDIOC_S_DV_TIMINGS(fd fd_msmvideo, cmd const[VIDIOC_S_DV_TIMINGS], arg ptr[inout, v4l2_dv_timings])
ioctl$VIDIOC_G_DV_TIMINGS(fd fd_msmvideo, cmd const[VIDIOC_G_DV_TIMINGS], arg ptr[inout, v4l2_dv_timings])
ioctl$VIDIOC_DQEVENT(fd fd_msmvideo, cmd const[VIDIOC_DQEVENT], arg ptr[out, v4l2_event])
ioctl$VIDIOC_SUBSCRIBE_EVENT(fd fd_msmvideo, cmd const[VIDIOC_SUBSCRIBE_EVENT], arg ptr[in, v4l2_event_subscription])
ioctl$VIDIOC_UNSUBSCRIBE_EVENT(fd fd_msmvideo, cmd const[VIDIOC_UNSUBSCRIBE_EVENT], arg ptr[in, v4l2_event_subscription])
#ioctl$VIDIOC_CREATE_BUFS(fd fd_msmvideo, cmd const[VIDIOC_CREATE_BUFS], arg ptr[inout, v4l2_create_buffers])
ioctl$VIDIOC_PREPARE_BUF(fd fd_msmvideo, cmd const[VIDIOC_PREPARE_BUF], arg ptr[inout, v4l2_buffer])
ioctl$VIDIOC_G_SELECTION(fd fd_msmvideo, cmd const[VIDIOC_G_SELECTION], arg ptr[inout, v4l2_selection])
ioctl$VIDIOC_S_SELECTION(fd fd_msmvideo, cmd const[VIDIOC_S_SELECTION], arg ptr[inout, v4l2_selection])
ioctl$VIDIOC_DECODER_CMD(fd fd_msmvideo, cmd const[VIDIOC_DECODER_CMD], arg ptr[inout, v4l2_decoder_cmd])
ioctl$VIDIOC_TRY_DECODER_CMD(fd fd_msmvideo, cmd const[VIDIOC_TRY_DECODER_CMD], arg ptr[inout, v4l2_decoder_cmd])
ioctl$VIDIOC_ENUM_DV_TIMINGS(fd fd_msmvideo, cmd const[VIDIOC_ENUM_DV_TIMINGS], arg ptr[inout, v4l2_enum_dv_timings])
ioctl$VIDIOC_QUERY_DV_TIMINGS(fd fd_msmvideo, cmd const[VIDIOC_QUERY_DV_TIMINGS], arg ptr[out, v4l2_dv_timings])
ioctl$VIDIOC_DV_TIMINGS_CAP(fd fd_msmvideo, cmd const[VIDIOC_DV_TIMINGS_CAP], arg ptr[inout, v4l2_dv_timings_cap])
ioctl$VIDIOC_ENUM_FREQ_BANDS(fd fd_msmvideo, cmd const[VIDIOC_ENUM_FREQ_BANDS], arg ptr[inout, v4l2_frequency_band])
ioctl$VIDIOC_DBG_G_CHIP_INFO(fd fd_msmvideo, cmd const[VIDIOC_DBG_G_CHIP_INFO], arg ptr[inout, v4l2_dbg_chip_info])
ioctl$VIDIOC_QUERY_EXT_CTRL(fd fd_msmvideo, cmd const[VIDIOC_QUERY_EXT_CTRL], arg ptr[inout, v4l2_query_ext_ctrl])
ioctl$VIDIOC_SUBDEV_G_FMT(fd fd_msmvideo, cmd const[VIDIOC_SUBDEV_G_FMT], arg ptr[inout, v4l2_subdev_format])
## Fix v4l2_subdev_format for `code` as it reads from uapi/linux/media-bus-format.h
ioctl$VIDIOC_SUBDEV_S_FMT(fd fd_msmvideo, cmd const[VIDIOC_SUBDEV_S_FMT], arg ptr[inout, v4l2_subdev_format])
ioctl$VIDIOC_SUBDEV_G_FRAME_INTERVAL(fd fd_msmvideo, cmd const[VIDIOC_SUBDEV_G_FRAME_INTERVAL], arg ptr[inout, v4l2_subdev_frame_interval])
ioctl$VIDIOC_SUBDEV_S_FRAME_INTERVAL(fd fd_msmvideo, cmd const[VIDIOC_SUBDEV_S_FRAME_INTERVAL], arg ptr[inout, v4l2_subdev_frame_interval])
ioctl$VIDIOC_SUBDEV_ENUM_MBUS_CODE(fd fd_msmvideo, cmd const[VIDIOC_SUBDEV_ENUM_MBUS_CODE], arg ptr[inout, v4l2_subdev_mbus_code_enum])
ioctl$VIDIOC_SUBDEV_ENUM_FRAME_SIZE(fd fd_msmvideo, cmd const[VIDIOC_SUBDEV_ENUM_FRAME_SIZE], arg ptr[inout, v4l2_subdev_frame_size_enum])
ioctl$VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL(fd fd_msmvideo, cmd const[VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL], arg ptr[inout, v4l2_subdev_frame_interval_enum])
ioctl$VIDIOC_SUBDEV_G_CROP(fd fd_msmvideo, cmd const[VIDIOC_SUBDEV_G_CROP], arg ptr[inout, v4l2_subdev_crop])
ioctl$VIDIOC_SUBDEV_S_CROP(fd fd_msmvideo, cmd const[VIDIOC_SUBDEV_S_CROP], arg ptr[inout, v4l2_subdev_crop])
ioctl$VIDIOC_SUBDEV_G_SELECTION(fd fd_msmvideo, cmd const[VIDIOC_SUBDEV_G_SELECTION], arg ptr[inout, v4l2_subdev_selection])
ioctl$VIDIOC_SUBDEV_S_SELECTION(fd fd_msmvideo, cmd const[VIDIOC_SUBDEV_S_SELECTION], arg ptr[inout, v4l2_subdev_selection])
ioctl$VIDIOC_SUBDEV_G_EDID(fd fd_msmvideo, cmd const[VIDIOC_SUBDEV_G_EDID], arg ptr[inout, v4l2_edid])
ioctl$VIDIOC_SUBDEV_S_EDID(fd fd_msmvideo, cmd const[VIDIOC_SUBDEV_S_EDID], arg ptr[inout, v4l2_edid])
ioctl$VIDIOC_SUBDEV_S_DV_TIMINGS(fd fd_msmvideo, cmd const[VIDIOC_SUBDEV_S_DV_TIMINGS], arg ptr[inout, v4l2_dv_timings])
ioctl$VIDIOC_SUBDEV_G_DV_TIMINGS(fd fd_msmvideo, cmd const[VIDIOC_SUBDEV_G_DV_TIMINGS], arg ptr[inout, v4l2_dv_timings])
ioctl$VIDIOC_SUBDEV_ENUM_DV_TIMINGS(fd fd_msmvideo, cmd const[VIDIOC_SUBDEV_ENUM_DV_TIMINGS], arg ptr[inout, v4l2_enum_dv_timings])
ioctl$VIDIOC_SUBDEV_QUERY_DV_TIMINGS(fd fd_msmvideo, cmd const[VIDIOC_SUBDEV_QUERY_DV_TIMINGS], arg ptr[out, v4l2_dv_timings])
ioctl$VIDIOC_SUBDEV_DV_TIMINGS_CAP(fd fd_msmvideo, cmd const[VIDIOC_SUBDEV_DV_TIMINGS_CAP], arg ptr[inout, v4l2_dv_timings_cap])
v4l2_capability {
driver array[int8, 16]
card array[int8, 16]
bus_version array[int8, 32]
version int32
capabilities int32
device_caps int32
reserved array[const[0, int32], 3]
}
v4l2_fmtdesc {
index int32
type int32
flags int32
description array[int8, 32]
pixelformat int32
reserved array[const[0, int32], 4]
}
v4l2_format {
type flags[v4l2_buf_type, int32]
fmt v4l2_format_fmt
}
v4l2_format_fmt[
pix v4l2_pix_format
pix_mp v4l2_pix_format_mplane
win v4l2_window
vbi v4l2_vbi_format
sliced v4l2_sliced_vbi_format
sdr v4l2_sdr_format
raw_data array[int8, 200]
]
v4l2_pix_format {
width int32
height int32
pixelformat int32
field flags[v4l2_field, int32]
bytesperline int32
sizeimage int32
colorspace flags[v4l2_colorspace, int32]
priv int32
flags int32
ycbcr_enc flags[v4l2_ycbcr_encoding, int32]
quantization flags[v4l2_quantization, int32]
xfer_func flags[v4l2_xfer_func, int32]
}
v4l2_pix_format_mplane {
width int32
height int32
pixelformat int32
field int32
colorspace int32
plane_fmt array[v4l2_plane_pix_format, 8]
num_planes int8
flags int8
ycbcr_enc flags[v4l2_ycbcr_encoding, int8]
quantization flags[v4l2_quantization, int8]
xfer_func flags[v4l2_xfer_func, int8]
reserved array[const[0, int8], 7]
}[packed]
v4l2_plane_pix_format {
sizeimage int32
bytesperline int32
reserved array[const[0, int16], 6]
}[packed]
v4l2_window {
w v4l2_rect
field int32
chromakey int32
clips ptr[inout, v4l2_clip]
clipcount int32
bitmap vma
global_alpha int8
}
v4l2_rect {
left int32
top int32
width int32
height int32
}
v4l2_clip {
c v4l2_rect
next ptr[inout, v4l2_clip]
}
v4l2_vbi_format {
sampling_rate int32
offset int32
samples_per_line int32
sample_format int32
start array[int32, 2]
count array[int32, 2]
flags int32
reserved array[const[0, int32], 2]
}
v4l2_sliced_vbi_format {
service_set int16
service_lines array[int16, 48]
io_size int32
reserved array[const[0, int32], 2]
}
v4l2_sdr_format {
pixelformat int32
buffersize int32
reserved array[const[0, int8], 24]
}[packed]
v4l2_requestbuffers {
count int32
type flags[v4l2_buf_type, int32]
memory flags[v4l2_memory, int32]
reserved array[const[0, int32], 2]
}
v4l2_buffer {
index int32
type int32
bytesused int32
flags int32
timestamp timeval
timecode v4l2_timecode
sequence int32
memory int32
m v4l2_buffer_union
length int32
reserved2 const[0, int32]
reserved const[0, int32]
}
v4l2_buffer_union[
offset int32
userptr int64
planes ptr[inout, v4l2_plane]
fd fd_v4l2_buffer
]
v4l2_timecode {
type int32
flags int32
frames int8
seconds int8
minutes int8
hours int8
userbits array[int8, 4]
}
v4l2_plane {
bytesused int32
length int32
m v4l2_plane_union
data_offset int32
reserved array[const[0, int32], 11]
}
v4l2_plane_union [
mem_offset int32
userptr intptr
fd fd_v4l2_buffer
]
v4l2_framebuffer {
capability int32
flags int32
base vma
fmt v4l2_framebuffer_union
}
v4l2_framebuffer_union {
width int32
height int32
pixelformat int32
field flags[v4l2_field, int32]
bytesperline int32
sizeimage int32
colorspace flags[v4l2_colorspace, int32]
priv int32
}
v4l2_exportbuffer {
type flags[v4l2_buf_type, int32]
index int32
plane int32
flags int32
fd buffer[inout]
reserved array[const[0, int32], 11]
}
v4l2_streamparm {
type flags[v4l2_buf_type, int32]
parm v4l2_streamparm_union
}
v4l2_streamparm_union [
capture v4l2_captureparm
output v4l2_outputparm
raw_data array[int8, 200]
]
v4l2_captureparm {
capability int32
capturemode int32
timeperframe v4l2_fract
extendedmode int32
readbuffers int32
reserved array[const[0, int32], 4]
}
v4l2_fract {
numerator int32
denominator int32
}
v4l2_outputparm {
capability int32
outputmode int32
timeperframe v4l2_fract
extendedmode int32
writebuffers int32
reserved array[const[0, int32], 4]
}
v4l2_control {
id int32
value int32
}
v4l2_tuner {
index int32
name array[int8, 32]
type flags[v4l2_tuner_type, int32]
capability int32
rangelow int32
rangehigh int32
rxsubchans int32
audmode int32
signal int32
afc int32
reserved array[const[0, int32], 4]
}
v4l2_audio {
index int32
name array[int8, 32]
capability int32
mode int32
reserved array[const[0, int32], 2]
}
v4l2_queryctrl {
id int32
type flags[v4l2_ctrl_type, int32]
name array[int8, 32]
minimum int32
maximum int32
step int32
default_value int32
flags int32
reserved array[const[0, int32], 2]
}
v4l2_querymenu {
id int32
index int32
union v4l2_querymenu_union
reserved const[0, int32]
}[packed]
v4l2_querymenu_union [
name array[int8, 32]
value int64
]
v4l2_edid {
pad int32
start_block int32
blocks int32
reserved array[const[0, int32], 5]
edid ptr[inout, int8]
}
v4l2_audioout {
index int32
name array[int8, 32]
capability int32
mode int32
reserved array[const[0, int32], 2]
}
v4l2_modulator {
index int32
name array[int8, 32]
capability int32
rangelow int32
rangehigh int32
txsubchans int32
type flags[v4l2_tuner_type, int32]
reserved array[const[0, int32], 3]
}
v4l2_frequency {
tuner int32
type flags[v4l2_tuner_type, int32]
frequency int32
reserved array[const[0, int32], 8]
}
v4l2_cropcap {
type flags[v4l2_buf_type, int32]
bounds v4l2_rect
defrect v4l2_rect
pixelaspect v4l2_fract
}
v4l2_crop {
type flags[v4l2_buf_type, int32]
c v4l2_rect
}
v4l2_jpegcompression {
quality int32
APPn int32[0:15]
APP_len int32
APP_data array[int8, 60]
COM_len int32
COM_data array[int8, 60]
jpeg_markers flags[v4l2_jpeg_markers, int32]
}
v4l2_sliced_vbi_cap {
service_set int16
service_lines array[int16, 48]
type flags[v4l2_buf_type, int32]
reserved array[const[0, int32], 3]
}
v4l2_ext_controls {
ctrl_class int32
count int32
error_idx int32
reserved array[const[0, int32], 2]
controls ptr[inout, v4l2_ext_control]
}
v4l2_ext_control {
id int32
size int32
reserved2 array[const[0, int32], 1]
union v4l2_ext_u
}[packed]
v4l2_ext_u[
value_1 int32
value int64
string ptr[inout, int8]
p_u8 ptr[inout, int8]
p_u16 ptr[inout, int16]
p_u32 ptr[inout, int32]
ptr intptr
]
v4l2_frmsizeenum {
index int32
pixel_format int32
type int32
union v4l2_frmsizeenum_union
reserved array[const[0, int32], 2]
}
v4l2_frmsizeenum_union [
discrete v4l2_frmsize_discrete
stepwise v4l2_frmsize_stepwise
]
v4l2_frmsize_discrete {
width int32
height int32
}
v4l2_frmsize_stepwise {
min_width int32
max_width int32
step_width int32
min_height int32
max_height int32
step_height int32
}
v4l2_frmivalenum {
index int32
pixel_format int32
width int32
height int32
type int32
union v4l2_frmivalenum_union
reserved array[const[0, int32], 2]
}
v4l2_frmivalenum_union [
discrete v4l2_fract
stepwise v4l2_frmival_stepwise
]
v4l2_frmival_stepwise {
min v4l2_fract
max v4l2_fract
step v4l2_fract
}
v4l2_enc_idx {
entries int32
entries_cap int32
reserved array[const[0, int32], 4]
entry array[v4l2_enc_idx_entry, 64]
}
v4l2_enc_idx_entry {
offset int64
pts int64
length int32
flags int32
reserved array[const[0, int32], 2]
}
v4l2_dbg_register {
match v4l2_dbg_match
size int32
reg int64
val int64
}[packed]
v4l2_dbg_match {
type int32
union v4l2_dbg_match_union
}[packed]
v4l2_dbg_match_union [
addr int32
name array[int8, 32]
]
v4l2_hw_freq_seek {
tuner int32
type flags[v4l2_tuner_type, int32]
seek_upward int32
wrap_around int32
spacing int32
rangelow int32
rangehigh int32
reserved array[const[0, int32], 5]
}
v4l2_dv_timings {
type int32
union v4l2_dv_timings_union
}[packed]
v4l2_dv_timings_union [
bt v4l2_bt_timings
reserved array[const[0, int32], 32]
]
v4l2_bt_timings {
width int32
height int32
interlaced int32
polarities int32
pixelclock int64
hfrontporch int32
hsync int32
hbackporch int32
vfrontporch int32
vsync int32
vbackporch int32
il_vfrontporch int32
il_vsync int32
il_vbackporch int32
standards int32
flags int32
reserved array[const[0, int32], 14]
}[packed]
v4l2_encoder_cmd {
cmd int32
flags int32
data array[int32, 8]
}
v4l2_event {
type int32
u v4l2_event_union
pending int32
sequence int32
timestamp timespec
id int32
reserved array[const[0, int32], 8]
}
v4l2_event_union [
vsync v4l2_event_vsync
ctrl v4l2_event_ctrl
frame_sync v4l2_event_frame_sync
src_change v4l2_event_src_change
motion_det v4l2_event_motion_det
data array[int8, 64]
]
v4l2_event_vsync {
field flags[v4l2_field_1, int8]
}[packed]
v4l2_event_ctrl {
changes int32
type int32
u v4l2_event_ctrl_union
flags int32
minimum int32
maximum int32
step int32
default_value int32
}
v4l2_event_ctrl_union [
value int32
value64 int64
]
v4l2_event_frame_sync {
frame_sequence int32
}
v4l2_event_src_change {
changes int32
}
v4l2_event_motion_det {
flags int32
frame_sequence int32
region_mask int32
}
v4l2_event_subscription {
type int32
id int32
flags int32
reserved array[const[0, int32], 5]
}
v4l2_create_buffers {
index int32
count int32
memory flags[v4l2_memory, int32]
format v4l2_format
reserved array[const[0, int32], 8]
}
v4l2_selection {
type flags[v4l2_buf_type_1, int32]
#Need to check target and flags for defining v4l2-common.h; V4L2_SEL_TGT_*
target int32
flags int32
r v4l2_rect
reserved array[const[0, int32], 9]
}
v4l2_decoder_cmd {
cmd int32
flags int32
u v4l2_decoder_cmd_u
}
v4l2_decoder_cmd_u [
stop_pts int64
start v4l2_decoder_cmd_start
raw_data array[int32, 16]
]
v4l2_decoder_cmd_start {
speed int32
format int32
}
v4l2_enum_dv_timings {
index int32
pad int32
reserved array[const[0, int32], 2]
timings v4l2_dv_timings
}
v4l2_dv_timings_cap {
type int32
pad int32
reserved array[const[0, int32], 2]
u v4l2_dv_timings_cap_u
}
v4l2_dv_timings_cap_u [
bt v4l2_bt_timings_cap
raw_data array[int32, 32]
]
v4l2_bt_timings_cap {
min_width int32
max_width int32
min_height int32
max_height int32
min_pixelclock int64
max_pixelclock int64
standards int32
capabilities int32
reserved array[const[0, int32], 16]
}[packed]
v4l2_frequency_band {
tuner int32
type flags[v4l2_tuner_type, int32]
index int32
capability int32
rangelow int32
rangehigh int32
modulation int32
reserved array[const[0, int32], 9]
}
v4l2_dbg_chip_info {
match v4l2_dbg_match
name array[int8, 32]
flags int32
reserved array[const[0, int32], 32]
}[packed]
v4l2_query_ext_ctrl {
id int32
type int32
name array[int8, 32]
minimum int64
maximum int64
step int64
default_value int64
flags int32
elem_size int32
elems int32
nr_of_dims int32
dims array[int32, 4]
reserved array[const[0, int32], 32]
}
v4l2_standard {
index int32
id v4l2_std_id
name array[int8, 24]
frameperiod v4l2_fract
framelines int32
reserved array[const[0, int32], 4]
}
v4l2_input {
index int32
name array[int8, 32]
type int32
audioset int32
tuner flags[v4l2_tuner_type, int32]
std v4l2_std_id
status int32
capabilities int32
reserved array[const[0, int32], 3]
}
v4l2_output {
index int32
name array[int8, 32]
type int32
audioset int32
modulator int32
std v4l2_std_id
capabilities int32
reserved array[const[0, int32], 3]
}
v4l2_subdev_format {
which flags[v4l2_subdev_format_whence, int32]
pad int32
format v4l2_mbus_framefmt
reserved array[const[0, int32], 8]
}
v4l2_mbus_framefmt {
width int32
height int32
code int32
field flags[v4l2_field, int32]
colorspace flags[v4l2_colorspace, int32]
ycbcr_enc flags[v4l2_ycbcr_encoding, int32]
quantization flags[v4l2_quantization, int32]
xfer_func flags[v4l2_xfer_func, int32]
}
v4l2_subdev_frame_interval {
pad int32
interval v4l2_fract
reserved array[const[0, int32], 9]
}
v4l2_subdev_mbus_code_enum {
pad int32
index int32
code flags[media_bus_fmt, int32]
which flags[v4l2_subdev_format_whence, int32]
reserved array[const[0, int32], 8]
}
v4l2_subdev_frame_size_enum {
index int32
pad int32
code flags[media_bus_fmt, int32]
min_width int32
max_width int32
min_height int32
max_height int32
which flags[v4l2_subdev_format_whence, int32]
reserved array[const[0, int32], 8]
}
v4l2_subdev_frame_interval_enum {
index int32
pad int32
code flags[media_bus_fmt, int32]
width int32
height int32
interval v4l2_fract
which flags[v4l2_subdev_format_whence, int32]
reserved array[const[0, int32], 8]
}
v4l2_subdev_crop {
which flags[v4l2_subdev_format_whence, int32]
pad int32
rect v4l2_rect
reserved array[const[0, int32], 8]
}
v4l2_subdev_selection {
which flags[v4l2_subdev_format_whence, int32]
pad int32
target int32
flags int32
r v4l2_rect
reserved array[const[0, int32], 8]
}
v4l2_jpeg_markers = V4L2_JPEG_MARKER_DHT, V4L2_JPEG_MARKER_DQT, V4L2_JPEG_MARKER_DRI, V4L2_JPEG_MARKER_COM, V4L2_JPEG_MARKER_APP
v4l2_subdev_format_whence = V4L2_SUBDEV_FORMAT_TRY, V4L2_SUBDEV_FORMAT_ACTIVE
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
v4l2_field_1 = V4L2_FIELD_ANY, V4L2_FIELD_NONE, V4L2_FIELD_TOP, V4L2_FIELD_BOTTOM
v4l2_field = V4L2_FIELD_ANY, V4L2_FIELD_NONE, V4L2_FIELD_TOP, V4L2_FIELD_BOTTOM, V4L2_FIELD_INTERLACED, V4L2_FIELD_SEQ_TB, V4L2_FIELD_SEQ_BT, V4L2_FIELD_ALTERNATE, V4L2_FIELD_INTERLACED_TB, V4L2_FIELD_INTERLACED_BT
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_ADOBERGB, V4L2_COLORSPACE_BT2020, V4L2_COLORSPACE_RAW, V4L2_COLORSPACE_DCI_P3
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_SYCC, V4L2_YCBCR_ENC_BT2020, V4L2_YCBCR_ENC_BT2020_CONST_LUM, V4L2_YCBCR_ENC_SMPTE240M
v4l2_quantization = V4L2_QUANTIZATION_DEFAULT, V4L2_QUANTIZATION_FULL_RANGE, V4L2_QUANTIZATION_LIM_RANGE
v4l2_xfer_func = V4L2_XFER_FUNC_DEFAULT, V4L2_XFER_FUNC_709, V4L2_XFER_FUNC_SRGB, V4L2_XFER_FUNC_ADOBERGB, V4L2_XFER_FUNC_SMPTE240M, V4L2_XFER_FUNC_NONE, V4L2_XFER_FUNC_DCI_P3, V4L2_XFER_FUNC_SMPTE2084
v4l2_buf_type = 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_VIDEO_CAPTURE_MPLANE, V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, V4L2_BUF_TYPE_SDR_CAPTURE, V4L2_BUF_TYPE_SDR_OUTPUT
v4l2_memory = V4L2_MEMORY_MMAP, V4L2_MEMORY_USERPTR, V4L2_MEMORY_OVERLAY, V4L2_MEMORY_DMABUF
v4l2_tuner_type = V4L2_TUNER_RADIO, V4L2_TUNER_ANALOG_TV, V4L2_TUNER_DIGITAL_TV, V4L2_TUNER_SDR, V4L2_TUNER_RF
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
v4l2_priority = V4L2_PRIORITY_UNSET, V4L2_PRIORITY_BACKGROUND, V4L2_PRIORITY_INTERACTIVE, V4L2_PRIORITY_RECORD, V4L2_PRIORITY_DEFAULT
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment