Home | History | Annotate | Download | only in usb
      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)
    171 struct 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));
    177 struct 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 */
    194 struct 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
    206 struct 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
    220 struct 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 */
    239 struct 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 */
    254 struct 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 */
    269 struct 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 */
    289 struct 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
    297 struct 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))
    320 struct 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))
    337 struct 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 */
    349 struct 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__));
    371 struct 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
    390 struct 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))
    412 struct 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
    430 struct 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