1951a39d68df598db08dfced8b4707755864a0492Ying Wang/**************************************************************************** 2951a39d68df598db08dfced8b4707755864a0492Ying Wang **************************************************************************** 3951a39d68df598db08dfced8b4707755864a0492Ying Wang *** 4951a39d68df598db08dfced8b4707755864a0492Ying Wang *** This header was automatically generated from a Linux kernel header 5951a39d68df598db08dfced8b4707755864a0492Ying Wang *** of the same name, to make information necessary for userspace to 6951a39d68df598db08dfced8b4707755864a0492Ying Wang *** call into the kernel available to libc. It contains only constants, 7951a39d68df598db08dfced8b4707755864a0492Ying Wang *** structures, and macros generated from the original header, and thus, 8951a39d68df598db08dfced8b4707755864a0492Ying Wang *** contains no copyrightable information. 9951a39d68df598db08dfced8b4707755864a0492Ying Wang *** 10951a39d68df598db08dfced8b4707755864a0492Ying Wang **************************************************************************** 11951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************/ 12951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef __LINUX_VIDEODEV2_H 13951a39d68df598db08dfced8b4707755864a0492Ying Wang#define __LINUX_VIDEODEV2_H 14951a39d68df598db08dfced8b4707755864a0492Ying Wang#define __user 15951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <linux/types.h> 16951a39d68df598db08dfced8b4707755864a0492Ying Wang 17951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDEO_MAX_FRAME 32 18951a39d68df598db08dfced8b4707755864a0492Ying Wang 19951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VID_TYPE_CAPTURE 1 20951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VID_TYPE_TUNER 2 21951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VID_TYPE_TELETEXT 4 22951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VID_TYPE_OVERLAY 8 23951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VID_TYPE_CHROMAKEY 16 24951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VID_TYPE_CLIPPING 32 25951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VID_TYPE_FRAMERAM 64 26951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VID_TYPE_SCALES 128 27951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VID_TYPE_MONOCHROME 256 28951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VID_TYPE_SUBCAPTURE 512 29951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VID_TYPE_MPEG_DECODER 1024 30951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VID_TYPE_MPEG_ENCODER 2048 31951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VID_TYPE_MJPEG_DECODER 4096 32951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VID_TYPE_MJPEG_ENCODER 8192 33951a39d68df598db08dfced8b4707755864a0492Ying Wang 34951a39d68df598db08dfced8b4707755864a0492Ying Wang#define v4l2_fourcc(a,b,c,d) (((__u32)(a)<<0)|((__u32)(b)<<8)|((__u32)(c)<<16)|((__u32)(d)<<24)) 35951a39d68df598db08dfced8b4707755864a0492Ying Wang 36951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_field { 37951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_FIELD_ANY = 0, 38951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_FIELD_NONE = 1, 39951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_FIELD_TOP = 2, 40951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_FIELD_BOTTOM = 3, 41951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_FIELD_INTERLACED = 4, 42951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_FIELD_SEQ_TB = 5, 43951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_FIELD_SEQ_BT = 6, 44951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_FIELD_ALTERNATE = 7, 45951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 46951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_FIELD_HAS_TOP(field) ((field) == V4L2_FIELD_TOP || (field) == V4L2_FIELD_INTERLACED || (field) == V4L2_FIELD_SEQ_TB || (field) == V4L2_FIELD_SEQ_BT) 47951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_FIELD_HAS_BOTTOM(field) ((field) == V4L2_FIELD_BOTTOM || (field) == V4L2_FIELD_INTERLACED || (field) == V4L2_FIELD_SEQ_TB || (field) == V4L2_FIELD_SEQ_BT) 48951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_FIELD_HAS_BOTH(field) ((field) == V4L2_FIELD_INTERLACED || (field) == V4L2_FIELD_SEQ_TB || (field) == V4L2_FIELD_SEQ_BT) 49951a39d68df598db08dfced8b4707755864a0492Ying Wang 50951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_buf_type { 51951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_BUF_TYPE_VIDEO_CAPTURE = 1, 52951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_BUF_TYPE_VIDEO_OUTPUT = 2, 53951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_BUF_TYPE_VIDEO_OVERLAY = 3, 54951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_BUF_TYPE_VBI_CAPTURE = 4, 55951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_BUF_TYPE_VBI_OUTPUT = 5, 56951a39d68df598db08dfced8b4707755864a0492Ying Wang 57951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_BUF_TYPE_SLICED_VBI_CAPTURE = 6, 58951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_BUF_TYPE_SLICED_VBI_OUTPUT = 7, 59951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_BUF_TYPE_PRIVATE = 0x80, 60951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 61951a39d68df598db08dfced8b4707755864a0492Ying Wang 62951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_ctrl_type { 63951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_CTRL_TYPE_INTEGER = 1, 64951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_CTRL_TYPE_BOOLEAN = 2, 65951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_CTRL_TYPE_MENU = 3, 66951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_CTRL_TYPE_BUTTON = 4, 67951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_CTRL_TYPE_INTEGER64 = 5, 68951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_CTRL_TYPE_CTRL_CLASS = 6, 69951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 70951a39d68df598db08dfced8b4707755864a0492Ying Wang 71951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_tuner_type { 72951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_TUNER_RADIO = 1, 73951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_TUNER_ANALOG_TV = 2, 74951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_TUNER_DIGITAL_TV = 3, 75951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 76951a39d68df598db08dfced8b4707755864a0492Ying Wang 77951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_memory { 78951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MEMORY_MMAP = 1, 79951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MEMORY_USERPTR = 2, 80951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MEMORY_OVERLAY = 3, 81951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 82951a39d68df598db08dfced8b4707755864a0492Ying Wang 83951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_colorspace { 84951a39d68df598db08dfced8b4707755864a0492Ying Wang 85951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_COLORSPACE_SMPTE170M = 1, 86951a39d68df598db08dfced8b4707755864a0492Ying Wang 87951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_COLORSPACE_SMPTE240M = 2, 88951a39d68df598db08dfced8b4707755864a0492Ying Wang 89951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_COLORSPACE_REC709 = 3, 90951a39d68df598db08dfced8b4707755864a0492Ying Wang 91951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_COLORSPACE_BT878 = 4, 92951a39d68df598db08dfced8b4707755864a0492Ying Wang 93951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_COLORSPACE_470_SYSTEM_M = 5, 94951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_COLORSPACE_470_SYSTEM_BG = 6, 95951a39d68df598db08dfced8b4707755864a0492Ying Wang 96951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_COLORSPACE_JPEG = 7, 97951a39d68df598db08dfced8b4707755864a0492Ying Wang 98951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_COLORSPACE_SRGB = 8, 99951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 100951a39d68df598db08dfced8b4707755864a0492Ying Wang 101951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_priority { 102951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_PRIORITY_UNSET = 0, 103951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_PRIORITY_BACKGROUND = 1, 104951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_PRIORITY_INTERACTIVE = 2, 105951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_PRIORITY_RECORD = 3, 106951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_PRIORITY_DEFAULT = V4L2_PRIORITY_INTERACTIVE, 107951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 108951a39d68df598db08dfced8b4707755864a0492Ying Wang 109951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_rect { 110951a39d68df598db08dfced8b4707755864a0492Ying Wang __s32 left; 111951a39d68df598db08dfced8b4707755864a0492Ying Wang __s32 top; 112951a39d68df598db08dfced8b4707755864a0492Ying Wang __s32 width; 113951a39d68df598db08dfced8b4707755864a0492Ying Wang __s32 height; 114951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 115951a39d68df598db08dfced8b4707755864a0492Ying Wang 116951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_fract { 117951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 numerator; 118951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 denominator; 119951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 120951a39d68df598db08dfced8b4707755864a0492Ying Wang 121951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_capability 122951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 123951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 driver[16]; 124951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 card[32]; 125951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 bus_info[32]; 126951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 version; 127951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 capabilities; 128951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved[4]; 129951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 130951a39d68df598db08dfced8b4707755864a0492Ying Wang 131951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CAP_VIDEO_CAPTURE 0x00000001 132951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CAP_VIDEO_OUTPUT 0x00000002 133951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CAP_VIDEO_OVERLAY 0x00000004 134951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CAP_VBI_CAPTURE 0x00000010 135951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CAP_VBI_OUTPUT 0x00000020 136951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CAP_SLICED_VBI_CAPTURE 0x00000040 137951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CAP_SLICED_VBI_OUTPUT 0x00000080 138951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CAP_RDS_CAPTURE 0x00000100 139951a39d68df598db08dfced8b4707755864a0492Ying Wang 140951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CAP_TUNER 0x00010000 141951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CAP_AUDIO 0x00020000 142951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CAP_RADIO 0x00040000 143951a39d68df598db08dfced8b4707755864a0492Ying Wang 144951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CAP_READWRITE 0x01000000 145951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CAP_ASYNCIO 0x02000000 146951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CAP_STREAMING 0x04000000 147951a39d68df598db08dfced8b4707755864a0492Ying Wang 148951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_pix_format 149951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 150951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 width; 151951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 height; 152951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 pixelformat; 153951a39d68df598db08dfced8b4707755864a0492Ying Wang enum v4l2_field field; 154951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 bytesperline; 155951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 sizeimage; 156951a39d68df598db08dfced8b4707755864a0492Ying Wang enum v4l2_colorspace colorspace; 157951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 priv; 158951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 159951a39d68df598db08dfced8b4707755864a0492Ying Wang 160951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R','G','B','1') 161951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R','G','B','O') 162951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R','G','B','P') 163951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R','G','B','Q') 164951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R','G','B','R') 165951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B','G','R','3') 166951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R','G','B','3') 167951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B','G','R','4') 168951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R','G','B','4') 169951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_GREY v4l2_fourcc('G','R','E','Y') 170951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y','V','U','9') 171951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y','V','1','2') 172951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y','U','Y','V') 173951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_UYVY v4l2_fourcc('U','Y','V','Y') 174951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4','2','2','P') 175951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4','1','1','P') 176951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_Y41P v4l2_fourcc('Y','4','1','P') 177951a39d68df598db08dfced8b4707755864a0492Ying Wang 178951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_NV12 v4l2_fourcc('N','V','1','2') 179951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_NV21 v4l2_fourcc('N','V','2','1') 180951a39d68df598db08dfced8b4707755864a0492Ying Wang 181951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y','U','V','9') 182951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y','U','1','2') 183951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_YYUV v4l2_fourcc('Y','Y','U','V') 184951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_HI240 v4l2_fourcc('H','I','2','4') 185951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H','M','1','2') 186951a39d68df598db08dfced8b4707755864a0492Ying Wang 187951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B','A','8','1') 188951a39d68df598db08dfced8b4707755864a0492Ying Wang 189951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_MJPEG v4l2_fourcc('M','J','P','G') 190951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_JPEG v4l2_fourcc('J','P','E','G') 191951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_DV v4l2_fourcc('d','v','s','d') 192951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_MPEG v4l2_fourcc('M','P','E','G') 193951a39d68df598db08dfced8b4707755864a0492Ying Wang 194951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_WNVA v4l2_fourcc('W','N','V','A') 195951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_SN9C10X v4l2_fourcc('S','9','1','0') 196951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_PWC1 v4l2_fourcc('P','W','C','1') 197951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_PWC2 v4l2_fourcc('P','W','C','2') 198951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_PIX_FMT_ET61X251 v4l2_fourcc('E','6','2','5') 199951a39d68df598db08dfced8b4707755864a0492Ying Wang 200951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_fmtdesc 201951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 202951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 index; 203951a39d68df598db08dfced8b4707755864a0492Ying Wang enum v4l2_buf_type type; 204951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 flags; 205951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 description[32]; 206951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 pixelformat; 207951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved[4]; 208951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 209951a39d68df598db08dfced8b4707755864a0492Ying Wang 210951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_FMT_FLAG_COMPRESSED 0x0001 211951a39d68df598db08dfced8b4707755864a0492Ying Wang 212951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_timecode 213951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 214951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 type; 215951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 flags; 216951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 frames; 217951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 seconds; 218951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 minutes; 219951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 hours; 220951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 userbits[4]; 221951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 222951a39d68df598db08dfced8b4707755864a0492Ying Wang 223951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TC_TYPE_24FPS 1 224951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TC_TYPE_25FPS 2 225951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TC_TYPE_30FPS 3 226951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TC_TYPE_50FPS 4 227951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TC_TYPE_60FPS 5 228951a39d68df598db08dfced8b4707755864a0492Ying Wang 229951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TC_FLAG_DROPFRAME 0x0001 230951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TC_FLAG_COLORFRAME 0x0002 231951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TC_USERBITS_field 0x000C 232951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TC_USERBITS_USERDEFINED 0x0000 233951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TC_USERBITS_8BITCHARS 0x0008 234951a39d68df598db08dfced8b4707755864a0492Ying Wang 235951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_jpegcompression 236951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 237951a39d68df598db08dfced8b4707755864a0492Ying Wang int quality; 238951a39d68df598db08dfced8b4707755864a0492Ying Wang 239951a39d68df598db08dfced8b4707755864a0492Ying Wang int APPn; 240951a39d68df598db08dfced8b4707755864a0492Ying Wang int APP_len; 241951a39d68df598db08dfced8b4707755864a0492Ying Wang char APP_data[60]; 242951a39d68df598db08dfced8b4707755864a0492Ying Wang 243951a39d68df598db08dfced8b4707755864a0492Ying Wang int COM_len; 244951a39d68df598db08dfced8b4707755864a0492Ying Wang char COM_data[60]; 245951a39d68df598db08dfced8b4707755864a0492Ying Wang 246951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 jpeg_markers; 247951a39d68df598db08dfced8b4707755864a0492Ying Wang 248951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_JPEG_MARKER_DHT (1<<3) 249951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_JPEG_MARKER_DQT (1<<4) 250951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_JPEG_MARKER_DRI (1<<5) 251951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_JPEG_MARKER_COM (1<<6) 252951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_JPEG_MARKER_APP (1<<7) 253951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 254951a39d68df598db08dfced8b4707755864a0492Ying Wang 255951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_requestbuffers 256951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 257951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 count; 258951a39d68df598db08dfced8b4707755864a0492Ying Wang enum v4l2_buf_type type; 259951a39d68df598db08dfced8b4707755864a0492Ying Wang enum v4l2_memory memory; 260951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved[2]; 261951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 262951a39d68df598db08dfced8b4707755864a0492Ying Wang 263951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_buffer 264951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 265951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 index; 266951a39d68df598db08dfced8b4707755864a0492Ying Wang enum v4l2_buf_type type; 267951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 bytesused; 268951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 flags; 269951a39d68df598db08dfced8b4707755864a0492Ying Wang enum v4l2_field field; 270951a39d68df598db08dfced8b4707755864a0492Ying Wang struct timeval timestamp; 271951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_timecode timecode; 272951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 sequence; 273951a39d68df598db08dfced8b4707755864a0492Ying Wang 274951a39d68df598db08dfced8b4707755864a0492Ying Wang enum v4l2_memory memory; 275951a39d68df598db08dfced8b4707755864a0492Ying Wang union { 276951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 offset; 277951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned long userptr; 278951a39d68df598db08dfced8b4707755864a0492Ying Wang } m; 279951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 length; 280951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 input; 281951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved; 282951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 283951a39d68df598db08dfced8b4707755864a0492Ying Wang 284951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_BUF_FLAG_MAPPED 0x0001 285951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_BUF_FLAG_QUEUED 0x0002 286951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_BUF_FLAG_DONE 0x0004 287951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_BUF_FLAG_KEYFRAME 0x0008 288951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_BUF_FLAG_PFRAME 0x0010 289951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_BUF_FLAG_BFRAME 0x0020 290951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_BUF_FLAG_TIMECODE 0x0100 291951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_BUF_FLAG_INPUT 0x0200 292951a39d68df598db08dfced8b4707755864a0492Ying Wang 293951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_framebuffer 294951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 295951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 capability; 296951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 flags; 297951a39d68df598db08dfced8b4707755864a0492Ying Wang 298951a39d68df598db08dfced8b4707755864a0492Ying Wang void* base; 299951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_pix_format fmt; 300951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 301951a39d68df598db08dfced8b4707755864a0492Ying Wang 302951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_FBUF_CAP_EXTERNOVERLAY 0x0001 303951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_FBUF_CAP_CHROMAKEY 0x0002 304951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_FBUF_CAP_LIST_CLIPPING 0x0004 305951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_FBUF_CAP_BITMAP_CLIPPING 0x0008 306951a39d68df598db08dfced8b4707755864a0492Ying Wang 307951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_FBUF_FLAG_PRIMARY 0x0001 308951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_FBUF_FLAG_OVERLAY 0x0002 309951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_FBUF_FLAG_CHROMAKEY 0x0004 310951a39d68df598db08dfced8b4707755864a0492Ying Wang 311951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_clip 312951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 313951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_rect c; 314951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_clip __user *next; 315951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 316951a39d68df598db08dfced8b4707755864a0492Ying Wang 317951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_window 318951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 319951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_rect w; 320951a39d68df598db08dfced8b4707755864a0492Ying Wang enum v4l2_field field; 321951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 chromakey; 322951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_clip __user *clips; 323951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 clipcount; 324951a39d68df598db08dfced8b4707755864a0492Ying Wang void __user *bitmap; 325951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 326951a39d68df598db08dfced8b4707755864a0492Ying Wang 327951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_captureparm 328951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 329951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 capability; 330951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 capturemode; 331951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_fract timeperframe; 332951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 extendedmode; 333951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 readbuffers; 334951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved[4]; 335951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 336951a39d68df598db08dfced8b4707755864a0492Ying Wang 337951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_MODE_HIGHQUALITY 0x0001 338951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CAP_TIMEPERFRAME 0x1000 339951a39d68df598db08dfced8b4707755864a0492Ying Wang 340951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_outputparm 341951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 342951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 capability; 343951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 outputmode; 344951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_fract timeperframe; 345951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 extendedmode; 346951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 writebuffers; 347951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved[4]; 348951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 349951a39d68df598db08dfced8b4707755864a0492Ying Wang 350951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_cropcap { 351951a39d68df598db08dfced8b4707755864a0492Ying Wang enum v4l2_buf_type type; 352951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_rect bounds; 353951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_rect defrect; 354951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_fract pixelaspect; 355951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 356951a39d68df598db08dfced8b4707755864a0492Ying Wang 357951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_crop { 358951a39d68df598db08dfced8b4707755864a0492Ying Wang enum v4l2_buf_type type; 359951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_rect c; 360951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 361951a39d68df598db08dfced8b4707755864a0492Ying Wang 362951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef __u64 v4l2_std_id; 363951a39d68df598db08dfced8b4707755864a0492Ying Wang 364951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_PAL_B ((v4l2_std_id)0x00000001) 365951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_PAL_B1 ((v4l2_std_id)0x00000002) 366951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_PAL_G ((v4l2_std_id)0x00000004) 367951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_PAL_H ((v4l2_std_id)0x00000008) 368951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_PAL_I ((v4l2_std_id)0x00000010) 369951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_PAL_D ((v4l2_std_id)0x00000020) 370951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_PAL_D1 ((v4l2_std_id)0x00000040) 371951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_PAL_K ((v4l2_std_id)0x00000080) 372951a39d68df598db08dfced8b4707755864a0492Ying Wang 373951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_PAL_M ((v4l2_std_id)0x00000100) 374951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_PAL_N ((v4l2_std_id)0x00000200) 375951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_PAL_Nc ((v4l2_std_id)0x00000400) 376951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_PAL_60 ((v4l2_std_id)0x00000800) 377951a39d68df598db08dfced8b4707755864a0492Ying Wang 378951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_NTSC_M ((v4l2_std_id)0x00001000) 379951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_NTSC_M_JP ((v4l2_std_id)0x00002000) 380951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_NTSC_443 ((v4l2_std_id)0x00004000) 381951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_NTSC_M_KR ((v4l2_std_id)0x00008000) 382951a39d68df598db08dfced8b4707755864a0492Ying Wang 383951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_SECAM_B ((v4l2_std_id)0x00010000) 384951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_SECAM_D ((v4l2_std_id)0x00020000) 385951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_SECAM_G ((v4l2_std_id)0x00040000) 386951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_SECAM_H ((v4l2_std_id)0x00080000) 387951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_SECAM_K ((v4l2_std_id)0x00100000) 388951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_SECAM_K1 ((v4l2_std_id)0x00200000) 389951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_SECAM_L ((v4l2_std_id)0x00400000) 390951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_SECAM_LC ((v4l2_std_id)0x00800000) 391951a39d68df598db08dfced8b4707755864a0492Ying Wang 392951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_ATSC_8_VSB ((v4l2_std_id)0x01000000) 393951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_ATSC_16_VSB ((v4l2_std_id)0x02000000) 394951a39d68df598db08dfced8b4707755864a0492Ying Wang 395951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_MN (V4L2_STD_PAL_M|V4L2_STD_PAL_N|V4L2_STD_PAL_Nc|V4L2_STD_NTSC) 396951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_B (V4L2_STD_PAL_B|V4L2_STD_PAL_B1|V4L2_STD_SECAM_B) 397951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_GH (V4L2_STD_PAL_G|V4L2_STD_PAL_H|V4L2_STD_SECAM_G|V4L2_STD_SECAM_H) 398951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_DK (V4L2_STD_PAL_DK|V4L2_STD_SECAM_DK) 399951a39d68df598db08dfced8b4707755864a0492Ying Wang 400951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_PAL_BG (V4L2_STD_PAL_B | V4L2_STD_PAL_B1 | V4L2_STD_PAL_G) 401951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_PAL_DK (V4L2_STD_PAL_D | V4L2_STD_PAL_D1 | V4L2_STD_PAL_K) 402951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_PAL (V4L2_STD_PAL_BG | V4L2_STD_PAL_DK | V4L2_STD_PAL_H | V4L2_STD_PAL_I) 403951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_NTSC (V4L2_STD_NTSC_M | V4L2_STD_NTSC_M_JP | V4L2_STD_NTSC_M_KR) 404951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D | V4L2_STD_SECAM_K | V4L2_STD_SECAM_K1) 405951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_SECAM (V4L2_STD_SECAM_B | V4L2_STD_SECAM_G | V4L2_STD_SECAM_H | V4L2_STD_SECAM_DK | V4L2_STD_SECAM_L | V4L2_STD_SECAM_LC) 406951a39d68df598db08dfced8b4707755864a0492Ying Wang 407951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_525_60 (V4L2_STD_PAL_M | V4L2_STD_PAL_60 | V4L2_STD_NTSC | V4L2_STD_NTSC_443) 408951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_625_50 (V4L2_STD_PAL | V4L2_STD_PAL_N | V4L2_STD_PAL_Nc | V4L2_STD_SECAM) 409951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_ATSC (V4L2_STD_ATSC_8_VSB | V4L2_STD_ATSC_16_VSB) 410951a39d68df598db08dfced8b4707755864a0492Ying Wang 411951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_UNKNOWN 0 412951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_STD_ALL (V4L2_STD_525_60 | V4L2_STD_625_50) 413951a39d68df598db08dfced8b4707755864a0492Ying Wang 414951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_standard 415951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 416951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 index; 417951a39d68df598db08dfced8b4707755864a0492Ying Wang v4l2_std_id id; 418951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 name[24]; 419951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_fract frameperiod; 420951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 framelines; 421951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved[4]; 422951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 423951a39d68df598db08dfced8b4707755864a0492Ying Wang 424951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_input 425951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 426951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 index; 427951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 name[32]; 428951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 type; 429951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 audioset; 430951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 tuner; 431951a39d68df598db08dfced8b4707755864a0492Ying Wang v4l2_std_id std; 432951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 status; 433951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved[4]; 434951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 435951a39d68df598db08dfced8b4707755864a0492Ying Wang 436951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_INPUT_TYPE_TUNER 1 437951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_INPUT_TYPE_CAMERA 2 438951a39d68df598db08dfced8b4707755864a0492Ying Wang 439951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_IN_ST_NO_POWER 0x00000001 440951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_IN_ST_NO_SIGNAL 0x00000002 441951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_IN_ST_NO_COLOR 0x00000004 442951a39d68df598db08dfced8b4707755864a0492Ying Wang 443951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_IN_ST_NO_H_LOCK 0x00000100 444951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_IN_ST_COLOR_KILL 0x00000200 445951a39d68df598db08dfced8b4707755864a0492Ying Wang 446951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_IN_ST_NO_SYNC 0x00010000 447951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_IN_ST_NO_EQU 0x00020000 448951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_IN_ST_NO_CARRIER 0x00040000 449951a39d68df598db08dfced8b4707755864a0492Ying Wang 450951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_IN_ST_MACROVISION 0x01000000 451951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_IN_ST_NO_ACCESS 0x02000000 452951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_IN_ST_VTR 0x04000000 453951a39d68df598db08dfced8b4707755864a0492Ying Wang 454951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_output 455951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 456951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 index; 457951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 name[32]; 458951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 type; 459951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 audioset; 460951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 modulator; 461951a39d68df598db08dfced8b4707755864a0492Ying Wang v4l2_std_id std; 462951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved[4]; 463951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 464951a39d68df598db08dfced8b4707755864a0492Ying Wang 465951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_OUTPUT_TYPE_MODULATOR 1 466951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_OUTPUT_TYPE_ANALOG 2 467951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY 3 468951a39d68df598db08dfced8b4707755864a0492Ying Wang 469951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_control 470951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 471951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 id; 472951a39d68df598db08dfced8b4707755864a0492Ying Wang __s32 value; 473951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 474951a39d68df598db08dfced8b4707755864a0492Ying Wang 475951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_ext_control 476951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 477951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 id; 478951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved2[2]; 479951a39d68df598db08dfced8b4707755864a0492Ying Wang union { 480951a39d68df598db08dfced8b4707755864a0492Ying Wang __s32 value; 481951a39d68df598db08dfced8b4707755864a0492Ying Wang __s64 value64; 482951a39d68df598db08dfced8b4707755864a0492Ying Wang void *reserved; 483951a39d68df598db08dfced8b4707755864a0492Ying Wang }; 484951a39d68df598db08dfced8b4707755864a0492Ying Wang} __attribute__ ((packed)); 485951a39d68df598db08dfced8b4707755864a0492Ying Wang 486951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_ext_controls 487951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 488951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 ctrl_class; 489951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 count; 490951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 error_idx; 491951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved[2]; 492951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_ext_control *controls; 493951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 494951a39d68df598db08dfced8b4707755864a0492Ying Wang 495951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CTRL_CLASS_USER 0x00980000 496951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CTRL_CLASS_MPEG 0x00990000 497951a39d68df598db08dfced8b4707755864a0492Ying Wang 498951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CTRL_ID_MASK (0x0fffffff) 499951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL) 500951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CTRL_DRIVER_PRIV(id) (((id) & 0xffff) >= 0x1000) 501951a39d68df598db08dfced8b4707755864a0492Ying Wang 502951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_queryctrl 503951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 504951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 id; 505951a39d68df598db08dfced8b4707755864a0492Ying Wang enum v4l2_ctrl_type type; 506951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 name[32]; 507951a39d68df598db08dfced8b4707755864a0492Ying Wang __s32 minimum; 508951a39d68df598db08dfced8b4707755864a0492Ying Wang __s32 maximum; 509951a39d68df598db08dfced8b4707755864a0492Ying Wang __s32 step; 510951a39d68df598db08dfced8b4707755864a0492Ying Wang __s32 default_value; 511951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 flags; 512951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved[2]; 513951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 514951a39d68df598db08dfced8b4707755864a0492Ying Wang 515951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_querymenu 516951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 517951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 id; 518951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 index; 519951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 name[32]; 520951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved; 521951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 522951a39d68df598db08dfced8b4707755864a0492Ying Wang 523951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CTRL_FLAG_DISABLED 0x0001 524951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CTRL_FLAG_GRABBED 0x0002 525951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CTRL_FLAG_READ_ONLY 0x0004 526951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CTRL_FLAG_UPDATE 0x0008 527951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CTRL_FLAG_INACTIVE 0x0010 528951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CTRL_FLAG_SLIDER 0x0020 529951a39d68df598db08dfced8b4707755864a0492Ying Wang 530951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 531951a39d68df598db08dfced8b4707755864a0492Ying Wang 532951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900) 533951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_USER_BASE V4L2_CID_BASE 534951a39d68df598db08dfced8b4707755864a0492Ying Wang 535951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_PRIVATE_BASE 0x08000000 536951a39d68df598db08dfced8b4707755864a0492Ying Wang 537951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_USER_CLASS (V4L2_CTRL_CLASS_USER | 1) 538951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_BRIGHTNESS (V4L2_CID_BASE+0) 539951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_CONTRAST (V4L2_CID_BASE+1) 540951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_SATURATION (V4L2_CID_BASE+2) 541951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_HUE (V4L2_CID_BASE+3) 542951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_AUDIO_VOLUME (V4L2_CID_BASE+5) 543951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_AUDIO_BALANCE (V4L2_CID_BASE+6) 544951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_AUDIO_BASS (V4L2_CID_BASE+7) 545951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_AUDIO_TREBLE (V4L2_CID_BASE+8) 546951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_AUDIO_MUTE (V4L2_CID_BASE+9) 547951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_AUDIO_LOUDNESS (V4L2_CID_BASE+10) 548951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_BLACK_LEVEL (V4L2_CID_BASE+11) 549951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_AUTO_WHITE_BALANCE (V4L2_CID_BASE+12) 550951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_DO_WHITE_BALANCE (V4L2_CID_BASE+13) 551951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_RED_BALANCE (V4L2_CID_BASE+14) 552951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_BLUE_BALANCE (V4L2_CID_BASE+15) 553951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_GAMMA (V4L2_CID_BASE+16) 554951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_WHITENESS (V4L2_CID_GAMMA) 555951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_EXPOSURE (V4L2_CID_BASE+17) 556951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_AUTOGAIN (V4L2_CID_BASE+18) 557951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_GAIN (V4L2_CID_BASE+19) 558951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_HFLIP (V4L2_CID_BASE+20) 559951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_VFLIP (V4L2_CID_BASE+21) 560951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_HCENTER (V4L2_CID_BASE+22) 561951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_VCENTER (V4L2_CID_BASE+23) 562951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_LASTP1 (V4L2_CID_BASE+24) 563951a39d68df598db08dfced8b4707755864a0492Ying Wang 564951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900) 565951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_CLASS (V4L2_CTRL_CLASS_MPEG | 1) 566951a39d68df598db08dfced8b4707755864a0492Ying Wang 567951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_MPEG_BASE+0) 568951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_mpeg_stream_type { 569951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_STREAM_TYPE_MPEG2_PS = 0, 570951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_STREAM_TYPE_MPEG2_TS = 1, 571951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_STREAM_TYPE_MPEG1_SS = 2, 572951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_STREAM_TYPE_MPEG2_DVD = 3, 573951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_STREAM_TYPE_MPEG1_VCD = 4, 574951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD = 5, 575951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 576951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_MPEG_BASE+1) 577951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_MPEG_BASE+2) 578951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_MPEG_BASE+3) 579951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_MPEG_BASE+4) 580951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_MPEG_BASE+5) 581951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_MPEG_BASE+6) 582951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_MPEG_BASE+7) 583951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_mpeg_stream_vbi_fmt { 584951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_STREAM_VBI_FMT_NONE = 0, 585951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_STREAM_VBI_FMT_IVTV = 1, 586951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 587951a39d68df598db08dfced8b4707755864a0492Ying Wang 588951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_MPEG_BASE+100) 589951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_mpeg_audio_sampling_freq { 590951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100 = 0, 591951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000 = 1, 592951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000 = 2, 593951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 594951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_MPEG_BASE+101) 595951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_mpeg_audio_encoding { 596951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_ENCODING_LAYER_1 = 0, 597951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_ENCODING_LAYER_2 = 1, 598951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_ENCODING_LAYER_3 = 2, 599951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 600951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_MPEG_BASE+102) 601951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_mpeg_audio_l1_bitrate { 602951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L1_BITRATE_32K = 0, 603951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L1_BITRATE_64K = 1, 604951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L1_BITRATE_96K = 2, 605951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L1_BITRATE_128K = 3, 606951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L1_BITRATE_160K = 4, 607951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L1_BITRATE_192K = 5, 608951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L1_BITRATE_224K = 6, 609951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L1_BITRATE_256K = 7, 610951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L1_BITRATE_288K = 8, 611951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L1_BITRATE_320K = 9, 612951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L1_BITRATE_352K = 10, 613951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L1_BITRATE_384K = 11, 614951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L1_BITRATE_416K = 12, 615951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L1_BITRATE_448K = 13, 616951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 617951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_MPEG_BASE+103) 618951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_mpeg_audio_l2_bitrate { 619951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L2_BITRATE_32K = 0, 620951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L2_BITRATE_48K = 1, 621951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L2_BITRATE_56K = 2, 622951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L2_BITRATE_64K = 3, 623951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L2_BITRATE_80K = 4, 624951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L2_BITRATE_96K = 5, 625951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L2_BITRATE_112K = 6, 626951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L2_BITRATE_128K = 7, 627951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L2_BITRATE_160K = 8, 628951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L2_BITRATE_192K = 9, 629951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L2_BITRATE_224K = 10, 630951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L2_BITRATE_256K = 11, 631951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L2_BITRATE_320K = 12, 632951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L2_BITRATE_384K = 13, 633951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 634951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_MPEG_BASE+104) 635951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_mpeg_audio_l3_bitrate { 636951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L3_BITRATE_32K = 0, 637951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L3_BITRATE_40K = 1, 638951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L3_BITRATE_48K = 2, 639951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L3_BITRATE_56K = 3, 640951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L3_BITRATE_64K = 4, 641951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L3_BITRATE_80K = 5, 642951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L3_BITRATE_96K = 6, 643951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L3_BITRATE_112K = 7, 644951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L3_BITRATE_128K = 8, 645951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L3_BITRATE_160K = 9, 646951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L3_BITRATE_192K = 10, 647951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L3_BITRATE_224K = 11, 648951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L3_BITRATE_256K = 12, 649951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_L3_BITRATE_320K = 13, 650951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 651951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_MPEG_BASE+105) 652951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_mpeg_audio_mode { 653951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_MODE_STEREO = 0, 654951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_MODE_JOINT_STEREO = 1, 655951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_MODE_DUAL = 2, 656951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_MODE_MONO = 3, 657951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 658951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_MPEG_BASE+106) 659951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_mpeg_audio_mode_extension { 660951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4 = 0, 661951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8 = 1, 662951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12 = 2, 663951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16 = 3, 664951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 665951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_MPEG_BASE+107) 666951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_mpeg_audio_emphasis { 667951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_EMPHASIS_NONE = 0, 668951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS = 1, 669951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17 = 2, 670951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 671951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_MPEG_BASE+108) 672951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_mpeg_audio_crc { 673951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_CRC_NONE = 0, 674951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_AUDIO_CRC_CRC16 = 1, 675951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 676951a39d68df598db08dfced8b4707755864a0492Ying Wang 677951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_MPEG_BASE+200) 678951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_mpeg_video_encoding { 679951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_VIDEO_ENCODING_MPEG_1 = 0, 680951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_VIDEO_ENCODING_MPEG_2 = 1, 681951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 682951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_MPEG_BASE+201) 683951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_mpeg_video_aspect { 684951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_VIDEO_ASPECT_1x1 = 0, 685951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_VIDEO_ASPECT_4x3 = 1, 686951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_VIDEO_ASPECT_16x9 = 2, 687951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_VIDEO_ASPECT_221x100 = 3, 688951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 689951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_MPEG_BASE+202) 690951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_MPEG_BASE+203) 691951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_MPEG_BASE+204) 692951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_MPEG_BASE+205) 693951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_MPEG_BASE+206) 694951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_mpeg_video_bitrate_mode { 695951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_VIDEO_BITRATE_MODE_VBR = 0, 696951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_VIDEO_BITRATE_MODE_CBR = 1, 697951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 698951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207) 699951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208) 700951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_MPEG_BASE+209) 701951a39d68df598db08dfced8b4707755864a0492Ying Wang 702951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) 703951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0) 704951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_mpeg_cx2341x_video_spatial_filter_mode { 705951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL = 0, 706951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO = 1, 707951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 708951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+1) 709951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+2) 710951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type { 711951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF = 0, 712951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR = 1, 713951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT = 2, 714951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE = 3, 715951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE = 4, 716951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 717951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+3) 718951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type { 719951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF = 0, 720951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR = 1, 721951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 722951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+4) 723951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_mpeg_cx2341x_video_temporal_filter_mode { 724951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL = 0, 725951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO = 1, 726951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 727951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+5) 728951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+6) 729951a39d68df598db08dfced8b4707755864a0492Ying Wangenum v4l2_mpeg_cx2341x_video_median_filter_type { 730951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF = 0, 731951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR = 1, 732951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT = 2, 733951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT = 3, 734951a39d68df598db08dfced8b4707755864a0492Ying Wang V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG = 4, 735951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 736951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+7) 737951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+8) 738951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+9) 739951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+10) 740951a39d68df598db08dfced8b4707755864a0492Ying Wang 741951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_tuner 742951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 743951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 index; 744951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 name[32]; 745951a39d68df598db08dfced8b4707755864a0492Ying Wang enum v4l2_tuner_type type; 746951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 capability; 747951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 rangelow; 748951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 rangehigh; 749951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 rxsubchans; 750951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 audmode; 751951a39d68df598db08dfced8b4707755864a0492Ying Wang __s32 signal; 752951a39d68df598db08dfced8b4707755864a0492Ying Wang __s32 afc; 753951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved[4]; 754951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 755951a39d68df598db08dfced8b4707755864a0492Ying Wang 756951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_modulator 757951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 758951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 index; 759951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 name[32]; 760951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 capability; 761951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 rangelow; 762951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 rangehigh; 763951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 txsubchans; 764951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved[4]; 765951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 766951a39d68df598db08dfced8b4707755864a0492Ying Wang 767951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TUNER_CAP_LOW 0x0001 768951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TUNER_CAP_NORM 0x0002 769951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TUNER_CAP_STEREO 0x0010 770951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TUNER_CAP_LANG2 0x0020 771951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TUNER_CAP_SAP 0x0020 772951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TUNER_CAP_LANG1 0x0040 773951a39d68df598db08dfced8b4707755864a0492Ying Wang 774951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TUNER_SUB_MONO 0x0001 775951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TUNER_SUB_STEREO 0x0002 776951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TUNER_SUB_LANG2 0x0004 777951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TUNER_SUB_SAP 0x0004 778951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TUNER_SUB_LANG1 0x0008 779951a39d68df598db08dfced8b4707755864a0492Ying Wang 780951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TUNER_MODE_MONO 0x0000 781951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TUNER_MODE_STEREO 0x0001 782951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TUNER_MODE_LANG2 0x0002 783951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TUNER_MODE_SAP 0x0002 784951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TUNER_MODE_LANG1 0x0003 785951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_TUNER_MODE_LANG1_LANG2 0x0004 786951a39d68df598db08dfced8b4707755864a0492Ying Wang 787951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_frequency 788951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 789951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 tuner; 790951a39d68df598db08dfced8b4707755864a0492Ying Wang enum v4l2_tuner_type type; 791951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 frequency; 792951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved[8]; 793951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 794951a39d68df598db08dfced8b4707755864a0492Ying Wang 795951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_audio 796951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 797951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 index; 798951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 name[32]; 799951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 capability; 800951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 mode; 801951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved[2]; 802951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 803951a39d68df598db08dfced8b4707755864a0492Ying Wang 804951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_AUDCAP_STEREO 0x00001 805951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_AUDCAP_AVL 0x00002 806951a39d68df598db08dfced8b4707755864a0492Ying Wang 807951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_AUDMODE_AVL 0x00001 808951a39d68df598db08dfced8b4707755864a0492Ying Wang 809951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_audioout 810951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 811951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 index; 812951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 name[32]; 813951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 capability; 814951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 mode; 815951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved[2]; 816951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 817951a39d68df598db08dfced8b4707755864a0492Ying Wang 818951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_vbi_format 819951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 820951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 sampling_rate; 821951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 offset; 822951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 samples_per_line; 823951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 sample_format; 824951a39d68df598db08dfced8b4707755864a0492Ying Wang __s32 start[2]; 825951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 count[2]; 826951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 flags; 827951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved[2]; 828951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 829951a39d68df598db08dfced8b4707755864a0492Ying Wang 830951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_VBI_UNSYNC (1<< 0) 831951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_VBI_INTERLACED (1<< 1) 832951a39d68df598db08dfced8b4707755864a0492Ying Wang 833951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_sliced_vbi_format 834951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 835951a39d68df598db08dfced8b4707755864a0492Ying Wang __u16 service_set; 836951a39d68df598db08dfced8b4707755864a0492Ying Wang 837951a39d68df598db08dfced8b4707755864a0492Ying Wang __u16 service_lines[2][24]; 838951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 io_size; 839951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved[2]; 840951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 841951a39d68df598db08dfced8b4707755864a0492Ying Wang 842951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_SLICED_TELETEXT_B (0x0001) 843951a39d68df598db08dfced8b4707755864a0492Ying Wang 844951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_SLICED_VPS (0x0400) 845951a39d68df598db08dfced8b4707755864a0492Ying Wang 846951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_SLICED_CAPTION_525 (0x1000) 847951a39d68df598db08dfced8b4707755864a0492Ying Wang 848951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_SLICED_WSS_625 (0x4000) 849951a39d68df598db08dfced8b4707755864a0492Ying Wang 850951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_SLICED_VBI_525 (V4L2_SLICED_CAPTION_525) 851951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V4L2_SLICED_VBI_625 (V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625) 852951a39d68df598db08dfced8b4707755864a0492Ying Wang 853951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_sliced_vbi_cap 854951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 855951a39d68df598db08dfced8b4707755864a0492Ying Wang __u16 service_set; 856951a39d68df598db08dfced8b4707755864a0492Ying Wang 857951a39d68df598db08dfced8b4707755864a0492Ying Wang __u16 service_lines[2][24]; 858951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved[4]; 859951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 860951a39d68df598db08dfced8b4707755864a0492Ying Wang 861951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_sliced_vbi_data 862951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 863951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 id; 864951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 field; 865951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 line; 866951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 reserved; 867951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 data[48]; 868951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 869951a39d68df598db08dfced8b4707755864a0492Ying Wang 870951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_format 871951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 872951a39d68df598db08dfced8b4707755864a0492Ying Wang enum v4l2_buf_type type; 873951a39d68df598db08dfced8b4707755864a0492Ying Wang union 874951a39d68df598db08dfced8b4707755864a0492Ying Wang { 875951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_pix_format pix; 876951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_window win; 877951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_vbi_format vbi; 878951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_sliced_vbi_format sliced; 879951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 raw_data[200]; 880951a39d68df598db08dfced8b4707755864a0492Ying Wang } fmt; 881951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 882951a39d68df598db08dfced8b4707755864a0492Ying Wang 883951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct v4l2_streamparm 884951a39d68df598db08dfced8b4707755864a0492Ying Wang{ 885951a39d68df598db08dfced8b4707755864a0492Ying Wang enum v4l2_buf_type type; 886951a39d68df598db08dfced8b4707755864a0492Ying Wang union 887951a39d68df598db08dfced8b4707755864a0492Ying Wang { 888951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_captureparm capture; 889951a39d68df598db08dfced8b4707755864a0492Ying Wang struct v4l2_outputparm output; 890951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 raw_data[200]; 891951a39d68df598db08dfced8b4707755864a0492Ying Wang } parm; 892951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 893951a39d68df598db08dfced8b4707755864a0492Ying Wang 894951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_QUERYCAP _IOR ('V', 0, struct v4l2_capability) 895951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_RESERVED _IO ('V', 1) 896951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_ENUM_FMT _IOWR ('V', 2, struct v4l2_fmtdesc) 897951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_G_FMT _IOWR ('V', 4, struct v4l2_format) 898951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_S_FMT _IOWR ('V', 5, struct v4l2_format) 899951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_REQBUFS _IOWR ('V', 8, struct v4l2_requestbuffers) 900951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_QUERYBUF _IOWR ('V', 9, struct v4l2_buffer) 901951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_G_FBUF _IOR ('V', 10, struct v4l2_framebuffer) 902951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_S_FBUF _IOW ('V', 11, struct v4l2_framebuffer) 903951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_OVERLAY _IOW ('V', 14, int) 904951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_QBUF _IOWR ('V', 15, struct v4l2_buffer) 905951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_DQBUF _IOWR ('V', 17, struct v4l2_buffer) 906951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_STREAMON _IOW ('V', 18, int) 907951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_STREAMOFF _IOW ('V', 19, int) 908951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_G_PARM _IOWR ('V', 21, struct v4l2_streamparm) 909951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_S_PARM _IOWR ('V', 22, struct v4l2_streamparm) 910951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_G_STD _IOR ('V', 23, v4l2_std_id) 911951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_S_STD _IOW ('V', 24, v4l2_std_id) 912951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_ENUMSTD _IOWR ('V', 25, struct v4l2_standard) 913951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_ENUMINPUT _IOWR ('V', 26, struct v4l2_input) 914951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_G_CTRL _IOWR ('V', 27, struct v4l2_control) 915951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_S_CTRL _IOWR ('V', 28, struct v4l2_control) 916951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_G_TUNER _IOWR ('V', 29, struct v4l2_tuner) 917951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_S_TUNER _IOW ('V', 30, struct v4l2_tuner) 918951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_G_AUDIO _IOR ('V', 33, struct v4l2_audio) 919951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_S_AUDIO _IOW ('V', 34, struct v4l2_audio) 920951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_QUERYCTRL _IOWR ('V', 36, struct v4l2_queryctrl) 921951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_QUERYMENU _IOWR ('V', 37, struct v4l2_querymenu) 922951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_G_INPUT _IOR ('V', 38, int) 923951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_S_INPUT _IOWR ('V', 39, int) 924951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_G_OUTPUT _IOR ('V', 46, int) 925951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_S_OUTPUT _IOWR ('V', 47, int) 926951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_ENUMOUTPUT _IOWR ('V', 48, struct v4l2_output) 927951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_G_AUDOUT _IOR ('V', 49, struct v4l2_audioout) 928951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_S_AUDOUT _IOW ('V', 50, struct v4l2_audioout) 929951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_G_MODULATOR _IOWR ('V', 54, struct v4l2_modulator) 930951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_S_MODULATOR _IOW ('V', 55, struct v4l2_modulator) 931951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_G_FREQUENCY _IOWR ('V', 56, struct v4l2_frequency) 932951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_S_FREQUENCY _IOW ('V', 57, struct v4l2_frequency) 933951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_CROPCAP _IOWR ('V', 58, struct v4l2_cropcap) 934951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_G_CROP _IOWR ('V', 59, struct v4l2_crop) 935951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_S_CROP _IOW ('V', 60, struct v4l2_crop) 936951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_G_JPEGCOMP _IOR ('V', 61, struct v4l2_jpegcompression) 937951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_S_JPEGCOMP _IOW ('V', 62, struct v4l2_jpegcompression) 938951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_QUERYSTD _IOR ('V', 63, v4l2_std_id) 939951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_TRY_FMT _IOWR ('V', 64, struct v4l2_format) 940951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_ENUMAUDIO _IOWR ('V', 65, struct v4l2_audio) 941951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_ENUMAUDOUT _IOWR ('V', 66, struct v4l2_audioout) 942951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_G_PRIORITY _IOR ('V', 67, enum v4l2_priority) 943951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_S_PRIORITY _IOW ('V', 68, enum v4l2_priority) 944951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_G_SLICED_VBI_CAP _IOR ('V', 69, struct v4l2_sliced_vbi_cap) 945951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_LOG_STATUS _IO ('V', 70) 946951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_G_EXT_CTRLS _IOWR ('V', 71, struct v4l2_ext_controls) 947951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_S_EXT_CTRLS _IOWR ('V', 72, struct v4l2_ext_controls) 948951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_TRY_EXT_CTRLS _IOWR ('V', 73, struct v4l2_ext_controls) 949951a39d68df598db08dfced8b4707755864a0492Ying Wang 950951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef __OLD_VIDIOC_ 951951a39d68df598db08dfced8b4707755864a0492Ying Wang 952951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_OVERLAY_OLD _IOWR ('V', 14, int) 953951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_S_PARM_OLD _IOW ('V', 22, struct v4l2_streamparm) 954951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_S_CTRL_OLD _IOW ('V', 28, struct v4l2_control) 955951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_G_AUDIO_OLD _IOWR ('V', 33, struct v4l2_audio) 956951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_G_AUDOUT_OLD _IOWR ('V', 49, struct v4l2_audioout) 957951a39d68df598db08dfced8b4707755864a0492Ying Wang#define VIDIOC_CROPCAP_OLD _IOR ('V', 58, struct v4l2_cropcap) 958951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 959951a39d68df598db08dfced8b4707755864a0492Ying Wang 960951a39d68df598db08dfced8b4707755864a0492Ying Wang#define BASE_VIDIOC_PRIVATE 192 961951a39d68df598db08dfced8b4707755864a0492Ying Wang 962951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 963951a39d68df598db08dfced8b4707755864a0492Ying Wang 964