videodev2.h revision 11cd02dfb91661c65134cac258cf5924270e9d2
111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/**************************************************************************** 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** This header was automatically generated from a Linux kernel header 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** of the same name, to make information necessary for userspace to 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** call into the kernel available to libc. It contains only constants, 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** structures, and macros generated from the original header, and thus, 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** contains no copyrightable information. 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/ 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __LINUX_VIDEODEV2_H 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __LINUX_VIDEODEV2_H 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __user 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/types.h> 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDEO_MAX_FRAME 32 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VID_TYPE_CAPTURE 1 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VID_TYPE_TUNER 2 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VID_TYPE_TELETEXT 4 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VID_TYPE_OVERLAY 8 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VID_TYPE_CHROMAKEY 16 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VID_TYPE_CLIPPING 32 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VID_TYPE_FRAMERAM 64 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VID_TYPE_SCALES 128 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VID_TYPE_MONOCHROME 256 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VID_TYPE_SUBCAPTURE 512 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VID_TYPE_MPEG_DECODER 1024 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VID_TYPE_MPEG_ENCODER 2048 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VID_TYPE_MJPEG_DECODER 4096 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VID_TYPE_MJPEG_ENCODER 8192 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define v4l2_fourcc(a,b,c,d) (((__u32)(a)<<0)|((__u32)(b)<<8)|((__u32)(c)<<16)|((__u32)(d)<<24)) 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_field { 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_FIELD_ANY = 0, 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_FIELD_NONE = 1, 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_FIELD_TOP = 2, 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_FIELD_BOTTOM = 3, 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_FIELD_INTERLACED = 4, 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_FIELD_SEQ_TB = 5, 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_FIELD_SEQ_BT = 6, 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_FIELD_ALTERNATE = 7, 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_FIELD_HAS_TOP(field) ((field) == V4L2_FIELD_TOP || (field) == V4L2_FIELD_INTERLACED || (field) == V4L2_FIELD_SEQ_TB || (field) == V4L2_FIELD_SEQ_BT) 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_FIELD_HAS_BOTTOM(field) ((field) == V4L2_FIELD_BOTTOM || (field) == V4L2_FIELD_INTERLACED || (field) == V4L2_FIELD_SEQ_TB || (field) == V4L2_FIELD_SEQ_BT) 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_FIELD_HAS_BOTH(field) ((field) == V4L2_FIELD_INTERLACED || (field) == V4L2_FIELD_SEQ_TB || (field) == V4L2_FIELD_SEQ_BT) 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_buf_type { 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_BUF_TYPE_VIDEO_CAPTURE = 1, 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_BUF_TYPE_VIDEO_OUTPUT = 2, 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_BUF_TYPE_VIDEO_OVERLAY = 3, 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_BUF_TYPE_VBI_CAPTURE = 4, 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_BUF_TYPE_VBI_OUTPUT = 5, 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_BUF_TYPE_SLICED_VBI_CAPTURE = 6, 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_BUF_TYPE_SLICED_VBI_OUTPUT = 7, 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_BUF_TYPE_PRIVATE = 0x80, 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_ctrl_type { 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_CTRL_TYPE_INTEGER = 1, 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_CTRL_TYPE_BOOLEAN = 2, 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_CTRL_TYPE_MENU = 3, 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_CTRL_TYPE_BUTTON = 4, 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_CTRL_TYPE_INTEGER64 = 5, 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_CTRL_TYPE_CTRL_CLASS = 6, 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_tuner_type { 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_TUNER_RADIO = 1, 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_TUNER_ANALOG_TV = 2, 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_TUNER_DIGITAL_TV = 3, 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_memory { 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MEMORY_MMAP = 1, 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MEMORY_USERPTR = 2, 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MEMORY_OVERLAY = 3, 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_colorspace { 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_COLORSPACE_SMPTE170M = 1, 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_COLORSPACE_SMPTE240M = 2, 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_COLORSPACE_REC709 = 3, 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_COLORSPACE_BT878 = 4, 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_COLORSPACE_470_SYSTEM_M = 5, 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_COLORSPACE_470_SYSTEM_BG = 6, 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_COLORSPACE_JPEG = 7, 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_COLORSPACE_SRGB = 8, 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_priority { 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_PRIORITY_UNSET = 0, 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_PRIORITY_BACKGROUND = 1, 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_PRIORITY_INTERACTIVE = 2, 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_PRIORITY_RECORD = 3, 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_PRIORITY_DEFAULT = V4L2_PRIORITY_INTERACTIVE, 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_rect { 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 left; 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 top; 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 width; 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 height; 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_fract { 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 numerator; 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 denominator; 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_capability 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 driver[16]; 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 card[32]; 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bus_info[32]; 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 version; 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 capabilities; 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved[4]; 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CAP_VIDEO_CAPTURE 0x00000001 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CAP_VIDEO_OUTPUT 0x00000002 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CAP_VIDEO_OVERLAY 0x00000004 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CAP_VBI_CAPTURE 0x00000010 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CAP_VBI_OUTPUT 0x00000020 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CAP_SLICED_VBI_CAPTURE 0x00000040 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CAP_SLICED_VBI_OUTPUT 0x00000080 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CAP_RDS_CAPTURE 0x00000100 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CAP_TUNER 0x00010000 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CAP_AUDIO 0x00020000 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CAP_RADIO 0x00040000 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CAP_READWRITE 0x01000000 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CAP_ASYNCIO 0x02000000 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CAP_STREAMING 0x04000000 14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_pix_format 14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 width; 15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 height; 15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 pixelformat; 15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert enum v4l2_field field; 15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 bytesperline; 15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 sizeimage; 15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert enum v4l2_colorspace colorspace; 15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 priv; 15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R','G','B','1') 16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R','G','B','O') 16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R','G','B','P') 16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R','G','B','Q') 16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R','G','B','R') 16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B','G','R','3') 16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R','G','B','3') 16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B','G','R','4') 16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R','G','B','4') 16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_GREY v4l2_fourcc('G','R','E','Y') 17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y','V','U','9') 17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y','V','1','2') 17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y','U','Y','V') 17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_UYVY v4l2_fourcc('U','Y','V','Y') 17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4','2','2','P') 17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4','1','1','P') 17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_Y41P v4l2_fourcc('Y','4','1','P') 17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_NV12 v4l2_fourcc('N','V','1','2') 17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_NV21 v4l2_fourcc('N','V','2','1') 18011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y','U','V','9') 18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y','U','1','2') 18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_YYUV v4l2_fourcc('Y','Y','U','V') 18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_HI240 v4l2_fourcc('H','I','2','4') 18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H','M','1','2') 18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B','A','8','1') 18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_MJPEG v4l2_fourcc('M','J','P','G') 19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_JPEG v4l2_fourcc('J','P','E','G') 19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_DV v4l2_fourcc('d','v','s','d') 19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_MPEG v4l2_fourcc('M','P','E','G') 19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_WNVA v4l2_fourcc('W','N','V','A') 19511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_SN9C10X v4l2_fourcc('S','9','1','0') 19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_PWC1 v4l2_fourcc('P','W','C','1') 19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_PWC2 v4l2_fourcc('P','W','C','2') 19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_PIX_FMT_ET61X251 v4l2_fourcc('E','6','2','5') 19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_fmtdesc 20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 index; 20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert enum v4l2_buf_type type; 20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 flags; 20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 description[32]; 20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 pixelformat; 20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved[4]; 20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_FMT_FLAG_COMPRESSED 0x0001 21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_timecode 21311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 21411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 type; 21511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 flags; 21611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 frames; 21711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 seconds; 21811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 minutes; 21911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 hours; 22011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 userbits[4]; 22111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 22211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TC_TYPE_24FPS 1 22411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TC_TYPE_25FPS 2 22511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TC_TYPE_30FPS 3 22611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TC_TYPE_50FPS 4 22711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TC_TYPE_60FPS 5 22811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TC_FLAG_DROPFRAME 0x0001 23011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TC_FLAG_COLORFRAME 0x0002 23111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TC_USERBITS_field 0x000C 23211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TC_USERBITS_USERDEFINED 0x0000 23311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TC_USERBITS_8BITCHARS 0x0008 23411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_jpegcompression 23611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 23711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int quality; 23811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int APPn; 24011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int APP_len; 24111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char APP_data[60]; 24211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int COM_len; 24411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char COM_data[60]; 24511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 jpeg_markers; 24711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_JPEG_MARKER_DHT (1<<3) 24911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_JPEG_MARKER_DQT (1<<4) 25011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_JPEG_MARKER_DRI (1<<5) 25111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_JPEG_MARKER_COM (1<<6) 25211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_JPEG_MARKER_APP (1<<7) 25311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 25411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_requestbuffers 25611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 25711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 count; 25811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert enum v4l2_buf_type type; 25911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert enum v4l2_memory memory; 26011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved[2]; 26111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 26211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 26311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_buffer 26411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 26511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 index; 26611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert enum v4l2_buf_type type; 26711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 bytesused; 26811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 flags; 26911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert enum v4l2_field field; 27011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct timeval timestamp; 27111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_timecode timecode; 27211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 sequence; 27311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 27411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert enum v4l2_memory memory; 27511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union { 27611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 offset; 27711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long userptr; 27811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } m; 27911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 length; 28011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 input; 28111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved; 28211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 28311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 28411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_BUF_FLAG_MAPPED 0x0001 28511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_BUF_FLAG_QUEUED 0x0002 28611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_BUF_FLAG_DONE 0x0004 28711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_BUF_FLAG_KEYFRAME 0x0008 28811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_BUF_FLAG_PFRAME 0x0010 28911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_BUF_FLAG_BFRAME 0x0020 29011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_BUF_FLAG_TIMECODE 0x0100 29111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_BUF_FLAG_INPUT 0x0200 29211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 29311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_framebuffer 29411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 29511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 capability; 29611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 flags; 29711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 29811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void* base; 29911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_pix_format fmt; 30011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 30111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 30211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_FBUF_CAP_EXTERNOVERLAY 0x0001 30311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_FBUF_CAP_CHROMAKEY 0x0002 30411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_FBUF_CAP_LIST_CLIPPING 0x0004 30511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_FBUF_CAP_BITMAP_CLIPPING 0x0008 30611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 30711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_FBUF_FLAG_PRIMARY 0x0001 30811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_FBUF_FLAG_OVERLAY 0x0002 30911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_FBUF_FLAG_CHROMAKEY 0x0004 31011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 31111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_clip 31211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 31311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_rect c; 31411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_clip __user *next; 31511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 31611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 31711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_window 31811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 31911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_rect w; 32011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert enum v4l2_field field; 32111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 chromakey; 32211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_clip __user *clips; 32311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 clipcount; 32411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void __user *bitmap; 32511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 32611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 32711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_captureparm 32811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 32911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 capability; 33011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 capturemode; 33111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_fract timeperframe; 33211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 extendedmode; 33311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 readbuffers; 33411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved[4]; 33511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 33611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 33711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_MODE_HIGHQUALITY 0x0001 33811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CAP_TIMEPERFRAME 0x1000 33911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 34011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_outputparm 34111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 34211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 capability; 34311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 outputmode; 34411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_fract timeperframe; 34511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 extendedmode; 34611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 writebuffers; 34711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved[4]; 34811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 34911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 35011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_cropcap { 35111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert enum v4l2_buf_type type; 35211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_rect bounds; 35311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_rect defrect; 35411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_fract pixelaspect; 35511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 35611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 35711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_crop { 35811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert enum v4l2_buf_type type; 35911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_rect c; 36011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 36111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 36211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef __u64 v4l2_std_id; 36311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 36411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_PAL_B ((v4l2_std_id)0x00000001) 36511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_PAL_B1 ((v4l2_std_id)0x00000002) 36611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_PAL_G ((v4l2_std_id)0x00000004) 36711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_PAL_H ((v4l2_std_id)0x00000008) 36811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_PAL_I ((v4l2_std_id)0x00000010) 36911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_PAL_D ((v4l2_std_id)0x00000020) 37011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_PAL_D1 ((v4l2_std_id)0x00000040) 37111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_PAL_K ((v4l2_std_id)0x00000080) 37211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_PAL_M ((v4l2_std_id)0x00000100) 37411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_PAL_N ((v4l2_std_id)0x00000200) 37511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_PAL_Nc ((v4l2_std_id)0x00000400) 37611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_PAL_60 ((v4l2_std_id)0x00000800) 37711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_NTSC_M ((v4l2_std_id)0x00001000) 37911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_NTSC_M_JP ((v4l2_std_id)0x00002000) 38011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_NTSC_443 ((v4l2_std_id)0x00004000) 38111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_NTSC_M_KR ((v4l2_std_id)0x00008000) 38211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 38311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_SECAM_B ((v4l2_std_id)0x00010000) 38411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_SECAM_D ((v4l2_std_id)0x00020000) 38511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_SECAM_G ((v4l2_std_id)0x00040000) 38611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_SECAM_H ((v4l2_std_id)0x00080000) 38711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_SECAM_K ((v4l2_std_id)0x00100000) 38811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_SECAM_K1 ((v4l2_std_id)0x00200000) 38911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_SECAM_L ((v4l2_std_id)0x00400000) 39011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_SECAM_LC ((v4l2_std_id)0x00800000) 39111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 39211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_ATSC_8_VSB ((v4l2_std_id)0x01000000) 39311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_ATSC_16_VSB ((v4l2_std_id)0x02000000) 39411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 39511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_MN (V4L2_STD_PAL_M|V4L2_STD_PAL_N|V4L2_STD_PAL_Nc|V4L2_STD_NTSC) 39611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_B (V4L2_STD_PAL_B|V4L2_STD_PAL_B1|V4L2_STD_SECAM_B) 39711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_GH (V4L2_STD_PAL_G|V4L2_STD_PAL_H|V4L2_STD_SECAM_G|V4L2_STD_SECAM_H) 39811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_DK (V4L2_STD_PAL_DK|V4L2_STD_SECAM_DK) 39911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 40011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_PAL_BG (V4L2_STD_PAL_B | V4L2_STD_PAL_B1 | V4L2_STD_PAL_G) 40111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_PAL_DK (V4L2_STD_PAL_D | V4L2_STD_PAL_D1 | V4L2_STD_PAL_K) 40211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_PAL (V4L2_STD_PAL_BG | V4L2_STD_PAL_DK | V4L2_STD_PAL_H | V4L2_STD_PAL_I) 40311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_NTSC (V4L2_STD_NTSC_M | V4L2_STD_NTSC_M_JP | V4L2_STD_NTSC_M_KR) 40411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D | V4L2_STD_SECAM_K | V4L2_STD_SECAM_K1) 40511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#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) 40611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 40711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_525_60 (V4L2_STD_PAL_M | V4L2_STD_PAL_60 | V4L2_STD_NTSC | V4L2_STD_NTSC_443) 40811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_625_50 (V4L2_STD_PAL | V4L2_STD_PAL_N | V4L2_STD_PAL_Nc | V4L2_STD_SECAM) 40911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_ATSC (V4L2_STD_ATSC_8_VSB | V4L2_STD_ATSC_16_VSB) 41011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 41111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_UNKNOWN 0 41211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_STD_ALL (V4L2_STD_525_60 | V4L2_STD_625_50) 41311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 41411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_standard 41511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 41611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 index; 41711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert v4l2_std_id id; 41811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 name[24]; 41911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_fract frameperiod; 42011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 framelines; 42111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved[4]; 42211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 42311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 42411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_input 42511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 42611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 index; 42711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 name[32]; 42811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 type; 42911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 audioset; 43011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 tuner; 43111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert v4l2_std_id std; 43211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 status; 43311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved[4]; 43411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 43511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 43611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_INPUT_TYPE_TUNER 1 43711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_INPUT_TYPE_CAMERA 2 43811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 43911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_IN_ST_NO_POWER 0x00000001 44011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_IN_ST_NO_SIGNAL 0x00000002 44111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_IN_ST_NO_COLOR 0x00000004 44211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 44311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_IN_ST_NO_H_LOCK 0x00000100 44411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_IN_ST_COLOR_KILL 0x00000200 44511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 44611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_IN_ST_NO_SYNC 0x00010000 44711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_IN_ST_NO_EQU 0x00020000 44811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_IN_ST_NO_CARRIER 0x00040000 44911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 45011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_IN_ST_MACROVISION 0x01000000 45111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_IN_ST_NO_ACCESS 0x02000000 45211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_IN_ST_VTR 0x04000000 45311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 45411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_output 45511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 45611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 index; 45711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 name[32]; 45811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 type; 45911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 audioset; 46011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 modulator; 46111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert v4l2_std_id std; 46211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved[4]; 46311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 46411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 46511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_OUTPUT_TYPE_MODULATOR 1 46611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_OUTPUT_TYPE_ANALOG 2 46711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY 3 46811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 46911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_control 47011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 47111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 id; 47211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 value; 47311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 47411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 47511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_ext_control 47611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 47711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 id; 47811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved2[2]; 47911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union { 48011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 value; 48111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s64 value64; 48211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *reserved; 48311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert }; 48411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__ ((packed)); 48511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 48611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_ext_controls 48711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 48811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 ctrl_class; 48911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 count; 49011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 error_idx; 49111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved[2]; 49211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_ext_control *controls; 49311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 49411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 49511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CTRL_CLASS_USER 0x00980000 49611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CTRL_CLASS_MPEG 0x00990000 49711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 49811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CTRL_ID_MASK (0x0fffffff) 49911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL) 50011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CTRL_DRIVER_PRIV(id) (((id) & 0xffff) >= 0x1000) 50111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 50211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_queryctrl 50311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 50411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 id; 50511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert enum v4l2_ctrl_type type; 50611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 name[32]; 50711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 minimum; 50811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 maximum; 50911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 step; 51011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 default_value; 51111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 flags; 51211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved[2]; 51311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 51411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 51511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_querymenu 51611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 51711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 id; 51811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 index; 51911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 name[32]; 52011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved; 52111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 52211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 52311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CTRL_FLAG_DISABLED 0x0001 52411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CTRL_FLAG_GRABBED 0x0002 52511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CTRL_FLAG_READ_ONLY 0x0004 52611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CTRL_FLAG_UPDATE 0x0008 52711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CTRL_FLAG_INACTIVE 0x0010 52811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CTRL_FLAG_SLIDER 0x0020 52911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 53011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 53111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 53211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900) 53311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_USER_BASE V4L2_CID_BASE 53411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 53511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_PRIVATE_BASE 0x08000000 53611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 53711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_USER_CLASS (V4L2_CTRL_CLASS_USER | 1) 53811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_BRIGHTNESS (V4L2_CID_BASE+0) 53911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_CONTRAST (V4L2_CID_BASE+1) 54011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_SATURATION (V4L2_CID_BASE+2) 54111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_HUE (V4L2_CID_BASE+3) 54211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_AUDIO_VOLUME (V4L2_CID_BASE+5) 54311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_AUDIO_BALANCE (V4L2_CID_BASE+6) 54411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_AUDIO_BASS (V4L2_CID_BASE+7) 54511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_AUDIO_TREBLE (V4L2_CID_BASE+8) 54611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_AUDIO_MUTE (V4L2_CID_BASE+9) 54711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_AUDIO_LOUDNESS (V4L2_CID_BASE+10) 54811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_BLACK_LEVEL (V4L2_CID_BASE+11) 54911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_AUTO_WHITE_BALANCE (V4L2_CID_BASE+12) 55011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_DO_WHITE_BALANCE (V4L2_CID_BASE+13) 55111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_RED_BALANCE (V4L2_CID_BASE+14) 55211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_BLUE_BALANCE (V4L2_CID_BASE+15) 55311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_GAMMA (V4L2_CID_BASE+16) 55411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_WHITENESS (V4L2_CID_GAMMA) 55511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_EXPOSURE (V4L2_CID_BASE+17) 55611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_AUTOGAIN (V4L2_CID_BASE+18) 55711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_GAIN (V4L2_CID_BASE+19) 55811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_HFLIP (V4L2_CID_BASE+20) 55911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_VFLIP (V4L2_CID_BASE+21) 56011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_HCENTER (V4L2_CID_BASE+22) 56111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_VCENTER (V4L2_CID_BASE+23) 56211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_LASTP1 (V4L2_CID_BASE+24) 56311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 56411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900) 56511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_CLASS (V4L2_CTRL_CLASS_MPEG | 1) 56611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 56711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_MPEG_BASE+0) 56811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_mpeg_stream_type { 56911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_STREAM_TYPE_MPEG2_PS = 0, 57011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_STREAM_TYPE_MPEG2_TS = 1, 57111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_STREAM_TYPE_MPEG1_SS = 2, 57211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_STREAM_TYPE_MPEG2_DVD = 3, 57311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_STREAM_TYPE_MPEG1_VCD = 4, 57411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD = 5, 57511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 57611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_MPEG_BASE+1) 57711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_MPEG_BASE+2) 57811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_MPEG_BASE+3) 57911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_MPEG_BASE+4) 58011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_MPEG_BASE+5) 58111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_MPEG_BASE+6) 58211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_MPEG_BASE+7) 58311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_mpeg_stream_vbi_fmt { 58411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_STREAM_VBI_FMT_NONE = 0, 58511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_STREAM_VBI_FMT_IVTV = 1, 58611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 58711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 58811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_MPEG_BASE+100) 58911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_mpeg_audio_sampling_freq { 59011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100 = 0, 59111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000 = 1, 59211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000 = 2, 59311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 59411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_MPEG_BASE+101) 59511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_mpeg_audio_encoding { 59611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_ENCODING_LAYER_1 = 0, 59711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_ENCODING_LAYER_2 = 1, 59811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_ENCODING_LAYER_3 = 2, 59911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 60011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_MPEG_BASE+102) 60111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_mpeg_audio_l1_bitrate { 60211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L1_BITRATE_32K = 0, 60311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L1_BITRATE_64K = 1, 60411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L1_BITRATE_96K = 2, 60511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L1_BITRATE_128K = 3, 60611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L1_BITRATE_160K = 4, 60711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L1_BITRATE_192K = 5, 60811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L1_BITRATE_224K = 6, 60911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L1_BITRATE_256K = 7, 61011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L1_BITRATE_288K = 8, 61111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L1_BITRATE_320K = 9, 61211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L1_BITRATE_352K = 10, 61311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L1_BITRATE_384K = 11, 61411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L1_BITRATE_416K = 12, 61511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L1_BITRATE_448K = 13, 61611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 61711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_MPEG_BASE+103) 61811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_mpeg_audio_l2_bitrate { 61911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L2_BITRATE_32K = 0, 62011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L2_BITRATE_48K = 1, 62111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L2_BITRATE_56K = 2, 62211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L2_BITRATE_64K = 3, 62311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L2_BITRATE_80K = 4, 62411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L2_BITRATE_96K = 5, 62511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L2_BITRATE_112K = 6, 62611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L2_BITRATE_128K = 7, 62711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L2_BITRATE_160K = 8, 62811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L2_BITRATE_192K = 9, 62911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L2_BITRATE_224K = 10, 63011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L2_BITRATE_256K = 11, 63111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L2_BITRATE_320K = 12, 63211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L2_BITRATE_384K = 13, 63311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 63411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_MPEG_BASE+104) 63511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_mpeg_audio_l3_bitrate { 63611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L3_BITRATE_32K = 0, 63711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L3_BITRATE_40K = 1, 63811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L3_BITRATE_48K = 2, 63911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L3_BITRATE_56K = 3, 64011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L3_BITRATE_64K = 4, 64111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L3_BITRATE_80K = 5, 64211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L3_BITRATE_96K = 6, 64311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L3_BITRATE_112K = 7, 64411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L3_BITRATE_128K = 8, 64511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L3_BITRATE_160K = 9, 64611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L3_BITRATE_192K = 10, 64711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L3_BITRATE_224K = 11, 64811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L3_BITRATE_256K = 12, 64911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_L3_BITRATE_320K = 13, 65011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 65111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_MPEG_BASE+105) 65211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_mpeg_audio_mode { 65311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_MODE_STEREO = 0, 65411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_MODE_JOINT_STEREO = 1, 65511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_MODE_DUAL = 2, 65611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_MODE_MONO = 3, 65711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 65811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_MPEG_BASE+106) 65911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_mpeg_audio_mode_extension { 66011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4 = 0, 66111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8 = 1, 66211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12 = 2, 66311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16 = 3, 66411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 66511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_MPEG_BASE+107) 66611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_mpeg_audio_emphasis { 66711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_EMPHASIS_NONE = 0, 66811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS = 1, 66911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17 = 2, 67011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 67111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_MPEG_BASE+108) 67211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_mpeg_audio_crc { 67311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_CRC_NONE = 0, 67411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_AUDIO_CRC_CRC16 = 1, 67511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 67611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 67711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_MPEG_BASE+200) 67811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_mpeg_video_encoding { 67911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_VIDEO_ENCODING_MPEG_1 = 0, 68011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_VIDEO_ENCODING_MPEG_2 = 1, 68111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 68211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_MPEG_BASE+201) 68311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_mpeg_video_aspect { 68411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_VIDEO_ASPECT_1x1 = 0, 68511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_VIDEO_ASPECT_4x3 = 1, 68611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_VIDEO_ASPECT_16x9 = 2, 68711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_VIDEO_ASPECT_221x100 = 3, 68811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 68911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_MPEG_BASE+202) 69011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_MPEG_BASE+203) 69111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_MPEG_BASE+204) 69211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_MPEG_BASE+205) 69311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_MPEG_BASE+206) 69411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_mpeg_video_bitrate_mode { 69511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_VIDEO_BITRATE_MODE_VBR = 0, 69611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_VIDEO_BITRATE_MODE_CBR = 1, 69711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 69811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207) 69911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208) 70011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_MPEG_BASE+209) 70111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 70211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) 70311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0) 70411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_mpeg_cx2341x_video_spatial_filter_mode { 70511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL = 0, 70611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO = 1, 70711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 70811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+1) 70911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+2) 71011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type { 71111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF = 0, 71211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR = 1, 71311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT = 2, 71411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE = 3, 71511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE = 4, 71611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 71711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+3) 71811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type { 71911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF = 0, 72011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR = 1, 72111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 72211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+4) 72311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_mpeg_cx2341x_video_temporal_filter_mode { 72411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL = 0, 72511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO = 1, 72611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 72711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+5) 72811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+6) 72911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum v4l2_mpeg_cx2341x_video_median_filter_type { 73011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF = 0, 73111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR = 1, 73211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT = 2, 73311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT = 3, 73411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG = 4, 73511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 73611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+7) 73711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+8) 73811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+9) 73911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+10) 74011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 74111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_tuner 74211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 74311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 index; 74411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 name[32]; 74511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert enum v4l2_tuner_type type; 74611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 capability; 74711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rangelow; 74811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rangehigh; 74911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rxsubchans; 75011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 audmode; 75111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 signal; 75211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 afc; 75311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved[4]; 75411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 75511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 75611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_modulator 75711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 75811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 index; 75911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 name[32]; 76011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 capability; 76111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rangelow; 76211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rangehigh; 76311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 txsubchans; 76411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved[4]; 76511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 76611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 76711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TUNER_CAP_LOW 0x0001 76811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TUNER_CAP_NORM 0x0002 76911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TUNER_CAP_STEREO 0x0010 77011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TUNER_CAP_LANG2 0x0020 77111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TUNER_CAP_SAP 0x0020 77211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TUNER_CAP_LANG1 0x0040 77311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 77411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TUNER_SUB_MONO 0x0001 77511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TUNER_SUB_STEREO 0x0002 77611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TUNER_SUB_LANG2 0x0004 77711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TUNER_SUB_SAP 0x0004 77811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TUNER_SUB_LANG1 0x0008 77911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 78011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TUNER_MODE_MONO 0x0000 78111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TUNER_MODE_STEREO 0x0001 78211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TUNER_MODE_LANG2 0x0002 78311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TUNER_MODE_SAP 0x0002 78411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TUNER_MODE_LANG1 0x0003 78511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_TUNER_MODE_LANG1_LANG2 0x0004 78611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 78711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_frequency 78811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 78911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 tuner; 79011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert enum v4l2_tuner_type type; 79111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 frequency; 79211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved[8]; 79311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 79411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 79511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_audio 79611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 79711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 index; 79811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 name[32]; 79911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 capability; 80011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 mode; 80111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved[2]; 80211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 80311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 80411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_AUDCAP_STEREO 0x00001 80511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_AUDCAP_AVL 0x00002 80611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 80711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_AUDMODE_AVL 0x00001 80811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 80911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_audioout 81011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 81111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 index; 81211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 name[32]; 81311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 capability; 81411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 mode; 81511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved[2]; 81611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 81711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 81811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_vbi_format 81911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 82011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 sampling_rate; 82111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 offset; 82211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 samples_per_line; 82311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 sample_format; 82411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 start[2]; 82511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 count[2]; 82611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 flags; 82711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved[2]; 82811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 82911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 83011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_VBI_UNSYNC (1<< 0) 83111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_VBI_INTERLACED (1<< 1) 83211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 83311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_sliced_vbi_format 83411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 83511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 service_set; 83611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 83711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 service_lines[2][24]; 83811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 io_size; 83911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved[2]; 84011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 84111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 84211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_SLICED_TELETEXT_B (0x0001) 84311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 84411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_SLICED_VPS (0x0400) 84511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 84611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_SLICED_CAPTION_525 (0x1000) 84711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 84811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_SLICED_WSS_625 (0x4000) 84911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 85011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_SLICED_VBI_525 (V4L2_SLICED_CAPTION_525) 85111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V4L2_SLICED_VBI_625 (V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625) 85211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 85311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_sliced_vbi_cap 85411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 85511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 service_set; 85611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 85711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 service_lines[2][24]; 85811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved[4]; 85911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 86011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 86111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_sliced_vbi_data 86211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 86311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 id; 86411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 field; 86511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 line; 86611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved; 86711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 data[48]; 86811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 86911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 87011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_format 87111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 87211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert enum v4l2_buf_type type; 87311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union 87411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 87511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_pix_format pix; 87611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_window win; 87711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_vbi_format vbi; 87811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_sliced_vbi_format sliced; 87911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 raw_data[200]; 88011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } fmt; 88111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 88211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 88311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct v4l2_streamparm 88411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 88511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert enum v4l2_buf_type type; 88611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union 88711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 88811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_captureparm capture; 88911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct v4l2_outputparm output; 89011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 raw_data[200]; 89111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } parm; 89211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 89311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 89411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_QUERYCAP _IOR ('V', 0, struct v4l2_capability) 89511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_RESERVED _IO ('V', 1) 89611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_ENUM_FMT _IOWR ('V', 2, struct v4l2_fmtdesc) 89711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_G_FMT _IOWR ('V', 4, struct v4l2_format) 89811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_S_FMT _IOWR ('V', 5, struct v4l2_format) 89911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_REQBUFS _IOWR ('V', 8, struct v4l2_requestbuffers) 90011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_QUERYBUF _IOWR ('V', 9, struct v4l2_buffer) 90111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_G_FBUF _IOR ('V', 10, struct v4l2_framebuffer) 90211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_S_FBUF _IOW ('V', 11, struct v4l2_framebuffer) 90311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_OVERLAY _IOW ('V', 14, int) 90411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_QBUF _IOWR ('V', 15, struct v4l2_buffer) 90511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_DQBUF _IOWR ('V', 17, struct v4l2_buffer) 90611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_STREAMON _IOW ('V', 18, int) 90711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_STREAMOFF _IOW ('V', 19, int) 90811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_G_PARM _IOWR ('V', 21, struct v4l2_streamparm) 90911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_S_PARM _IOWR ('V', 22, struct v4l2_streamparm) 91011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_G_STD _IOR ('V', 23, v4l2_std_id) 91111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_S_STD _IOW ('V', 24, v4l2_std_id) 91211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_ENUMSTD _IOWR ('V', 25, struct v4l2_standard) 91311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_ENUMINPUT _IOWR ('V', 26, struct v4l2_input) 91411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_G_CTRL _IOWR ('V', 27, struct v4l2_control) 91511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_S_CTRL _IOWR ('V', 28, struct v4l2_control) 91611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_G_TUNER _IOWR ('V', 29, struct v4l2_tuner) 91711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_S_TUNER _IOW ('V', 30, struct v4l2_tuner) 91811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_G_AUDIO _IOR ('V', 33, struct v4l2_audio) 91911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_S_AUDIO _IOW ('V', 34, struct v4l2_audio) 92011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_QUERYCTRL _IOWR ('V', 36, struct v4l2_queryctrl) 92111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_QUERYMENU _IOWR ('V', 37, struct v4l2_querymenu) 92211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_G_INPUT _IOR ('V', 38, int) 92311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_S_INPUT _IOWR ('V', 39, int) 92411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_G_OUTPUT _IOR ('V', 46, int) 92511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_S_OUTPUT _IOWR ('V', 47, int) 92611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_ENUMOUTPUT _IOWR ('V', 48, struct v4l2_output) 92711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_G_AUDOUT _IOR ('V', 49, struct v4l2_audioout) 92811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_S_AUDOUT _IOW ('V', 50, struct v4l2_audioout) 92911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_G_MODULATOR _IOWR ('V', 54, struct v4l2_modulator) 93011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_S_MODULATOR _IOW ('V', 55, struct v4l2_modulator) 93111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_G_FREQUENCY _IOWR ('V', 56, struct v4l2_frequency) 93211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_S_FREQUENCY _IOW ('V', 57, struct v4l2_frequency) 93311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_CROPCAP _IOWR ('V', 58, struct v4l2_cropcap) 93411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_G_CROP _IOWR ('V', 59, struct v4l2_crop) 93511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_S_CROP _IOW ('V', 60, struct v4l2_crop) 93611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_G_JPEGCOMP _IOR ('V', 61, struct v4l2_jpegcompression) 93711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_S_JPEGCOMP _IOW ('V', 62, struct v4l2_jpegcompression) 93811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_QUERYSTD _IOR ('V', 63, v4l2_std_id) 93911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_TRY_FMT _IOWR ('V', 64, struct v4l2_format) 94011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_ENUMAUDIO _IOWR ('V', 65, struct v4l2_audio) 94111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_ENUMAUDOUT _IOWR ('V', 66, struct v4l2_audioout) 94211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_G_PRIORITY _IOR ('V', 67, enum v4l2_priority) 94311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_S_PRIORITY _IOW ('V', 68, enum v4l2_priority) 94411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_G_SLICED_VBI_CAP _IOR ('V', 69, struct v4l2_sliced_vbi_cap) 94511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_LOG_STATUS _IO ('V', 70) 94611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_G_EXT_CTRLS _IOWR ('V', 71, struct v4l2_ext_controls) 94711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_S_EXT_CTRLS _IOWR ('V', 72, struct v4l2_ext_controls) 94811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_TRY_EXT_CTRLS _IOWR ('V', 73, struct v4l2_ext_controls) 94911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 95011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __OLD_VIDIOC_ 95111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 95211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_OVERLAY_OLD _IOWR ('V', 14, int) 95311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_S_PARM_OLD _IOW ('V', 22, struct v4l2_streamparm) 95411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_S_CTRL_OLD _IOW ('V', 28, struct v4l2_control) 95511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_G_AUDIO_OLD _IOWR ('V', 33, struct v4l2_audio) 95611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_G_AUDOUT_OLD _IOWR ('V', 49, struct v4l2_audioout) 95711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VIDIOC_CROPCAP_OLD _IOR ('V', 58, struct v4l2_cropcap) 95811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 95911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 96011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BASE_VIDIOC_PRIVATE 192 96111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 96211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 96311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 964