2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-21 19:53:59 +08:00
linux-next/Documentation/userspace-api/media/videodev2.h.rst.exceptions
Dafna Hirschfeld b38c73ca1c media: v4l2: add support for colorspace conversion API (CSC) for video capture
For video capture it is the driver that reports the colorspace,
transfer function, Y'CbCr/HSV encoding and quantization range
used by the video, and there is no way to request something
different, even though many HDTV receivers have some sort of
colorspace conversion capabilities.

For output video this feature already exists since the application
specifies this information for the video format it will send out, and
the transmitter will enable any available CSC if a format conversion has
to be performed in order to match the capabilities of the sink.

For video capture we propose adding new v4l2_pix_format flag:
V4L2_PIX_FMT_FLAG_SET_CSC. The flag is set by the application,
the driver will interpret the colorspace, xfer_func, ycbcr_enc/hsv_enc
and quantization fields as the requested colorspace information and will
attempt to do the conversion it supports.

Drivers set the flags
V4L2_FMT_FLAG_CSC_COLORSPACE,
V4L2_FMT_FLAG_CSC_XFER_FUNC,
V4L2_FMT_FLAG_CSC_YCBCR_ENC/V4L2_FMT_FLAG_CSC_HSV_ENC,
V4L2_FMT_FLAG_CSC_QUANTIZATION,
in the flags field of the struct v4l2_fmtdesc during enumeration to
indicate that they support colorspace conversion for the respective field.

Drivers do not have to actually look at the flags. If the flags are not
set, then the fields 'colorspace', 'xfer_func', 'ycbcr_enc/hsv_enc',
and 'quantization' are set to the default values by the core, i.e. just
pass on the received format without conversion.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-09-26 10:20:57 +02:00

580 lines
25 KiB
Plaintext

