annotate libmpdemux/videodev2.h @ 10663:711159267b2d

clean up field flags: 1) cosmetic change, no reason these need to be mpeg2-specific 2) add a flag to tell when fields are ordered, so we don't have to assume bff (which would usually be wrong) when field flags are not available. 3) add other flags for future use :)
author rfelker
date Mon, 18 Aug 2003 14:49:06 +0000
parents 527e978cb0f8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10536
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
1 #ifndef __LINUX_VIDEODEV2_H
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
2 #define __LINUX_VIDEODEV2_H
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
3 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
4 * Video for Linux Two
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
5 *
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
6 * Header file for v4l or V4L2 drivers and applications, for
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
7 * Linux kernels 2.2.x or 2.4.x.
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
8 *
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
9 * See http://www.thedirks.org/v4l2/ for API specs and other
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
10 * v4l2 documentation.
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
11 *
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
12 * Author: Bill Dirks <bdirks@pacbell.net>
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
13 * Justin Schoeman
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
14 * et al.
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
15 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
16 #include <sys/time.h> /* need struct timeval */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
17
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
18 #include <linux/types.h>
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
19 #include <linux/version.h>
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
20
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
21 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
22 * M I S C E L L A N E O U S
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
23 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
24
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
25 /* Four-character-code (FOURCC) */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
26 #define v4l2_fourcc(a,b,c,d)\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
27 (((__u32)(a)<<0)|((__u32)(b)<<8)|((__u32)(c)<<16)|((__u32)(d)<<24))
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
28
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
29 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
30 * E N U M S
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
31 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
32 enum v4l2_field {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
33 V4L2_FIELD_ANY = 0, /* driver can choose from none,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
34 top, bottom, interlaced
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
35 depending on whatever it thinks
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
36 is approximate ... */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
37 V4L2_FIELD_NONE = 1, /* this device has no fields ... */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
38 V4L2_FIELD_TOP = 2, /* top field only */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
39 V4L2_FIELD_BOTTOM = 3, /* bottom field only */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
40 V4L2_FIELD_INTERLACED = 4, /* both fields interlaced */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
41 V4L2_FIELD_SEQ_TB = 5, /* both fields sequential into one
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
42 buffer, top-bottom order */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
43 V4L2_FIELD_SEQ_BT = 6, /* same as above + bottom-top order */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
44 V4L2_FIELD_ALTERNATE = 7, /* both fields alternating into
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
45 separate buffers */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
46 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
47 #define V4L2_FIELD_HAS_TOP(field) \
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
48 ((field) == V4L2_FIELD_TOP ||\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
49 (field) == V4L2_FIELD_INTERLACED ||\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
50 (field) == V4L2_FIELD_SEQ_TB ||\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
51 (field) == V4L2_FIELD_SEQ_BT)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
52 #define V4L2_FIELD_HAS_BOTTOM(field) \
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
53 ((field) == V4L2_FIELD_BOTTOM ||\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
54 (field) == V4L2_FIELD_INTERLACED ||\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
55 (field) == V4L2_FIELD_SEQ_TB ||\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
56 (field) == V4L2_FIELD_SEQ_BT)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
57 #define V4L2_FIELD_HAS_BOTH(field) \
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
58 ((field) == V4L2_FIELD_INTERLACED ||\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
59 (field) == V4L2_FIELD_SEQ_TB ||\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
60 (field) == V4L2_FIELD_SEQ_BT)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
61
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
62 enum v4l2_buf_type {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
63 V4L2_BUF_TYPE_VIDEO_CAPTURE = 1,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
64 V4L2_BUF_TYPE_VIDEO_OUTPUT = 2,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
65 V4L2_BUF_TYPE_VIDEO_OVERLAY = 3,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
66 V4L2_BUF_TYPE_VBI_CAPTURE = 4,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
67 V4L2_BUF_TYPE_VBI_OUTPUT = 5,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
68 V4L2_BUF_TYPE_PRIVATE = 0x80,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
69 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
70
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
71 enum v4l2_ctrl_type {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
72 V4L2_CTRL_TYPE_INTEGER = 1,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
73 V4L2_CTRL_TYPE_BOOLEAN = 2,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
74 V4L2_CTRL_TYPE_MENU = 3,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
75 V4L2_CTRL_TYPE_BUTTON = 4,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
76 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
77
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
78 enum v4l2_tuner_type {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
79 V4L2_TUNER_RADIO = 1,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
80 V4L2_TUNER_ANALOG_TV = 2,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
81 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
82
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
83 enum v4l2_memory {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
84 V4L2_MEMORY_MMAP = 1,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
85 V4L2_MEMORY_USERPTR = 2,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
86 V4L2_MEMORY_OVERLAY = 3,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
87 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
88
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
89 /* see also http://vektor.theorem.ca/graphics/ycbcr/ */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
90 enum v4l2_colorspace {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
91 /* ITU-R 601 -- broadcast NTSC/PAL */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
92 V4L2_COLORSPACE_SMPTE170M = 1,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
93
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
94 /* 1125-Line (US) HDTV */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
95 V4L2_COLORSPACE_SMPTE240M = 2,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
96
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
97 /* HD and modern captures. */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
98 V4L2_COLORSPACE_REC709 = 3,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
99
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
100 /* broken BT878 extents (601, luma range 16-253 instead of 16-235) */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
101 V4L2_COLORSPACE_BT878 = 4,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
102
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
103 /* These should be useful. Assume 601 extents. */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
104 V4L2_COLORSPACE_470_SYSTEM_M = 5,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
105 V4L2_COLORSPACE_470_SYSTEM_BG = 6,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
106
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
107 /* I know there will be cameras that send this. So, this is
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
108 * unspecified chromaticities and full 0-255 on each of the
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
109 * Y'CbCr components
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
110 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
111 V4L2_COLORSPACE_JPEG = 7,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
112
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
113 /* For RGB colourspaces, this is probably a good start. */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
114 V4L2_COLORSPACE_SRGB = 8,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
115 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
116
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
117 struct v4l2_rect {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
118 __s32 left;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
119 __s32 top;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
120 __s32 width;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
121 __s32 height;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
122 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
123
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
124 struct v4l2_fract {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
125 __u32 numerator;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
126 __u32 denominator;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
127 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
128
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
129 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
130 * D R I V E R C A P A B I L I T I E S
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
131 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
132 struct v4l2_capability
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
133 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
134 __u8 driver[16]; /* i.e. "bttv" */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
135 __u8 card[32]; /* i.e. "Hauppauge WinTV" */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
136 __u8 bus_info[32]; /* "PCI:" + pci_dev->slot_name */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
137 __u32 version; /* should use KERNEL_VERSION() */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
138 __u32 capabilities; /* Device capabilities */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
139 __u32 reserved[4];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
140 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
141
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
142 /* Values for 'capabilities' field */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
143 #define V4L2_CAP_VIDEO_CAPTURE 0x00000001 /* Is a video capture device */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
144 #define V4L2_CAP_VIDEO_OUTPUT 0x00000002 /* Is a video output device */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
145 #define V4L2_CAP_VIDEO_OVERLAY 0x00000004 /* Can do video overlay */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
146 #define V4L2_CAP_VBI_CAPTURE 0x00000010 /* Is a VBI capture device */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
147 #define V4L2_CAP_VBI_OUTPUT 0x00000020 /* Is a VBI output device */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
148 #define V4L2_CAP_RDS_CAPTURE 0x00000100 /* RDS data capture */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
149
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
150 #define V4L2_CAP_TUNER 0x00010000 /* Has a tuner */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
151 #define V4L2_CAP_AUDIO 0x00020000 /* has audio support */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
152
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
153 #define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
154 #define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
155 #define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
156
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
157 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
158 * V I D E O I M A G E F O R M A T
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
159 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
160
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
161 struct v4l2_pix_format
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
162 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
163 __u32 width;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
164 __u32 height;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
165 __u32 pixelformat;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
166 enum v4l2_field field;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
167 __u32 bytesperline; /* for padding, zero if unused */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
168 __u32 sizeimage;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
169 enum v4l2_colorspace colorspace;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
170 __u32 priv; /* private data, depends on pixelformat */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
171 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
172
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
173 /* Pixel format FOURCC depth Description */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
174 #define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R','G','B','1') /* 8 RGB-3-3-2 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
175 #define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R','G','B','O') /* 16 RGB-5-5-5 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
176 #define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R','G','B','P') /* 16 RGB-5-6-5 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
177 #define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R','G','B','Q') /* 16 RGB-5-5-5 BE */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
178 #define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R','G','B','R') /* 16 RGB-5-6-5 BE */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
179 #define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B','G','R','3') /* 24 BGR-8-8-8 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
180 #define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R','G','B','3') /* 24 RGB-8-8-8 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
181 #define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B','G','R','4') /* 32 BGR-8-8-8-8 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
182 #define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R','G','B','4') /* 32 RGB-8-8-8-8 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
183 #define V4L2_PIX_FMT_GREY v4l2_fourcc('G','R','E','Y') /* 8 Greyscale */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
184 #define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y','V','U','9') /* 9 YVU 4:1:0 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
185 #define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y','V','1','2') /* 12 YVU 4:2:0 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
186 #define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y','U','Y','V') /* 16 YUV 4:2:2 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
187 #define V4L2_PIX_FMT_UYVY v4l2_fourcc('U','Y','V','Y') /* 16 YUV 4:2:2 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
188 #define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4','2','2','P') /* 16 YVU422 planar */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
189 #define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4','1','1','P') /* 16 YVU411 planar */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
190 #define V4L2_PIX_FMT_Y41P v4l2_fourcc('Y','4','1','P') /* 12 YUV 4:1:1 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
191
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
192 /* two planes -- one Y, one Cr + Cb interleaved */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
193 #define V4L2_PIX_FMT_NV12 v4l2_fourcc('N','V','1','2') /* 12 Y/CbCr 4:2:0 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
194 #define V4L2_PIX_FMT_NV21 v4l2_fourcc('N','V','2','1') /* 12 Y/CrCb 4:2:0 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
195
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
196 /* The following formats are not defined in the V4L2 specification */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
197 #define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y','U','V','9') /* 9 YUV 4:1:0 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
198 #define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y','U','1','2') /* 12 YUV 4:2:0 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
199 #define V4L2_PIX_FMT_YYUV v4l2_fourcc('Y','Y','U','V') /* 16 YUV 4:2:2 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
200 #define V4L2_PIX_FMT_HI240 v4l2_fourcc('H','I','2','4') /* 8 8-bit color */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
201
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
202 /* compressed formats */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
203 #define V4L2_PIX_FMT_MJPEG v4l2_fourcc('M','J','P','G') /* Motion-JPEG */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
204 #define V4L2_PIX_FMT_JPEG v4l2_fourcc('J','P','E','G') /* JFIF JPEG */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
205 #define V4L2_PIX_FMT_DV v4l2_fourcc('d','v','s','d') /* 1394 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
206 #define V4L2_PIX_FMT_MPEG v4l2_fourcc('M','P','E','G') /* MPEG */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
207
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
208 /* Vendor-specific formats */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
209 #define V4L2_PIX_FMT_WNVA v4l2_fourcc('W','N','V','A') /* Winnov hw compres */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
210
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
211 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
212 * F O R M A T E N U M E R A T I O N
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
213 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
214 struct v4l2_fmtdesc
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
215 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
216 __u32 index; /* Format number */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
217 enum v4l2_buf_type type; /* buffer type */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
218 __u32 flags;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
219 __u8 description[32]; /* Description string */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
220 __u32 pixelformat; /* Format fourcc */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
221 __u32 reserved[4];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
222 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
223
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
224 #define V4L2_FMT_FLAG_COMPRESSED 0x0001
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
225
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
226
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
227 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
228 * T I M E C O D E
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
229 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
230 struct v4l2_timecode
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
231 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
232 __u32 type;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
233 __u32 flags;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
234 __u8 frames;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
235 __u8 seconds;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
236 __u8 minutes;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
237 __u8 hours;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
238 __u8 userbits[4];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
239 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
240
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
241 /* Type */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
242 #define V4L2_TC_TYPE_24FPS 1
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
243 #define V4L2_TC_TYPE_25FPS 2
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
244 #define V4L2_TC_TYPE_30FPS 3
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
245 #define V4L2_TC_TYPE_50FPS 4
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
246 #define V4L2_TC_TYPE_60FPS 5
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
247
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
248 /* Flags */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
249 #define V4L2_TC_FLAG_DROPFRAME 0x0001 /* "drop-frame" mode */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
250 #define V4L2_TC_FLAG_COLORFRAME 0x0002
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
251 #define V4L2_TC_USERBITS_field 0x000C
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
252 #define V4L2_TC_USERBITS_USERDEFINED 0x0000
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
253 #define V4L2_TC_USERBITS_8BITCHARS 0x0008
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
254 /* The above is based on SMPTE timecodes */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
255
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
256
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
257 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
258 * C O M P R E S S I O N P A R A M E T E R S
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
259 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
260 #if 0
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
261 /* ### generic compression settings don't work, there is too much
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
262 * ### codec-specific stuff. Maybe reuse that for MPEG codec settings
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
263 * ### later ... */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
264 struct v4l2_compression
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
265 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
266 __u32 quality;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
267 __u32 keyframerate;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
268 __u32 pframerate;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
269 __u32 reserved[5];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
270 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
271 #endif
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
272
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
273 struct v4l2_jpegcompression
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
274 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
275 int quality;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
276
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
277 int APPn; /* Number of APP segment to be written,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
278 * must be 0..15 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
279 int APP_len; /* Length of data in JPEG APPn segment */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
280 char APP_data[60]; /* Data in the JPEG APPn segment. */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
281
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
282 int COM_len; /* Length of data in JPEG COM segment */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
283 char COM_data[60]; /* Data in JPEG COM segment */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
284
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
285 __u32 jpeg_markers; /* Which markers should go into the JPEG
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
286 * output. Unless you exactly know what
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
287 * you do, leave them untouched.
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
288 * Inluding less markers will make the
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
289 * resulting code smaller, but there will
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
290 * be fewer aplications which can read it.
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
291 * The presence of the APP and COM marker
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
292 * is influenced by APP_len and COM_len
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
293 * ONLY, not by this property! */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
294
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
295 #define V4L2_JPEG_MARKER_DHT (1<<3) /* Define Huffman Tables */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
296 #define V4L2_JPEG_MARKER_DQT (1<<4) /* Define Quantization Tables */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
297 #define V4L2_JPEG_MARKER_DRI (1<<5) /* Define Restart Interval */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
298 #define V4L2_JPEG_MARKER_COM (1<<6) /* Comment segment */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
299 #define V4L2_JPEG_MARKER_APP (1<<7) /* App segment, driver will
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
300 * allways use APP0 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
301 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
302
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
303
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
304 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
305 * M E M O R Y - M A P P I N G B U F F E R S
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
306 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
307 struct v4l2_requestbuffers
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
308 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
309 __u32 count;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
310 enum v4l2_buf_type type;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
311 enum v4l2_memory memory;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
312 __u32 reserved[2];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
313 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
314
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
315 struct v4l2_buffer
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
316 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
317 __u32 index;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
318 enum v4l2_buf_type type;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
319 __u32 bytesused;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
320 __u32 flags;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
321 enum v4l2_field field;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
322 struct timeval timestamp;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
323 struct v4l2_timecode timecode;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
324 __u32 sequence;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
325
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
326 /* memory location */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
327 enum v4l2_memory memory;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
328 union {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
329 __u32 offset;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
330 unsigned long userptr;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
331 } m;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
332 __u32 length;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
333
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
334 __u32 reserved[2];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
335 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
336
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
337 /* Flags for 'flags' field */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
338 #define V4L2_BUF_FLAG_MAPPED 0x0001 /* Buffer is mapped (flag) */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
339 #define V4L2_BUF_FLAG_QUEUED 0x0002 /* Buffer is queued for processing */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
340 #define V4L2_BUF_FLAG_DONE 0x0004 /* Buffer is ready */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
341 #define V4L2_BUF_FLAG_KEYFRAME 0x0008 /* Image is a keyframe (I-frame) */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
342 #define V4L2_BUF_FLAG_PFRAME 0x0010 /* Image is a P-frame */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
343 #define V4L2_BUF_FLAG_BFRAME 0x0020 /* Image is a B-frame */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
344 #define V4L2_BUF_FLAG_TIMECODE 0x0100 /* timecode field is valid */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
345
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
346 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
347 * O V E R L A Y P R E V I E W
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
348 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
349 struct v4l2_framebuffer
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
350 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
351 __u32 capability;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
352 __u32 flags;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
353 /* FIXME: in theory we should pass something like PCI device + memory
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
354 * region + offset instead of some physical address */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
355 void* base;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
356 struct v4l2_pix_format fmt;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
357 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
358 /* Flags for the 'capability' field. Read only */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
359 #define V4L2_FBUF_CAP_EXTERNOVERLAY 0x0001
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
360 #define V4L2_FBUF_CAP_CHROMAKEY 0x0002
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
361 #define V4L2_FBUF_CAP_LIST_CLIPPING 0x0004
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
362 #define V4L2_FBUF_CAP_BITMAP_CLIPPING 0x0008
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
363 /* Flags for the 'flags' field. */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
364 #define V4L2_FBUF_FLAG_PRIMARY 0x0001
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
365 #define V4L2_FBUF_FLAG_OVERLAY 0x0002
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
366 #define V4L2_FBUF_FLAG_CHROMAKEY 0x0004
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
367
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
368 struct v4l2_clip
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
369 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
370 struct v4l2_rect c;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
371 struct v4l2_clip *next;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
372 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
373
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
374 struct v4l2_window
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
375 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
376 struct v4l2_rect w;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
377 enum v4l2_field field;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
378 __u32 chromakey;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
379 struct v4l2_clip *clips;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
380 __u32 clipcount;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
381 void *bitmap;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
382 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
383
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
384
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
385 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
386 * C A P T U R E P A R A M E T E R S
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
387 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
388 struct v4l2_captureparm
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
389 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
390 __u32 capability; /* Supported modes */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
391 __u32 capturemode; /* Current mode */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
392 struct v4l2_fract timeperframe; /* Time per frame in .1us units */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
393 __u32 extendedmode; /* Driver-specific extensions */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
394 __u32 readbuffers; /* # of buffers for read */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
395 __u32 reserved[4];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
396 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
397 /* Flags for 'capability' and 'capturemode' fields */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
398 #define V4L2_MODE_HIGHQUALITY 0x0001 /* High quality imaging mode */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
399 #define V4L2_CAP_TIMEPERFRAME 0x1000 /* timeperframe field is supported */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
400
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
401 struct v4l2_outputparm
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
402 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
403 __u32 capability; /* Supported modes */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
404 __u32 outputmode; /* Current mode */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
405 struct v4l2_fract timeperframe; /* Time per frame in seconds */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
406 __u32 extendedmode; /* Driver-specific extensions */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
407 __u32 writebuffers; /* # of buffers for write */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
408 __u32 reserved[4];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
409 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
410
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
411 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
412 * I N P U T I M A G E C R O P P I N G
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
413 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
414
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
415 struct v4l2_cropcap {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
416 enum v4l2_buf_type type;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
417 struct v4l2_rect bounds;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
418 struct v4l2_rect defrect;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
419 struct v4l2_fract pixelaspect;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
420 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
421
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
422 struct v4l2_crop {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
423 enum v4l2_buf_type type;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
424 struct v4l2_rect c;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
425 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
426
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
427 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
428 * A N A L O G V I D E O S T A N D A R D
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
429 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
430
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
431 typedef __u64 v4l2_std_id;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
432
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
433 /* one bit for each */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
434 #define V4L2_STD_PAL_B ((v4l2_std_id)0x00000001)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
435 #define V4L2_STD_PAL_B1 ((v4l2_std_id)0x00000002)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
436 #define V4L2_STD_PAL_G ((v4l2_std_id)0x00000004)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
437 #define V4L2_STD_PAL_H ((v4l2_std_id)0x00000008)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
438 #define V4L2_STD_PAL_I ((v4l2_std_id)0x00000010)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
439 #define V4L2_STD_PAL_D ((v4l2_std_id)0x00000020)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
440 #define V4L2_STD_PAL_D1 ((v4l2_std_id)0x00000040)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
441 #define V4L2_STD_PAL_K ((v4l2_std_id)0x00000080)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
442
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
443 #define V4L2_STD_PAL_M ((v4l2_std_id)0x00000100)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
444 #define V4L2_STD_PAL_N ((v4l2_std_id)0x00000200)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
445 #define V4L2_STD_PAL_Nc ((v4l2_std_id)0x00000400)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
446 #define V4L2_STD_PAL_60 ((v4l2_std_id)0x00000800)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
447
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
448 #define V4L2_STD_NTSC_M ((v4l2_std_id)0x00001000)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
449 #define V4L2_STD_NTSC_M_JP ((v4l2_std_id)0x00002000)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
450
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
451 #define V4L2_STD_SECAM_B ((v4l2_std_id)0x00010000)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
452 #define V4L2_STD_SECAM_D ((v4l2_std_id)0x00020000)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
453 #define V4L2_STD_SECAM_G ((v4l2_std_id)0x00040000)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
454 #define V4L2_STD_SECAM_H ((v4l2_std_id)0x00080000)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
455 #define V4L2_STD_SECAM_K ((v4l2_std_id)0x00100000)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
456 #define V4L2_STD_SECAM_K1 ((v4l2_std_id)0x00200000)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
457 #define V4L2_STD_SECAM_L ((v4l2_std_id)0x00400000)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
458
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
459 /* ATSC/HDTV */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
460 #define V4L2_STD_ATSC_8_VSB ((v4l2_std_id)0x01000000)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
461 #define V4L2_STD_ATSC_16_VSB ((v4l2_std_id)0x02000000)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
462
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
463 /* some common needed stuff */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
464 #define V4L2_STD_PAL_BG (V4L2_STD_PAL_B |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
465 V4L2_STD_PAL_B1 |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
466 V4L2_STD_PAL_G)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
467 #define V4L2_STD_PAL_DK (V4L2_STD_PAL_D |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
468 V4L2_STD_PAL_D1 |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
469 V4L2_STD_PAL_K)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
470 #define V4L2_STD_PAL (V4L2_STD_PAL_BG |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
471 V4L2_STD_PAL_DK |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
472 V4L2_STD_PAL_H |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
473 V4L2_STD_PAL_I)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
474 #define V4L2_STD_NTSC (V4L2_STD_NTSC_M |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
475 V4L2_STD_NTSC_M_JP)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
476 #define V4L2_STD_SECAM (V4L2_STD_SECAM_B |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
477 V4L2_STD_SECAM_D |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
478 V4L2_STD_SECAM_G |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
479 V4L2_STD_SECAM_H |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
480 V4L2_STD_SECAM_K |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
481 V4L2_STD_SECAM_K1 |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
482 V4L2_STD_SECAM_L)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
483
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
484 #define V4L2_STD_525_60 (V4L2_STD_PAL_M |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
485 V4L2_STD_PAL_60 |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
486 V4L2_STD_NTSC)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
487 #define V4L2_STD_625_50 (V4L2_STD_PAL |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
488 V4L2_STD_PAL_N |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
489 V4L2_STD_PAL_Nc |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
490 V4L2_STD_SECAM)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
491
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
492 #define V4L2_STD_UNKNOWN 0
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
493 #define V4L2_STD_ALL (V4L2_STD_525_60 |\
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
494 V4L2_STD_625_50)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
495
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
496 struct v4l2_standard
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
497 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
498 __u32 index;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
499 v4l2_std_id id;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
500 __u8 name[24];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
501 struct v4l2_fract frameperiod; /* Frames, not fields */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
502 __u32 framelines;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
503 __u32 reserved[4];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
504 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
505
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
506
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
507 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
508 * V I D E O I N P U T S
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
509 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
510 struct v4l2_input
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
511 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
512 __u32 index; /* Which input */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
513 __u8 name[32]; /* Label */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
514 __u32 type; /* Type of input */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
515 __u32 audioset; /* Associated audios (bitfield) */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
516 __u32 tuner; /* Associated tuner */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
517 v4l2_std_id std;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
518 __u32 status;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
519 __u32 reserved[4];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
520 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
521 /* Values for the 'type' field */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
522 #define V4L2_INPUT_TYPE_TUNER 1
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
523 #define V4L2_INPUT_TYPE_CAMERA 2
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
524
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
525 /* field 'status' - general */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
526 #define V4L2_IN_ST_NO_POWER 0x00000001 /* Attached device is off */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
527 #define V4L2_IN_ST_NO_SIGNAL 0x00000002
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
528 #define V4L2_IN_ST_NO_COLOR 0x00000004
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
529
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
530 /* field 'status' - analog */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
531 #define V4L2_IN_ST_NO_H_LOCK 0x00000100 /* No horizontal sync lock */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
532 #define V4L2_IN_ST_COLOR_KILL 0x00000200 /* Color killer is active */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
533
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
534 /* field 'status' - digital */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
535 #define V4L2_IN_ST_NO_SYNC 0x00010000 /* No synchronization lock */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
536 #define V4L2_IN_ST_NO_EQU 0x00020000 /* No equalizer lock */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
537 #define V4L2_IN_ST_NO_CARRIER 0x00040000 /* Carrier recovery failed */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
538
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
539 /* field 'status' - VCR and set-top box */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
540 #define V4L2_IN_ST_MACROVISION 0x01000000 /* Macrovision detected */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
541 #define V4L2_IN_ST_NO_ACCESS 0x02000000 /* Conditional access denied */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
542 #define V4L2_IN_ST_VTR 0x04000000 /* VTR time constant */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
543
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
544 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
545 * V I D E O O U T P U T S
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
546 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
547 struct v4l2_output
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
548 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
549 __u32 index; /* Which output */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
550 __u8 name[32]; /* Label */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
551 __u32 type; /* Type of output */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
552 __u32 audioset; /* Associated audios (bitfield) */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
553 __u32 modulator; /* Associated modulator */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
554 v4l2_std_id std;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
555 __u32 reserved[4];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
556 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
557 /* Values for the 'type' field */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
558 #define V4L2_OUTPUT_TYPE_MODULATOR 1
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
559 #define V4L2_OUTPUT_TYPE_ANALOG 2
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
560 #define V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY 3
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
561
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
562 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
563 * C O N T R O L S
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
564 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
565 struct v4l2_control
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
566 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
567 __u32 id;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
568 __s32 value;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
569 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
570
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
571 /* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
572 struct v4l2_queryctrl
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
573 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
574 __u32 id;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
575 enum v4l2_ctrl_type type;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
576 __u8 name[32]; /* Whatever */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
577 __s32 minimum; /* Note signedness */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
578 __s32 maximum;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
579 __s32 step;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
580 __s32 default_value;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
581 __u32 flags;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
582 __u32 reserved[2];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
583 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
584
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
585 /* Used in the VIDIOC_QUERYMENU ioctl for querying menu items */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
586 struct v4l2_querymenu
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
587 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
588 __u32 id;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
589 __u32 index;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
590 __u8 name[32]; /* Whatever */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
591 __u32 reserved;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
592 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
593
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
594 /* Control flags */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
595 #define V4L2_CTRL_FLAG_DISABLED 0x0001
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
596 #define V4L2_CTRL_FLAG_GRABBED 0x0002
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
597
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
598 /* Control IDs defined by V4L2 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
599 #define V4L2_CID_BASE 0x00980900
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
600 /* IDs reserved for driver specific controls */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
601 #define V4L2_CID_PRIVATE_BASE 0x08000000
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
602
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
603 #define V4L2_CID_BRIGHTNESS (V4L2_CID_BASE+0)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
604 #define V4L2_CID_CONTRAST (V4L2_CID_BASE+1)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
605 #define V4L2_CID_SATURATION (V4L2_CID_BASE+2)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
606 #define V4L2_CID_HUE (V4L2_CID_BASE+3)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
607 #define V4L2_CID_AUDIO_VOLUME (V4L2_CID_BASE+5)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
608 #define V4L2_CID_AUDIO_BALANCE (V4L2_CID_BASE+6)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
609 #define V4L2_CID_AUDIO_BASS (V4L2_CID_BASE+7)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
610 #define V4L2_CID_AUDIO_TREBLE (V4L2_CID_BASE+8)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
611 #define V4L2_CID_AUDIO_MUTE (V4L2_CID_BASE+9)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
612 #define V4L2_CID_AUDIO_LOUDNESS (V4L2_CID_BASE+10)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
613 #define V4L2_CID_BLACK_LEVEL (V4L2_CID_BASE+11)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
614 #define V4L2_CID_AUTO_WHITE_BALANCE (V4L2_CID_BASE+12)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
615 #define V4L2_CID_DO_WHITE_BALANCE (V4L2_CID_BASE+13)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
616 #define V4L2_CID_RED_BALANCE (V4L2_CID_BASE+14)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
617 #define V4L2_CID_BLUE_BALANCE (V4L2_CID_BASE+15)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
618 #define V4L2_CID_GAMMA (V4L2_CID_BASE+16)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
619 #define V4L2_CID_WHITENESS (V4L2_CID_GAMMA) /* ? Not sure */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
620 #define V4L2_CID_EXPOSURE (V4L2_CID_BASE+17)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
621 #define V4L2_CID_AUTOGAIN (V4L2_CID_BASE+18)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
622 #define V4L2_CID_GAIN (V4L2_CID_BASE+19)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
623 #define V4L2_CID_HFLIP (V4L2_CID_BASE+20)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
624 #define V4L2_CID_VFLIP (V4L2_CID_BASE+21)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
625 #define V4L2_CID_HCENTER (V4L2_CID_BASE+22)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
626 #define V4L2_CID_VCENTER (V4L2_CID_BASE+23)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
627 #define V4L2_CID_LASTP1 (V4L2_CID_BASE+24) /* last CID + 1 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
628
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
629 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
630 * T U N I N G
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
631 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
632 struct v4l2_tuner
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
633 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
634 __u32 index;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
635 __u8 name[32];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
636 enum v4l2_tuner_type type;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
637 __u32 capability;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
638 __u32 rangelow;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
639 __u32 rangehigh;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
640 __u32 rxsubchans;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
641 __u32 audmode;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
642 __s32 signal;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
643 __s32 afc;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
644 __u32 reserved[4];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
645 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
646
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
647 struct v4l2_modulator
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
648 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
649 __u32 index;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
650 __u8 name[32];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
651 __u32 capability;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
652 __u32 rangelow;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
653 __u32 rangehigh;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
654 __u32 txsubchans;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
655 __u32 reserved[4];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
656 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
657
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
658 /* Flags for the 'capability' field */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
659 #define V4L2_TUNER_CAP_LOW 0x0001
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
660 #define V4L2_TUNER_CAP_NORM 0x0002
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
661 #define V4L2_TUNER_CAP_STEREO 0x0010
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
662 #define V4L2_TUNER_CAP_LANG2 0x0020
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
663 #define V4L2_TUNER_CAP_SAP 0x0020
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
664 #define V4L2_TUNER_CAP_LANG1 0x0040
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
665
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
666 /* Flags for the 'rxsubchans' field */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
667 #define V4L2_TUNER_SUB_MONO 0x0001
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
668 #define V4L2_TUNER_SUB_STEREO 0x0002
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
669 #define V4L2_TUNER_SUB_LANG2 0x0004
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
670 #define V4L2_TUNER_SUB_SAP 0x0004
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
671 #define V4L2_TUNER_SUB_LANG1 0x0008
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
672
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
673 /* Values for the 'audmode' field */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
674 #define V4L2_TUNER_MODE_MONO 0x0000
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
675 #define V4L2_TUNER_MODE_STEREO 0x0001
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
676 #define V4L2_TUNER_MODE_LANG2 0x0002
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
677 #define V4L2_TUNER_MODE_SAP 0x0002
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
678 #define V4L2_TUNER_MODE_LANG1 0x0003
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
679
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
680 struct v4l2_frequency
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
681 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
682 __u32 tuner;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
683 enum v4l2_tuner_type type;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
684 __u32 frequency;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
685 __u32 reserved[8];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
686 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
687
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
688 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
689 * A U D I O
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
690 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
691 struct v4l2_audio
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
692 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
693 __u32 index;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
694 __u8 name[32];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
695 __u32 capability;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
696 __u32 mode;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
697 __u32 reserved[2];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
698 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
699 /* Flags for the 'capability' field */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
700 #define V4L2_AUDCAP_STEREO 0x00001
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
701 #define V4L2_AUDCAP_AVL 0x00002
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
702
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
703 /* Flags for the 'mode' field */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
704 #define V4L2_AUDMODE_AVL 0x00001
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
705
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
706 struct v4l2_audioout
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
707 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
708 __u32 index;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
709 __u8 name[32];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
710 __u32 capability;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
711 __u32 mode;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
712 __u32 reserved[2];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
713 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
714
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
715 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
716 * D A T A S E R V I C E S ( V B I )
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
717 *
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
718 * Data services API by Michael Schimek
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
719 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
720
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
721 struct v4l2_vbi_format
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
722 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
723 __u32 sampling_rate; /* in 1 Hz */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
724 __u32 offset;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
725 __u32 samples_per_line;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
726 __u32 sample_format; /* V4L2_PIX_FMT_* */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
727 __s32 start[2];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
728 __u32 count[2];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
729 __u32 flags; /* V4L2_VBI_* */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
730 __u32 reserved[2]; /* must be zero */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
731 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
732
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
733 /* VBI flags */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
734 #define V4L2_VBI_UNSYNC (1<< 0)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
735 #define V4L2_VBI_INTERLACED (1<< 1)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
736
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
737
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
738 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
739 * A G G R E G A T E S T R U C T U R E S
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
740 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
741
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
742 /* Stream data format
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
743 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
744 struct v4l2_format
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
745 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
746 enum v4l2_buf_type type;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
747 union
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
748 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
749 struct v4l2_pix_format pix; // V4L2_BUF_TYPE_VIDEO_CAPTURE
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
750 struct v4l2_window win; // V4L2_BUF_TYPE_VIDEO_OVERLAY
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
751 struct v4l2_vbi_format vbi; // V4L2_BUF_TYPE_VBI_CAPTURE
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
752 __u8 raw_data[200]; // user-defined
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
753 } fmt;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
754 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
755
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
756
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
757 /* Stream type-dependent parameters
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
758 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
759 struct v4l2_streamparm
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
760 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
761 enum v4l2_buf_type type;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
762 union
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
763 {
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
764 struct v4l2_captureparm capture;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
765 struct v4l2_outputparm output;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
766 __u8 raw_data[200]; /* user-defined */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
767 } parm;
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
768 };
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
769
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
770
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
771
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
772 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
773 * I O C T L C O D E S F O R V I D E O D E V I C E S
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
774 *
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
775 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
776 #define VIDIOC_QUERYCAP _IOR ('V', 0, struct v4l2_capability)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
777 #define VIDIOC_RESERVED _IO ('V', 1)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
778 #define VIDIOC_ENUM_FMT _IOWR ('V', 2, struct v4l2_fmtdesc)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
779 #define VIDIOC_G_FMT _IOWR ('V', 4, struct v4l2_format)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
780 #define VIDIOC_S_FMT _IOWR ('V', 5, struct v4l2_format)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
781 #if 0
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
782 #define VIDIOC_G_COMP _IOR ('V', 6, struct v4l2_compression)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
783 #define VIDIOC_S_COMP _IOW ('V', 7, struct v4l2_compression)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
784 #endif
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
785 #define VIDIOC_REQBUFS _IOWR ('V', 8, struct v4l2_requestbuffers)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
786 #define VIDIOC_QUERYBUF _IOWR ('V', 9, struct v4l2_buffer)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
787 #define VIDIOC_G_FBUF _IOR ('V', 10, struct v4l2_framebuffer)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
788 #define VIDIOC_S_FBUF _IOW ('V', 11, struct v4l2_framebuffer)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
789 #define VIDIOC_OVERLAY _IOWR ('V', 14, int)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
790 #define VIDIOC_QBUF _IOWR ('V', 15, struct v4l2_buffer)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
791 #define VIDIOC_DQBUF _IOWR ('V', 17, struct v4l2_buffer)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
792 #define VIDIOC_STREAMON _IOW ('V', 18, int)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
793 #define VIDIOC_STREAMOFF _IOW ('V', 19, int)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
794 #define VIDIOC_G_PARM _IOWR ('V', 21, struct v4l2_streamparm)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
795 #define VIDIOC_S_PARM _IOW ('V', 22, struct v4l2_streamparm)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
796 #define VIDIOC_G_STD _IOR ('V', 23, v4l2_std_id)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
797 #define VIDIOC_S_STD _IOW ('V', 24, v4l2_std_id)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
798 #define VIDIOC_ENUMSTD _IOWR ('V', 25, struct v4l2_standard)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
799 #define VIDIOC_ENUMINPUT _IOWR ('V', 26, struct v4l2_input)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
800 #define VIDIOC_G_CTRL _IOWR ('V', 27, struct v4l2_control)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
801 #define VIDIOC_S_CTRL _IOW ('V', 28, struct v4l2_control)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
802 #define VIDIOC_G_TUNER _IOWR ('V', 29, struct v4l2_tuner)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
803 #define VIDIOC_S_TUNER _IOW ('V', 30, struct v4l2_tuner)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
804 #define VIDIOC_G_AUDIO _IOWR ('V', 33, struct v4l2_audio)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
805 #define VIDIOC_S_AUDIO _IOW ('V', 34, struct v4l2_audio)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
806 #define VIDIOC_QUERYCTRL _IOWR ('V', 36, struct v4l2_queryctrl)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
807 #define VIDIOC_QUERYMENU _IOWR ('V', 37, struct v4l2_querymenu)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
808 #define VIDIOC_G_INPUT _IOR ('V', 38, int)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
809 #define VIDIOC_S_INPUT _IOWR ('V', 39, int)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
810 #define VIDIOC_G_OUTPUT _IOR ('V', 46, int)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
811 #define VIDIOC_S_OUTPUT _IOWR ('V', 47, int)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
812 #define VIDIOC_ENUMOUTPUT _IOWR ('V', 48, struct v4l2_output)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
813 #define VIDIOC_G_AUDOUT _IOWR ('V', 49, struct v4l2_audioout)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
814 #define VIDIOC_S_AUDOUT _IOW ('V', 50, struct v4l2_audioout)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
815 #define VIDIOC_G_MODULATOR _IOWR ('V', 54, struct v4l2_modulator)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
816 #define VIDIOC_S_MODULATOR _IOW ('V', 55, struct v4l2_modulator)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
817 #define VIDIOC_G_FREQUENCY _IOWR ('V', 56, struct v4l2_frequency)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
818 #define VIDIOC_S_FREQUENCY _IOW ('V', 57, struct v4l2_frequency)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
819 #define VIDIOC_CROPCAP _IOR ('V', 58, struct v4l2_cropcap)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
820 #define VIDIOC_G_CROP _IOWR ('V', 59, struct v4l2_crop)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
821 #define VIDIOC_S_CROP _IOW ('V', 60, struct v4l2_crop)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
822 #define VIDIOC_G_JPEGCOMP _IOR ('V', 61, struct v4l2_jpegcompression)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
823 #define VIDIOC_S_JPEGCOMP _IOW ('V', 62, struct v4l2_jpegcompression)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
824 #define VIDIOC_QUERYSTD _IOR ('V', 63, v4l2_std_id)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
825 #define VIDIOC_TRY_FMT _IOWR ('V', 64, struct v4l2_format)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
826
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
827 #define BASE_VIDIOC_PRIVATE 192 /* 192-255 are private */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
828
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
829
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
830 #ifdef __KERNEL__
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
831 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
832 *
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
833 * V 4 L 2 D R I V E R H E L P E R A P I
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
834 *
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
835 * Some commonly needed functions for drivers (v4l2-common.o module)
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
836 */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
837 #include <linux/fs.h>
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
838
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
839 /* Video standard functions */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
840 extern unsigned int v4l2_video_std_fps(struct v4l2_standard *vs);
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
841 extern int v4l2_video_std_construct(struct v4l2_standard *vs,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
842 int id, char *name);
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
843
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
844 /* Compatibility layer interface */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
845 typedef int (*v4l2_kioctl)(struct inode *inode, struct file *file,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
846 unsigned int cmd, void *arg);
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
847 int v4l_compat_translate_ioctl(struct inode *inode, struct file *file,
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
848 int cmd, void *arg, v4l2_kioctl driver_ioctl);
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
849
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
850 /* names for fancy debug output */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
851 extern char *v4l2_field_names[];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
852 extern char *v4l2_type_names[];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
853 extern char *v4l2_ioctl_names[];
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
854
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
855 #endif /* __KERNEL__ */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
856 #endif /* __LINUX_VIDEODEV2_H */
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
857
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
858 /*
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
859 * Local variables:
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
860 * c-basic-offset: 8
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
861 * End:
527e978cb0f8 v4l2 support
henry
parents:
diff changeset
862 */