blob: 9b2ce656beca0b800f6589bc5be7916d5a4c6066 [file] [log] [blame]
Ben Cheng655a7c02013-10-16 16:09:24 -07001/****************************************************************************
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 */
Christopher Ferris106b3a82016-08-24 12:15:38 -070029#define UVC_PC_PROTOCOL_15 0x01
Ben Cheng655a7c02013-10-16 16:09:24 -070030#define UVC_VC_DESCRIPTOR_UNDEFINED 0x00
31#define UVC_VC_HEADER 0x01
32#define UVC_VC_INPUT_TERMINAL 0x02
Ben Cheng655a7c02013-10-16 16:09:24 -070033/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -070034#define UVC_VC_OUTPUT_TERMINAL 0x03
Ben Cheng655a7c02013-10-16 16:09:24 -070035#define UVC_VC_SELECTOR_UNIT 0x04
36#define UVC_VC_PROCESSING_UNIT 0x05
37#define UVC_VC_EXTENSION_UNIT 0x06
Ben Cheng655a7c02013-10-16 16:09:24 -070038/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -070039#define UVC_VS_UNDEFINED 0x00
Ben Cheng655a7c02013-10-16 16:09:24 -070040#define UVC_VS_INPUT_HEADER 0x01
41#define UVC_VS_OUTPUT_HEADER 0x02
42#define UVC_VS_STILL_IMAGE_FRAME 0x03
Ben Cheng655a7c02013-10-16 16:09:24 -070043/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -070044#define UVC_VS_FORMAT_UNCOMPRESSED 0x04
Ben Cheng655a7c02013-10-16 16:09:24 -070045#define UVC_VS_FRAME_UNCOMPRESSED 0x05
46#define UVC_VS_FORMAT_MJPEG 0x06
47#define UVC_VS_FRAME_MJPEG 0x07
Ben Cheng655a7c02013-10-16 16:09:24 -070048/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -070049#define UVC_VS_FORMAT_MPEG2TS 0x0a
Ben Cheng655a7c02013-10-16 16:09:24 -070050#define UVC_VS_FORMAT_DV 0x0c
51#define UVC_VS_COLORFORMAT 0x0d
52#define UVC_VS_FORMAT_FRAME_BASED 0x10
Ben Cheng655a7c02013-10-16 16:09:24 -070053/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -070054#define UVC_VS_FRAME_FRAME_BASED 0x11
Ben Cheng655a7c02013-10-16 16:09:24 -070055#define UVC_VS_FORMAT_STREAM_BASED 0x12
56#define UVC_EP_UNDEFINED 0x00
57#define UVC_EP_GENERAL 0x01
Ben Cheng655a7c02013-10-16 16:09:24 -070058/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -070059#define UVC_EP_ENDPOINT 0x02
Ben Cheng655a7c02013-10-16 16:09:24 -070060#define UVC_EP_INTERRUPT 0x03
61#define UVC_RC_UNDEFINED 0x00
62#define UVC_SET_CUR 0x01
Ben Cheng655a7c02013-10-16 16:09:24 -070063/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -070064#define UVC_GET_CUR 0x81
Ben Cheng655a7c02013-10-16 16:09:24 -070065#define UVC_GET_MIN 0x82
66#define UVC_GET_MAX 0x83
67#define UVC_GET_RES 0x84
Ben Cheng655a7c02013-10-16 16:09:24 -070068/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -070069#define UVC_GET_LEN 0x85
Ben Cheng655a7c02013-10-16 16:09:24 -070070#define UVC_GET_INFO 0x86
71#define UVC_GET_DEF 0x87
72#define UVC_VC_CONTROL_UNDEFINED 0x00
Ben Cheng655a7c02013-10-16 16:09:24 -070073/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -070074#define UVC_VC_VIDEO_POWER_MODE_CONTROL 0x01
Ben Cheng655a7c02013-10-16 16:09:24 -070075#define UVC_VC_REQUEST_ERROR_CODE_CONTROL 0x02
76#define UVC_TE_CONTROL_UNDEFINED 0x00
77#define UVC_SU_CONTROL_UNDEFINED 0x00
Ben Cheng655a7c02013-10-16 16:09:24 -070078/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -070079#define UVC_SU_INPUT_SELECT_CONTROL 0x01
Ben Cheng655a7c02013-10-16 16:09:24 -070080#define UVC_CT_CONTROL_UNDEFINED 0x00
81#define UVC_CT_SCANNING_MODE_CONTROL 0x01
82#define UVC_CT_AE_MODE_CONTROL 0x02
Ben Cheng655a7c02013-10-16 16:09:24 -070083/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -070084#define UVC_CT_AE_PRIORITY_CONTROL 0x03
Ben Cheng655a7c02013-10-16 16:09:24 -070085#define UVC_CT_EXPOSURE_TIME_ABSOLUTE_CONTROL 0x04
86#define UVC_CT_EXPOSURE_TIME_RELATIVE_CONTROL 0x05
87#define UVC_CT_FOCUS_ABSOLUTE_CONTROL 0x06
Ben Cheng655a7c02013-10-16 16:09:24 -070088/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -070089#define UVC_CT_FOCUS_RELATIVE_CONTROL 0x07
Ben Cheng655a7c02013-10-16 16:09:24 -070090#define UVC_CT_FOCUS_AUTO_CONTROL 0x08
91#define UVC_CT_IRIS_ABSOLUTE_CONTROL 0x09
92#define UVC_CT_IRIS_RELATIVE_CONTROL 0x0a
Ben Cheng655a7c02013-10-16 16:09:24 -070093/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -070094#define UVC_CT_ZOOM_ABSOLUTE_CONTROL 0x0b
Ben Cheng655a7c02013-10-16 16:09:24 -070095#define UVC_CT_ZOOM_RELATIVE_CONTROL 0x0c
96#define UVC_CT_PANTILT_ABSOLUTE_CONTROL 0x0d
97#define UVC_CT_PANTILT_RELATIVE_CONTROL 0x0e
Ben Cheng655a7c02013-10-16 16:09:24 -070098/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -070099#define UVC_CT_ROLL_ABSOLUTE_CONTROL 0x0f
Ben Cheng655a7c02013-10-16 16:09:24 -0700100#define UVC_CT_ROLL_RELATIVE_CONTROL 0x10
101#define UVC_CT_PRIVACY_CONTROL 0x11
102#define UVC_PU_CONTROL_UNDEFINED 0x00
Ben Cheng655a7c02013-10-16 16:09:24 -0700103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700104#define UVC_PU_BACKLIGHT_COMPENSATION_CONTROL 0x01
Ben Cheng655a7c02013-10-16 16:09:24 -0700105#define UVC_PU_BRIGHTNESS_CONTROL 0x02
106#define UVC_PU_CONTRAST_CONTROL 0x03
107#define UVC_PU_GAIN_CONTROL 0x04
Ben Cheng655a7c02013-10-16 16:09:24 -0700108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700109#define UVC_PU_POWER_LINE_FREQUENCY_CONTROL 0x05
Ben Cheng655a7c02013-10-16 16:09:24 -0700110#define UVC_PU_HUE_CONTROL 0x06
111#define UVC_PU_SATURATION_CONTROL 0x07
112#define UVC_PU_SHARPNESS_CONTROL 0x08
Ben Cheng655a7c02013-10-16 16:09:24 -0700113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700114#define UVC_PU_GAMMA_CONTROL 0x09
Ben Cheng655a7c02013-10-16 16:09:24 -0700115#define UVC_PU_WHITE_BALANCE_TEMPERATURE_CONTROL 0x0a
116#define UVC_PU_WHITE_BALANCE_TEMPERATURE_AUTO_CONTROL 0x0b
117#define UVC_PU_WHITE_BALANCE_COMPONENT_CONTROL 0x0c
Ben Cheng655a7c02013-10-16 16:09:24 -0700118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700119#define UVC_PU_WHITE_BALANCE_COMPONENT_AUTO_CONTROL 0x0d
Ben Cheng655a7c02013-10-16 16:09:24 -0700120#define UVC_PU_DIGITAL_MULTIPLIER_CONTROL 0x0e
121#define UVC_PU_DIGITAL_MULTIPLIER_LIMIT_CONTROL 0x0f
122#define UVC_PU_HUE_AUTO_CONTROL 0x10
Ben Cheng655a7c02013-10-16 16:09:24 -0700123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700124#define UVC_PU_ANALOG_VIDEO_STANDARD_CONTROL 0x11
Ben Cheng655a7c02013-10-16 16:09:24 -0700125#define UVC_PU_ANALOG_LOCK_STATUS_CONTROL 0x12
126#define UVC_VS_CONTROL_UNDEFINED 0x00
127#define UVC_VS_PROBE_CONTROL 0x01
Ben Cheng655a7c02013-10-16 16:09:24 -0700128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700129#define UVC_VS_COMMIT_CONTROL 0x02
Ben Cheng655a7c02013-10-16 16:09:24 -0700130#define UVC_VS_STILL_PROBE_CONTROL 0x03
131#define UVC_VS_STILL_COMMIT_CONTROL 0x04
132#define UVC_VS_STILL_IMAGE_TRIGGER_CONTROL 0x05
Ben Cheng655a7c02013-10-16 16:09:24 -0700133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700134#define UVC_VS_STREAM_ERROR_CODE_CONTROL 0x06
Ben Cheng655a7c02013-10-16 16:09:24 -0700135#define UVC_VS_GENERATE_KEY_FRAME_CONTROL 0x07
136#define UVC_VS_UPDATE_FRAME_SEGMENT_CONTROL 0x08
137#define UVC_VS_SYNC_DELAY_CONTROL 0x09
Ben Cheng655a7c02013-10-16 16:09:24 -0700138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700139#define UVC_TT_VENDOR_SPECIFIC 0x0100
Ben Cheng655a7c02013-10-16 16:09:24 -0700140#define UVC_TT_STREAMING 0x0101
141#define UVC_ITT_VENDOR_SPECIFIC 0x0200
142#define UVC_ITT_CAMERA 0x0201
Ben Cheng655a7c02013-10-16 16:09:24 -0700143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700144#define UVC_ITT_MEDIA_TRANSPORT_INPUT 0x0202
Ben Cheng655a7c02013-10-16 16:09:24 -0700145#define UVC_OTT_VENDOR_SPECIFIC 0x0300
146#define UVC_OTT_DISPLAY 0x0301
147#define UVC_OTT_MEDIA_TRANSPORT_OUTPUT 0x0302
Ben Cheng655a7c02013-10-16 16:09:24 -0700148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700149#define UVC_EXTERNAL_VENDOR_SPECIFIC 0x0400
Ben Cheng655a7c02013-10-16 16:09:24 -0700150#define UVC_COMPOSITE_CONNECTOR 0x0401
151#define UVC_SVIDEO_CONNECTOR 0x0402
152#define UVC_COMPONENT_CONNECTOR 0x0403
Ben Cheng655a7c02013-10-16 16:09:24 -0700153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700154#define UVC_STATUS_TYPE_CONTROL 1
Ben Cheng655a7c02013-10-16 16:09:24 -0700155#define UVC_STATUS_TYPE_STREAMING 2
156#define UVC_STREAM_EOH (1 << 7)
157#define UVC_STREAM_ERR (1 << 6)
Ben Cheng655a7c02013-10-16 16:09:24 -0700158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700159#define UVC_STREAM_STI (1 << 5)
Ben Cheng655a7c02013-10-16 16:09:24 -0700160#define UVC_STREAM_RES (1 << 4)
161#define UVC_STREAM_SCR (1 << 3)
162#define UVC_STREAM_PTS (1 << 2)
Ben Cheng655a7c02013-10-16 16:09:24 -0700163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700164#define UVC_STREAM_EOF (1 << 1)
Ben Cheng655a7c02013-10-16 16:09:24 -0700165#define UVC_STREAM_FID (1 << 0)
166#define UVC_CONTROL_CAP_GET (1 << 0)
167#define UVC_CONTROL_CAP_SET (1 << 1)
Ben Cheng655a7c02013-10-16 16:09:24 -0700168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700169#define UVC_CONTROL_CAP_DISABLED (1 << 2)
Ben Cheng655a7c02013-10-16 16:09:24 -0700170#define UVC_CONTROL_CAP_AUTOUPDATE (1 << 3)
171#define UVC_CONTROL_CAP_ASYNCHRONOUS (1 << 4)
172struct uvc_descriptor_header {
Ben Cheng655a7c02013-10-16 16:09:24 -0700173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700174 __u8 bLength;
Tao Baod7db5942015-01-28 10:07:51 -0800175 __u8 bDescriptorType;
176 __u8 bDescriptorSubType;
Ben Cheng655a7c02013-10-16 16:09:24 -0700177} __attribute__((packed));
Ben Cheng655a7c02013-10-16 16:09:24 -0700178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700179struct uvc_header_descriptor {
Tao Baod7db5942015-01-28 10:07:51 -0800180 __u8 bLength;
181 __u8 bDescriptorType;
182 __u8 bDescriptorSubType;
Ben Cheng655a7c02013-10-16 16:09:24 -0700183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700184 __u16 bcdUVC;
Tao Baod7db5942015-01-28 10:07:51 -0800185 __u16 wTotalLength;
186 __u32 dwClockFrequency;
187 __u8 bInCollection;
Ben Cheng655a7c02013-10-16 16:09:24 -0700188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700189 __u8 baInterfaceNr[];
Ben Cheng655a7c02013-10-16 16:09:24 -0700190} __attribute__((__packed__));
Tao Baod7db5942015-01-28 10:07:51 -0800191#define UVC_DT_HEADER_SIZE(n) (12 + (n))
192#define UVC_HEADER_DESCRIPTOR(n) uvc_header_descriptor_ ##n
Christopher Ferris106b3a82016-08-24 12:15:38 -0700193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800194#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]; \
195} __attribute__((packed))
Ben Cheng655a7c02013-10-16 16:09:24 -0700196struct uvc_input_terminal_descriptor {
Tao Baod7db5942015-01-28 10:07:51 -0800197 __u8 bLength;
198 __u8 bDescriptorType;
Ben Cheng655a7c02013-10-16 16:09:24 -0700199/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700200 __u8 bDescriptorSubType;
Tao Baod7db5942015-01-28 10:07:51 -0800201 __u8 bTerminalID;
202 __u16 wTerminalType;
203 __u8 bAssocTerminal;
Ben Cheng655a7c02013-10-16 16:09:24 -0700204/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700205 __u8 iTerminal;
Ben Cheng655a7c02013-10-16 16:09:24 -0700206} __attribute__((__packed__));
207#define UVC_DT_INPUT_TERMINAL_SIZE 8
208struct uvc_output_terminal_descriptor {
Ben Cheng655a7c02013-10-16 16:09:24 -0700209/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700210 __u8 bLength;
Tao Baod7db5942015-01-28 10:07:51 -0800211 __u8 bDescriptorType;
212 __u8 bDescriptorSubType;
213 __u8 bTerminalID;
Ben Cheng655a7c02013-10-16 16:09:24 -0700214/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700215 __u16 wTerminalType;
Tao Baod7db5942015-01-28 10:07:51 -0800216 __u8 bAssocTerminal;
217 __u8 bSourceID;
218 __u8 iTerminal;
Ben Cheng655a7c02013-10-16 16:09:24 -0700219/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700220} __attribute__((__packed__));
Ben Cheng655a7c02013-10-16 16:09:24 -0700221#define UVC_DT_OUTPUT_TERMINAL_SIZE 9
222struct uvc_camera_terminal_descriptor {
Tao Baod7db5942015-01-28 10:07:51 -0800223 __u8 bLength;
Ben Cheng655a7c02013-10-16 16:09:24 -0700224/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700225 __u8 bDescriptorType;
Tao Baod7db5942015-01-28 10:07:51 -0800226 __u8 bDescriptorSubType;
227 __u8 bTerminalID;
228 __u16 wTerminalType;
Ben Cheng655a7c02013-10-16 16:09:24 -0700229/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700230 __u8 bAssocTerminal;
Tao Baod7db5942015-01-28 10:07:51 -0800231 __u8 iTerminal;
232 __u16 wObjectiveFocalLengthMin;
233 __u16 wObjectiveFocalLengthMax;
Ben Cheng655a7c02013-10-16 16:09:24 -0700234/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700235 __u16 wOcularFocalLength;
Tao Baod7db5942015-01-28 10:07:51 -0800236 __u8 bControlSize;
237 __u8 bmControls[3];
Ben Cheng655a7c02013-10-16 16:09:24 -0700238} __attribute__((__packed__));
Ben Cheng655a7c02013-10-16 16:09:24 -0700239/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700240#define UVC_DT_CAMERA_TERMINAL_SIZE(n) (15 + (n))
Ben Cheng655a7c02013-10-16 16:09:24 -0700241struct uvc_selector_unit_descriptor {
Tao Baod7db5942015-01-28 10:07:51 -0800242 __u8 bLength;
243 __u8 bDescriptorType;
Ben Cheng655a7c02013-10-16 16:09:24 -0700244/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700245 __u8 bDescriptorSubType;
Tao Baod7db5942015-01-28 10:07:51 -0800246 __u8 bUnitID;
247 __u8 bNrInPins;
248 __u8 baSourceID[0];
Ben Cheng655a7c02013-10-16 16:09:24 -0700249/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700250 __u8 iSelector;
Ben Cheng655a7c02013-10-16 16:09:24 -0700251} __attribute__((__packed__));
Tao Baod7db5942015-01-28 10:07:51 -0800252#define UVC_DT_SELECTOR_UNIT_SIZE(n) (6 + (n))
253#define UVC_SELECTOR_UNIT_DESCRIPTOR(n) uvc_selector_unit_descriptor_ ##n
Christopher Ferris106b3a82016-08-24 12:15:38 -0700254/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800255#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; \
256} __attribute__((packed))
Ben Cheng655a7c02013-10-16 16:09:24 -0700257struct uvc_processing_unit_descriptor {
Tao Baod7db5942015-01-28 10:07:51 -0800258 __u8 bLength;
259 __u8 bDescriptorType;
Ben Cheng655a7c02013-10-16 16:09:24 -0700260/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700261 __u8 bDescriptorSubType;
Tao Baod7db5942015-01-28 10:07:51 -0800262 __u8 bUnitID;
263 __u8 bSourceID;
264 __u16 wMaxMultiplier;
Ben Cheng655a7c02013-10-16 16:09:24 -0700265/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700266 __u8 bControlSize;
Tao Baod7db5942015-01-28 10:07:51 -0800267 __u8 bmControls[2];
268 __u8 iProcessing;
Ben Cheng655a7c02013-10-16 16:09:24 -0700269} __attribute__((__packed__));
Ben Cheng655a7c02013-10-16 16:09:24 -0700270/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700271#define UVC_DT_PROCESSING_UNIT_SIZE(n) (9 + (n))
Ben Cheng655a7c02013-10-16 16:09:24 -0700272struct uvc_extension_unit_descriptor {
Tao Baod7db5942015-01-28 10:07:51 -0800273 __u8 bLength;
274 __u8 bDescriptorType;
Ben Cheng655a7c02013-10-16 16:09:24 -0700275/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700276 __u8 bDescriptorSubType;
Tao Baod7db5942015-01-28 10:07:51 -0800277 __u8 bUnitID;
278 __u8 guidExtensionCode[16];
279 __u8 bNumControls;
Ben Cheng655a7c02013-10-16 16:09:24 -0700280/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700281 __u8 bNrInPins;
Tao Baod7db5942015-01-28 10:07:51 -0800282 __u8 baSourceID[0];
283 __u8 bControlSize;
284 __u8 bmControls[0];
Ben Cheng655a7c02013-10-16 16:09:24 -0700285/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700286 __u8 iExtension;
Ben Cheng655a7c02013-10-16 16:09:24 -0700287} __attribute__((__packed__));
Tao Baod7db5942015-01-28 10:07:51 -0800288#define UVC_DT_EXTENSION_UNIT_SIZE(p,n) (24 + (p) + (n))
289#define UVC_EXTENSION_UNIT_DESCRIPTOR(p,n) uvc_extension_unit_descriptor_ ##p_ ##n
Christopher Ferris106b3a82016-08-24 12:15:38 -0700290/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800291#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; \
292} __attribute__((packed))
Ben Cheng655a7c02013-10-16 16:09:24 -0700293struct uvc_control_endpoint_descriptor {
Tao Baod7db5942015-01-28 10:07:51 -0800294 __u8 bLength;
295 __u8 bDescriptorType;
Ben Cheng655a7c02013-10-16 16:09:24 -0700296/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700297 __u8 bDescriptorSubType;
Tao Baod7db5942015-01-28 10:07:51 -0800298 __u16 wMaxTransferSize;
Ben Cheng655a7c02013-10-16 16:09:24 -0700299} __attribute__((__packed__));
300#define UVC_DT_CONTROL_ENDPOINT_SIZE 5
Ben Cheng655a7c02013-10-16 16:09:24 -0700301/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700302struct uvc_input_header_descriptor {
Tao Baod7db5942015-01-28 10:07:51 -0800303 __u8 bLength;
304 __u8 bDescriptorType;
305 __u8 bDescriptorSubType;
Ben Cheng655a7c02013-10-16 16:09:24 -0700306/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700307 __u8 bNumFormats;
Tao Baod7db5942015-01-28 10:07:51 -0800308 __u16 wTotalLength;
309 __u8 bEndpointAddress;
310 __u8 bmInfo;
Ben Cheng655a7c02013-10-16 16:09:24 -0700311/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700312 __u8 bTerminalLink;
Tao Baod7db5942015-01-28 10:07:51 -0800313 __u8 bStillCaptureMethod;
314 __u8 bTriggerSupport;
315 __u8 bTriggerUsage;
Ben Cheng655a7c02013-10-16 16:09:24 -0700316/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700317 __u8 bControlSize;
Tao Baod7db5942015-01-28 10:07:51 -0800318 __u8 bmaControls[];
Ben Cheng655a7c02013-10-16 16:09:24 -0700319} __attribute__((__packed__));
Tao Baod7db5942015-01-28 10:07:51 -0800320#define UVC_DT_INPUT_HEADER_SIZE(n,p) (13 + (n * p))
Ben Cheng655a7c02013-10-16 16:09:24 -0700321/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700322#define UVC_INPUT_HEADER_DESCRIPTOR(n,p) uvc_input_header_descriptor_ ##n_ ##p
Tao Baod7db5942015-01-28 10:07:51 -0800323#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]; \
324} __attribute__((packed))
Ben Cheng655a7c02013-10-16 16:09:24 -0700325struct uvc_output_header_descriptor {
Tao Baod7db5942015-01-28 10:07:51 -0800326 __u8 bLength;
Ben Cheng655a7c02013-10-16 16:09:24 -0700327/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700328 __u8 bDescriptorType;
Tao Baod7db5942015-01-28 10:07:51 -0800329 __u8 bDescriptorSubType;
330 __u8 bNumFormats;
331 __u16 wTotalLength;
Ben Cheng655a7c02013-10-16 16:09:24 -0700332/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700333 __u8 bEndpointAddress;
Tao Baod7db5942015-01-28 10:07:51 -0800334 __u8 bTerminalLink;
335 __u8 bControlSize;
336 __u8 bmaControls[];
Ben Cheng655a7c02013-10-16 16:09:24 -0700337/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700338} __attribute__((__packed__));
Tao Baod7db5942015-01-28 10:07:51 -0800339#define UVC_DT_OUTPUT_HEADER_SIZE(n,p) (9 + (n * p))
340#define UVC_OUTPUT_HEADER_DESCRIPTOR(n,p) uvc_output_header_descriptor_ ##n_ ##p
341#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]; \
342} __attribute__((packed))
Ben Cheng655a7c02013-10-16 16:09:24 -0700343/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700344struct uvc_color_matching_descriptor {
Tao Baod7db5942015-01-28 10:07:51 -0800345 __u8 bLength;
346 __u8 bDescriptorType;
347 __u8 bDescriptorSubType;
Ben Cheng655a7c02013-10-16 16:09:24 -0700348/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700349 __u8 bColorPrimaries;
Tao Baod7db5942015-01-28 10:07:51 -0800350 __u8 bTransferCharacteristics;
351 __u8 bMatrixCoefficients;
Ben Cheng655a7c02013-10-16 16:09:24 -0700352} __attribute__((__packed__));
Ben Cheng655a7c02013-10-16 16:09:24 -0700353/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700354#define UVC_DT_COLOR_MATCHING_SIZE 6
Ben Cheng655a7c02013-10-16 16:09:24 -0700355struct uvc_streaming_control {
Tao Baod7db5942015-01-28 10:07:51 -0800356 __u16 bmHint;
357 __u8 bFormatIndex;
Ben Cheng655a7c02013-10-16 16:09:24 -0700358/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700359 __u8 bFrameIndex;
Tao Baod7db5942015-01-28 10:07:51 -0800360 __u32 dwFrameInterval;
361 __u16 wKeyFrameRate;
362 __u16 wPFrameRate;
Ben Cheng655a7c02013-10-16 16:09:24 -0700363/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700364 __u16 wCompQuality;
Tao Baod7db5942015-01-28 10:07:51 -0800365 __u16 wCompWindowSize;
366 __u16 wDelay;
367 __u32 dwMaxVideoFrameSize;
Ben Cheng655a7c02013-10-16 16:09:24 -0700368/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700369 __u32 dwMaxPayloadTransferSize;
Tao Baod7db5942015-01-28 10:07:51 -0800370 __u32 dwClockFrequency;
371 __u8 bmFramingInfo;
372 __u8 bPreferedVersion;
Ben Cheng655a7c02013-10-16 16:09:24 -0700373/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700374 __u8 bMinVersion;
Tao Baod7db5942015-01-28 10:07:51 -0800375 __u8 bMaxVersion;
Ben Cheng655a7c02013-10-16 16:09:24 -0700376} __attribute__((__packed__));
377struct uvc_format_uncompressed {
Ben Cheng655a7c02013-10-16 16:09:24 -0700378/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700379 __u8 bLength;
Tao Baod7db5942015-01-28 10:07:51 -0800380 __u8 bDescriptorType;
381 __u8 bDescriptorSubType;
382 __u8 bFormatIndex;
Ben Cheng655a7c02013-10-16 16:09:24 -0700383/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700384 __u8 bNumFrameDescriptors;
Tao Baod7db5942015-01-28 10:07:51 -0800385 __u8 guidFormat[16];
386 __u8 bBitsPerPixel;
387 __u8 bDefaultFrameIndex;
Ben Cheng655a7c02013-10-16 16:09:24 -0700388/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700389 __u8 bAspectRatioX;
Tao Baod7db5942015-01-28 10:07:51 -0800390 __u8 bAspectRatioY;
391 __u8 bmInterfaceFlags;
392 __u8 bCopyProtect;
Ben Cheng655a7c02013-10-16 16:09:24 -0700393/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700394} __attribute__((__packed__));
Ben Cheng655a7c02013-10-16 16:09:24 -0700395#define UVC_DT_FORMAT_UNCOMPRESSED_SIZE 27
396struct uvc_frame_uncompressed {
Tao Baod7db5942015-01-28 10:07:51 -0800397 __u8 bLength;
Ben Cheng655a7c02013-10-16 16:09:24 -0700398/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700399 __u8 bDescriptorType;
Tao Baod7db5942015-01-28 10:07:51 -0800400 __u8 bDescriptorSubType;
401 __u8 bFrameIndex;
402 __u8 bmCapabilities;
Ben Cheng655a7c02013-10-16 16:09:24 -0700403/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700404 __u16 wWidth;
Tao Baod7db5942015-01-28 10:07:51 -0800405 __u16 wHeight;
406 __u32 dwMinBitRate;
407 __u32 dwMaxBitRate;
Ben Cheng655a7c02013-10-16 16:09:24 -0700408/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700409 __u32 dwMaxVideoFrameBufferSize;
Tao Baod7db5942015-01-28 10:07:51 -0800410 __u32 dwDefaultFrameInterval;
411 __u8 bFrameIntervalType;
412 __u32 dwFrameInterval[];
Ben Cheng655a7c02013-10-16 16:09:24 -0700413/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700414} __attribute__((__packed__));
Tao Baod7db5942015-01-28 10:07:51 -0800415#define UVC_DT_FRAME_UNCOMPRESSED_SIZE(n) (26 + 4 * (n))
416#define UVC_FRAME_UNCOMPRESSED(n) uvc_frame_uncompressed_ ##n
417#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]; \
418} __attribute__((packed))
Ben Cheng655a7c02013-10-16 16:09:24 -0700419/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700420struct uvc_format_mjpeg {
Tao Baod7db5942015-01-28 10:07:51 -0800421 __u8 bLength;
422 __u8 bDescriptorType;
423 __u8 bDescriptorSubType;
Ben Cheng655a7c02013-10-16 16:09:24 -0700424/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700425 __u8 bFormatIndex;
Tao Baod7db5942015-01-28 10:07:51 -0800426 __u8 bNumFrameDescriptors;
427 __u8 bmFlags;
428 __u8 bDefaultFrameIndex;
Ben Cheng655a7c02013-10-16 16:09:24 -0700429/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700430 __u8 bAspectRatioX;
Tao Baod7db5942015-01-28 10:07:51 -0800431 __u8 bAspectRatioY;
432 __u8 bmInterfaceFlags;
433 __u8 bCopyProtect;
Ben Cheng655a7c02013-10-16 16:09:24 -0700434/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700435} __attribute__((__packed__));
Ben Cheng655a7c02013-10-16 16:09:24 -0700436#define UVC_DT_FORMAT_MJPEG_SIZE 11
437struct uvc_frame_mjpeg {
Tao Baod7db5942015-01-28 10:07:51 -0800438 __u8 bLength;
Ben Cheng655a7c02013-10-16 16:09:24 -0700439/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700440 __u8 bDescriptorType;
Tao Baod7db5942015-01-28 10:07:51 -0800441 __u8 bDescriptorSubType;
442 __u8 bFrameIndex;
443 __u8 bmCapabilities;
Ben Cheng655a7c02013-10-16 16:09:24 -0700444/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700445 __u16 wWidth;
Tao Baod7db5942015-01-28 10:07:51 -0800446 __u16 wHeight;
447 __u32 dwMinBitRate;
448 __u32 dwMaxBitRate;
Ben Cheng655a7c02013-10-16 16:09:24 -0700449/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700450 __u32 dwMaxVideoFrameBufferSize;
Tao Baod7db5942015-01-28 10:07:51 -0800451 __u32 dwDefaultFrameInterval;
452 __u8 bFrameIntervalType;
453 __u32 dwFrameInterval[];
Ben Cheng655a7c02013-10-16 16:09:24 -0700454/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700455} __attribute__((__packed__));
Tao Baod7db5942015-01-28 10:07:51 -0800456#define UVC_DT_FRAME_MJPEG_SIZE(n) (26 + 4 * (n))
457#define UVC_FRAME_MJPEG(n) uvc_frame_mjpeg_ ##n
458#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]; \
459} __attribute__((packed))
Ben Cheng655a7c02013-10-16 16:09:24 -0700460/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700461#endif