pub mod codes {
const VIDEODEV2_IOC_MAGIC: u8 = b'V';
pub const VIDIOC_QUERYCAP: libc::c_ulong = ior!(VIDEODEV2_IOC_MAGIC, 0, crate::v4l2_capability);
pub const VIDIOC_RESERVED: libc::c_ulong = io!(VIDEODEV2_IOC_MAGIC, 1);
pub const VIDIOC_ENUM_FMT: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 2, crate::v4l2_fmtdesc);
pub const VIDIOC_G_FMT: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 4, crate::v4l2_format);
pub const VIDIOC_S_FMT: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 5, crate::v4l2_format);
pub const VIDIOC_REQBUFS: libc::c_ulong =
iowr!(VIDEODEV2_IOC_MAGIC, 8, crate::v4l2_requestbuffers);
pub const VIDIOC_QUERYBUF: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 9, crate::v4l2_buffer);
pub const VIDIOC_G_FBUF: libc::c_ulong = ior!(VIDEODEV2_IOC_MAGIC, 10, crate::v4l2_framebuffer);
pub const VIDIOC_S_FBUF: libc::c_ulong = iow!(VIDEODEV2_IOC_MAGIC, 11, crate::v4l2_framebuffer);
pub const VIDIOC_OVERLAY: libc::c_ulong = iow!(VIDEODEV2_IOC_MAGIC, 14, ::std::os::raw::c_int);
pub const VIDIOC_QBUF: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 15, crate::v4l2_buffer);
pub const VIDIOC_EXPBUF: libc::c_ulong =
iowr!(VIDEODEV2_IOC_MAGIC, 16, crate::v4l2_exportbuffer);
pub const VIDIOC_DQBUF: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 17, crate::v4l2_buffer);
pub const VIDIOC_STREAMON: libc::c_ulong = iow!(VIDEODEV2_IOC_MAGIC, 18, ::std::os::raw::c_int);
pub const VIDIOC_STREAMOFF: libc::c_ulong =
iow!(VIDEODEV2_IOC_MAGIC, 19, ::std::os::raw::c_int);
pub const VIDIOC_G_PARM: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 21, crate::v4l2_streamparm);
pub const VIDIOC_S_PARM: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 22, crate::v4l2_streamparm);
pub const VIDIOC_G_STD: libc::c_ulong = ior!(VIDEODEV2_IOC_MAGIC, 23, crate::v4l2_std_id);
pub const VIDIOC_S_STD: libc::c_ulong = iow!(VIDEODEV2_IOC_MAGIC, 24, crate::v4l2_std_id);
pub const VIDIOC_ENUMSTD: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 25, crate::v4l2_standard);
pub const VIDIOC_ENUMINPUT: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 26, crate::v4l2_input);
pub const VIDIOC_G_CTRL: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 27, crate::v4l2_control);
pub const VIDIOC_S_CTRL: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 28, crate::v4l2_control);
pub const VIDIOC_G_TUNER: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 29, crate::v4l2_tuner);
pub const VIDIOC_S_TUNER: libc::c_ulong = iow!(VIDEODEV2_IOC_MAGIC, 30, crate::v4l2_tuner);
pub const VIDIOC_G_AUDIO: libc::c_ulong = ior!(VIDEODEV2_IOC_MAGIC, 33, crate::v4l2_audio);
pub const VIDIOC_S_AUDIO: libc::c_ulong = iow!(VIDEODEV2_IOC_MAGIC, 34, crate::v4l2_audio);
pub const VIDIOC_QUERYCTRL: libc::c_ulong =
iowr!(VIDEODEV2_IOC_MAGIC, 36, crate::v4l2_queryctrl);
pub const VIDIOC_QUERYMENU: libc::c_ulong =
iowr!(VIDEODEV2_IOC_MAGIC, 37, crate::v4l2_querymenu);
pub const VIDIOC_G_INPUT: libc::c_ulong = ior!(VIDEODEV2_IOC_MAGIC, 38, ::std::os::raw::c_int);
pub const VIDIOC_S_INPUT: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 39, ::std::os::raw::c_int);
pub const VIDIOC_G_EDID: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 40, crate::v4l2_edid);
pub const VIDIOC_S_EDID: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 41, crate::v4l2_edid);
pub const VIDIOC_G_OUTPUT: libc::c_ulong = ior!(VIDEODEV2_IOC_MAGIC, 46, ::std::os::raw::c_int);
pub const VIDIOC_S_OUTPUT: libc::c_ulong =
iowr!(VIDEODEV2_IOC_MAGIC, 47, ::std::os::raw::c_int);
pub const VIDIOC_ENUMOUTPUT: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 48, crate::v4l2_output);
pub const VIDIOC_G_AUDOUT: libc::c_ulong = ior!(VIDEODEV2_IOC_MAGIC, 49, crate::v4l2_audioout);
pub const VIDIOC_S_AUDOUT: libc::c_ulong = iow!(VIDEODEV2_IOC_MAGIC, 50, crate::v4l2_audioout);
pub const VIDIOC_G_MODULATOR: libc::c_ulong =
iowr!(VIDEODEV2_IOC_MAGIC, 54, crate::v4l2_modulator);
pub const VIDIOC_S_MODULATOR: libc::c_ulong =
iow!(VIDEODEV2_IOC_MAGIC, 55, crate::v4l2_modulator);
pub const VIDIOC_G_FREQUENCY: libc::c_ulong =
iowr!(VIDEODEV2_IOC_MAGIC, 56, crate::v4l2_frequency);
pub const VIDIOC_S_FREQUENCY: libc::c_ulong =
iow!(VIDEODEV2_IOC_MAGIC, 57, crate::v4l2_frequency);
pub const VIDIOC_CROPCAP: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 58, crate::v4l2_cropcap);
pub const VIDIOC_G_CROP: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 59, crate::v4l2_crop);
pub const VIDIOC_S_CROP: libc::c_ulong = iow!(VIDEODEV2_IOC_MAGIC, 60, crate::v4l2_crop);
pub const VIDIOC_G_JPEGCOMP: libc::c_ulong =
ior!(VIDEODEV2_IOC_MAGIC, 61, crate::v4l2_jpegcompression);
pub const VIDIOC_S_JPEGCOMP: libc::c_ulong =
iow!(VIDEODEV2_IOC_MAGIC, 62, crate::v4l2_jpegcompression);
pub const VIDIOC_QUERYSTD: libc::c_ulong = ior!(VIDEODEV2_IOC_MAGIC, 63, crate::v4l2_std_id);
pub const VIDIOC_TRY_FMT: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 64, crate::v4l2_format);
pub const VIDIOC_ENUMAUDIO: libc::c_ulong = iowr!(VIDEODEV2_IOC_MAGIC, 65, crate::v4l2_audio);
pub const VIDIOC_ENUMAUDOUT: libc::c_ulong =
iowr!(VIDEODEV2_IOC_MAGIC, 66, crate::v4l2_audioout);
pub const VIDIOC_G_PRIORITY: libc::c_ulong = ior!(VIDEODEV2_IOC_MAGIC, 67, crate::__u32) ;
pub const VIDIOC_S_PRIORITY: libc::c_ulong = iow!(VIDEODEV2_IOC_MAGIC, 68, crate::__u32) ;
pub const VIDIOC_G_SLICED_VBI_CAP: libc::c_ulong =
iowr!(VIDEODEV2_IOC_MAGIC, 69, crate::v4l2_sliced_vbi_cap);
pub const VIDIOC_LOG_STATUS: libc::c_ulong = io!(VIDEODEV2_IOC_MAGIC, 70);
pub const VIDIOC_G_EXT_CTRLS: libc::c_ulong =
iowr!(VIDEODEV2_IOC_MAGIC, 71, crate::v4l2_ext_controls);
pub const VIDIOC_S_EXT_CTRLS: libc::c_ulong =
iowr!(VIDEODEV2_IOC_MAGIC, 72, crate::v4l2_ext_controls);
pub const VIDIOC_TRY_EXT_CTRLS: libc::c_ulong =
iowr!(VIDEODEV2_IOC_MAGIC, 73, crate::v4l2_ext_controls);
pub const VIDIOC_ENUM_FRAMESIZES: libc::c_ulong =
iowr!(VIDEODEV2_IOC_MAGIC, 74, crate::v4l2_frmsizeenum);
pub const VIDIOC_ENUM_FRAMEINTERVALS: libc::c_ulong =
iowr!(VIDEODEV2_IOC_MAGIC, 75, crate::v4l2_frmivalenum);
pub const VIDIOC_G_ENC_INDEX: libc::c_ulong =
ior!(VIDEODEV2_IOC_MAGIC, 76, crate::v4l2_enc_idx);
pub const VIDIOC_ENCODER_CMD: libc::c_ulong =
iowr!(VIDEODEV2_IOC_MAGIC, 77, crate::v4l2_encoder_cmd);
pub const VIDIOC_TRY_ENCODER_CMD: libc::c_ulong =
iowr!(VIDEODEV2_IOC_MAGIC, 78, crate::v4l2_encoder_cmd);
}
#[macro_export]
macro_rules! fourcc {
($a:expr, $b:expr, $c:expr, $d:expr) => {
($a as u32) | (($b as u32) << 8) | (($c as u32) << 16) | (($d as u32) << 24)
};
}
#[macro_export]
macro_rules! fourcc_be {
($a:expr, $b:expr, $c:expr, $d:expr) => {
fourcc!($a, $b, $c, $d) | ((1 as u32) << 31)
};
}
pub mod pixel_format {
mod rgb {
pub const V4L2_PIX_FMT_RGB332: u32 = fourcc!(b'R', b'G', b'B', b'1');
pub const V4L2_PIX_FMT_RGB444: u32 = fourcc!(b'R', b'4', b'4', b'4');
pub const V4L2_PIX_FMT_ARGB444: u32 = fourcc!(b'A', b'R', b'1', b'2');
pub const V4L2_PIX_FMT_XRGB444: u32 = fourcc!(b'X', b'R', b'1', b'2');
pub const V4L2_PIX_FMT_RGB555: u32 = fourcc!(b'R', b'G', b'B', b'O');
pub const V4L2_PIX_FMT_ARGB555: u32 = fourcc!(b'A', b'R', b'1', b'5');
pub const V4L2_PIX_FMT_XRGB555: u32 = fourcc!(b'X', b'R', b'1', b'5');
pub const V4L2_PIX_FMT_RGB565: u32 = fourcc!(b'R', b'G', b'B', b'P');
pub const V4L2_PIX_FMT_RGB555X: u32 = fourcc!(b'R', b'G', b'B', b'Q');
pub const V4L2_PIX_FMT_ARGB555X: u32 = fourcc_be!(b'A', b'R', b'1', b'5');
pub const V4L2_PIX_FMT_XRGB555X: u32 = fourcc_be!(b'X', b'R', b'1', b'5');
pub const V4L2_PIX_FMT_RGB565X: u32 = fourcc!(b'R', b'G', b'B', b'R');
pub const V4L2_PIX_FMT_BGR666: u32 = fourcc!(b'B', b'G', b'R', b'H');
pub const V4L2_PIX_FMT_BGR24: u32 = fourcc!(b'B', b'G', b'R', b'3');
pub const V4L2_PIX_FMT_RGB24: u32 = fourcc!(b'R', b'G', b'B', b'3');
pub const V4L2_PIX_FMT_BGR32: u32 = fourcc!(b'B', b'G', b'R', b'4');
pub const V4L2_PIX_FMT_ABGR32: u32 = fourcc!(b'A', b'R', b'2', b'4');
pub const V4L2_PIX_FMT_XBGR32: u32 = fourcc!(b'X', b'R', b'2', b'4');
pub const V4L2_PIX_FMT_RGB32: u32 = fourcc!(b'R', b'G', b'B', b'4');
pub const V4L2_PIX_FMT_ARGB32: u32 = fourcc!(b'B', b'A', b'2', b'4');
pub const V4L2_PIX_FMT_XRGB32: u32 = fourcc!(b'B', b'X', b'2', b'4');
}
pub use rgb::*;
mod grey {
pub const V4L2_PIX_FMT_GREY: u32 = fourcc!(b'G', b'R', b'E', b'Y');
pub const V4L2_PIX_FMT_Y4: u32 = fourcc!(b'Y', b'0', b'4', b' ');
pub const V4L2_PIX_FMT_Y6: u32 = fourcc!(b'Y', b'0', b'6', b' ');
pub const V4L2_PIX_FMT_Y10: u32 = fourcc!(b'Y', b'1', b'0', b' ');
pub const V4L2_PIX_FMT_Y12: u32 = fourcc!(b'Y', b'1', b'2', b' ');
pub const V4L2_PIX_FMT_Y16: u32 = fourcc!(b'Y', b'1', b'6', b' ');
pub const V4L2_PIX_FMT_Y16_BE: u32 = fourcc_be!(b'Y', b'1', b'6', b' ');
}
pub use grey::*;
mod grey_bit_packed {
pub const V4L2_PIX_FMT_Y10BPACK: u32 = fourcc!(b'Y', b'1', b'0', b'B');
}
pub use grey_bit_packed::*;
mod palette {
pub const V4L2_PIX_FMT_PAL8: u32 = fourcc!(b'P', b'A', b'L', b'8');
}
pub use palette::*;
mod chrominance {
pub const V4L2_PIX_FMT_UV8: u32 = fourcc!(b'U', b'V', b'8', b' ');
}
pub use chrominance::*;
mod luminance_chrominance {
pub const V4L2_PIX_FMT_YUYV: u32 = fourcc!(b'Y', b'U', b'Y', b'V');
pub const V4L2_PIX_FMT_YYUV: u32 = fourcc!(b'Y', b'Y', b'U', b'V');
pub const V4L2_PIX_FMT_YVYU: u32 = fourcc!(b'Y', b'V', b'Y', b'U');
pub const V4L2_PIX_FMT_UYVY: u32 = fourcc!(b'U', b'Y', b'V', b'Y');
pub const V4L2_PIX_FMT_VYUY: u32 = fourcc!(b'V', b'Y', b'U', b'Y');
pub const V4L2_PIX_FMT_Y41P: u32 = fourcc!(b'Y', b'4', b'1', b'P');
pub const V4L2_PIX_FMT_YUV444: u32 = fourcc!(b'Y', b'4', b'4', b'4');
pub const V4L2_PIX_FMT_YUV555: u32 = fourcc!(b'Y', b'U', b'V', b'O');
pub const V4L2_PIX_FMT_YUV565: u32 = fourcc!(b'Y', b'U', b'V', b'P');
pub const V4L2_PIX_FMT_YUV32: u32 = fourcc!(b'Y', b'U', b'V', b'4');
pub const V4L2_PIX_FMT_HI240: u32 = fourcc!(b'H', b'I', b'2', b'4');
pub const V4L2_PIX_FMT_HM12: u32 = fourcc!(b'H', b'M', b'1', b'2');
pub const V4L2_PIX_FMT_M420: u32 = fourcc!(b'M', b'4', b'2', b'0');
}
pub use luminance_chrominance::*;
mod two_planes {
pub const V4L2_PIX_FMT_NV12: u32 = fourcc!(b'N', b'V', b'1', b'2');
pub const V4L2_PIX_FMT_NV21: u32 = fourcc!(b'N', b'V', b'2', b'1');
pub const V4L2_PIX_FMT_NV16: u32 = fourcc!(b'N', b'V', b'1', b'6');
pub const V4L2_PIX_FMT_NV61: u32 = fourcc!(b'N', b'V', b'6', b'1');
pub const V4L2_PIX_FMT_NV24: u32 = fourcc!(b'N', b'V', b'2', b'4');
pub const V4L2_PIX_FMT_NV42: u32 = fourcc!(b'N', b'V', b'4', b'2');
}
pub use two_planes::*;
mod two_non_contiguous_planes {
pub const V4L2_PIX_FMT_NV12M: u32 = fourcc!(b'N', b'M', b'1', b'2');
pub const V4L2_PIX_FMT_NV21M: u32 = fourcc!(b'N', b'M', b'2', b'1');
pub const V4L2_PIX_FMT_NV16M: u32 = fourcc!(b'N', b'M', b'1', b'6');
pub const V4L2_PIX_FMT_NV61M: u32 = fourcc!(b'N', b'M', b'6', b'1');
pub const V4L2_PIX_FMT_NV12MT: u32 = fourcc!(b'T', b'M', b'1', b'2');
pub const V4L2_PIX_FMT_NV12MT_16X16: u32 = fourcc!(b'V', b'M', b'1', b'2');
}
pub use two_non_contiguous_planes::*;
mod three_plances {
pub const V4L2_PIX_FMT_YUV410: u32 = fourcc!(b'Y', b'U', b'V', b'9');
pub const V4L2_PIX_FMT_YVU410: u32 = fourcc!(b'Y', b'V', b'U', b'9');
pub const V4L2_PIX_FMT_YUV411P: u32 = fourcc!(b'4', b'1', b'1', b'P');
pub const V4L2_PIX_FMT_YUV420: u32 = fourcc!(b'Y', b'U', b'1', b'2');
pub const V4L2_PIX_FMT_YVU420: u32 = fourcc!(b'Y', b'V', b'1', b'2');
pub const V4L2_PIX_FMT_YUV422P: u32 = fourcc!(b'4', b'2', b'2', b'P');
}
pub use three_plances::*;
mod three_non_contiguous_planes {
pub const V4L2_PIX_FMT_YUV420M: u32 = fourcc!(b'Y', b'M', b'1', b'2');
pub const V4L2_PIX_FMT_YVU420M: u32 = fourcc!(b'Y', b'M', b'2', b'1');
pub const V4L2_PIX_FMT_YUV422M: u32 = fourcc!(b'Y', b'M', b'1', b'6');
pub const V4L2_PIX_FMT_YVU422M: u32 = fourcc!(b'Y', b'M', b'6', b'1');
pub const V4L2_PIX_FMT_YUV444M: u32 = fourcc!(b'Y', b'M', b'2', b'4');
pub const V4L2_PIX_FMT_YVU444M: u32 = fourcc!(b'Y', b'M', b'4', b'2');
}
pub use three_non_contiguous_planes::*;
mod bayer {
pub const V4L2_PIX_FMT_SBGGR8: u32 = fourcc!(b'B', b'A', b'8', b'1');
pub const V4L2_PIX_FMT_SGBRG8: u32 = fourcc!(b'G', b'B', b'R', b'G');
pub const V4L2_PIX_FMT_SGRBG8: u32 = fourcc!(b'G', b'R', b'B', b'G');
pub const V4L2_PIX_FMT_SRGGB8: u32 = fourcc!(b'R', b'G', b'G', b'B');
pub const V4L2_PIX_FMT_SBGGR10: u32 = fourcc!(b'B', b'G', b'1', b'0');
pub const V4L2_PIX_FMT_SGBRG10: u32 = fourcc!(b'G', b'B', b'1', b'0');
pub const V4L2_PIX_FMT_SGRBG10: u32 = fourcc!(b'B', b'A', b'1', b'0');
pub const V4L2_PIX_FMT_SRGGB10: u32 = fourcc!(b'R', b'G', b'1', b'0');
mod raw_bayer_packed_10bit {
pub const V4L2_PIX_FMT_SBGGR10P: u32 = fourcc!(b'p', b'B', b'A', b'A');
pub const V4L2_PIX_FMT_SGBRG10P: u32 = fourcc!(b'p', b'G', b'A', b'A');
pub const V4L2_PIX_FMT_SGRBG10P: u32 = fourcc!(b'p', b'g', b'A', b'A');
pub const V4L2_PIX_FMT_SRGGB10P: u32 = fourcc!(b'p', b'R', b'A', b'A');
}
pub use raw_bayer_packed_10bit::*;
mod raw_bayer_law_compressed {
pub const V4L2_PIX_FMT_SBGGR10ALAW8: u32 = fourcc!(b'a', b'B', b'A', b'8');
pub const V4L2_PIX_FMT_SGBRG10ALAW8: u32 = fourcc!(b'a', b'G', b'A', b'8');
pub const V4L2_PIX_FMT_SGRBG10ALAW8: u32 = fourcc!(b'a', b'g', b'A', b'8');
pub const V4L2_PIX_FMT_SRGGB10ALAW8: u32 = fourcc!(b'a', b'R', b'A', b'8');
}
pub use raw_bayer_law_compressed::*;
mod raw_bayer_dpcm_compressed {
pub const V4L2_PIX_FMT_SBGGR10DPCM8: u32 = fourcc!(b'b', b'B', b'A', b'8');
pub const V4L2_PIX_FMT_SGBRG10DPCM8: u32 = fourcc!(b'b', b'G', b'A', b'8');
pub const V4L2_PIX_FMT_SGRBG10DPCM8: u32 = fourcc!(b'B', b'D', b'1', b'0');
pub const V4L2_PIX_FMT_SRGGB10DPCM8: u32 = fourcc!(b'b', b'R', b'A', b'8');
pub const V4L2_PIX_FMT_SBGGR12: u32 = fourcc!(b'B', b'G', b'1', b'2');
pub const V4L2_PIX_FMT_SGBRG12: u32 = fourcc!(b'G', b'B', b'1', b'2');
pub const V4L2_PIX_FMT_SGRBG12: u32 = fourcc!(b'B', b'A', b'1', b'2');
pub const V4L2_PIX_FMT_SRGGB12: u32 = fourcc!(b'R', b'G', b'1', b'2');
pub const V4L2_PIX_FMT_SBGGR16: u32 = fourcc!(b'B', b'Y', b'R', b'2');
pub const V4L2_PIX_FMT_SGBRG16: u32 = fourcc!(b'G', b'B', b'1', b'6');
pub const V4L2_PIX_FMT_SGRBG16: u32 = fourcc!(b'G', b'R', b'1', b'6');
pub const V4L2_PIX_FMT_SRGGB16: u32 = fourcc!(b'R', b'G', b'1', b'6');
}
pub use raw_bayer_dpcm_compressed::*;
}
pub use bayer::*;
mod hsv {
pub const V4L2_PIX_FMT_HSV24: u32 = fourcc!(b'H', b'S', b'V', b'3');
pub const V4L2_PIX_FMT_HSV32: u32 = fourcc!(b'H', b'S', b'V', b'4');
}
pub use hsv::*;
mod compressed {
pub const V4L2_PIX_FMT_MJPEG: u32 = fourcc!(b'M', b'J', b'P', b'G');
pub const V4L2_PIX_FMT_JPEG: u32 = fourcc!(b'J', b'P', b'E', b'G');
pub const V4L2_PIX_FMT_DV: u32 = fourcc!(b'd', b'v', b's', b'd');
pub const V4L2_PIX_FMT_MPEG: u32 = fourcc!(b'M', b'P', b'E', b'G');
pub const V4L2_PIX_FMT_H264: u32 = fourcc!(b'H', b'2', b'6', b'4');
pub const V4L2_PIX_FMT_H264_NO_SC: u32 = fourcc!(b'A', b'V', b'C', b'1');
pub const V4L2_PIX_FMT_H264_MVC: u32 = fourcc!(b'M', b'2', b'6', b'4');
pub const V4L2_PIX_FMT_H263: u32 = fourcc!(b'H', b'2', b'6', b'3');
pub const V4L2_PIX_FMT_MPEG1: u32 = fourcc!(b'M', b'P', b'G', b'1');
pub const V4L2_PIX_FMT_MPEG2: u32 = fourcc!(b'M', b'P', b'G', b'2');
pub const V4L2_PIX_FMT_MPEG4: u32 = fourcc!(b'M', b'P', b'G', b'4');
pub const V4L2_PIX_FMT_XVID: u32 = fourcc!(b'X', b'V', b'I', b'D');
pub const V4L2_PIX_FMT_VC1_ANNEX_G: u32 = fourcc!(b'V', b'C', b'1', b'G');
pub const V4L2_PIX_FMT_VC1_ANNEX_L: u32 = fourcc!(b'V', b'C', b'1', b'L');
pub const V4L2_PIX_FMT_VP8: u32 = fourcc!(b'V', b'P', b'8', b'0');
pub const V4L2_PIX_FMT_VP9: u32 = fourcc!(b'V', b'P', b'9', b'0');
}
pub use compressed::*;
mod vendor_specific {
pub const V4L2_PIX_FMT_CPIA1: u32 = fourcc!(b'C', b'P', b'I', b'A');
pub const V4L2_PIX_FMT_WNVA: u32 = fourcc!(b'W', b'N', b'V', b'A');
pub const V4L2_PIX_FMT_SN9C10X: u32 = fourcc!(b'S', b'9', b'1', b'0');
pub const V4L2_PIX_FMT_SN9C20X_I420: u32 = fourcc!(b'S', b'9', b'2', b'0');
pub const V4L2_PIX_FMT_PWC1: u32 = fourcc!(b'P', b'W', b'C', b'1');
pub const V4L2_PIX_FMT_PWC2: u32 = fourcc!(b'P', b'W', b'C', b'2');
pub const V4L2_PIX_FMT_ET61X251: u32 = fourcc!(b'E', b'6', b'2', b'5');
pub const V4L2_PIX_FMT_SPCA501: u32 = fourcc!(b'S', b'5', b'0', b'1');
pub const V4L2_PIX_FMT_SPCA505: u32 = fourcc!(b'S', b'5', b'0', b'5');
pub const V4L2_PIX_FMT_SPCA508: u32 = fourcc!(b'S', b'5', b'0', b'8');
pub const V4L2_PIX_FMT_SPCA561: u32 = fourcc!(b'S', b'5', b'6', b'1');
pub const V4L2_PIX_FMT_PAC207: u32 = fourcc!(b'P', b'2', b'0', b'7');
pub const V4L2_PIX_FMT_MR97310A: u32 = fourcc!(b'M', b'3', b'1', b'0');
pub const V4L2_PIX_FMT_JL2005BCD: u32 = fourcc!(b'J', b'L', b'2', b'0');
pub const V4L2_PIX_FMT_SN9C2028: u32 = fourcc!(b'S', b'O', b'N', b'X');
pub const V4L2_PIX_FMT_SQ905C: u32 = fourcc!(b'9', b'0', b'5', b'C');
pub const V4L2_PIX_FMT_PJPG: u32 = fourcc!(b'P', b'J', b'P', b'G');
pub const V4L2_PIX_FMT_OV511: u32 = fourcc!(b'O', b'5', b'1', b'1');
pub const V4L2_PIX_FMT_OV518: u32 = fourcc!(b'O', b'5', b'1', b'8');
pub const V4L2_PIX_FMT_STV0680: u32 = fourcc!(b'S', b'6', b'8', b'0');
pub const V4L2_PIX_FMT_TM6000: u32 = fourcc!(b'T', b'M', b'6', b'0');
pub const V4L2_PIX_FMT_CIT_YYVYUY: u32 = fourcc!(b'C', b'I', b'T', b'V');
pub const V4L2_PIX_FMT_KONICA420: u32 = fourcc!(b'K', b'O', b'N', b'I');
pub const V4L2_PIX_FMT_JPGL: u32 = fourcc!(b'J', b'P', b'G', b'L');
pub const V4L2_PIX_FMT_SE401: u32 = fourcc!(b'S', b'4', b'0', b'1');
pub const V4L2_PIX_FMT_S5C_UYVY_JPG: u32 = fourcc!(b'S', b'5', b'C', b'I');
pub const V4L2_PIX_FMT_Y8I: u32 = fourcc!(b'Y', b'8', b'I', b' ');
pub const V4L2_PIX_FMT_Y12I: u32 = fourcc!(b'Y', b'1', b'2', b'I');
pub const V4L2_PIX_FMT_Z16: u32 = fourcc!(b'Z', b'1', b'6', b' ');
pub const V4L2_PIX_FMT_MT21C: u32 = fourcc!(b'M', b'T', b'2', b'1');
pub const V4L2_PIX_FMT_INZI: u32 = fourcc!(b'I', b'N', b'Z', b'I');
}
pub use vendor_specific::*;
mod sdr {
pub const V4L2_SDR_FMT_CU8: u32 = fourcc!(b'C', b'U', b'0', b'8');
pub const V4L2_SDR_FMT_CU16LE: u32 = fourcc!(b'C', b'U', b'1', b'6');
pub const V4L2_SDR_FMT_CS8: u32 = fourcc!(b'C', b'S', b'0', b'8');
pub const V4L2_SDR_FMT_CS14LE: u32 = fourcc!(b'C', b'S', b'1', b'4');
pub const V4L2_SDR_FMT_RU12LE: u32 = fourcc!(b'R', b'U', b'1', b'2');
pub const V4L2_SDR_FMT_PCU16BE: u32 = fourcc!(b'P', b'C', b'1', b'6');
pub const V4L2_SDR_FMT_PCU18BE: u32 = fourcc!(b'P', b'C', b'1', b'8');
pub const V4L2_SDR_FMT_PCU20BE: u32 = fourcc!(b'P', b'C', b'2', b'0');
}
pub use sdr::*;
mod touch {
pub const V4L2_TCH_FMT_DELTA_TD16: u32 = fourcc!(b'T', b'D', b'1', b'6');
pub const V4L2_TCH_FMT_DELTA_TD08: u32 = fourcc!(b'T', b'D', b'0', b'8');
pub const V4L2_TCH_FMT_TU16: u32 = fourcc!(b'T', b'U', b'1', b'6');
pub const V4L2_TCH_FMT_TU08: u32 = fourcc!(b'T', b'U', b'0', b'8');
}
pub use touch::*;
mod meta_data {
pub const V4L2_META_FMT_VSP1_HGO: u32 = fourcc!(b'V', b'S', b'P', b'H');
pub const V4L2_META_FMT_VSP1_HGT: u32 = fourcc!(b'V', b'S', b'P', b'T');
}
pub use meta_data::*;
}
#[cfg(test)]
mod test {
use super::*;
use crate as v4l;
use std::mem;
#[test]
fn make_fourcc() {
let V4L2_PIX_FMT_RGB24: u32 =
(b'R' as u32) | ((b'G' as u32) << 8) | ((b'B' as u32) << 16) | ((b'3' as u32) << 24);
assert_eq!(pixel_format::V4L2_PIX_FMT_RGB24, V4L2_PIX_FMT_RGB24);
}
#[test]
fn ioctl_code() {
let VIDIOC_S_FMT: libc::c_ulong = ((3 as libc::c_ulong) << 30)
| ((b'V' as libc::c_ulong) << 8)
| (5 as libc::c_ulong)
| ((mem::size_of::<v4l::v4l2_format>() as libc::c_ulong) << 16);
assert_eq!(codes::VIDIOC_S_FMT, VIDIOC_S_FMT);
let VIDIOC_REQBUFS: libc::c_ulong = ((3 as libc::c_ulong) << 30)
| ((b'V' as libc::c_ulong) << 8)
| (8 as libc::c_ulong)
| ((mem::size_of::<v4l::v4l2_requestbuffers>() as libc::c_ulong) << 16);
assert_eq!(codes::VIDIOC_REQBUFS, VIDIOC_REQBUFS);
let VIDIOC_QUERYBUF: libc::c_ulong = ((3 as libc::c_ulong) << 30)
| ((b'V' as libc::c_ulong) << 8)
| (9 as libc::c_ulong)
| ((mem::size_of::<v4l::v4l2_buffer>() as libc::c_ulong) << 16);
assert_eq!(codes::VIDIOC_QUERYBUF, VIDIOC_QUERYBUF);
let VIDIOC_QBUF: libc::c_ulong = ((3 as libc::c_ulong) << 30)
| ((b'V' as libc::c_ulong) << 8)
| (15 as libc::c_ulong)
| ((mem::size_of::<v4l::v4l2_buffer>() as libc::c_ulong) << 16);
assert_eq!(codes::VIDIOC_QBUF, VIDIOC_QBUF);
let VIDIOC_STREAMON: libc::c_ulong = ((1 as libc::c_ulong) << 30)
| ((b'V' as libc::c_ulong) << 8)
| (18 as libc::c_ulong)
| ((mem::size_of::<libc::c_int>() as libc::c_ulong) << 16);
assert_eq!(codes::VIDIOC_STREAMON, VIDIOC_STREAMON);
let VIDIOC_DQBUF: libc::c_ulong = ((3 as libc::c_ulong) << 30)
| ((b'V' as libc::c_ulong) << 8)
| (17 as libc::c_ulong)
| ((mem::size_of::<v4l::v4l2_buffer>() as libc::c_ulong) << 16);
assert_eq!(codes::VIDIOC_DQBUF, VIDIOC_DQBUF);
let VIDIOC_QBUF: libc::c_ulong = ((3 as libc::c_ulong) << 30)
| ((b'V' as libc::c_ulong) << 8)
| (15 as libc::c_ulong)
| ((mem::size_of::<v4l::v4l2_buffer>() as libc::c_ulong) << 16);
assert_eq!(codes::VIDIOC_QBUF, VIDIOC_QBUF);
let VIDIOC_STREAMOFF: libc::c_ulong = ((1 as libc::c_ulong) << 30)
| ((b'V' as libc::c_ulong) << 8)
| (19 as libc::c_ulong)
| ((mem::size_of::<libc::c_int>() as libc::c_ulong) << 16);
assert_eq!(codes::VIDIOC_STREAMOFF, VIDIOC_STREAMOFF);
}
}