1/****************************************************************************
2 ****************************************************************************
3 ***
4 ***   This header was automatically generated from a Linux kernel header
5 ***   of the same name, to make information necessary for userspace to
6 ***   call into the kernel available to libc.  It contains only constants,
7 ***   structures, and macros generated from the original header, and thus,
8 ***   contains no copyrightable information.
9 ***
10 ***   To edit the content of this header, modify the corresponding
11 ***   source file (e.g. under external/kernel-headers/original/) then
12 ***   run bionic/libc/kernel/tools/update_all.py
13 ***
14 ***   Any manual change here will be lost the next time this script will
15 ***   be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef __LINUX_USB_VIDEO_H
20#define __LINUX_USB_VIDEO_H
21#include <linux/types.h>
22#define UVC_SC_UNDEFINED 0x00
23/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24#define UVC_SC_VIDEOCONTROL 0x01
25#define UVC_SC_VIDEOSTREAMING 0x02
26#define UVC_SC_VIDEO_INTERFACE_COLLECTION 0x03
27#define UVC_PC_PROTOCOL_UNDEFINED 0x00
28/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29#define UVC_VC_DESCRIPTOR_UNDEFINED 0x00
30#define UVC_VC_HEADER 0x01
31#define UVC_VC_INPUT_TERMINAL 0x02
32#define UVC_VC_OUTPUT_TERMINAL 0x03
33/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34#define UVC_VC_SELECTOR_UNIT 0x04
35#define UVC_VC_PROCESSING_UNIT 0x05
36#define UVC_VC_EXTENSION_UNIT 0x06
37#define UVC_VS_UNDEFINED 0x00
38/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39#define UVC_VS_INPUT_HEADER 0x01
40#define UVC_VS_OUTPUT_HEADER 0x02
41#define UVC_VS_STILL_IMAGE_FRAME 0x03
42#define UVC_VS_FORMAT_UNCOMPRESSED 0x04
43/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44#define UVC_VS_FRAME_UNCOMPRESSED 0x05
45#define UVC_VS_FORMAT_MJPEG 0x06
46#define UVC_VS_FRAME_MJPEG 0x07
47#define UVC_VS_FORMAT_MPEG2TS 0x0a
48/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49#define UVC_VS_FORMAT_DV 0x0c
50#define UVC_VS_COLORFORMAT 0x0d
51#define UVC_VS_FORMAT_FRAME_BASED 0x10
52#define UVC_VS_FRAME_FRAME_BASED 0x11
53/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54#define UVC_VS_FORMAT_STREAM_BASED 0x12
55#define UVC_EP_UNDEFINED 0x00
56#define UVC_EP_GENERAL 0x01
57#define UVC_EP_ENDPOINT 0x02
58/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59#define UVC_EP_INTERRUPT 0x03
60#define UVC_RC_UNDEFINED 0x00
61#define UVC_SET_CUR 0x01
62#define UVC_GET_CUR 0x81
63/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64#define UVC_GET_MIN 0x82
65#define UVC_GET_MAX 0x83
66#define UVC_GET_RES 0x84
67#define UVC_GET_LEN 0x85
68/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69#define UVC_GET_INFO 0x86
70#define UVC_GET_DEF 0x87
71#define UVC_VC_CONTROL_UNDEFINED 0x00
72#define UVC_VC_VIDEO_POWER_MODE_CONTROL 0x01
73/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74#define UVC_VC_REQUEST_ERROR_CODE_CONTROL 0x02
75#define UVC_TE_CONTROL_UNDEFINED 0x00
76#define UVC_SU_CONTROL_UNDEFINED 0x00
77#define UVC_SU_INPUT_SELECT_CONTROL 0x01
78/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79#define UVC_CT_CONTROL_UNDEFINED 0x00
80#define UVC_CT_SCANNING_MODE_CONTROL 0x01
81#define UVC_CT_AE_MODE_CONTROL 0x02
82#define UVC_CT_AE_PRIORITY_CONTROL 0x03
83/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84#define UVC_CT_EXPOSURE_TIME_ABSOLUTE_CONTROL 0x04
85#define UVC_CT_EXPOSURE_TIME_RELATIVE_CONTROL 0x05
86#define UVC_CT_FOCUS_ABSOLUTE_CONTROL 0x06
87#define UVC_CT_FOCUS_RELATIVE_CONTROL 0x07
88/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89#define UVC_CT_FOCUS_AUTO_CONTROL 0x08
90#define UVC_CT_IRIS_ABSOLUTE_CONTROL 0x09
91#define UVC_CT_IRIS_RELATIVE_CONTROL 0x0a
92#define UVC_CT_ZOOM_ABSOLUTE_CONTROL 0x0b
93/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94#define UVC_CT_ZOOM_RELATIVE_CONTROL 0x0c
95#define UVC_CT_PANTILT_ABSOLUTE_CONTROL 0x0d
96#define UVC_CT_PANTILT_RELATIVE_CONTROL 0x0e
97#define UVC_CT_ROLL_ABSOLUTE_CONTROL 0x0f
98/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99#define UVC_CT_ROLL_RELATIVE_CONTROL 0x10
100#define UVC_CT_PRIVACY_CONTROL 0x11
101#define UVC_PU_CONTROL_UNDEFINED 0x00
102#define UVC_PU_BACKLIGHT_COMPENSATION_CONTROL 0x01
103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104#define UVC_PU_BRIGHTNESS_CONTROL 0x02
105#define UVC_PU_CONTRAST_CONTROL 0x03
106#define UVC_PU_GAIN_CONTROL 0x04
107#define UVC_PU_POWER_LINE_FREQUENCY_CONTROL 0x05
108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109#define UVC_PU_HUE_CONTROL 0x06
110#define UVC_PU_SATURATION_CONTROL 0x07
111#define UVC_PU_SHARPNESS_CONTROL 0x08
112#define UVC_PU_GAMMA_CONTROL 0x09
113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114#define UVC_PU_WHITE_BALANCE_TEMPERATURE_CONTROL 0x0a
115#define UVC_PU_WHITE_BALANCE_TEMPERATURE_AUTO_CONTROL 0x0b
116#define UVC_PU_WHITE_BALANCE_COMPONENT_CONTROL 0x0c
117#define UVC_PU_WHITE_BALANCE_COMPONENT_AUTO_CONTROL 0x0d
118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119#define UVC_PU_DIGITAL_MULTIPLIER_CONTROL 0x0e
120#define UVC_PU_DIGITAL_MULTIPLIER_LIMIT_CONTROL 0x0f
121#define UVC_PU_HUE_AUTO_CONTROL 0x10
122#define UVC_PU_ANALOG_VIDEO_STANDARD_CONTROL 0x11
123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124#define UVC_PU_ANALOG_LOCK_STATUS_CONTROL 0x12
125#define UVC_VS_CONTROL_UNDEFINED 0x00
126#define UVC_VS_PROBE_CONTROL 0x01
127#define UVC_VS_COMMIT_CONTROL 0x02
128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129#define UVC_VS_STILL_PROBE_CONTROL 0x03
130#define UVC_VS_STILL_COMMIT_CONTROL 0x04
131#define UVC_VS_STILL_IMAGE_TRIGGER_CONTROL 0x05
132#define UVC_VS_STREAM_ERROR_CODE_CONTROL 0x06
133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134#define UVC_VS_GENERATE_KEY_FRAME_CONTROL 0x07
135#define UVC_VS_UPDATE_FRAME_SEGMENT_CONTROL 0x08
136#define UVC_VS_SYNC_DELAY_CONTROL 0x09
137#define UVC_TT_VENDOR_SPECIFIC 0x0100
138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139#define UVC_TT_STREAMING 0x0101
140#define UVC_ITT_VENDOR_SPECIFIC 0x0200
141#define UVC_ITT_CAMERA 0x0201
142#define UVC_ITT_MEDIA_TRANSPORT_INPUT 0x0202
143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144#define UVC_OTT_VENDOR_SPECIFIC 0x0300
145#define UVC_OTT_DISPLAY 0x0301
146#define UVC_OTT_MEDIA_TRANSPORT_OUTPUT 0x0302
147#define UVC_EXTERNAL_VENDOR_SPECIFIC 0x0400
148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149#define UVC_COMPOSITE_CONNECTOR 0x0401
150#define UVC_SVIDEO_CONNECTOR 0x0402
151#define UVC_COMPONENT_CONNECTOR 0x0403
152#define UVC_STATUS_TYPE_CONTROL 1
153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154#define UVC_STATUS_TYPE_STREAMING 2
155#define UVC_STREAM_EOH (1 << 7)
156#define UVC_STREAM_ERR (1 << 6)
157#define UVC_STREAM_STI (1 << 5)
158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159#define UVC_STREAM_RES (1 << 4)
160#define UVC_STREAM_SCR (1 << 3)
161#define UVC_STREAM_PTS (1 << 2)
162#define UVC_STREAM_EOF (1 << 1)
163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164#define UVC_STREAM_FID (1 << 0)
165#define UVC_CONTROL_CAP_GET (1 << 0)
166#define UVC_CONTROL_CAP_SET (1 << 1)
167#define UVC_CONTROL_CAP_DISABLED (1 << 2)
168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169#define UVC_CONTROL_CAP_AUTOUPDATE (1 << 3)
170#define UVC_CONTROL_CAP_ASYNCHRONOUS (1 << 4)
171struct uvc_descriptor_header {
172 __u8 bLength;
173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174 __u8 bDescriptorType;
175 __u8 bDescriptorSubType;
176} __attribute__((packed));
177struct uvc_header_descriptor {
178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179 __u8 bLength;
180 __u8 bDescriptorType;
181 __u8 bDescriptorSubType;
182 __u16 bcdUVC;
183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184 __u16 wTotalLength;
185 __u32 dwClockFrequency;
186 __u8 bInCollection;
187 __u8 baInterfaceNr[];
188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189} __attribute__((__packed__));
190#define UVC_DT_HEADER_SIZE(n) (12+(n))
191#define UVC_HEADER_DESCRIPTOR(n)   uvc_header_descriptor_##n
192#define DECLARE_UVC_HEADER_DESCRIPTOR(n)  struct UVC_HEADER_DESCRIPTOR(n) {   __u8 bLength;   __u8 bDescriptorType;   __u8 bDescriptorSubType;   __u16 bcdUVC;   __u16 wTotalLength;   __u32 dwClockFrequency;   __u8 bInCollection;   __u8 baInterfaceNr[n];  } __attribute__ ((packed))
193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194struct uvc_input_terminal_descriptor {
195 __u8 bLength;
196 __u8 bDescriptorType;
197 __u8 bDescriptorSubType;
198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199 __u8 bTerminalID;
200 __u16 wTerminalType;
201 __u8 bAssocTerminal;
202 __u8 iTerminal;
203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204} __attribute__((__packed__));
205#define UVC_DT_INPUT_TERMINAL_SIZE 8
206struct uvc_output_terminal_descriptor {
207 __u8 bLength;
208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209 __u8 bDescriptorType;
210 __u8 bDescriptorSubType;
211 __u8 bTerminalID;
212 __u16 wTerminalType;
213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214 __u8 bAssocTerminal;
215 __u8 bSourceID;
216 __u8 iTerminal;
217} __attribute__((__packed__));
218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219#define UVC_DT_OUTPUT_TERMINAL_SIZE 9
220struct uvc_camera_terminal_descriptor {
221 __u8 bLength;
222 __u8 bDescriptorType;
223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224 __u8 bDescriptorSubType;
225 __u8 bTerminalID;
226 __u16 wTerminalType;
227 __u8 bAssocTerminal;
228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229 __u8 iTerminal;
230 __u16 wObjectiveFocalLengthMin;
231 __u16 wObjectiveFocalLengthMax;
232 __u16 wOcularFocalLength;
233/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234 __u8 bControlSize;
235 __u8 bmControls[3];
236} __attribute__((__packed__));
237#define UVC_DT_CAMERA_TERMINAL_SIZE(n) (15+(n))
238/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239struct uvc_selector_unit_descriptor {
240 __u8 bLength;
241 __u8 bDescriptorType;
242 __u8 bDescriptorSubType;
243/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244 __u8 bUnitID;
245 __u8 bNrInPins;
246 __u8 baSourceID[0];
247 __u8 iSelector;
248/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249} __attribute__((__packed__));
250#define UVC_DT_SELECTOR_UNIT_SIZE(n) (6+(n))
251#define UVC_SELECTOR_UNIT_DESCRIPTOR(n)   uvc_selector_unit_descriptor_##n
252#define DECLARE_UVC_SELECTOR_UNIT_DESCRIPTOR(n)  struct UVC_SELECTOR_UNIT_DESCRIPTOR(n) {   __u8 bLength;   __u8 bDescriptorType;   __u8 bDescriptorSubType;   __u8 bUnitID;   __u8 bNrInPins;   __u8 baSourceID[n];   __u8 iSelector;  } __attribute__ ((packed))
253/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254struct uvc_processing_unit_descriptor {
255 __u8 bLength;
256 __u8 bDescriptorType;
257 __u8 bDescriptorSubType;
258/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259 __u8 bUnitID;
260 __u8 bSourceID;
261 __u16 wMaxMultiplier;
262 __u8 bControlSize;
263/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264 __u8 bmControls[2];
265 __u8 iProcessing;
266} __attribute__((__packed__));
267#define UVC_DT_PROCESSING_UNIT_SIZE(n) (9+(n))
268/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269struct uvc_extension_unit_descriptor {
270 __u8 bLength;
271 __u8 bDescriptorType;
272 __u8 bDescriptorSubType;
273/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274 __u8 bUnitID;
275 __u8 guidExtensionCode[16];
276 __u8 bNumControls;
277 __u8 bNrInPins;
278/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279 __u8 baSourceID[0];
280 __u8 bControlSize;
281 __u8 bmControls[0];
282 __u8 iExtension;
283/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284} __attribute__((__packed__));
285#define UVC_DT_EXTENSION_UNIT_SIZE(p, n) (24+(p)+(n))
286#define UVC_EXTENSION_UNIT_DESCRIPTOR(p, n)   uvc_extension_unit_descriptor_##p_##n
287#define DECLARE_UVC_EXTENSION_UNIT_DESCRIPTOR(p, n)  struct UVC_EXTENSION_UNIT_DESCRIPTOR(p, n) {   __u8 bLength;   __u8 bDescriptorType;   __u8 bDescriptorSubType;   __u8 bUnitID;   __u8 guidExtensionCode[16];   __u8 bNumControls;   __u8 bNrInPins;   __u8 baSourceID[p];   __u8 bControlSize;   __u8 bmControls[n];   __u8 iExtension;  } __attribute__ ((packed))
288/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289struct uvc_control_endpoint_descriptor {
290 __u8 bLength;
291 __u8 bDescriptorType;
292 __u8 bDescriptorSubType;
293/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294 __u16 wMaxTransferSize;
295} __attribute__((__packed__));
296#define UVC_DT_CONTROL_ENDPOINT_SIZE 5
297struct uvc_input_header_descriptor {
298/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299 __u8 bLength;
300 __u8 bDescriptorType;
301 __u8 bDescriptorSubType;
302 __u8 bNumFormats;
303/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304 __u16 wTotalLength;
305 __u8 bEndpointAddress;
306 __u8 bmInfo;
307 __u8 bTerminalLink;
308/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309 __u8 bStillCaptureMethod;
310 __u8 bTriggerSupport;
311 __u8 bTriggerUsage;
312 __u8 bControlSize;
313/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314 __u8 bmaControls[];
315} __attribute__((__packed__));
316#define UVC_DT_INPUT_HEADER_SIZE(n, p) (13+(n*p))
317#define UVC_INPUT_HEADER_DESCRIPTOR(n, p)   uvc_input_header_descriptor_##n_##p
318/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319#define DECLARE_UVC_INPUT_HEADER_DESCRIPTOR(n, p)  struct UVC_INPUT_HEADER_DESCRIPTOR(n, p) {   __u8 bLength;   __u8 bDescriptorType;   __u8 bDescriptorSubType;   __u8 bNumFormats;   __u16 wTotalLength;   __u8 bEndpointAddress;   __u8 bmInfo;   __u8 bTerminalLink;   __u8 bStillCaptureMethod;   __u8 bTriggerSupport;   __u8 bTriggerUsage;   __u8 bControlSize;   __u8 bmaControls[p][n];  } __attribute__ ((packed))
320struct uvc_output_header_descriptor {
321 __u8 bLength;
322 __u8 bDescriptorType;
323/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324 __u8 bDescriptorSubType;
325 __u8 bNumFormats;
326 __u16 wTotalLength;
327 __u8 bEndpointAddress;
328/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329 __u8 bTerminalLink;
330 __u8 bControlSize;
331 __u8 bmaControls[];
332} __attribute__((__packed__));
333/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334#define UVC_DT_OUTPUT_HEADER_SIZE(n, p) (9+(n*p))
335#define UVC_OUTPUT_HEADER_DESCRIPTOR(n, p)   uvc_output_header_descriptor_##n_##p
336#define DECLARE_UVC_OUTPUT_HEADER_DESCRIPTOR(n, p)  struct UVC_OUTPUT_HEADER_DESCRIPTOR(n, p) {   __u8 bLength;   __u8 bDescriptorType;   __u8 bDescriptorSubType;   __u8 bNumFormats;   __u16 wTotalLength;   __u8 bEndpointAddress;   __u8 bTerminalLink;   __u8 bControlSize;   __u8 bmaControls[p][n];  } __attribute__ ((packed))
337struct uvc_color_matching_descriptor {
338/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339 __u8 bLength;
340 __u8 bDescriptorType;
341 __u8 bDescriptorSubType;
342 __u8 bColorPrimaries;
343/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344 __u8 bTransferCharacteristics;
345 __u8 bMatrixCoefficients;
346} __attribute__((__packed__));
347#define UVC_DT_COLOR_MATCHING_SIZE 6
348/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349struct uvc_streaming_control {
350 __u16 bmHint;
351 __u8 bFormatIndex;
352 __u8 bFrameIndex;
353/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354 __u32 dwFrameInterval;
355 __u16 wKeyFrameRate;
356 __u16 wPFrameRate;
357 __u16 wCompQuality;
358/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359 __u16 wCompWindowSize;
360 __u16 wDelay;
361 __u32 dwMaxVideoFrameSize;
362 __u32 dwMaxPayloadTransferSize;
363/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364 __u32 dwClockFrequency;
365 __u8 bmFramingInfo;
366 __u8 bPreferedVersion;
367 __u8 bMinVersion;
368/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369 __u8 bMaxVersion;
370} __attribute__((__packed__));
371struct uvc_format_uncompressed {
372 __u8 bLength;
373/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374 __u8 bDescriptorType;
375 __u8 bDescriptorSubType;
376 __u8 bFormatIndex;
377 __u8 bNumFrameDescriptors;
378/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379 __u8 guidFormat[16];
380 __u8 bBitsPerPixel;
381 __u8 bDefaultFrameIndex;
382 __u8 bAspectRatioX;
383/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384 __u8 bAspectRatioY;
385 __u8 bmInterfaceFlags;
386 __u8 bCopyProtect;
387} __attribute__((__packed__));
388/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389#define UVC_DT_FORMAT_UNCOMPRESSED_SIZE 27
390struct uvc_frame_uncompressed {
391 __u8 bLength;
392 __u8 bDescriptorType;
393/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394 __u8 bDescriptorSubType;
395 __u8 bFrameIndex;
396 __u8 bmCapabilities;
397 __u16 wWidth;
398/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399 __u16 wHeight;
400 __u32 dwMinBitRate;
401 __u32 dwMaxBitRate;
402 __u32 dwMaxVideoFrameBufferSize;
403/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404 __u32 dwDefaultFrameInterval;
405 __u8 bFrameIntervalType;
406 __u32 dwFrameInterval[];
407} __attribute__((__packed__));
408/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409#define UVC_DT_FRAME_UNCOMPRESSED_SIZE(n) (26+4*(n))
410#define UVC_FRAME_UNCOMPRESSED(n)   uvc_frame_uncompressed_##n
411#define DECLARE_UVC_FRAME_UNCOMPRESSED(n)  struct UVC_FRAME_UNCOMPRESSED(n) {   __u8 bLength;   __u8 bDescriptorType;   __u8 bDescriptorSubType;   __u8 bFrameIndex;   __u8 bmCapabilities;   __u16 wWidth;   __u16 wHeight;   __u32 dwMinBitRate;   __u32 dwMaxBitRate;   __u32 dwMaxVideoFrameBufferSize;   __u32 dwDefaultFrameInterval;   __u8 bFrameIntervalType;   __u32 dwFrameInterval[n];  } __attribute__ ((packed))
412struct uvc_format_mjpeg {
413/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414 __u8 bLength;
415 __u8 bDescriptorType;
416 __u8 bDescriptorSubType;
417 __u8 bFormatIndex;
418/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419 __u8 bNumFrameDescriptors;
420 __u8 bmFlags;
421 __u8 bDefaultFrameIndex;
422 __u8 bAspectRatioX;
423/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424 __u8 bAspectRatioY;
425 __u8 bmInterfaceFlags;
426 __u8 bCopyProtect;
427} __attribute__((__packed__));
428/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429#define UVC_DT_FORMAT_MJPEG_SIZE 11
430struct uvc_frame_mjpeg {
431 __u8 bLength;
432 __u8 bDescriptorType;
433/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434 __u8 bDescriptorSubType;
435 __u8 bFrameIndex;
436 __u8 bmCapabilities;
437 __u16 wWidth;
438/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439 __u16 wHeight;
440 __u32 dwMinBitRate;
441 __u32 dwMaxBitRate;
442 __u32 dwMaxVideoFrameBufferSize;
443/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444 __u32 dwDefaultFrameInterval;
445 __u8 bFrameIntervalType;
446 __u32 dwFrameInterval[];
447} __attribute__((__packed__));
448/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449#define UVC_DT_FRAME_MJPEG_SIZE(n) (26+4*(n))
450#define UVC_FRAME_MJPEG(n)   uvc_frame_mjpeg_##n
451#define DECLARE_UVC_FRAME_MJPEG(n)  struct UVC_FRAME_MJPEG(n) {   __u8 bLength;   __u8 bDescriptorType;   __u8 bDescriptorSubType;   __u8 bFrameIndex;   __u8 bmCapabilities;   __u16 wWidth;   __u16 wHeight;   __u32 dwMinBitRate;   __u32 dwMaxBitRate;   __u32 dwMaxVideoFrameBufferSize;   __u32 dwDefaultFrameInterval;   __u8 bFrameIntervalType;   __u32 dwFrameInterval[n];  } __attribute__ ((packed))
452#endif
453/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454