# SPDX-License-Identifier: GPL-2.0
# Ignore header name
ignore define _UAPI__LINUX_VIDEODEV2_H
#
# The cross reference valitator for videodev2.h DocBook never cared
# about enum symbols or defines. Yet, they're all (or almost all?)
# handled inside V4L API sections. So, for now, it is safe to just
# ignore. This should be revisited, as validating it helps to avoid
# having something not documented at the uAPI.
#
# Those symbols should not be used by uAPI - don't document them
ignore symbol V4L2_BUF_TYPE_PRIVATE
ignore symbol V4L2_TUNER_DIGITAL_TV
ignore symbol V4L2_COLORSPACE_BT878
# Documented enum v4l2_field
replace symbol V4L2_FIELD_ALTERNATE :c:type:`v4l2_field`
replace symbol V4L2_FIELD_ANY :c:type:`v4l2_field`
replace symbol V4L2_FIELD_BOTTOM :c:type:`v4l2_field`
replace symbol V4L2_FIELD_INTERLACED :c:type:`v4l2_field`
replace symbol V4L2_FIELD_INTERLACED_BT :c:type:`v4l2_field`
replace symbol V4L2_FIELD_INTERLACED_TB :c:type:`v4l2_field`
replace symbol V4L2_FIELD_NONE :c:type:`v4l2_field`
replace symbol V4L2_FIELD_SEQ_BT :c:type:`v4l2_field`
replace symbol V4L2_FIELD_SEQ_TB :c:type:`v4l2_field`
replace symbol V4L2_FIELD_TOP :c:type:`v4l2_field`
# Documented enum v4l2_buf_type
replace symbol V4L2_BUF_TYPE_META_CAPTURE :c:type:`v4l2_buf_type`
replace symbol V4L2_BUF_TYPE_META_OUTPUT :c:type:`v4l2_buf_type`
replace symbol V4L2_BUF_TYPE_SDR_CAPTURE :c:type:`v4l2_buf_type`
replace symbol V4L2_BUF_TYPE_SDR_OUTPUT :c:type:`v4l2_buf_type`
replace symbol V4L2_BUF_TYPE_SLICED_VBI_CAPTURE :c:type:`v4l2_buf_type`
replace symbol V4L2_BUF_TYPE_SLICED_VBI_OUTPUT :c:type:`v4l2_buf_type`
replace symbol V4L2_BUF_TYPE_VBI_CAPTURE :c:type:`v4l2_buf_type`
replace symbol V4L2_BUF_TYPE_VBI_OUTPUT :c:type:`v4l2_buf_type`
replace symbol V4L2_BUF_TYPE_VIDEO_CAPTURE :c:type:`v4l2_buf_type`
replace symbol V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE :c:type:`v4l2_buf_type`
replace symbol V4L2_BUF_TYPE_VIDEO_OUTPUT :c:type:`v4l2_buf_type`
replace symbol V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE :c:type:`v4l2_buf_type`
replace symbol V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY :c:type:`v4l2_buf_type`
replace symbol V4L2_BUF_TYPE_VIDEO_OVERLAY :c:type:`v4l2_buf_type`
# Documented enum v4l2_tuner_type
replace symbol V4L2_TUNER_ANALOG_TV :c:type:`v4l2_tuner_type`
replace symbol V4L2_TUNER_RADIO :c:type:`v4l2_tuner_type`
replace symbol V4L2_TUNER_RF :c:type:`v4l2_tuner_type`
replace symbol V4L2_TUNER_SDR :c:type:`v4l2_tuner_type`
# Documented enum v4l2_memory
replace symbol V4L2_MEMORY_DMABUF :c:type:`v4l2_memory`
replace symbol V4L2_MEMORY_MMAP :c:type:`v4l2_memory`
replace symbol V4L2_MEMORY_OVERLAY :c:type:`v4l2_memory`
replace symbol V4L2_MEMORY_USERPTR :c:type:`v4l2_memory`
# Documented enum v4l2_colorspace
replace symbol V4L2_COLORSPACE_470_SYSTEM_BG :c:type:`v4l2_colorspace`
replace symbol V4L2_COLORSPACE_470_SYSTEM_M :c:type:`v4l2_colorspace`
replace symbol V4L2_COLORSPACE_OPRGB :c:type:`v4l2_colorspace`
replace define V4L2_COLORSPACE_ADOBERGB :c:type:`v4l2_colorspace`
replace symbol V4L2_COLORSPACE_BT2020 :c:type:`v4l2_colorspace`
replace symbol V4L2_COLORSPACE_DCI_P3 :c:type:`v4l2_colorspace`
replace symbol V4L2_COLORSPACE_DEFAULT :c:type:`v4l2_colorspace`
replace symbol V4L2_COLORSPACE_JPEG :c:type:`v4l2_colorspace`
replace symbol V4L2_COLORSPACE_RAW :c:type:`v4l2_colorspace`
replace symbol V4L2_COLORSPACE_REC709 :c:type:`v4l2_colorspace`
replace symbol V4L2_COLORSPACE_SMPTE170M :c:type:`v4l2_colorspace`
replace symbol V4L2_COLORSPACE_SMPTE240M :c:type:`v4l2_colorspace`
replace symbol V4L2_COLORSPACE_SRGB :c:type:`v4l2_colorspace`
# Documented enum v4l2_xfer_func
replace symbol V4L2_XFER_FUNC_709 :c:type:`v4l2_xfer_func`
replace symbol V4L2_XFER_FUNC_OPRGB :c:type:`v4l2_xfer_func`
replace define V4L2_XFER_FUNC_ADOBERGB :c:type:`v4l2_xfer_func`
replace symbol V4L2_XFER_FUNC_DCI_P3 :c:type:`v4l2_xfer_func`
replace symbol V4L2_XFER_FUNC_DEFAULT :c:type:`v4l2_xfer_func`
replace symbol V4L2_XFER_FUNC_NONE :c:type:`v4l2_xfer_func`
replace symbol V4L2_XFER_FUNC_SMPTE2084 :c:type:`v4l2_xfer_func`
replace symbol V4L2_XFER_FUNC_SMPTE240M :c:type:`v4l2_xfer_func`
replace symbol V4L2_XFER_FUNC_SRGB :c:type:`v4l2_xfer_func`
# Documented enum v4l2_ycbcr_encoding
replace symbol V4L2_YCBCR_ENC_601 :c:type:`v4l2_ycbcr_encoding`
replace symbol V4L2_YCBCR_ENC_709 :c:type:`v4l2_ycbcr_encoding`
replace symbol V4L2_YCBCR_ENC_BT2020 :c:type:`v4l2_ycbcr_encoding`
replace symbol V4L2_YCBCR_ENC_BT2020_CONST_LUM :c:type:`v4l2_ycbcr_encoding`
replace symbol V4L2_YCBCR_ENC_DEFAULT :c:type:`v4l2_ycbcr_encoding`
replace symbol V4L2_YCBCR_ENC_SYCC :c:type:`v4l2_ycbcr_encoding`
replace symbol V4L2_YCBCR_ENC_XV601 :c:type:`v4l2_ycbcr_encoding`
replace symbol V4L2_YCBCR_ENC_XV709 :c:type:`v4l2_ycbcr_encoding`
replace symbol V4L2_YCBCR_ENC_SMPTE240M :c:type:`v4l2_ycbcr_encoding`
# Documented enum v4l2_hsv_encoding
replace symbol V4L2_HSV_ENC_180 :c:type:`v4l2_hsv_encoding`
replace symbol V4L2_HSV_ENC_256 :c:type:`v4l2_hsv_encoding`
# Documented enum v4l2_quantization
replace symbol V4L2_QUANTIZATION_DEFAULT :c:type:`v4l2_quantization`
replace symbol V4L2_QUANTIZATION_FULL_RANGE :c:type:`v4l2_quantization`
replace symbol V4L2_QUANTIZATION_LIM_RANGE :c:type:`v4l2_quantization`
# Documented enum v4l2_priority
replace symbol V4L2_PRIORITY_BACKGROUND :c:type:`v4l2_priority`
replace symbol V4L2_PRIORITY_DEFAULT :c:type:`v4l2_priority`
replace symbol V4L2_PRIORITY_INTERACTIVE :c:type:`v4l2_priority`
replace symbol V4L2_PRIORITY_RECORD :c:type:`v4l2_priority`
replace symbol V4L2_PRIORITY_UNSET :c:type:`v4l2_priority`
# Documented enum v4l2_frmsizetypes
replace symbol V4L2_FRMSIZE_TYPE_CONTINUOUS :c:type:`v4l2_frmsizetypes`
replace symbol V4L2_FRMSIZE_TYPE_DISCRETE :c:type:`v4l2_frmsizetypes`
replace symbol V4L2_FRMSIZE_TYPE_STEPWISE :c:type:`v4l2_frmsizetypes`
# Documented enum frmivaltypes
replace symbol V4L2_FRMIVAL_TYPE_CONTINUOUS :c:type:`v4l2_frmivaltypes`
replace symbol V4L2_FRMIVAL_TYPE_DISCRETE :c:type:`v4l2_frmivaltypes`
replace symbol V4L2_FRMIVAL_TYPE_STEPWISE :c:type:`v4l2_frmivaltypes`
# Documented enum :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_COMPOUND_TYPES vidioc_queryctrl
replace symbol V4L2_CTRL_TYPE_BITMASK :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_BOOLEAN :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_BUTTON :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_CTRL_CLASS :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_INTEGER :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_INTEGER64 :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_INTEGER_MENU :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_MENU :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_STRING :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_U16 :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_U32 :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_U8 :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_MPEG2_SLICE_PARAMS :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_MPEG2_QUANTIZATION :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_H264_SPS :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_H264_PPS :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_H264_SCALING_MATRIX :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_H264_SLICE_PARAMS :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_H264_DECODE_PARAMS :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_HEVC_SPS :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_HEVC_PPS :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS :c:type:`v4l2_ctrl_type`
replace symbol V4L2_CTRL_TYPE_AREA :c:type:`v4l2_ctrl_type`
# V4L2 capability defines
replace define V4L2_CAP_VIDEO_CAPTURE device-capabilities
replace define V4L2_CAP_VIDEO_CAPTURE_MPLANE device-capabilities
replace define V4L2_CAP_VIDEO_OUTPUT device-capabilities
replace define V4L2_CAP_VIDEO_OUTPUT_MPLANE device-capabilities
replace define V4L2_CAP_VIDEO_M2M device-capabilities
replace define V4L2_CAP_VIDEO_M2M_MPLANE device-capabilities
replace define V4L2_CAP_VIDEO_OVERLAY device-capabilities
replace define V4L2_CAP_VBI_CAPTURE device-capabilities
replace define V4L2_CAP_VBI_OUTPUT device-capabilities
replace define V4L2_CAP_SLICED_VBI_CAPTURE device-capabilities
replace define V4L2_CAP_SLICED_VBI_OUTPUT device-capabilities
replace define V4L2_CAP_RDS_CAPTURE device-capabilities
replace define V4L2_CAP_VIDEO_OUTPUT_OVERLAY device-capabilities
replace define V4L2_CAP_HW_FREQ_SEEK device-capabilities
replace define V4L2_CAP_RDS_OUTPUT device-capabilities
replace define V4L2_CAP_TUNER device-capabilities
replace define V4L2_CAP_AUDIO device-capabilities
replace define V4L2_CAP_RADIO device-capabilities
replace define V4L2_CAP_MODULATOR device-capabilities
replace define V4L2_CAP_SDR_CAPTURE device-capabilities
replace define V4L2_CAP_EXT_PIX_FORMAT device-capabilities
replace define V4L2_CAP_SDR_OUTPUT device-capabilities
replace define V4L2_CAP_META_CAPTURE device-capabilities
replace define V4L2_CAP_READWRITE device-capabilities
replace define V4L2_CAP_ASYNCIO device-capabilities
replace define V4L2_CAP_STREAMING device-capabilities
replace define V4L2_CAP_META_OUTPUT device-capabilities
replace define V4L2_CAP_DEVICE_CAPS device-capabilities
replace define V4L2_CAP_TOUCH device-capabilities
replace define V4L2_CAP_IO_MC device-capabilities
# V4L2 pix flags
replace define V4L2_PIX_FMT_PRIV_MAGIC :c:type:`v4l2_pix_format`
replace define V4L2_PIX_FMT_FLAG_PREMUL_ALPHA format-flags
# V4L2 format flags
replace define V4L2_FMT_FLAG_COMPRESSED fmtdesc-flags
replace define V4L2_FMT_FLAG_EMULATED fmtdesc-flags
replace define V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM fmtdesc-flags
replace define V4L2_FMT_FLAG_DYN_RESOLUTION fmtdesc-flags
replace define V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL fmtdesc-flags
replace define V4L2_FMT_FLAG_CSC_COLORSPACE fmtdesc-flags
replace define V4L2_FMT_FLAG_CSC_XFER_FUNC fmtdesc-flags
replace define V4L2_FMT_FLAG_CSC_YCBCR_ENC fmtdesc-flags
replace define V4L2_FMT_FLAG_CSC_HSV_ENC fmtdesc-flags
replace define V4L2_FMT_FLAG_CSC_QUANTIZATION fmtdesc-flags
# V4L2 timecode types
replace define V4L2_TC_TYPE_24FPS timecode-type
replace define V4L2_TC_TYPE_25FPS timecode-type
replace define V4L2_TC_TYPE_30FPS timecode-type
replace define V4L2_TC_TYPE_50FPS timecode-type
replace define V4L2_TC_TYPE_60FPS timecode-type
# V4L2 timecode flags
replace define V4L2_TC_FLAG_DROPFRAME timecode-flags
replace define V4L2_TC_FLAG_COLORFRAME timecode-flags
replace define V4L2_TC_USERBITS_field timecode-flags
replace define V4L2_TC_USERBITS_USERDEFINED timecode-flags
replace define V4L2_TC_USERBITS_8BITCHARS timecode-flags
# V4L2 JPEG markers
replace define V4L2_JPEG_MARKER_DHT jpeg-markers
replace define V4L2_JPEG_MARKER_DQT jpeg-markers
replace define V4L2_JPEG_MARKER_DRI jpeg-markers
replace define V4L2_JPEG_MARKER_COM jpeg-markers
replace define V4L2_JPEG_MARKER_APP jpeg-markers
# V4L2 framebuffer caps and flags
replace define V4L2_FBUF_CAP_EXTERNOVERLAY framebuffer-cap
replace define V4L2_FBUF_CAP_CHROMAKEY framebuffer-cap
replace define V4L2_FBUF_CAP_LIST_CLIPPING framebuffer-cap
replace define V4L2_FBUF_CAP_BITMAP_CLIPPING framebuffer-cap
replace define V4L2_FBUF_CAP_LOCAL_ALPHA framebuffer-cap
replace define V4L2_FBUF_CAP_GLOBAL_ALPHA framebuffer-cap
replace define V4L2_FBUF_CAP_LOCAL_INV_ALPHA framebuffer-cap
replace define V4L2_FBUF_CAP_SRC_CHROMAKEY framebuffer-cap
replace define V4L2_FBUF_FLAG_PRIMARY framebuffer-flags
replace define V4L2_FBUF_FLAG_OVERLAY framebuffer-flags
replace define V4L2_FBUF_FLAG_CHROMAKEY framebuffer-flags
replace define V4L2_FBUF_FLAG_LOCAL_ALPHA framebuffer-flags
replace define V4L2_FBUF_FLAG_GLOBAL_ALPHA framebuffer-flags
replace define V4L2_FBUF_FLAG_LOCAL_INV_ALPHA framebuffer-flags
replace define V4L2_FBUF_FLAG_SRC_CHROMAKEY framebuffer-flags
# Used on VIDIOC_G_PARM
replace define V4L2_MODE_HIGHQUALITY parm-flags
replace define V4L2_CAP_TIMEPERFRAME :c:type:`v4l2_captureparm`
# The V4L2_STD_foo are all defined at v4l2_std_id table
replace define V4L2_STD_PAL_B v4l2-std-id
replace define V4L2_STD_PAL_B1 v4l2-std-id
replace define V4L2_STD_PAL_G v4l2-std-id
replace define V4L2_STD_PAL_H v4l2-std-id
replace define V4L2_STD_PAL_I v4l2-std-id
replace define V4L2_STD_PAL_D v4l2-std-id
replace define V4L2_STD_PAL_D1 v4l2-std-id
replace define V4L2_STD_PAL_K v4l2-std-id
replace define V4L2_STD_PAL_M v4l2-std-id
replace define V4L2_STD_PAL_N v4l2-std-id
replace define V4L2_STD_PAL_Nc v4l2-std-id
replace define V4L2_STD_PAL_60 v4l2-std-id
replace define V4L2_STD_NTSC_M v4l2-std-id
replace define V4L2_STD_NTSC_M_JP v4l2-std-id
replace define V4L2_STD_NTSC_443 v4l2-std-id
replace define V4L2_STD_NTSC_M_KR v4l2-std-id
replace define V4L2_STD_SECAM_B v4l2-std-id
replace define V4L2_STD_SECAM_D v4l2-std-id
replace define V4L2_STD_SECAM_G v4l2-std-id
replace define V4L2_STD_SECAM_H v4l2-std-id
replace define V4L2_STD_SECAM_K v4l2-std-id
replace define V4L2_STD_SECAM_K1 v4l2-std-id
replace define V4L2_STD_SECAM_L v4l2-std-id
replace define V4L2_STD_SECAM_LC v4l2-std-id
replace define V4L2_STD_ATSC_8_VSB v4l2-std-id
replace define V4L2_STD_ATSC_16_VSB v4l2-std-id
replace define V4L2_STD_NTSC v4l2-std-id
replace define V4L2_STD_SECAM_DK v4l2-std-id
replace define V4L2_STD_SECAM v4l2-std-id
replace define V4L2_STD_PAL_BG v4l2-std-id
replace define V4L2_STD_PAL_DK v4l2-std-id
replace define V4L2_STD_PAL v4l2-std-id
replace define V4L2_STD_B v4l2-std-id
replace define V4L2_STD_G v4l2-std-id
replace define V4L2_STD_H v4l2-std-id
replace define V4L2_STD_L v4l2-std-id
replace define V4L2_STD_GH v4l2-std-id
replace define V4L2_STD_DK v4l2-std-id
replace define V4L2_STD_BG v4l2-std-id
replace define V4L2_STD_MN v4l2-std-id
replace define V4L2_STD_MTS v4l2-std-id
replace define V4L2_STD_525_60 v4l2-std-id
replace define V4L2_STD_625_50 v4l2-std-id
replace define V4L2_STD_ATSC v4l2-std-id
replace define V4L2_STD_UNKNOWN v4l2-std-id
replace define V4L2_STD_ALL v4l2-std-id
# V4L2 DT BT timings definitions
replace define V4L2_DV_PROGRESSIVE :c:type:`v4l2_bt_timings`
replace define V4L2_DV_INTERLACED :c:type:`v4l2_bt_timings`
replace define V4L2_DV_VSYNC_POS_POL :c:type:`v4l2_bt_timings`
replace define V4L2_DV_HSYNC_POS_POL :c:type:`v4l2_bt_timings`
replace define V4L2_DV_BT_STD_CEA861 dv-bt-standards
replace define V4L2_DV_BT_STD_DMT dv-bt-standards
replace define V4L2_DV_BT_STD_CVT dv-bt-standards
replace define V4L2_DV_BT_STD_GTF dv-bt-standards
replace define V4L2_DV_BT_STD_SDI dv-bt-standards
replace define V4L2_DV_FL_REDUCED_BLANKING dv-bt-standards
replace define V4L2_DV_FL_CAN_REDUCE_FPS dv-bt-standards
replace define V4L2_DV_FL_CAN_DETECT_REDUCED_FPS dv-bt-standards
replace define V4L2_DV_FL_REDUCED_FPS dv-bt-standards
replace define V4L2_DV_FL_HALF_LINE dv-bt-standards
replace define V4L2_DV_FL_IS_CE_VIDEO dv-bt-standards
replace define V4L2_DV_FL_FIRST_FIELD_EXTRA_LINE dv-bt-standards
replace define V4L2_DV_FL_HAS_PICTURE_ASPECT dv-bt-standards
replace define V4L2_DV_FL_HAS_CEA861_VIC dv-bt-standards
replace define V4L2_DV_FL_HAS_HDMI_VIC dv-bt-standards
replace define V4L2_DV_BT_656_1120 dv-timing-types
replace define V4L2_DV_BT_CAP_INTERLACED framebuffer-cap
replace define V4L2_DV_BT_CAP_PROGRESSIVE framebuffer-cap
replace define V4L2_DV_BT_CAP_REDUCED_BLANKING framebuffer-cap
replace define V4L2_DV_BT_CAP_CUSTOM framebuffer-cap
# V4L2 input
replace define V4L2_INPUT_TYPE_TUNER input-type
replace define V4L2_INPUT_TYPE_CAMERA input-type
replace define V4L2_INPUT_TYPE_TOUCH input-type
replace define V4L2_IN_ST_NO_POWER input-status
replace define V4L2_IN_ST_NO_SIGNAL input-status
replace define V4L2_IN_ST_NO_COLOR input-status
replace define V4L2_IN_ST_HFLIP input-status
replace define V4L2_IN_ST_VFLIP input-status
replace define V4L2_IN_ST_NO_H_LOCK input-status
replace define V4L2_IN_ST_COLOR_KILL input-status
replace define V4L2_IN_ST_NO_SYNC input-status
replace define V4L2_IN_ST_NO_EQU input-status
replace define V4L2_IN_ST_NO_CARRIER input-status
replace define V4L2_IN_ST_MACROVISION input-status
replace define V4L2_IN_ST_NO_ACCESS input-status
replace define V4L2_IN_ST_VTR input-status
replace define V4L2_IN_ST_NO_V_LOCK input-status
replace define V4L2_IN_ST_NO_STD_LOCK input-status
replace define V4L2_IN_CAP_DV_TIMINGS input-capabilities
replace define V4L2_IN_CAP_STD input-capabilities
replace define V4L2_IN_CAP_NATIVE_SIZE input-capabilities
# V4L2 output
replace define V4L2_OUTPUT_TYPE_MODULATOR output-type
replace define V4L2_OUTPUT_TYPE_ANALOG output-type
replace define V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY output-type
replace define V4L2_OUT_CAP_DV_TIMINGS output-capabilities
replace define V4L2_OUT_CAP_STD output-capabilities
replace define V4L2_OUT_CAP_NATIVE_SIZE output-capabilities
# V4L2 control flags
replace define V4L2_CTRL_FLAG_DISABLED control-flags
replace define V4L2_CTRL_FLAG_GRABBED control-flags
replace define V4L2_CTRL_FLAG_READ_ONLY control-flags
replace define V4L2_CTRL_FLAG_UPDATE control-flags
replace define V4L2_CTRL_FLAG_INACTIVE control-flags
replace define V4L2_CTRL_FLAG_SLIDER control-flags
replace define V4L2_CTRL_FLAG_WRITE_ONLY control-flags
replace define V4L2_CTRL_FLAG_VOLATILE control-flags
replace define V4L2_CTRL_FLAG_HAS_PAYLOAD control-flags
replace define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE control-flags
replace define V4L2_CTRL_FLAG_MODIFY_LAYOUT control-flags
replace define V4L2_CTRL_FLAG_NEXT_CTRL control
replace define V4L2_CTRL_FLAG_NEXT_COMPOUND control
replace define V4L2_CID_PRIVATE_BASE control
# V4L2 tuner
replace define V4L2_TUNER_CAP_LOW tuner-capability
replace define V4L2_TUNER_CAP_NORM tuner-capability
replace define V4L2_TUNER_CAP_HWSEEK_BOUNDED tuner-capability
replace define V4L2_TUNER_CAP_HWSEEK_WRAP tuner-capability
replace define V4L2_TUNER_CAP_STEREO tuner-capability
replace define V4L2_TUNER_CAP_LANG2 tuner-capability
replace define V4L2_TUNER_CAP_SAP tuner-capability
replace define V4L2_TUNER_CAP_LANG1 tuner-capability
replace define V4L2_TUNER_CAP_RDS tuner-capability
replace define V4L2_TUNER_CAP_RDS_BLOCK_IO tuner-capability
replace define V4L2_TUNER_CAP_RDS_CONTROLS tuner-capability
replace define V4L2_TUNER_CAP_FREQ_BANDS tuner-capability
replace define V4L2_TUNER_CAP_HWSEEK_PROG_LIM tuner-capability
replace define V4L2_TUNER_CAP_1HZ tuner-capability
replace define V4L2_TUNER_SUB_MONO tuner-rxsubchans
replace define V4L2_TUNER_SUB_STEREO tuner-rxsubchans
replace define V4L2_TUNER_SUB_LANG2 tuner-rxsubchans
replace define V4L2_TUNER_SUB_SAP tuner-rxsubchans
replace define V4L2_TUNER_SUB_LANG1 tuner-rxsubchans
replace define V4L2_TUNER_SUB_RDS tuner-rxsubchans
replace define V4L2_TUNER_MODE_MONO tuner-audmode
replace define V4L2_TUNER_MODE_STEREO tuner-audmode
replace define V4L2_TUNER_MODE_LANG2 tuner-audmode
replace define V4L2_TUNER_MODE_SAP tuner-audmode
replace define V4L2_TUNER_MODE_LANG1 tuner-audmode
replace define V4L2_TUNER_MODE_LANG1_LANG2 tuner-audmode
replace define V4L2_BAND_MODULATION_VSB band-modulation
replace define V4L2_BAND_MODULATION_FM band-modulation
replace define V4L2_BAND_MODULATION_AM band-modulation
replace define V4L2_RDS_BLOCK_MSK v4l2-rds-block
replace define V4L2_RDS_BLOCK_A v4l2-rds-block
replace define V4L2_RDS_BLOCK_B v4l2-rds-block
replace define V4L2_RDS_BLOCK_C v4l2-rds-block
replace define V4L2_RDS_BLOCK_D v4l2-rds-block
replace define V4L2_RDS_BLOCK_C_ALT v4l2-rds-block
replace define V4L2_RDS_BLOCK_INVALID v4l2-rds-block
replace define V4L2_RDS_BLOCK_CORRECTED v4l2-rds-block
replace define V4L2_RDS_BLOCK_ERROR v4l2-rds-block
# V4L2 audio
replace define V4L2_AUDCAP_STEREO audio-capability
replace define V4L2_AUDCAP_AVL audio-capability
replace define V4L2_AUDMODE_AVL audio-mode
# MPEG
replace define V4L2_ENC_IDX_FRAME_I :c:type:`v4l2_enc_idx`
replace define V4L2_ENC_IDX_FRAME_P :c:type:`v4l2_enc_idx`
replace define V4L2_ENC_IDX_FRAME_B :c:type:`v4l2_enc_idx`
replace define V4L2_ENC_IDX_FRAME_MASK :c:type:`v4l2_enc_idx`
replace define V4L2_ENC_IDX_ENTRIES :c:type:`v4l2_enc_idx`
replace define V4L2_ENC_CMD_START encoder-cmds
replace define V4L2_ENC_CMD_STOP encoder-cmds
replace define V4L2_ENC_CMD_PAUSE encoder-cmds
replace define V4L2_ENC_CMD_RESUME encoder-cmds
replace define V4L2_ENC_CMD_STOP_AT_GOP_END encoder-flags
replace define V4L2_DEC_CMD_START decoder-cmds
replace define V4L2_DEC_CMD_STOP decoder-cmds
replace define V4L2_DEC_CMD_PAUSE decoder-cmds
replace define V4L2_DEC_CMD_RESUME decoder-cmds
replace define V4L2_DEC_CMD_FLUSH decoder-cmds
replace define V4L2_DEC_CMD_START_MUTE_AUDIO decoder-cmds
replace define V4L2_DEC_CMD_PAUSE_TO_BLACK decoder-cmds
replace define V4L2_DEC_CMD_STOP_TO_BLACK decoder-cmds
replace define V4L2_DEC_CMD_STOP_IMMEDIATELY decoder-cmds
replace define V4L2_DEC_START_FMT_NONE decoder-cmds
replace define V4L2_DEC_START_FMT_GOP decoder-cmds
# V4L2 VBI
replace define V4L2_VBI_UNSYNC vbifmt-flags
replace define V4L2_VBI_INTERLACED vbifmt-flags
replace define V4L2_VBI_ITU_525_F1_START :c:type:`v4l2_vbi_format`
replace define V4L2_VBI_ITU_525_F2_START :c:type:`v4l2_vbi_format`
replace define V4L2_VBI_ITU_625_F1_START :c:type:`v4l2_vbi_format`
replace define V4L2_VBI_ITU_625_F2_START :c:type:`v4l2_vbi_format`
replace define V4L2_SLICED_TELETEXT_B vbi-services
replace define V4L2_SLICED_VPS vbi-services
replace define V4L2_SLICED_CAPTION_525 vbi-services
replace define V4L2_SLICED_WSS_625 vbi-services
replace define V4L2_SLICED_VBI_525 vbi-services
replace define V4L2_SLICED_VBI_625 vbi-services
replace define V4L2_MPEG_VBI_IVTV_TELETEXT_B ITV0-Line-Identifier-Constants
replace define V4L2_MPEG_VBI_IVTV_CAPTION_525 ITV0-Line-Identifier-Constants
replace define V4L2_MPEG_VBI_IVTV_WSS_625 ITV0-Line-Identifier-Constants
replace define V4L2_MPEG_VBI_IVTV_VPS ITV0-Line-Identifier-Constants
replace define V4L2_MPEG_VBI_IVTV_MAGIC0 v4l2-mpeg-vbi-fmt-ivtv-magic
replace define V4L2_MPEG_VBI_IVTV_MAGIC1 v4l2-mpeg-vbi-fmt-ivtv-magic
# V4L2 events
replace define V4L2_EVENT_ALL event-type
replace define V4L2_EVENT_VSYNC event-type
replace define V4L2_EVENT_EOS event-type
replace define V4L2_EVENT_CTRL event-type
replace define V4L2_EVENT_FRAME_SYNC event-type
replace define V4L2_EVENT_SOURCE_CHANGE event-type
replace define V4L2_EVENT_MOTION_DET event-type
replace define V4L2_EVENT_PRIVATE_START event-type
replace define V4L2_EVENT_CTRL_CH_VALUE ctrl-changes-flags
replace define V4L2_EVENT_CTRL_CH_FLAGS ctrl-changes-flags
replace define V4L2_EVENT_CTRL_CH_RANGE ctrl-changes-flags
replace define V4L2_EVENT_SRC_CH_RESOLUTION src-changes-flags
replace define V4L2_EVENT_MD_FL_HAVE_FRAME_SEQ :c:type:`v4l2_event_motion_det`
replace define V4L2_EVENT_SUB_FL_SEND_INITIAL event-flags
replace define V4L2_EVENT_SUB_FL_ALLOW_FEEDBACK event-flags
# V4L2 debugging
replace define V4L2_CHIP_MATCH_BRIDGE vidioc_dbg_g_register
replace define V4L2_CHIP_MATCH_SUBDEV vidioc_dbg_g_register
replace define V4L2_CHIP_MATCH_HOST vidioc_dbg_g_register
replace define V4L2_CHIP_MATCH_I2C_DRIVER vidioc_dbg_g_register
replace define V4L2_CHIP_MATCH_I2C_ADDR vidioc_dbg_g_register
replace define V4L2_CHIP_MATCH_AC97 vidioc_dbg_g_register
replace define V4L2_CHIP_FL_READABLE vidioc_dbg_g_register
replace define V4L2_CHIP_FL_WRITABLE vidioc_dbg_g_register
# Ignore reserved ioctl and ancillary macros
ignore define VIDEO_MAX_FRAME
ignore define VIDEO_MAX_PLANES
ignore define v4l2_fourcc
ignore define v4l2_fourcc_be
ignore define V4L2_FIELD_HAS_TOP
ignore define V4L2_FIELD_HAS_BOTTOM
ignore define V4L2_FIELD_HAS_BOTH
ignore define V4L2_FIELD_HAS_T_OR_B
ignore define V4L2_TYPE_IS_MULTIPLANAR
ignore define V4L2_TYPE_IS_OUTPUT
ignore define V4L2_TUNER_ADC
ignore define V4L2_MAP_COLORSPACE_DEFAULT
ignore define V4L2_MAP_XFER_FUNC_DEFAULT
ignore define V4L2_MAP_YCBCR_ENC_DEFAULT
ignore define V4L2_DV_BT_BLANKING_WIDTH
ignore define V4L2_DV_BT_FRAME_WIDTH
ignore define V4L2_DV_BT_BLANKING_HEIGHT
ignore define V4L2_DV_BT_FRAME_HEIGHT
ignore define V4L2_IN_CAP_CUSTOM_TIMINGS
ignore define V4L2_CTRL_ID_MASK
ignore define V4L2_CTRL_ID2CLASS
ignore define V4L2_CTRL_ID2WHICH
ignore define V4L2_CTRL_DRIVER_PRIV
ignore define V4L2_CTRL_MAX_DIMS
ignore define V4L2_CTRL_WHICH_CUR_VAL
ignore define V4L2_CTRL_WHICH_DEF_VAL
ignore define V4L2_CTRL_WHICH_REQUEST_VAL
ignore define V4L2_OUT_CAP_CUSTOM_TIMINGS
ignore define V4L2_CID_MAX_CTRLS
ignore define BASE_VIDIOC_PRIVATE
# Associate ioctls with their counterparts
replace ioctl VIDIOC_DBG_S_REGISTER vidioc_dbg_g_register
replace ioctl VIDIOC_DQBUF vidioc_qbuf
replace ioctl VIDIOC_S_AUDOUT vidioc_g_audout
replace ioctl VIDIOC_S_CROP vidioc_g_crop
replace ioctl VIDIOC_S_CTRL vidioc_g_ctrl
replace ioctl VIDIOC_S_DV_TIMINGS vidioc_g_dv_timings
replace ioctl VIDIOC_S_EDID vidioc_g_edid
replace ioctl VIDIOC_S_EXT_CTRLS vidioc_g_ext_ctrls
replace ioctl VIDIOC_S_FBUF vidioc_g_fbuf
replace ioctl VIDIOC_S_FMT vidioc_g_fmt
replace ioctl VIDIOC_S_FREQUENCY vidioc_g_frequency
replace ioctl VIDIOC_S_INPUT vidioc_g_input
replace ioctl VIDIOC_S_JPEGCOMP vidioc_g_jpegcomp
replace ioctl VIDIOC_S_MODULATOR vidioc_g_modulator
replace ioctl VIDIOC_S_OUTPUT vidioc_g_output
replace ioctl VIDIOC_S_PARM vidioc_g_parm
replace ioctl VIDIOC_S_PRIORITY vidioc_g_priority
replace ioctl VIDIOC_S_SELECTION vidioc_g_selection
replace ioctl VIDIOC_S_STD vidioc_g_std
replace ioctl VIDIOC_S_AUDIO vidioc_g_audio
replace ioctl VIDIOC_S_TUNER vidioc_g_tuner
replace ioctl VIDIOC_TRY_DECODER_CMD vidioc_decoder_cmd
replace ioctl VIDIOC_TRY_ENCODER_CMD vidioc_encoder_cmd
replace ioctl VIDIOC_TRY_EXT_CTRLS vidioc_g_ext_ctrls
replace ioctl VIDIOC_TRY_FMT vidioc_g_fmt
replace ioctl VIDIOC_STREAMOFF vidioc_streamon
replace ioctl VIDIOC_QUERY_EXT_CTRL vidioc_queryctrl
replace ioctl VIDIOC_QUERYMENU vidioc_queryctrl