Lines 1-662
Link Here
|
1 |
--- contrib/freebsd/include/linux/videodev2.h.orig 2015-05-06 19:24:59 UTC |
|
|
2 |
+++ contrib/freebsd/include/linux/videodev2.h |
3 |
@@ -46,7 +46,7 @@ |
4 |
* All kernel-specific stuff were moved to media/v4l2-dev.h, so |
5 |
* no #if __KERNEL tests are allowed here |
6 |
* |
7 |
- * See http://linuxtv.org for more info |
8 |
+ * See https://linuxtv.org for more info |
9 |
* |
10 |
* Author: Bill Dirks <bill@thedirks.org> |
11 |
* Justin Schoeman |
12 |
@@ -170,13 +170,12 @@ enum v4l2_buf_type { |
13 |
V4L2_BUF_TYPE_VBI_OUTPUT = 5, |
14 |
V4L2_BUF_TYPE_SLICED_VBI_CAPTURE = 6, |
15 |
V4L2_BUF_TYPE_SLICED_VBI_OUTPUT = 7, |
16 |
-#if 1 |
17 |
- /* Experimental */ |
18 |
V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY = 8, |
19 |
-#endif |
20 |
V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE = 9, |
21 |
V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE = 10, |
22 |
V4L2_BUF_TYPE_SDR_CAPTURE = 11, |
23 |
+ V4L2_BUF_TYPE_SDR_OUTPUT = 12, |
24 |
+ V4L2_BUF_TYPE_META_CAPTURE = 13, |
25 |
/* Deprecated, do not use */ |
26 |
V4L2_BUF_TYPE_PRIVATE = 0x80, |
27 |
}; |
28 |
@@ -191,16 +190,20 @@ enum v4l2_buf_type { |
29 |
|| (type) == V4L2_BUF_TYPE_VIDEO_OVERLAY \ |
30 |
|| (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY \ |
31 |
|| (type) == V4L2_BUF_TYPE_VBI_OUTPUT \ |
32 |
- || (type) == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT) |
33 |
+ || (type) == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT \ |
34 |
+ || (type) == V4L2_BUF_TYPE_SDR_OUTPUT) |
35 |
|
36 |
enum v4l2_tuner_type { |
37 |
V4L2_TUNER_RADIO = 1, |
38 |
V4L2_TUNER_ANALOG_TV = 2, |
39 |
V4L2_TUNER_DIGITAL_TV = 3, |
40 |
- V4L2_TUNER_ADC = 4, |
41 |
+ V4L2_TUNER_SDR = 4, |
42 |
V4L2_TUNER_RF = 5, |
43 |
}; |
44 |
|
45 |
+/* Deprecated, do not use */ |
46 |
+#define V4L2_TUNER_ADC V4L2_TUNER_SDR |
47 |
+ |
48 |
enum v4l2_memory { |
49 |
V4L2_MEMORY_MMAP = 1, |
50 |
V4L2_MEMORY_USERPTR = 2, |
51 |
@@ -210,32 +213,206 @@ enum v4l2_memory { |
52 |
|
53 |
/* see also http://vektor.theorem.ca/graphics/ycbcr/ */ |
54 |
enum v4l2_colorspace { |
55 |
- /* ITU-R 601 -- broadcast NTSC/PAL */ |
56 |
+ /* |
57 |
+ * Default colorspace, i.e. let the driver figure it out. |
58 |
+ * Can only be used with video capture. |
59 |
+ */ |
60 |
+ V4L2_COLORSPACE_DEFAULT = 0, |
61 |
+ |
62 |
+ /* SMPTE 170M: used for broadcast NTSC/PAL SDTV */ |
63 |
V4L2_COLORSPACE_SMPTE170M = 1, |
64 |
|
65 |
- /* 1125-Line (US) HDTV */ |
66 |
+ /* Obsolete pre-1998 SMPTE 240M HDTV standard, superseded by Rec 709 */ |
67 |
V4L2_COLORSPACE_SMPTE240M = 2, |
68 |
|
69 |
- /* HD and modern captures. */ |
70 |
+ /* Rec.709: used for HDTV */ |
71 |
V4L2_COLORSPACE_REC709 = 3, |
72 |
|
73 |
- /* broken BT878 extents (601, luma range 16-253 instead of 16-235) */ |
74 |
+ /* |
75 |
+ * Deprecated, do not use. No driver will ever return this. This was |
76 |
+ * based on a misunderstanding of the bt878 datasheet. |
77 |
+ */ |
78 |
V4L2_COLORSPACE_BT878 = 4, |
79 |
|
80 |
- /* These should be useful. Assume 601 extents. */ |
81 |
+ /* |
82 |
+ * NTSC 1953 colorspace. This only makes sense when dealing with |
83 |
+ * really, really old NTSC recordings. Superseded by SMPTE 170M. |
84 |
+ */ |
85 |
V4L2_COLORSPACE_470_SYSTEM_M = 5, |
86 |
+ |
87 |
+ /* |
88 |
+ * EBU Tech 3213 PAL/SECAM colorspace. This only makes sense when |
89 |
+ * dealing with really old PAL/SECAM recordings. Superseded by |
90 |
+ * SMPTE 170M. |
91 |
+ */ |
92 |
V4L2_COLORSPACE_470_SYSTEM_BG = 6, |
93 |
|
94 |
- /* I know there will be cameras that send this. So, this is |
95 |
- * unspecified chromaticities and full 0-255 on each of the |
96 |
- * Y'CbCr components |
97 |
+ /* |
98 |
+ * Effectively shorthand for V4L2_COLORSPACE_SRGB, V4L2_YCBCR_ENC_601 |
99 |
+ * and V4L2_QUANTIZATION_FULL_RANGE. To be used for (Motion-)JPEG. |
100 |
*/ |
101 |
V4L2_COLORSPACE_JPEG = 7, |
102 |
|
103 |
- /* For RGB colourspaces, this is probably a good start. */ |
104 |
+ /* For RGB colorspaces such as produces by most webcams. */ |
105 |
V4L2_COLORSPACE_SRGB = 8, |
106 |
+ |
107 |
+ /* AdobeRGB colorspace */ |
108 |
+ V4L2_COLORSPACE_ADOBERGB = 9, |
109 |
+ |
110 |
+ /* BT.2020 colorspace, used for UHDTV. */ |
111 |
+ V4L2_COLORSPACE_BT2020 = 10, |
112 |
+ |
113 |
+ /* Raw colorspace: for RAW unprocessed images */ |
114 |
+ V4L2_COLORSPACE_RAW = 11, |
115 |
+ |
116 |
+ /* DCI-P3 colorspace, used by cinema projectors */ |
117 |
+ V4L2_COLORSPACE_DCI_P3 = 12, |
118 |
}; |
119 |
|
120 |
+/* |
121 |
+ * Determine how COLORSPACE_DEFAULT should map to a proper colorspace. |
122 |
+ * This depends on whether this is a SDTV image (use SMPTE 170M), an |
123 |
+ * HDTV image (use Rec. 709), or something else (use sRGB). |
124 |
+ */ |
125 |
+#define V4L2_MAP_COLORSPACE_DEFAULT(is_sdtv, is_hdtv) \ |
126 |
+ ((is_sdtv) ? V4L2_COLORSPACE_SMPTE170M : \ |
127 |
+ ((is_hdtv) ? V4L2_COLORSPACE_REC709 : V4L2_COLORSPACE_SRGB)) |
128 |
+ |
129 |
+enum v4l2_xfer_func { |
130 |
+ /* |
131 |
+ * Mapping of V4L2_XFER_FUNC_DEFAULT to actual transfer functions |
132 |
+ * for the various colorspaces: |
133 |
+ * |
134 |
+ * V4L2_COLORSPACE_SMPTE170M, V4L2_COLORSPACE_470_SYSTEM_M, |
135 |
+ * V4L2_COLORSPACE_470_SYSTEM_BG, V4L2_COLORSPACE_REC709 and |
136 |
+ * V4L2_COLORSPACE_BT2020: V4L2_XFER_FUNC_709 |
137 |
+ * |
138 |
+ * V4L2_COLORSPACE_SRGB, V4L2_COLORSPACE_JPEG: V4L2_XFER_FUNC_SRGB |
139 |
+ * |
140 |
+ * V4L2_COLORSPACE_ADOBERGB: V4L2_XFER_FUNC_ADOBERGB |
141 |
+ * |
142 |
+ * V4L2_COLORSPACE_SMPTE240M: V4L2_XFER_FUNC_SMPTE240M |
143 |
+ * |
144 |
+ * V4L2_COLORSPACE_RAW: V4L2_XFER_FUNC_NONE |
145 |
+ * |
146 |
+ * V4L2_COLORSPACE_DCI_P3: V4L2_XFER_FUNC_DCI_P3 |
147 |
+ */ |
148 |
+ V4L2_XFER_FUNC_DEFAULT = 0, |
149 |
+ V4L2_XFER_FUNC_709 = 1, |
150 |
+ V4L2_XFER_FUNC_SRGB = 2, |
151 |
+ V4L2_XFER_FUNC_ADOBERGB = 3, |
152 |
+ V4L2_XFER_FUNC_SMPTE240M = 4, |
153 |
+ V4L2_XFER_FUNC_NONE = 5, |
154 |
+ V4L2_XFER_FUNC_DCI_P3 = 6, |
155 |
+ V4L2_XFER_FUNC_SMPTE2084 = 7, |
156 |
+}; |
157 |
+ |
158 |
+/* |
159 |
+ * Determine how XFER_FUNC_DEFAULT should map to a proper transfer function. |
160 |
+ * This depends on the colorspace. |
161 |
+ */ |
162 |
+#define V4L2_MAP_XFER_FUNC_DEFAULT(colsp) \ |
163 |
+ ((colsp) == V4L2_COLORSPACE_ADOBERGB ? V4L2_XFER_FUNC_ADOBERGB : \ |
164 |
+ ((colsp) == V4L2_COLORSPACE_SMPTE240M ? V4L2_XFER_FUNC_SMPTE240M : \ |
165 |
+ ((colsp) == V4L2_COLORSPACE_DCI_P3 ? V4L2_XFER_FUNC_DCI_P3 : \ |
166 |
+ ((colsp) == V4L2_COLORSPACE_RAW ? V4L2_XFER_FUNC_NONE : \ |
167 |
+ ((colsp) == V4L2_COLORSPACE_SRGB || (colsp) == V4L2_COLORSPACE_JPEG ? \ |
168 |
+ V4L2_XFER_FUNC_SRGB : V4L2_XFER_FUNC_709))))) |
169 |
+ |
170 |
+enum v4l2_ycbcr_encoding { |
171 |
+ /* |
172 |
+ * Mapping of V4L2_YCBCR_ENC_DEFAULT to actual encodings for the |
173 |
+ * various colorspaces: |
174 |
+ * |
175 |
+ * V4L2_COLORSPACE_SMPTE170M, V4L2_COLORSPACE_470_SYSTEM_M, |
176 |
+ * V4L2_COLORSPACE_470_SYSTEM_BG, V4L2_COLORSPACE_SRGB, |
177 |
+ * V4L2_COLORSPACE_ADOBERGB and V4L2_COLORSPACE_JPEG: V4L2_YCBCR_ENC_601 |
178 |
+ * |
179 |
+ * V4L2_COLORSPACE_REC709 and V4L2_COLORSPACE_DCI_P3: V4L2_YCBCR_ENC_709 |
180 |
+ * |
181 |
+ * V4L2_COLORSPACE_BT2020: V4L2_YCBCR_ENC_BT2020 |
182 |
+ * |
183 |
+ * V4L2_COLORSPACE_SMPTE240M: V4L2_YCBCR_ENC_SMPTE240M |
184 |
+ */ |
185 |
+ V4L2_YCBCR_ENC_DEFAULT = 0, |
186 |
+ |
187 |
+ /* ITU-R 601 -- SDTV */ |
188 |
+ V4L2_YCBCR_ENC_601 = 1, |
189 |
+ |
190 |
+ /* Rec. 709 -- HDTV */ |
191 |
+ V4L2_YCBCR_ENC_709 = 2, |
192 |
+ |
193 |
+ /* ITU-R 601/EN 61966-2-4 Extended Gamut -- SDTV */ |
194 |
+ V4L2_YCBCR_ENC_XV601 = 3, |
195 |
+ |
196 |
+ /* Rec. 709/EN 61966-2-4 Extended Gamut -- HDTV */ |
197 |
+ V4L2_YCBCR_ENC_XV709 = 4, |
198 |
+ |
199 |
+#ifndef __KERNEL__ |
200 |
+ /* |
201 |
+ * sYCC (Y'CbCr encoding of sRGB), identical to ENC_601. It was added |
202 |
+ * originally due to a misunderstanding of the sYCC standard. It should |
203 |
+ * not be used, instead use V4L2_YCBCR_ENC_601. |
204 |
+ */ |
205 |
+ V4L2_YCBCR_ENC_SYCC = 5, |
206 |
+#endif |
207 |
+ |
208 |
+ /* BT.2020 Non-constant Luminance Y'CbCr */ |
209 |
+ V4L2_YCBCR_ENC_BT2020 = 6, |
210 |
+ |
211 |
+ /* BT.2020 Constant Luminance Y'CbcCrc */ |
212 |
+ V4L2_YCBCR_ENC_BT2020_CONST_LUM = 7, |
213 |
+ |
214 |
+ /* SMPTE 240M -- Obsolete HDTV */ |
215 |
+ V4L2_YCBCR_ENC_SMPTE240M = 8, |
216 |
+}; |
217 |
+ |
218 |
+/* |
219 |
+ * enum v4l2_hsv_encoding values should not collide with the ones from |
220 |
+ * enum v4l2_ycbcr_encoding. |
221 |
+ */ |
222 |
+enum v4l2_hsv_encoding { |
223 |
+ |
224 |
+ /* Hue mapped to 0 - 179 */ |
225 |
+ V4L2_HSV_ENC_180 = 128, |
226 |
+ |
227 |
+ /* Hue mapped to 0-255 */ |
228 |
+ V4L2_HSV_ENC_256 = 129, |
229 |
+}; |
230 |
+ |
231 |
+/* |
232 |
+ * Determine how YCBCR_ENC_DEFAULT should map to a proper Y'CbCr encoding. |
233 |
+ * This depends on the colorspace. |
234 |
+ */ |
235 |
+#define V4L2_MAP_YCBCR_ENC_DEFAULT(colsp) \ |
236 |
+ (((colsp) == V4L2_COLORSPACE_REC709 || \ |
237 |
+ (colsp) == V4L2_COLORSPACE_DCI_P3) ? V4L2_YCBCR_ENC_709 : \ |
238 |
+ ((colsp) == V4L2_COLORSPACE_BT2020 ? V4L2_YCBCR_ENC_BT2020 : \ |
239 |
+ ((colsp) == V4L2_COLORSPACE_SMPTE240M ? V4L2_YCBCR_ENC_SMPTE240M : \ |
240 |
+ V4L2_YCBCR_ENC_601))) |
241 |
+ |
242 |
+enum v4l2_quantization { |
243 |
+ /* |
244 |
+ * The default for R'G'B' quantization is always full range, except |
245 |
+ * for the BT2020 colorspace. For Y'CbCr the quantization is always |
246 |
+ * limited range, except for COLORSPACE_JPEG: this is full range. |
247 |
+ */ |
248 |
+ V4L2_QUANTIZATION_DEFAULT = 0, |
249 |
+ V4L2_QUANTIZATION_FULL_RANGE = 1, |
250 |
+ V4L2_QUANTIZATION_LIM_RANGE = 2, |
251 |
+}; |
252 |
+ |
253 |
+/* |
254 |
+ * Determine how QUANTIZATION_DEFAULT should map to a proper quantization. |
255 |
+ * This depends on whether the image is RGB or not, the colorspace and the |
256 |
+ * Y'CbCr encoding. |
257 |
+ */ |
258 |
+#define V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb_or_hsv, colsp, ycbcr_enc) \ |
259 |
+ (((is_rgb_or_hsv) && (colsp) == V4L2_COLORSPACE_BT2020) ? \ |
260 |
+ V4L2_QUANTIZATION_LIM_RANGE : \ |
261 |
+ (((is_rgb_or_hsv) || (colsp) == V4L2_COLORSPACE_JPEG) ? \ |
262 |
+ V4L2_QUANTIZATION_FULL_RANGE : V4L2_QUANTIZATION_LIM_RANGE)) |
263 |
+ |
264 |
enum v4l2_priority { |
265 |
V4L2_PRIORITY_UNSET = 0, /* not initialized */ |
266 |
V4L2_PRIORITY_BACKGROUND = 1, |
267 |
@@ -306,11 +483,15 @@ struct v4l2_capability { |
268 |
|
269 |
#define V4L2_CAP_SDR_CAPTURE 0x00100000 /* Is a SDR capture device */ |
270 |
#define V4L2_CAP_EXT_PIX_FORMAT 0x00200000 /* Supports the extended pixel format */ |
271 |
+#define V4L2_CAP_SDR_OUTPUT 0x00400000 /* Is a SDR output device */ |
272 |
+#define V4L2_CAP_META_CAPTURE 0x00800000 /* Is a metadata capture device */ |
273 |
|
274 |
#define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */ |
275 |
#define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */ |
276 |
#define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */ |
277 |
|
278 |
+#define V4L2_CAP_TOUCH 0x10000000 /* Is a touch device */ |
279 |
+ |
280 |
#define V4L2_CAP_DEVICE_CAPS 0x80000000 /* sets device capabilities field */ |
281 |
|
282 |
/* |
283 |
@@ -326,6 +507,12 @@ struct v4l2_pix_format { |
284 |
uint32_t colorspace; /* enum v4l2_colorspace */ |
285 |
uint32_t priv; /* private data, depends on pixelformat */ |
286 |
uint32_t flags; /* format flags (V4L2_PIX_FMT_FLAG_*) */ |
287 |
+ union { |
288 |
+ uint32_t ycbcr_enc; |
289 |
+ uint32_t hsv_enc; |
290 |
+ }; |
291 |
+ uint32_t quantization; |
292 |
+ uint32_t xfer_func; |
293 |
}; |
294 |
|
295 |
/* Pixel format FOURCC depth Description */ |
296 |
@@ -360,6 +547,7 @@ struct v4l2_pix_format { |
297 |
#define V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ') /* 10 Greyscale */ |
298 |
#define V4L2_PIX_FMT_Y12 v4l2_fourcc('Y', '1', '2', ' ') /* 12 Greyscale */ |
299 |
#define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ') /* 16 Greyscale */ |
300 |
+#define V4L2_PIX_FMT_Y16_BE v4l2_fourcc_be('Y', '1', '6', ' ') /* 16 Greyscale BE */ |
301 |
|
302 |
/* Grey bit-packed formats */ |
303 |
#define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */ |
304 |
@@ -371,22 +559,16 @@ struct v4l2_pix_format { |
305 |
#define V4L2_PIX_FMT_UV8 v4l2_fourcc('U', 'V', '8', ' ') /* 8 UV 4:4 */ |
306 |
|
307 |
/* Luminance+Chrominance formats */ |
308 |
-#define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9') /* 9 YVU 4:1:0 */ |
309 |
-#define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') /* 12 YVU 4:2:0 */ |
310 |
#define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y', 'U', 'Y', 'V') /* 16 YUV 4:2:2 */ |
311 |
#define V4L2_PIX_FMT_YYUV v4l2_fourcc('Y', 'Y', 'U', 'V') /* 16 YUV 4:2:2 */ |
312 |
#define V4L2_PIX_FMT_YVYU v4l2_fourcc('Y', 'V', 'Y', 'U') /* 16 YVU 4:2:2 */ |
313 |
#define V4L2_PIX_FMT_UYVY v4l2_fourcc('U', 'Y', 'V', 'Y') /* 16 YUV 4:2:2 */ |
314 |
#define V4L2_PIX_FMT_VYUY v4l2_fourcc('V', 'Y', 'U', 'Y') /* 16 YUV 4:2:2 */ |
315 |
-#define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4', '2', '2', 'P') /* 16 YVU422 planar */ |
316 |
-#define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P') /* 16 YVU411 planar */ |
317 |
#define V4L2_PIX_FMT_Y41P v4l2_fourcc('Y', '4', '1', 'P') /* 12 YUV 4:1:1 */ |
318 |
#define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4') /* 16 xxxxyyyy uuuuvvvv */ |
319 |
#define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O') /* 16 YUV-5-5-5 */ |
320 |
#define V4L2_PIX_FMT_YUV565 v4l2_fourcc('Y', 'U', 'V', 'P') /* 16 YUV-5-6-5 */ |
321 |
#define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4') /* 32 YUV-8-8-8-8 */ |
322 |
-#define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9') /* 9 YUV 4:1:0 */ |
323 |
-#define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y', 'U', '1', '2') /* 12 YUV 4:2:0 */ |
324 |
#define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* 8 8-bit color */ |
325 |
#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */ |
326 |
#define V4L2_PIX_FMT_M420 v4l2_fourcc('M', '4', '2', '0') /* 12 YUV 4:2:0 2 lines y, 1 line uv interleaved */ |
327 |
@@ -407,9 +589,21 @@ struct v4l2_pix_format { |
328 |
#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 64x32 macroblocks */ |
329 |
#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 16x16 macroblocks */ |
330 |
|
331 |
+/* three planes - Y Cb, Cr */ |
332 |
+#define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9') /* 9 YUV 4:1:0 */ |
333 |
+#define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9') /* 9 YVU 4:1:0 */ |
334 |
+#define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P') /* 12 YVU411 planar */ |
335 |
+#define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y', 'U', '1', '2') /* 12 YUV 4:2:0 */ |
336 |
+#define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') /* 12 YVU 4:2:0 */ |
337 |
+#define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4', '2', '2', 'P') /* 16 YVU422 planar */ |
338 |
+ |
339 |
/* three non contiguous planes - Y, Cb, Cr */ |
340 |
#define V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'M', '1', '2') /* 12 YUV420 planar */ |
341 |
#define V4L2_PIX_FMT_YVU420M v4l2_fourcc('Y', 'M', '2', '1') /* 12 YVU420 planar */ |
342 |
+#define V4L2_PIX_FMT_YUV422M v4l2_fourcc('Y', 'M', '1', '6') /* 16 YUV422 planar */ |
343 |
+#define V4L2_PIX_FMT_YVU422M v4l2_fourcc('Y', 'M', '6', '1') /* 16 YVU422 planar */ |
344 |
+#define V4L2_PIX_FMT_YUV444M v4l2_fourcc('Y', 'M', '2', '4') /* 24 YUV444 planar */ |
345 |
+#define V4L2_PIX_FMT_YVU444M v4l2_fourcc('Y', 'M', '4', '2') /* 24 YVU444 planar */ |
346 |
|
347 |
/* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */ |
348 |
#define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1') /* 8 BGBG.. GRGR.. */ |
349 |
@@ -420,10 +614,11 @@ struct v4l2_pix_format { |
350 |
#define V4L2_PIX_FMT_SGBRG10 v4l2_fourcc('G', 'B', '1', '0') /* 10 GBGB.. RGRG.. */ |
351 |
#define V4L2_PIX_FMT_SGRBG10 v4l2_fourcc('B', 'A', '1', '0') /* 10 GRGR.. BGBG.. */ |
352 |
#define V4L2_PIX_FMT_SRGGB10 v4l2_fourcc('R', 'G', '1', '0') /* 10 RGRG.. GBGB.. */ |
353 |
-#define V4L2_PIX_FMT_SBGGR12 v4l2_fourcc('B', 'G', '1', '2') /* 12 BGBG.. GRGR.. */ |
354 |
-#define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12 GBGB.. RGRG.. */ |
355 |
-#define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */ |
356 |
-#define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */ |
357 |
+ /* 10bit raw bayer packed, 5 bytes for every 4 pixels */ |
358 |
+#define V4L2_PIX_FMT_SBGGR10P v4l2_fourcc('p', 'B', 'A', 'A') |
359 |
+#define V4L2_PIX_FMT_SGBRG10P v4l2_fourcc('p', 'G', 'A', 'A') |
360 |
+#define V4L2_PIX_FMT_SGRBG10P v4l2_fourcc('p', 'g', 'A', 'A') |
361 |
+#define V4L2_PIX_FMT_SRGGB10P v4l2_fourcc('p', 'R', 'A', 'A') |
362 |
/* 10bit raw bayer a-law compressed to 8 bits */ |
363 |
#define V4L2_PIX_FMT_SBGGR10ALAW8 v4l2_fourcc('a', 'B', 'A', '8') |
364 |
#define V4L2_PIX_FMT_SGBRG10ALAW8 v4l2_fourcc('a', 'G', 'A', '8') |
365 |
@@ -434,11 +629,23 @@ struct v4l2_pix_format { |
366 |
#define V4L2_PIX_FMT_SGBRG10DPCM8 v4l2_fourcc('b', 'G', 'A', '8') |
367 |
#define V4L2_PIX_FMT_SGRBG10DPCM8 v4l2_fourcc('B', 'D', '1', '0') |
368 |
#define V4L2_PIX_FMT_SRGGB10DPCM8 v4l2_fourcc('b', 'R', 'A', '8') |
369 |
- /* |
370 |
- * 10bit raw bayer, expanded to 16 bits |
371 |
- * xxxxrrrrrrrrrrxxxxgggggggggg xxxxggggggggggxxxxbbbbbbbbbb... |
372 |
- */ |
373 |
+#define V4L2_PIX_FMT_SBGGR12 v4l2_fourcc('B', 'G', '1', '2') /* 12 BGBG.. GRGR.. */ |
374 |
+#define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12 GBGB.. RGRG.. */ |
375 |
+#define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */ |
376 |
+#define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */ |
377 |
+ /* 12bit raw bayer packed, 6 bytes for every 4 pixels */ |
378 |
+#define V4L2_PIX_FMT_SBGGR12P v4l2_fourcc('p', 'B', 'C', 'C') |
379 |
+#define V4L2_PIX_FMT_SGBRG12P v4l2_fourcc('p', 'G', 'C', 'C') |
380 |
+#define V4L2_PIX_FMT_SGRBG12P v4l2_fourcc('p', 'g', 'C', 'C') |
381 |
+#define V4L2_PIX_FMT_SRGGB12P v4l2_fourcc('p', 'R', 'C', 'C') |
382 |
#define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2') /* 16 BGBG.. GRGR.. */ |
383 |
+#define V4L2_PIX_FMT_SGBRG16 v4l2_fourcc('G', 'B', '1', '6') /* 16 GBGB.. RGRG.. */ |
384 |
+#define V4L2_PIX_FMT_SGRBG16 v4l2_fourcc('G', 'R', '1', '6') /* 16 GRGR.. BGBG.. */ |
385 |
+#define V4L2_PIX_FMT_SRGGB16 v4l2_fourcc('R', 'G', '1', '6') /* 16 RGRG.. GBGB.. */ |
386 |
+ |
387 |
+/* HSV formats */ |
388 |
+#define V4L2_PIX_FMT_HSV24 v4l2_fourcc('H', 'S', 'V', '3') |
389 |
+#define V4L2_PIX_FMT_HSV32 v4l2_fourcc('H', 'S', 'V', '4') |
390 |
|
391 |
/* compressed formats */ |
392 |
#define V4L2_PIX_FMT_MJPEG v4l2_fourcc('M', 'J', 'P', 'G') /* Motion-JPEG */ |
393 |
@@ -456,6 +663,8 @@ struct v4l2_pix_format { |
394 |
#define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G') /* SMPTE 421M Annex G compliant stream */ |
395 |
#define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */ |
396 |
#define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */ |
397 |
+#define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0') /* VP9 */ |
398 |
+#define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C') /* HEVC aka H.265 */ |
399 |
|
400 |
/* Vendor-specific formats */ |
401 |
#define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */ |
402 |
@@ -484,6 +693,17 @@ struct v4l2_pix_format { |
403 |
#define V4L2_PIX_FMT_JPGL v4l2_fourcc('J', 'P', 'G', 'L') /* JPEG-Lite */ |
404 |
#define V4L2_PIX_FMT_SE401 v4l2_fourcc('S', '4', '0', '1') /* se401 janggu compressed rgb */ |
405 |
#define V4L2_PIX_FMT_S5C_UYVY_JPG v4l2_fourcc('S', '5', 'C', 'I') /* S5C73M3 interleaved UYVY/JPEG */ |
406 |
+#define V4L2_PIX_FMT_Y8I v4l2_fourcc('Y', '8', 'I', ' ') /* Greyscale 8-bit L/R interleaved */ |
407 |
+#define V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I') /* Greyscale 12-bit L/R interleaved */ |
408 |
+#define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */ |
409 |
+#define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode */ |
410 |
+#define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar Greyscale 10-bit and Depth 16-bit */ |
411 |
+ |
412 |
+/* 10bit raw bayer packed, 32 bytes for every 25 pixels, last LSB 6 bits unused */ |
413 |
+#define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b') /* IPU3 packed 10-bit BGGR bayer */ |
414 |
+#define V4L2_PIX_FMT_IPU3_SGBRG10 v4l2_fourcc('i', 'p', '3', 'g') /* IPU3 packed 10-bit GBRG bayer */ |
415 |
+#define V4L2_PIX_FMT_IPU3_SGRBG10 v4l2_fourcc('i', 'p', '3', 'G') /* IPU3 packed 10-bit GRBG bayer */ |
416 |
+#define V4L2_PIX_FMT_IPU3_SRGGB10 v4l2_fourcc('i', 'p', '3', 'r') /* IPU3 packed 10-bit RGGB bayer */ |
417 |
|
418 |
/* SDR formats - used only for Software Defined Radio devices */ |
419 |
#define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */ |
420 |
@@ -491,6 +711,20 @@ struct v4l2_pix_format { |
421 |
#define V4L2_SDR_FMT_CS8 v4l2_fourcc('C', 'S', '0', '8') /* complex s8 */ |
422 |
#define V4L2_SDR_FMT_CS14LE v4l2_fourcc('C', 'S', '1', '4') /* complex s14le */ |
423 |
#define V4L2_SDR_FMT_RU12LE v4l2_fourcc('R', 'U', '1', '2') /* real u12le */ |
424 |
+#define V4L2_SDR_FMT_PCU16BE v4l2_fourcc('P', 'C', '1', '6') /* planar complex u16be */ |
425 |
+#define V4L2_SDR_FMT_PCU18BE v4l2_fourcc('P', 'C', '1', '8') /* planar complex u18be */ |
426 |
+#define V4L2_SDR_FMT_PCU20BE v4l2_fourcc('P', 'C', '2', '0') /* planar complex u20be */ |
427 |
+ |
428 |
+/* Touch formats - used for Touch devices */ |
429 |
+#define V4L2_TCH_FMT_DELTA_TD16 v4l2_fourcc('T', 'D', '1', '6') /* 16-bit signed deltas */ |
430 |
+#define V4L2_TCH_FMT_DELTA_TD08 v4l2_fourcc('T', 'D', '0', '8') /* 8-bit signed deltas */ |
431 |
+#define V4L2_TCH_FMT_TU16 v4l2_fourcc('T', 'U', '1', '6') /* 16-bit unsigned touch data */ |
432 |
+#define V4L2_TCH_FMT_TU08 v4l2_fourcc('T', 'U', '0', '8') /* 8-bit unsigned touch data */ |
433 |
+ |
434 |
+/* Meta-data formats */ |
435 |
+#define V4L2_META_FMT_VSP1_HGO v4l2_fourcc('V', 'S', 'P', 'H') /* R-Car VSP1 1-D Histogram */ |
436 |
+#define V4L2_META_FMT_VSP1_HGT v4l2_fourcc('V', 'S', 'P', 'T') /* R-Car VSP1 2-D Histogram */ |
437 |
+#define V4L2_META_FMT_UVC v4l2_fourcc('U', 'V', 'C', 'H') /* UVC Payload Header metadata */ |
438 |
|
439 |
/* priv field value to indicates that subsequent fields are valid. */ |
440 |
#define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe |
441 |
@@ -513,8 +747,7 @@ struct v4l2_fmtdesc { |
442 |
#define V4L2_FMT_FLAG_COMPRESSED 0x0001 |
443 |
#define V4L2_FMT_FLAG_EMULATED 0x0002 |
444 |
|
445 |
-#if 1 |
446 |
- /* Experimental Frame Size and frame rate enumeration */ |
447 |
+ /* Frame Size and frame rate enumeration */ |
448 |
/* |
449 |
* F R A M E S I Z E E N U M E R A T I O N |
450 |
*/ |
451 |
@@ -580,7 +813,6 @@ struct v4l2_frmivalenum { |
452 |
|
453 |
uint32_t reserved[2]; /* Reserved space for future use */ |
454 |
}; |
455 |
-#endif |
456 |
|
457 |
/* |
458 |
* T I M E C O D E |
459 |
@@ -765,6 +997,8 @@ struct v4l2_buffer { |
460 |
#define V4L2_BUF_FLAG_TSTAMP_SRC_MASK 0x00070000 |
461 |
#define V4L2_BUF_FLAG_TSTAMP_SRC_EOF 0x00000000 |
462 |
#define V4L2_BUF_FLAG_TSTAMP_SRC_SOE 0x00010000 |
463 |
+/* mem2mem encoder/decoder */ |
464 |
+#define V4L2_BUF_FLAG_LAST 0x00100000 |
465 |
|
466 |
/** |
467 |
* struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor |
468 |
@@ -1073,6 +1307,9 @@ struct v4l2_standard { |
469 |
* (aka field 2) of interlaced field formats |
470 |
* @standards: Standards the timing belongs to |
471 |
* @flags: Flags |
472 |
+ * @picture_aspect: The picture aspect ratio (hor/vert). |
473 |
+ * @cea861_vic: VIC code as per the CEA-861 standard. |
474 |
+ * @hdmi_vic: VIC code as per the HDMI standard. |
475 |
* @reserved: Reserved fields, must be zeroed. |
476 |
* |
477 |
* A note regarding vertical interlaced timings: height refers to the total |
478 |
@@ -1102,7 +1339,10 @@ struct v4l2_bt_timings { |
479 |
uint32_t il_vbackporch; |
480 |
uint32_t standards; |
481 |
uint32_t flags; |
482 |
- uint32_t reserved[14]; |
483 |
+ struct v4l2_fract picture_aspect; |
484 |
+ uint8_t cea861_vic; |
485 |
+ uint8_t hdmi_vic; |
486 |
+ uint8_t reserved[46]; |
487 |
} __attribute__ ((packed)); |
488 |
|
489 |
/* Interlaced or progressive format */ |
490 |
@@ -1118,6 +1358,7 @@ struct v4l2_bt_timings { |
491 |
#define V4L2_DV_BT_STD_DMT (1 << 1) /* VESA Discrete Monitor Timings */ |
492 |
#define V4L2_DV_BT_STD_CVT (1 << 2) /* VESA Coordinated Video Timings */ |
493 |
#define V4L2_DV_BT_STD_GTF (1 << 3) /* VESA Generalized Timings Formula */ |
494 |
+#define V4L2_DV_BT_STD_SDI (1 << 4) /* SDI Timings */ |
495 |
|
496 |
/* Flags */ |
497 |
|
498 |
@@ -1143,6 +1384,36 @@ struct v4l2_bt_timings { |
499 |
exactly the same number of half-lines. Whether half-lines can be detected |
500 |
or used depends on the hardware. */ |
501 |
#define V4L2_DV_FL_HALF_LINE (1 << 3) |
502 |
+/* |
503 |
+ * If set, then this is a Consumer Electronics (CE) video format. Such formats |
504 |
+ * differ from other formats (commonly called IT formats) in that if RGB |
505 |
+ * encoding is used then by default the RGB values use limited range (i.e. |
506 |
+ * use the range 16-235) as opposed to 0-255. All formats defined in CEA-861 |
507 |
+ * except for the 640x480 format are CE formats. |
508 |
+ */ |
509 |
+#define V4L2_DV_FL_IS_CE_VIDEO (1 << 4) |
510 |
+/* Some formats like SMPTE-125M have an interlaced signal with a odd |
511 |
+ * total height. For these formats, if this flag is set, the first |
512 |
+ * field has the extra line. If not, it is the second field. |
513 |
+ */ |
514 |
+#define V4L2_DV_FL_FIRST_FIELD_EXTRA_LINE (1 << 5) |
515 |
+/* |
516 |
+ * If set, then the picture_aspect field is valid. Otherwise assume that the |
517 |
+ * pixels are square, so the picture aspect ratio is the same as the width to |
518 |
+ * height ratio. |
519 |
+ */ |
520 |
+#define V4L2_DV_FL_HAS_PICTURE_ASPECT (1 << 6) |
521 |
+/* |
522 |
+ * If set, then the cea861_vic field is valid and contains the Video |
523 |
+ * Identification Code as per the CEA-861 standard. |
524 |
+ */ |
525 |
+#define V4L2_DV_FL_HAS_CEA861_VIC (1 << 7) |
526 |
+/* |
527 |
+ * If set, then the hdmi_vic field is valid and contains the Video |
528 |
+ * Identification Code as per the HDMI standard (HDMI Vendor Specific |
529 |
+ * InfoFrame). |
530 |
+ */ |
531 |
+#define V4L2_DV_FL_HAS_HDMI_VIC (1 << 8) |
532 |
|
533 |
/* A few useful defines to calculate the total blanking and frame sizes */ |
534 |
#define V4L2_DV_BT_BLANKING_WIDTH(bt) \ |
535 |
@@ -1252,6 +1523,7 @@ struct v4l2_input { |
536 |
/* Values for the 'type' field */ |
537 |
#define V4L2_INPUT_TYPE_TUNER 1 |
538 |
#define V4L2_INPUT_TYPE_CAMERA 2 |
539 |
+#define V4L2_INPUT_TYPE_TOUCH 3 |
540 |
|
541 |
/* field 'status' - general */ |
542 |
#define V4L2_IN_ST_NO_POWER 0x00000001 /* Attached device is off */ |
543 |
@@ -1266,6 +1538,8 @@ struct v4l2_input { |
544 |
/* field 'status' - analog */ |
545 |
#define V4L2_IN_ST_NO_H_LOCK 0x00000100 /* No horizontal sync lock */ |
546 |
#define V4L2_IN_ST_COLOR_KILL 0x00000200 /* Color killer is active */ |
547 |
+#define V4L2_IN_ST_NO_V_LOCK 0x00000400 /* No vertical sync lock */ |
548 |
+#define V4L2_IN_ST_NO_STD_LOCK 0x00000800 /* No standard format lock */ |
549 |
|
550 |
/* field 'status' - digital */ |
551 |
#define V4L2_IN_ST_NO_SYNC 0x00010000 /* No synchronization lock */ |
552 |
@@ -1281,6 +1555,7 @@ struct v4l2_input { |
553 |
#define V4L2_IN_CAP_DV_TIMINGS 0x00000002 /* Supports S_DV_TIMINGS */ |
554 |
#define V4L2_IN_CAP_CUSTOM_TIMINGS V4L2_IN_CAP_DV_TIMINGS /* For compatibility */ |
555 |
#define V4L2_IN_CAP_STD 0x00000004 /* Supports S_STD */ |
556 |
+#define V4L2_IN_CAP_NATIVE_SIZE 0x00000008 /* Supports setting native size */ |
557 |
|
558 |
/* |
559 |
* V I D E O O U T P U T S |
560 |
@@ -1340,6 +1615,8 @@ struct v4l2_ext_controls { |
561 |
#define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL) |
562 |
#define V4L2_CTRL_DRIVER_PRIV(id) (((id) & 0xffff) >= 0x1000) |
563 |
#define V4L2_CTRL_MAX_DIMS (4) |
564 |
+#define V4L2_CTRL_WHICH_CUR_VAL 0 |
565 |
+#define V4L2_CTRL_WHICH_DEF_VAL 0x0f000000 |
566 |
|
567 |
enum v4l2_ctrl_type { |
568 |
V4L2_CTRL_TYPE_INTEGER = 1, |
569 |
@@ -1410,6 +1687,8 @@ struct v4l2_querymenu { |
570 |
#define V4L2_CTRL_FLAG_WRITE_ONLY 0x0040 |
571 |
#define V4L2_CTRL_FLAG_VOLATILE 0x0080 |
572 |
#define V4L2_CTRL_FLAG_HAS_PAYLOAD 0x0100 |
573 |
+#define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE 0x0200 |
574 |
+#define V4L2_CTRL_FLAG_MODIFY_LAYOUT 0x0400 |
575 |
|
576 |
/* Query flags, to be ORed with the control ID */ |
577 |
#define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 |
578 |
@@ -1562,8 +1841,6 @@ struct v4l2_audioout { |
579 |
|
580 |
/* |
581 |
* M P E G S E R V I C E S |
582 |
- * |
583 |
- * NOTE: EXPERIMENTAL API |
584 |
*/ |
585 |
#if 1 |
586 |
#define V4L2_ENC_IDX_FRAME_I (0) |
587 |
@@ -1809,6 +2086,9 @@ struct v4l2_plane_pix_format { |
588 |
* @plane_fmt: per-plane information |
589 |
* @num_planes: number of planes for this format |
590 |
* @flags: format flags (V4L2_PIX_FMT_FLAG_*) |
591 |
+ * @ycbcr_enc: enum v4l2_ycbcr_encoding, Y'CbCr encoding |
592 |
+ * @quantization: enum v4l2_quantization, colorspace quantization |
593 |
+ * @xfer_func: enum v4l2_xfer_func, colorspace transfer function |
594 |
*/ |
595 |
struct v4l2_pix_format_mplane { |
596 |
uint32_t width; |
597 |
@@ -1820,7 +2100,13 @@ struct v4l2_pix_format_mplane { |
598 |
struct v4l2_plane_pix_format plane_fmt[VIDEO_MAX_PLANES]; |
599 |
uint8_t num_planes; |
600 |
uint8_t flags; |
601 |
- uint8_t reserved[10]; |
602 |
+ union { |
603 |
+ uint8_t ycbcr_enc; |
604 |
+ uint8_t hsv_enc; |
605 |
+ }; |
606 |
+ uint8_t quantization; |
607 |
+ uint8_t xfer_func; |
608 |
+ uint8_t reserved[7]; |
609 |
} __attribute__ ((packed)); |
610 |
|
611 |
/** |
612 |
@@ -2094,45 +2380,32 @@ struct v4l2_create_buffers { |
613 |
#define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_dbg_register) |
614 |
|
615 |
#define VIDIOC_S_HW_FREQ_SEEK _IOW('V', 82, struct v4l2_hw_freq_seek) |
616 |
- |
617 |
#define VIDIOC_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings) |
618 |
#define VIDIOC_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings) |
619 |
#define VIDIOC_DQEVENT _IOR('V', 89, struct v4l2_event) |
620 |
#define VIDIOC_SUBSCRIBE_EVENT _IOW('V', 90, struct v4l2_event_subscription) |
621 |
#define VIDIOC_UNSUBSCRIBE_EVENT _IOW('V', 91, struct v4l2_event_subscription) |
622 |
- |
623 |
-/* Experimental, the below two ioctls may change over the next couple of kernel |
624 |
- versions */ |
625 |
#define VIDIOC_CREATE_BUFS _IOWR('V', 92, struct v4l2_create_buffers) |
626 |
#define VIDIOC_PREPARE_BUF _IOWR('V', 93, struct v4l2_buffer) |
627 |
- |
628 |
-/* Experimental selection API */ |
629 |
#define VIDIOC_G_SELECTION _IOWR('V', 94, struct v4l2_selection) |
630 |
#define VIDIOC_S_SELECTION _IOWR('V', 95, struct v4l2_selection) |
631 |
- |
632 |
-/* Experimental, these two ioctls may change over the next couple of kernel |
633 |
- versions. */ |
634 |
#define VIDIOC_DECODER_CMD _IOWR('V', 96, struct v4l2_decoder_cmd) |
635 |
#define VIDIOC_TRY_DECODER_CMD _IOWR('V', 97, struct v4l2_decoder_cmd) |
636 |
- |
637 |
-/* Experimental, these three ioctls may change over the next couple of kernel |
638 |
- versions. */ |
639 |
#define VIDIOC_ENUM_DV_TIMINGS _IOWR('V', 98, struct v4l2_enum_dv_timings) |
640 |
#define VIDIOC_QUERY_DV_TIMINGS _IOR('V', 99, struct v4l2_dv_timings) |
641 |
#define VIDIOC_DV_TIMINGS_CAP _IOWR('V', 100, struct v4l2_dv_timings_cap) |
642 |
- |
643 |
-/* Experimental, this ioctl may change over the next couple of kernel |
644 |
- versions. */ |
645 |
#define VIDIOC_ENUM_FREQ_BANDS _IOWR('V', 101, struct v4l2_frequency_band) |
646 |
|
647 |
-/* Experimental, meant for debugging, testing and internal use. |
648 |
- Never use these in applications! */ |
649 |
+/* |
650 |
+ * Experimental, meant for debugging, testing and internal use. |
651 |
+ * Never use this in applications! |
652 |
+ */ |
653 |
#define VIDIOC_DBG_G_CHIP_INFO _IOWR('V', 102, struct v4l2_dbg_chip_info) |
654 |
|
655 |
#define VIDIOC_QUERY_EXT_CTRL _IOWR('V', 103, struct v4l2_query_ext_ctrl) |
656 |
|
657 |
/* Reminder: when adding new ioctls please add support for them to |
658 |
- drivers/media/video/v4l2-compat-ioctl32.c as well! */ |
659 |
+ drivers/media/v4l2-core/v4l2-compat-ioctl32.c as well! */ |
660 |
|
661 |
#define BASE_VIDIOC_PRIVATE 192 /* 192-255 are private */ |
662 |
|