mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 16:50:47 +00:00
v4l2: Update external files with latest
This is copied from the linux kernel with only some include changes so it works outside the kernel headers.
This commit is contained in:
parent
317d3380bb
commit
6fa565247d
3 changed files with 271 additions and 97 deletions
|
@ -10,19 +10,43 @@
|
|||
* Copyright (C) 2012 Nokia Corporation
|
||||
* Contact: Sakari Ailus <sakari.ailus@iki.fi>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* version 2 as published by the Free Software Foundation.
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA
|
||||
* Alternatively you can redistribute this file under the terms of the
|
||||
* BSD license as stated below:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. The names of its contributors may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
|
|
|
@ -158,8 +158,10 @@ enum v4l2_colorfx {
|
|||
* We reserve 16 controls for this driver. */
|
||||
#define V4L2_CID_USER_S2255_BASE (V4L2_CID_USER_BASE + 0x1030)
|
||||
|
||||
/* The base for the si476x driver controls. See include/media/si476x.h for the list
|
||||
* of controls. Total of 16 controls is reserved for this driver */
|
||||
/*
|
||||
* The base for the si476x driver controls. See include/media/drv-intf/si476x.h
|
||||
* for the list of controls. Total of 16 controls is reserved for this driver
|
||||
*/
|
||||
#define V4L2_CID_USER_SI476X_BASE (V4L2_CID_USER_BASE + 0x1040)
|
||||
|
||||
/* The base for the TI VPE driver controls. Total of 16 controls is reserved for
|
||||
|
@ -174,6 +176,19 @@ enum v4l2_colorfx {
|
|||
* We reserve 16 controls for this driver. */
|
||||
#define V4L2_CID_USER_ADV7180_BASE (V4L2_CID_USER_BASE + 0x1070)
|
||||
|
||||
/* The base for the tc358743 driver controls.
|
||||
* We reserve 16 controls for this driver. */
|
||||
#define V4L2_CID_USER_TC358743_BASE (V4L2_CID_USER_BASE + 0x1080)
|
||||
|
||||
/* The base for the max217x driver controls.
|
||||
* We reserve 32 controls for this driver
|
||||
*/
|
||||
#define V4L2_CID_USER_MAX217X_BASE (V4L2_CID_USER_BASE + 0x1090)
|
||||
|
||||
/* The base for the imx driver controls.
|
||||
* We reserve 16 controls for this driver. */
|
||||
#define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x1090)
|
||||
|
||||
/* MPEG-class control IDs */
|
||||
/* The MPEG controls are applicable to all codec controls
|
||||
* and the 'MPEG' part of the define is historical */
|
||||
|
@ -384,6 +399,7 @@ enum v4l2_mpeg_video_multi_slice_mode {
|
|||
#define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_MPEG_BASE+226)
|
||||
#define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_MPEG_BASE+227)
|
||||
#define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_MPEG_BASE+228)
|
||||
#define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_MPEG_BASE+229)
|
||||
|
||||
#define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300)
|
||||
#define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301)
|
||||
|
@ -885,7 +901,8 @@ enum v4l2_jpeg_chroma_subsampling {
|
|||
#define V4L2_CID_LINK_FREQ (V4L2_CID_IMAGE_PROC_CLASS_BASE + 1)
|
||||
#define V4L2_CID_PIXEL_RATE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2)
|
||||
#define V4L2_CID_TEST_PATTERN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 3)
|
||||
|
||||
#define V4L2_CID_DEINTERLACING_MODE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 4)
|
||||
#define V4L2_CID_DIGITAL_GAIN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 5)
|
||||
|
||||
/* DV-class control IDs defined by V4L2 */
|
||||
#define V4L2_CID_DV_CLASS_BASE (V4L2_CTRL_CLASS_DV | 0x900)
|
||||
|
@ -906,8 +923,18 @@ enum v4l2_dv_rgb_range {
|
|||
V4L2_DV_RGB_RANGE_FULL = 2,
|
||||
};
|
||||
|
||||
#define V4L2_CID_DV_TX_IT_CONTENT_TYPE (V4L2_CID_DV_CLASS_BASE + 6)
|
||||
enum v4l2_dv_it_content_type {
|
||||
V4L2_DV_IT_CONTENT_TYPE_GRAPHICS = 0,
|
||||
V4L2_DV_IT_CONTENT_TYPE_PHOTO = 1,
|
||||
V4L2_DV_IT_CONTENT_TYPE_CINEMA = 2,
|
||||
V4L2_DV_IT_CONTENT_TYPE_GAME = 3,
|
||||
V4L2_DV_IT_CONTENT_TYPE_NO_ITC = 4,
|
||||
};
|
||||
|
||||
#define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100)
|
||||
#define V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101)
|
||||
#define V4L2_CID_DV_RX_IT_CONTENT_TYPE (V4L2_CID_DV_CLASS_BASE + 102)
|
||||
|
||||
#define V4L2_CID_FM_RX_CLASS_BASE (V4L2_CTRL_CLASS_FM_RX | 0x900)
|
||||
#define V4L2_CID_FM_RX_CLASS (V4L2_CTRL_CLASS_FM_RX | 1)
|
||||
|
@ -932,6 +959,7 @@ enum v4l2_deemphasis {
|
|||
|
||||
#define V4L2_CID_RF_TUNER_BANDWIDTH_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 11)
|
||||
#define V4L2_CID_RF_TUNER_BANDWIDTH (V4L2_CID_RF_TUNER_CLASS_BASE + 12)
|
||||
#define V4L2_CID_RF_TUNER_RF_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 32)
|
||||
#define V4L2_CID_RF_TUNER_LNA_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 41)
|
||||
#define V4L2_CID_RF_TUNER_LNA_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 42)
|
||||
#define V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 51)
|
||||
|
|
|
@ -46,15 +46,15 @@
|
|||
* All kernel-specific stuff were moved to media/v4l2-dev.h, so
|
||||
* no #if __KERNEL tests are allowed here
|
||||
*
|
||||
* See http://linuxtv.org for more info
|
||||
* See https://linuxtv.org for more info
|
||||
*
|
||||
* Author: Bill Dirks <bill@thedirks.org>
|
||||
* Justin Schoeman
|
||||
* Hans Verkuil <hverkuil@xs4all.nl>
|
||||
* et al.
|
||||
*/
|
||||
#ifndef __LINUX_VIDEODEV2_H
|
||||
#define __LINUX_VIDEODEV2_H
|
||||
#ifndef _UAPI__LINUX_VIDEODEV2_H
|
||||
#define _UAPI__LINUX_VIDEODEV2_H
|
||||
|
||||
#include <sys/time.h>
|
||||
#include <sys/ioctl.h>
|
||||
|
@ -136,13 +136,12 @@ enum v4l2_buf_type {
|
|||
V4L2_BUF_TYPE_VBI_OUTPUT = 5,
|
||||
V4L2_BUF_TYPE_SLICED_VBI_CAPTURE = 6,
|
||||
V4L2_BUF_TYPE_SLICED_VBI_OUTPUT = 7,
|
||||
#if 1
|
||||
/* Experimental */
|
||||
V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY = 8,
|
||||
#endif
|
||||
V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE = 9,
|
||||
V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE = 10,
|
||||
V4L2_BUF_TYPE_SDR_CAPTURE = 11,
|
||||
V4L2_BUF_TYPE_SDR_OUTPUT = 12,
|
||||
V4L2_BUF_TYPE_META_CAPTURE = 13,
|
||||
/* Deprecated, do not use */
|
||||
V4L2_BUF_TYPE_PRIVATE = 0x80,
|
||||
};
|
||||
|
@ -157,16 +156,20 @@ enum v4l2_buf_type {
|
|||
|| (type) == V4L2_BUF_TYPE_VIDEO_OVERLAY \
|
||||
|| (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY \
|
||||
|| (type) == V4L2_BUF_TYPE_VBI_OUTPUT \
|
||||
|| (type) == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT)
|
||||
|| (type) == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT \
|
||||
|| (type) == V4L2_BUF_TYPE_SDR_OUTPUT)
|
||||
|
||||
enum v4l2_tuner_type {
|
||||
V4L2_TUNER_RADIO = 1,
|
||||
V4L2_TUNER_ANALOG_TV = 2,
|
||||
V4L2_TUNER_DIGITAL_TV = 3,
|
||||
V4L2_TUNER_ADC = 4,
|
||||
V4L2_TUNER_SDR = 4,
|
||||
V4L2_TUNER_RF = 5,
|
||||
};
|
||||
|
||||
/* Deprecated, do not use */
|
||||
#define V4L2_TUNER_ADC V4L2_TUNER_SDR
|
||||
|
||||
enum v4l2_memory {
|
||||
V4L2_MEMORY_MMAP = 1,
|
||||
V4L2_MEMORY_USERPTR = 2,
|
||||
|
@ -227,6 +230,9 @@ enum v4l2_colorspace {
|
|||
|
||||
/* Raw colorspace: for RAW unprocessed images */
|
||||
V4L2_COLORSPACE_RAW = 11,
|
||||
|
||||
/* DCI-P3 colorspace, used by cinema projectors */
|
||||
V4L2_COLORSPACE_DCI_P3 = 12,
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -254,6 +260,8 @@ enum v4l2_xfer_func {
|
|||
* V4L2_COLORSPACE_SMPTE240M: V4L2_XFER_FUNC_SMPTE240M
|
||||
*
|
||||
* V4L2_COLORSPACE_RAW: V4L2_XFER_FUNC_NONE
|
||||
*
|
||||
* V4L2_COLORSPACE_DCI_P3: V4L2_XFER_FUNC_DCI_P3
|
||||
*/
|
||||
V4L2_XFER_FUNC_DEFAULT = 0,
|
||||
V4L2_XFER_FUNC_709 = 1,
|
||||
|
@ -261,6 +269,8 @@ enum v4l2_xfer_func {
|
|||
V4L2_XFER_FUNC_ADOBERGB = 3,
|
||||
V4L2_XFER_FUNC_SMPTE240M = 4,
|
||||
V4L2_XFER_FUNC_NONE = 5,
|
||||
V4L2_XFER_FUNC_DCI_P3 = 6,
|
||||
V4L2_XFER_FUNC_SMPTE2084 = 7,
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -268,11 +278,12 @@ enum v4l2_xfer_func {
|
|||
* This depends on the colorspace.
|
||||
*/
|
||||
#define V4L2_MAP_XFER_FUNC_DEFAULT(colsp) \
|
||||
((colsp) == V4L2_XFER_FUNC_ADOBERGB ? V4L2_XFER_FUNC_ADOBERGB : \
|
||||
((colsp) == V4L2_COLORSPACE_ADOBERGB ? V4L2_XFER_FUNC_ADOBERGB : \
|
||||
((colsp) == V4L2_COLORSPACE_SMPTE240M ? V4L2_XFER_FUNC_SMPTE240M : \
|
||||
((colsp) == V4L2_COLORSPACE_RAW ? V4L2_XFER_FUNC_NONE : \
|
||||
((colsp) == V4L2_COLORSPACE_SRGB || (colsp) == V4L2_COLORSPACE_JPEG ? \
|
||||
V4L2_XFER_FUNC_SRGB : V4L2_XFER_FUNC_709))))
|
||||
((colsp) == V4L2_COLORSPACE_DCI_P3 ? V4L2_XFER_FUNC_DCI_P3 : \
|
||||
((colsp) == V4L2_COLORSPACE_RAW ? V4L2_XFER_FUNC_NONE : \
|
||||
((colsp) == V4L2_COLORSPACE_SRGB || (colsp) == V4L2_COLORSPACE_JPEG ? \
|
||||
V4L2_XFER_FUNC_SRGB : V4L2_XFER_FUNC_709)))))
|
||||
|
||||
enum v4l2_ycbcr_encoding {
|
||||
/*
|
||||
|
@ -280,12 +291,10 @@ enum v4l2_ycbcr_encoding {
|
|||
* various colorspaces:
|
||||
*
|
||||
* V4L2_COLORSPACE_SMPTE170M, V4L2_COLORSPACE_470_SYSTEM_M,
|
||||
* V4L2_COLORSPACE_470_SYSTEM_BG, V4L2_COLORSPACE_ADOBERGB and
|
||||
* V4L2_COLORSPACE_JPEG: V4L2_YCBCR_ENC_601
|
||||
* V4L2_COLORSPACE_470_SYSTEM_BG, V4L2_COLORSPACE_SRGB,
|
||||
* V4L2_COLORSPACE_ADOBERGB and V4L2_COLORSPACE_JPEG: V4L2_YCBCR_ENC_601
|
||||
*
|
||||
* V4L2_COLORSPACE_REC709: V4L2_YCBCR_ENC_709
|
||||
*
|
||||
* V4L2_COLORSPACE_SRGB: V4L2_YCBCR_ENC_SYCC
|
||||
* V4L2_COLORSPACE_REC709 and V4L2_COLORSPACE_DCI_P3: V4L2_YCBCR_ENC_709
|
||||
*
|
||||
* V4L2_COLORSPACE_BT2020: V4L2_YCBCR_ENC_BT2020
|
||||
*
|
||||
|
@ -305,8 +314,14 @@ enum v4l2_ycbcr_encoding {
|
|||
/* Rec. 709/EN 61966-2-4 Extended Gamut -- HDTV */
|
||||
V4L2_YCBCR_ENC_XV709 = 4,
|
||||
|
||||
/* sYCC (Y'CbCr encoding of sRGB) */
|
||||
#ifndef __KERNEL__
|
||||
/*
|
||||
* sYCC (Y'CbCr encoding of sRGB), identical to ENC_601. It was added
|
||||
* originally due to a misunderstanding of the sYCC standard. It should
|
||||
* not be used, instead use V4L2_YCBCR_ENC_601.
|
||||
*/
|
||||
V4L2_YCBCR_ENC_SYCC = 5,
|
||||
#endif
|
||||
|
||||
/* BT.2020 Non-constant Luminance Y'CbCr */
|
||||
V4L2_YCBCR_ENC_BT2020 = 6,
|
||||
|
@ -318,12 +333,26 @@ enum v4l2_ycbcr_encoding {
|
|||
V4L2_YCBCR_ENC_SMPTE240M = 8,
|
||||
};
|
||||
|
||||
/*
|
||||
* enum v4l2_hsv_encoding values should not collide with the ones from
|
||||
* enum v4l2_ycbcr_encoding.
|
||||
*/
|
||||
enum v4l2_hsv_encoding {
|
||||
|
||||
/* Hue mapped to 0 - 179 */
|
||||
V4L2_HSV_ENC_180 = 128,
|
||||
|
||||
/* Hue mapped to 0-255 */
|
||||
V4L2_HSV_ENC_256 = 129,
|
||||
};
|
||||
|
||||
/*
|
||||
* Determine how YCBCR_ENC_DEFAULT should map to a proper Y'CbCr encoding.
|
||||
* This depends on the colorspace.
|
||||
*/
|
||||
#define V4L2_MAP_YCBCR_ENC_DEFAULT(colsp) \
|
||||
((colsp) == V4L2_COLORSPACE_REC709 ? V4L2_YCBCR_ENC_709 : \
|
||||
(((colsp) == V4L2_COLORSPACE_REC709 || \
|
||||
(colsp) == V4L2_COLORSPACE_DCI_P3) ? V4L2_YCBCR_ENC_709 : \
|
||||
((colsp) == V4L2_COLORSPACE_BT2020 ? V4L2_YCBCR_ENC_BT2020 : \
|
||||
((colsp) == V4L2_COLORSPACE_SMPTE240M ? V4L2_YCBCR_ENC_SMPTE240M : \
|
||||
V4L2_YCBCR_ENC_601)))
|
||||
|
@ -332,8 +361,7 @@ enum v4l2_quantization {
|
|||
/*
|
||||
* The default for R'G'B' quantization is always full range, except
|
||||
* for the BT2020 colorspace. For Y'CbCr the quantization is always
|
||||
* limited range, except for COLORSPACE_JPEG, SYCC, XV601 or XV709:
|
||||
* those are full range.
|
||||
* limited range, except for COLORSPACE_JPEG: this is full range.
|
||||
*/
|
||||
V4L2_QUANTIZATION_DEFAULT = 0,
|
||||
V4L2_QUANTIZATION_FULL_RANGE = 1,
|
||||
|
@ -345,10 +373,10 @@ enum v4l2_quantization {
|
|||
* This depends on whether the image is RGB or not, the colorspace and the
|
||||
* Y'CbCr encoding.
|
||||
*/
|
||||
#define V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb, colsp, ycbcr_enc) \
|
||||
(((is_rgb) && (colsp) == V4L2_COLORSPACE_BT2020) ? V4L2_QUANTIZATION_LIM_RANGE : \
|
||||
(((is_rgb) || (ycbcr_enc) == V4L2_YCBCR_ENC_XV601 || \
|
||||
(ycbcr_enc) == V4L2_YCBCR_ENC_XV709 || (colsp) == V4L2_COLORSPACE_JPEG) ? \
|
||||
#define V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb_or_hsv, colsp, ycbcr_enc) \
|
||||
(((is_rgb_or_hsv) && (colsp) == V4L2_COLORSPACE_BT2020) ? \
|
||||
V4L2_QUANTIZATION_LIM_RANGE : \
|
||||
(((is_rgb_or_hsv) || (colsp) == V4L2_COLORSPACE_JPEG) ? \
|
||||
V4L2_QUANTIZATION_FULL_RANGE : V4L2_QUANTIZATION_LIM_RANGE))
|
||||
|
||||
enum v4l2_priority {
|
||||
|
@ -421,11 +449,15 @@ struct v4l2_capability {
|
|||
|
||||
#define V4L2_CAP_SDR_CAPTURE 0x00100000 /* Is a SDR capture device */
|
||||
#define V4L2_CAP_EXT_PIX_FORMAT 0x00200000 /* Supports the extended pixel format */
|
||||
#define V4L2_CAP_SDR_OUTPUT 0x00400000 /* Is a SDR output device */
|
||||
#define V4L2_CAP_META_CAPTURE 0x00800000 /* Is a metadata capture device */
|
||||
|
||||
#define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */
|
||||
#define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */
|
||||
#define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */
|
||||
|
||||
#define V4L2_CAP_TOUCH 0x10000000 /* Is a touch device */
|
||||
|
||||
#define V4L2_CAP_DEVICE_CAPS 0x80000000 /* sets device capabilities field */
|
||||
|
||||
/*
|
||||
|
@ -441,7 +473,12 @@ struct v4l2_pix_format {
|
|||
__u32 colorspace; /* enum v4l2_colorspace */
|
||||
__u32 priv; /* private data, depends on pixelformat */
|
||||
__u32 flags; /* format flags (V4L2_PIX_FMT_FLAG_*) */
|
||||
__u32 ycbcr_enc; /* enum v4l2_ycbcr_encoding */
|
||||
union {
|
||||
/* enum v4l2_ycbcr_encoding */
|
||||
__u32 ycbcr_enc;
|
||||
/* enum v4l2_hsv_encoding */
|
||||
__u32 hsv_enc;
|
||||
};
|
||||
__u32 quantization; /* enum v4l2_quantization */
|
||||
__u32 xfer_func; /* enum v4l2_xfer_func */
|
||||
};
|
||||
|
@ -490,22 +527,16 @@ struct v4l2_pix_format {
|
|||
#define V4L2_PIX_FMT_UV8 v4l2_fourcc('U', 'V', '8', ' ') /* 8 UV 4:4 */
|
||||
|
||||
/* Luminance+Chrominance formats */
|
||||
#define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9') /* 9 YVU 4:1:0 */
|
||||
#define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') /* 12 YVU 4:2:0 */
|
||||
#define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y', 'U', 'Y', 'V') /* 16 YUV 4:2:2 */
|
||||
#define V4L2_PIX_FMT_YYUV v4l2_fourcc('Y', 'Y', 'U', 'V') /* 16 YUV 4:2:2 */
|
||||
#define V4L2_PIX_FMT_YVYU v4l2_fourcc('Y', 'V', 'Y', 'U') /* 16 YVU 4:2:2 */
|
||||
#define V4L2_PIX_FMT_UYVY v4l2_fourcc('U', 'Y', 'V', 'Y') /* 16 YUV 4:2:2 */
|
||||
#define V4L2_PIX_FMT_VYUY v4l2_fourcc('V', 'Y', 'U', 'Y') /* 16 YUV 4:2:2 */
|
||||
#define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4', '2', '2', 'P') /* 16 YVU422 planar */
|
||||
#define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P') /* 16 YVU411 planar */
|
||||
#define V4L2_PIX_FMT_Y41P v4l2_fourcc('Y', '4', '1', 'P') /* 12 YUV 4:1:1 */
|
||||
#define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4') /* 16 xxxxyyyy uuuuvvvv */
|
||||
#define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O') /* 16 YUV-5-5-5 */
|
||||
#define V4L2_PIX_FMT_YUV565 v4l2_fourcc('Y', 'U', 'V', 'P') /* 16 YUV-5-6-5 */
|
||||
#define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4') /* 32 YUV-8-8-8-8 */
|
||||
#define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9') /* 9 YUV 4:1:0 */
|
||||
#define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y', 'U', '1', '2') /* 12 YUV 4:2:0 */
|
||||
#define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* 8 8-bit color */
|
||||
#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */
|
||||
#define V4L2_PIX_FMT_M420 v4l2_fourcc('M', '4', '2', '0') /* 12 YUV 4:2:0 2 lines y, 1 line uv interleaved */
|
||||
|
@ -526,9 +557,21 @@ struct v4l2_pix_format {
|
|||
#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 64x32 macroblocks */
|
||||
#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 16x16 macroblocks */
|
||||
|
||||
/* three planes - Y Cb, Cr */
|
||||
#define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9') /* 9 YUV 4:1:0 */
|
||||
#define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9') /* 9 YVU 4:1:0 */
|
||||
#define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P') /* 12 YVU411 planar */
|
||||
#define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y', 'U', '1', '2') /* 12 YUV 4:2:0 */
|
||||
#define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') /* 12 YVU 4:2:0 */
|
||||
#define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4', '2', '2', 'P') /* 16 YVU422 planar */
|
||||
|
||||
/* three non contiguous planes - Y, Cb, Cr */
|
||||
#define V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'M', '1', '2') /* 12 YUV420 planar */
|
||||
#define V4L2_PIX_FMT_YVU420M v4l2_fourcc('Y', 'M', '2', '1') /* 12 YVU420 planar */
|
||||
#define V4L2_PIX_FMT_YUV422M v4l2_fourcc('Y', 'M', '1', '6') /* 16 YUV422 planar */
|
||||
#define V4L2_PIX_FMT_YVU422M v4l2_fourcc('Y', 'M', '6', '1') /* 16 YVU422 planar */
|
||||
#define V4L2_PIX_FMT_YUV444M v4l2_fourcc('Y', 'M', '2', '4') /* 24 YUV444 planar */
|
||||
#define V4L2_PIX_FMT_YVU444M v4l2_fourcc('Y', 'M', '4', '2') /* 24 YVU444 planar */
|
||||
|
||||
/* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */
|
||||
#define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1') /* 8 BGBG.. GRGR.. */
|
||||
|
@ -559,6 +602,13 @@ struct v4l2_pix_format {
|
|||
#define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */
|
||||
#define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */
|
||||
#define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2') /* 16 BGBG.. GRGR.. */
|
||||
#define V4L2_PIX_FMT_SGBRG16 v4l2_fourcc('G', 'B', '1', '6') /* 16 GBGB.. RGRG.. */
|
||||
#define V4L2_PIX_FMT_SGRBG16 v4l2_fourcc('G', 'R', '1', '6') /* 16 GRGR.. BGBG.. */
|
||||
#define V4L2_PIX_FMT_SRGGB16 v4l2_fourcc('R', 'G', '1', '6') /* 16 RGRG.. GBGB.. */
|
||||
|
||||
/* HSV formats */
|
||||
#define V4L2_PIX_FMT_HSV24 v4l2_fourcc('H', 'S', 'V', '3')
|
||||
#define V4L2_PIX_FMT_HSV32 v4l2_fourcc('H', 'S', 'V', '4')
|
||||
|
||||
/* compressed formats */
|
||||
#define V4L2_PIX_FMT_MJPEG v4l2_fourcc('M', 'J', 'P', 'G') /* Motion-JPEG */
|
||||
|
@ -576,6 +626,7 @@ struct v4l2_pix_format {
|
|||
#define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G') /* SMPTE 421M Annex G compliant stream */
|
||||
#define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */
|
||||
#define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */
|
||||
#define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0') /* VP9 */
|
||||
|
||||
/* Vendor-specific formats */
|
||||
#define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */
|
||||
|
@ -604,6 +655,11 @@ struct v4l2_pix_format {
|
|||
#define V4L2_PIX_FMT_JPGL v4l2_fourcc('J', 'P', 'G', 'L') /* JPEG-Lite */
|
||||
#define V4L2_PIX_FMT_SE401 v4l2_fourcc('S', '4', '0', '1') /* se401 janggu compressed rgb */
|
||||
#define V4L2_PIX_FMT_S5C_UYVY_JPG v4l2_fourcc('S', '5', 'C', 'I') /* S5C73M3 interleaved UYVY/JPEG */
|
||||
#define V4L2_PIX_FMT_Y8I v4l2_fourcc('Y', '8', 'I', ' ') /* Greyscale 8-bit L/R interleaved */
|
||||
#define V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I') /* Greyscale 12-bit L/R interleaved */
|
||||
#define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */
|
||||
#define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode */
|
||||
#define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar Greyscale 10-bit and Depth 16-bit */
|
||||
|
||||
/* SDR formats - used only for Software Defined Radio devices */
|
||||
#define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */
|
||||
|
@ -611,6 +667,19 @@ struct v4l2_pix_format {
|
|||
#define V4L2_SDR_FMT_CS8 v4l2_fourcc('C', 'S', '0', '8') /* complex s8 */
|
||||
#define V4L2_SDR_FMT_CS14LE v4l2_fourcc('C', 'S', '1', '4') /* complex s14le */
|
||||
#define V4L2_SDR_FMT_RU12LE v4l2_fourcc('R', 'U', '1', '2') /* real u12le */
|
||||
#define V4L2_SDR_FMT_PCU16BE v4l2_fourcc('P', 'C', '1', '6') /* planar complex u16be */
|
||||
#define V4L2_SDR_FMT_PCU18BE v4l2_fourcc('P', 'C', '1', '8') /* planar complex u18be */
|
||||
#define V4L2_SDR_FMT_PCU20BE v4l2_fourcc('P', 'C', '2', '0') /* planar complex u20be */
|
||||
|
||||
/* Touch formats - used for Touch devices */
|
||||
#define V4L2_TCH_FMT_DELTA_TD16 v4l2_fourcc('T', 'D', '1', '6') /* 16-bit signed deltas */
|
||||
#define V4L2_TCH_FMT_DELTA_TD08 v4l2_fourcc('T', 'D', '0', '8') /* 8-bit signed deltas */
|
||||
#define V4L2_TCH_FMT_TU16 v4l2_fourcc('T', 'U', '1', '6') /* 16-bit unsigned touch data */
|
||||
#define V4L2_TCH_FMT_TU08 v4l2_fourcc('T', 'U', '0', '8') /* 8-bit unsigned touch data */
|
||||
|
||||
/* Meta-data formats */
|
||||
#define V4L2_META_FMT_VSP1_HGO v4l2_fourcc('V', 'S', 'P', 'H') /* R-Car VSP1 1-D Histogram */
|
||||
#define V4L2_META_FMT_VSP1_HGT v4l2_fourcc('V', 'S', 'P', 'T') /* R-Car VSP1 2-D Histogram */
|
||||
|
||||
/* priv field value to indicates that subsequent fields are valid. */
|
||||
#define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe
|
||||
|
@ -633,8 +702,7 @@ struct v4l2_fmtdesc {
|
|||
#define V4L2_FMT_FLAG_COMPRESSED 0x0001
|
||||
#define V4L2_FMT_FLAG_EMULATED 0x0002
|
||||
|
||||
#if 1
|
||||
/* Experimental Frame Size and frame rate enumeration */
|
||||
/* Frame Size and frame rate enumeration */
|
||||
/*
|
||||
* F R A M E S I Z E E N U M E R A T I O N
|
||||
*/
|
||||
|
@ -700,7 +768,6 @@ struct v4l2_frmivalenum {
|
|||
|
||||
__u32 reserved[2]; /* Reserved space for future use */
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
||||
* T I M E C O D E
|
||||
|
@ -1195,6 +1262,9 @@ struct v4l2_standard {
|
|||
* (aka field 2) of interlaced field formats
|
||||
* @standards: Standards the timing belongs to
|
||||
* @flags: Flags
|
||||
* @picture_aspect: The picture aspect ratio (hor/vert).
|
||||
* @cea861_vic: VIC code as per the CEA-861 standard.
|
||||
* @hdmi_vic: VIC code as per the HDMI standard.
|
||||
* @reserved: Reserved fields, must be zeroed.
|
||||
*
|
||||
* A note regarding vertical interlaced timings: height refers to the total
|
||||
|
@ -1224,7 +1294,10 @@ struct v4l2_bt_timings {
|
|||
__u32 il_vbackporch;
|
||||
__u32 standards;
|
||||
__u32 flags;
|
||||
__u32 reserved[14];
|
||||
struct v4l2_fract picture_aspect;
|
||||
__u8 cea861_vic;
|
||||
__u8 hdmi_vic;
|
||||
__u8 reserved[46];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/* Interlaced or progressive format */
|
||||
|
@ -1240,37 +1313,70 @@ struct v4l2_bt_timings {
|
|||
#define V4L2_DV_BT_STD_DMT (1 << 1) /* VESA Discrete Monitor Timings */
|
||||
#define V4L2_DV_BT_STD_CVT (1 << 2) /* VESA Coordinated Video Timings */
|
||||
#define V4L2_DV_BT_STD_GTF (1 << 3) /* VESA Generalized Timings Formula */
|
||||
#define V4L2_DV_BT_STD_SDI (1 << 4) /* SDI Timings */
|
||||
|
||||
/* Flags */
|
||||
|
||||
/* CVT/GTF specific: timing uses reduced blanking (CVT) or the 'Secondary
|
||||
GTF' curve (GTF). In both cases the horizontal and/or vertical blanking
|
||||
intervals are reduced, allowing a higher resolution over the same
|
||||
bandwidth. This is a read-only flag. */
|
||||
/*
|
||||
* CVT/GTF specific: timing uses reduced blanking (CVT) or the 'Secondary
|
||||
* GTF' curve (GTF). In both cases the horizontal and/or vertical blanking
|
||||
* intervals are reduced, allowing a higher resolution over the same
|
||||
* bandwidth. This is a read-only flag.
|
||||
*/
|
||||
#define V4L2_DV_FL_REDUCED_BLANKING (1 << 0)
|
||||
/* CEA-861 specific: set for CEA-861 formats with a framerate of a multiple
|
||||
of six. These formats can be optionally played at 1 / 1.001 speed.
|
||||
This is a read-only flag. */
|
||||
/*
|
||||
* CEA-861 specific: set for CEA-861 formats with a framerate of a multiple
|
||||
* of six. These formats can be optionally played at 1 / 1.001 speed.
|
||||
* This is a read-only flag.
|
||||
*/
|
||||
#define V4L2_DV_FL_CAN_REDUCE_FPS (1 << 1)
|
||||
/* CEA-861 specific: only valid for video transmitters, the flag is cleared
|
||||
by receivers.
|
||||
If the framerate of the format is a multiple of six, then the pixelclock
|
||||
used to set up the transmitter is divided by 1.001 to make it compatible
|
||||
with 60 Hz based standards such as NTSC and PAL-M that use a framerate of
|
||||
29.97 Hz. Otherwise this flag is cleared. If the transmitter can't generate
|
||||
such frequencies, then the flag will also be cleared. */
|
||||
/*
|
||||
* CEA-861 specific: only valid for video transmitters, the flag is cleared
|
||||
* by receivers.
|
||||
* If the framerate of the format is a multiple of six, then the pixelclock
|
||||
* used to set up the transmitter is divided by 1.001 to make it compatible
|
||||
* with 60 Hz based standards such as NTSC and PAL-M that use a framerate of
|
||||
* 29.97 Hz. Otherwise this flag is cleared. If the transmitter can't generate
|
||||
* such frequencies, then the flag will also be cleared.
|
||||
*/
|
||||
#define V4L2_DV_FL_REDUCED_FPS (1 << 2)
|
||||
/* Specific to interlaced formats: if set, then field 1 is really one half-line
|
||||
longer and field 2 is really one half-line shorter, so each field has
|
||||
exactly the same number of half-lines. Whether half-lines can be detected
|
||||
or used depends on the hardware. */
|
||||
/*
|
||||
* Specific to interlaced formats: if set, then field 1 is really one half-line
|
||||
* longer and field 2 is really one half-line shorter, so each field has
|
||||
* exactly the same number of half-lines. Whether half-lines can be detected
|
||||
* or used depends on the hardware.
|
||||
*/
|
||||
#define V4L2_DV_FL_HALF_LINE (1 << 3)
|
||||
/* If set, then this is a Consumer Electronics (CE) video format. Such formats
|
||||
/*
|
||||
* If set, then this is a Consumer Electronics (CE) video format. Such formats
|
||||
* differ from other formats (commonly called IT formats) in that if RGB
|
||||
* encoding is used then by default the RGB values use limited range (i.e.
|
||||
* use the range 16-235) as opposed to 0-255. All formats defined in CEA-861
|
||||
* except for the 640x480 format are CE formats. */
|
||||
* except for the 640x480 format are CE formats.
|
||||
*/
|
||||
#define V4L2_DV_FL_IS_CE_VIDEO (1 << 4)
|
||||
/* Some formats like SMPTE-125M have an interlaced signal with a odd
|
||||
* total height. For these formats, if this flag is set, the first
|
||||
* field has the extra line. If not, it is the second field.
|
||||
*/
|
||||
#define V4L2_DV_FL_FIRST_FIELD_EXTRA_LINE (1 << 5)
|
||||
/*
|
||||
* If set, then the picture_aspect field is valid. Otherwise assume that the
|
||||
* pixels are square, so the picture aspect ratio is the same as the width to
|
||||
* height ratio.
|
||||
*/
|
||||
#define V4L2_DV_FL_HAS_PICTURE_ASPECT (1 << 6)
|
||||
/*
|
||||
* If set, then the cea861_vic field is valid and contains the Video
|
||||
* Identification Code as per the CEA-861 standard.
|
||||
*/
|
||||
#define V4L2_DV_FL_HAS_CEA861_VIC (1 << 7)
|
||||
/*
|
||||
* If set, then the hdmi_vic field is valid and contains the Video
|
||||
* Identification Code as per the HDMI standard (HDMI Vendor Specific
|
||||
* InfoFrame).
|
||||
*/
|
||||
#define V4L2_DV_FL_HAS_HDMI_VIC (1 << 8)
|
||||
|
||||
/* A few useful defines to calculate the total blanking and frame sizes */
|
||||
#define V4L2_DV_BT_BLANKING_WIDTH(bt) \
|
||||
|
@ -1380,6 +1486,7 @@ struct v4l2_input {
|
|||
/* Values for the 'type' field */
|
||||
#define V4L2_INPUT_TYPE_TUNER 1
|
||||
#define V4L2_INPUT_TYPE_CAMERA 2
|
||||
#define V4L2_INPUT_TYPE_TOUCH 3
|
||||
|
||||
/* field 'status' - general */
|
||||
#define V4L2_IN_ST_NO_POWER 0x00000001 /* Attached device is off */
|
||||
|
@ -1394,6 +1501,8 @@ struct v4l2_input {
|
|||
/* field 'status' - analog */
|
||||
#define V4L2_IN_ST_NO_H_LOCK 0x00000100 /* No horizontal sync lock */
|
||||
#define V4L2_IN_ST_COLOR_KILL 0x00000200 /* Color killer is active */
|
||||
#define V4L2_IN_ST_NO_V_LOCK 0x00000400 /* No vertical sync lock */
|
||||
#define V4L2_IN_ST_NO_STD_LOCK 0x00000800 /* No standard format lock */
|
||||
|
||||
/* field 'status' - digital */
|
||||
#define V4L2_IN_ST_NO_SYNC 0x00010000 /* No synchronization lock */
|
||||
|
@ -1459,7 +1568,12 @@ struct v4l2_ext_control {
|
|||
} __attribute__ ((packed));
|
||||
|
||||
struct v4l2_ext_controls {
|
||||
__u32 ctrl_class;
|
||||
union {
|
||||
#ifndef __KERNEL__
|
||||
__u32 ctrl_class;
|
||||
#endif
|
||||
__u32 which;
|
||||
};
|
||||
__u32 count;
|
||||
__u32 error_idx;
|
||||
__u32 reserved[2];
|
||||
|
@ -1467,9 +1581,14 @@ struct v4l2_ext_controls {
|
|||
};
|
||||
|
||||
#define V4L2_CTRL_ID_MASK (0x0fffffff)
|
||||
#ifndef __KERNEL__
|
||||
#define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL)
|
||||
#endif
|
||||
#define V4L2_CTRL_ID2WHICH(id) ((id) & 0x0fff0000UL)
|
||||
#define V4L2_CTRL_DRIVER_PRIV(id) (((id) & 0xffff) >= 0x1000)
|
||||
#define V4L2_CTRL_MAX_DIMS (4)
|
||||
#define V4L2_CTRL_WHICH_CUR_VAL 0
|
||||
#define V4L2_CTRL_WHICH_DEF_VAL 0x0f000000
|
||||
|
||||
enum v4l2_ctrl_type {
|
||||
V4L2_CTRL_TYPE_INTEGER = 1,
|
||||
|
@ -1541,6 +1660,7 @@ struct v4l2_querymenu {
|
|||
#define V4L2_CTRL_FLAG_VOLATILE 0x0080
|
||||
#define V4L2_CTRL_FLAG_HAS_PAYLOAD 0x0100
|
||||
#define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE 0x0200
|
||||
#define V4L2_CTRL_FLAG_MODIFY_LAYOUT 0x0400
|
||||
|
||||
/* Query flags, to be ORed with the control ID */
|
||||
#define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000
|
||||
|
@ -1576,7 +1696,8 @@ struct v4l2_modulator {
|
|||
__u32 rangelow;
|
||||
__u32 rangehigh;
|
||||
__u32 txsubchans;
|
||||
__u32 reserved[4];
|
||||
__u32 type; /* enum v4l2_tuner_type */
|
||||
__u32 reserved[3];
|
||||
};
|
||||
|
||||
/* Flags for the 'capability' field */
|
||||
|
@ -1693,8 +1814,6 @@ struct v4l2_audioout {
|
|||
|
||||
/*
|
||||
* M P E G S E R V I C E S
|
||||
*
|
||||
* NOTE: EXPERIMENTAL API
|
||||
*/
|
||||
#if 1
|
||||
#define V4L2_ENC_IDX_FRAME_I (0)
|
||||
|
@ -1954,7 +2073,10 @@ struct v4l2_pix_format_mplane {
|
|||
struct v4l2_plane_pix_format plane_fmt[VIDEO_MAX_PLANES];
|
||||
__u8 num_planes;
|
||||
__u8 flags;
|
||||
__u8 ycbcr_enc;
|
||||
union {
|
||||
__u8 ycbcr_enc;
|
||||
__u8 hsv_enc;
|
||||
};
|
||||
__u8 quantization;
|
||||
__u8 xfer_func;
|
||||
__u8 reserved[7];
|
||||
|
@ -1971,6 +2093,16 @@ struct v4l2_sdr_format {
|
|||
__u8 reserved[24];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/**
|
||||
* struct v4l2_meta_format - metadata format definition
|
||||
* @dataformat: little endian four character code (fourcc)
|
||||
* @buffersize: maximum size in bytes required for data
|
||||
*/
|
||||
struct v4l2_meta_format {
|
||||
__u32 dataformat;
|
||||
__u32 buffersize;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/**
|
||||
* struct v4l2_format - stream data format
|
||||
* @type: enum v4l2_buf_type; type of the data stream
|
||||
|
@ -1990,6 +2122,7 @@ struct v4l2_format {
|
|||
struct v4l2_vbi_format vbi; /* V4L2_BUF_TYPE_VBI_CAPTURE */
|
||||
struct v4l2_sliced_vbi_format sliced; /* V4L2_BUF_TYPE_SLICED_VBI_CAPTURE */
|
||||
struct v4l2_sdr_format sdr; /* V4L2_BUF_TYPE_SDR_CAPTURE */
|
||||
struct v4l2_meta_format meta; /* V4L2_BUF_TYPE_META_CAPTURE */
|
||||
__u8 raw_data[200]; /* user-defined */
|
||||
} fmt;
|
||||
};
|
||||
|
@ -2224,53 +2357,42 @@ struct v4l2_create_buffers {
|
|||
#define VIDIOC_ENCODER_CMD _IOWR('V', 77, struct v4l2_encoder_cmd)
|
||||
#define VIDIOC_TRY_ENCODER_CMD _IOWR('V', 78, struct v4l2_encoder_cmd)
|
||||
|
||||
/* Experimental, meant for debugging, testing and internal use.
|
||||
Only implemented if CONFIG_VIDEO_ADV_DEBUG is defined.
|
||||
You must be root to use these ioctls. Never use these in applications! */
|
||||
/*
|
||||
* Experimental, meant for debugging, testing and internal use.
|
||||
* Only implemented if CONFIG_VIDEO_ADV_DEBUG is defined.
|
||||
* You must be root to use these ioctls. Never use these in applications!
|
||||
*/
|
||||
#define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_dbg_register)
|
||||
#define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_dbg_register)
|
||||
|
||||
#define VIDIOC_S_HW_FREQ_SEEK _IOW('V', 82, struct v4l2_hw_freq_seek)
|
||||
|
||||
#define VIDIOC_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings)
|
||||
#define VIDIOC_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings)
|
||||
#define VIDIOC_DQEVENT _IOR('V', 89, struct v4l2_event)
|
||||
#define VIDIOC_SUBSCRIBE_EVENT _IOW('V', 90, struct v4l2_event_subscription)
|
||||
#define VIDIOC_UNSUBSCRIBE_EVENT _IOW('V', 91, struct v4l2_event_subscription)
|
||||
|
||||
/* Experimental, the below two ioctls may change over the next couple of kernel
|
||||
versions */
|
||||
#define VIDIOC_CREATE_BUFS _IOWR('V', 92, struct v4l2_create_buffers)
|
||||
#define VIDIOC_PREPARE_BUF _IOWR('V', 93, struct v4l2_buffer)
|
||||
|
||||
/* Experimental selection API */
|
||||
#define VIDIOC_G_SELECTION _IOWR('V', 94, struct v4l2_selection)
|
||||
#define VIDIOC_S_SELECTION _IOWR('V', 95, struct v4l2_selection)
|
||||
|
||||
/* Experimental, these two ioctls may change over the next couple of kernel
|
||||
versions. */
|
||||
#define VIDIOC_DECODER_CMD _IOWR('V', 96, struct v4l2_decoder_cmd)
|
||||
#define VIDIOC_TRY_DECODER_CMD _IOWR('V', 97, struct v4l2_decoder_cmd)
|
||||
|
||||
/* Experimental, these three ioctls may change over the next couple of kernel
|
||||
versions. */
|
||||
#define VIDIOC_ENUM_DV_TIMINGS _IOWR('V', 98, struct v4l2_enum_dv_timings)
|
||||
#define VIDIOC_QUERY_DV_TIMINGS _IOR('V', 99, struct v4l2_dv_timings)
|
||||
#define VIDIOC_DV_TIMINGS_CAP _IOWR('V', 100, struct v4l2_dv_timings_cap)
|
||||
|
||||
/* Experimental, this ioctl may change over the next couple of kernel
|
||||
versions. */
|
||||
#define VIDIOC_ENUM_FREQ_BANDS _IOWR('V', 101, struct v4l2_frequency_band)
|
||||
|
||||
/* Experimental, meant for debugging, testing and internal use.
|
||||
Never use these in applications! */
|
||||
/*
|
||||
* Experimental, meant for debugging, testing and internal use.
|
||||
* Never use this in applications!
|
||||
*/
|
||||
#define VIDIOC_DBG_G_CHIP_INFO _IOWR('V', 102, struct v4l2_dbg_chip_info)
|
||||
|
||||
#define VIDIOC_QUERY_EXT_CTRL _IOWR('V', 103, struct v4l2_query_ext_ctrl)
|
||||
|
||||
/* Reminder: when adding new ioctls please add support for them to
|
||||
drivers/media/video/v4l2-compat-ioctl32.c as well! */
|
||||
drivers/media/v4l2-core/v4l2-compat-ioctl32.c as well! */
|
||||
|
||||
#define BASE_VIDIOC_PRIVATE 192 /* 192-255 are private */
|
||||
|
||||
#endif /* __LINUX_VIDEODEV2_H */
|
||||
#endif /* _UAPI__LINUX_VIDEODEV2_H */
|
||||
|
|
Loading…
Reference in a new issue