111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/**************************************************************************** 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** This header was automatically generated from a Linux kernel header 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** of the same name, to make information necessary for userspace to 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** call into the kernel available to libc. It contains only constants, 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** structures, and macros generated from the original header, and thus, 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** contains no copyrightable information. 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** To edit the content of this header, modify the corresponding 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** source file (e.g. under external/kernel-headers/original/) then 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** run bionic/libc/kernel/tools/update_all.py 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** Any manual change here will be lost the next time this script will 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** be run. You've been warned! 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/ 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __LINUX_USB_VIDEO_H 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __LINUX_USB_VIDEO_H 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/types.h> 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_SC_UNDEFINED 0x00 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_SC_VIDEOCONTROL 0x01 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_SC_VIDEOSTREAMING 0x02 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_SC_VIDEO_INTERFACE_COLLECTION 0x03 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PC_PROTOCOL_UNDEFINED 0x00 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VC_DESCRIPTOR_UNDEFINED 0x00 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VC_HEADER 0x01 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VC_INPUT_TERMINAL 0x02 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VC_OUTPUT_TERMINAL 0x03 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VC_SELECTOR_UNIT 0x04 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VC_PROCESSING_UNIT 0x05 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VC_EXTENSION_UNIT 0x06 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_UNDEFINED 0x00 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_INPUT_HEADER 0x01 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_OUTPUT_HEADER 0x02 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_STILL_IMAGE_FRAME 0x03 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_FORMAT_UNCOMPRESSED 0x04 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_FRAME_UNCOMPRESSED 0x05 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_FORMAT_MJPEG 0x06 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_FRAME_MJPEG 0x07 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_FORMAT_MPEG2TS 0x0a 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_FORMAT_DV 0x0c 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_COLORFORMAT 0x0d 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_FORMAT_FRAME_BASED 0x10 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_FRAME_FRAME_BASED 0x11 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_FORMAT_STREAM_BASED 0x12 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_EP_UNDEFINED 0x00 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_EP_GENERAL 0x01 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_EP_ENDPOINT 0x02 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_EP_INTERRUPT 0x03 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_RC_UNDEFINED 0x00 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_SET_CUR 0x01 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_GET_CUR 0x81 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_GET_MIN 0x82 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_GET_MAX 0x83 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_GET_RES 0x84 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_GET_LEN 0x85 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_GET_INFO 0x86 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_GET_DEF 0x87 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VC_CONTROL_UNDEFINED 0x00 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VC_VIDEO_POWER_MODE_CONTROL 0x01 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VC_REQUEST_ERROR_CODE_CONTROL 0x02 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_TE_CONTROL_UNDEFINED 0x00 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_SU_CONTROL_UNDEFINED 0x00 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_SU_INPUT_SELECT_CONTROL 0x01 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CT_CONTROL_UNDEFINED 0x00 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CT_SCANNING_MODE_CONTROL 0x01 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CT_AE_MODE_CONTROL 0x02 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CT_AE_PRIORITY_CONTROL 0x03 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CT_EXPOSURE_TIME_ABSOLUTE_CONTROL 0x04 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CT_EXPOSURE_TIME_RELATIVE_CONTROL 0x05 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CT_FOCUS_ABSOLUTE_CONTROL 0x06 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CT_FOCUS_RELATIVE_CONTROL 0x07 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CT_FOCUS_AUTO_CONTROL 0x08 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CT_IRIS_ABSOLUTE_CONTROL 0x09 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CT_IRIS_RELATIVE_CONTROL 0x0a 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CT_ZOOM_ABSOLUTE_CONTROL 0x0b 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CT_ZOOM_RELATIVE_CONTROL 0x0c 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CT_PANTILT_ABSOLUTE_CONTROL 0x0d 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CT_PANTILT_RELATIVE_CONTROL 0x0e 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CT_ROLL_ABSOLUTE_CONTROL 0x0f 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CT_ROLL_RELATIVE_CONTROL 0x10 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CT_PRIVACY_CONTROL 0x11 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PU_CONTROL_UNDEFINED 0x00 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PU_BACKLIGHT_COMPENSATION_CONTROL 0x01 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PU_BRIGHTNESS_CONTROL 0x02 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PU_CONTRAST_CONTROL 0x03 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PU_GAIN_CONTROL 0x04 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PU_POWER_LINE_FREQUENCY_CONTROL 0x05 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PU_HUE_CONTROL 0x06 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PU_SATURATION_CONTROL 0x07 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PU_SHARPNESS_CONTROL 0x08 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PU_GAMMA_CONTROL 0x09 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PU_WHITE_BALANCE_TEMPERATURE_CONTROL 0x0a 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PU_WHITE_BALANCE_TEMPERATURE_AUTO_CONTROL 0x0b 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PU_WHITE_BALANCE_COMPONENT_CONTROL 0x0c 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PU_WHITE_BALANCE_COMPONENT_AUTO_CONTROL 0x0d 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PU_DIGITAL_MULTIPLIER_CONTROL 0x0e 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PU_DIGITAL_MULTIPLIER_LIMIT_CONTROL 0x0f 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PU_HUE_AUTO_CONTROL 0x10 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PU_ANALOG_VIDEO_STANDARD_CONTROL 0x11 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_PU_ANALOG_LOCK_STATUS_CONTROL 0x12 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_CONTROL_UNDEFINED 0x00 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_PROBE_CONTROL 0x01 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_COMMIT_CONTROL 0x02 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_STILL_PROBE_CONTROL 0x03 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_STILL_COMMIT_CONTROL 0x04 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_STILL_IMAGE_TRIGGER_CONTROL 0x05 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_STREAM_ERROR_CODE_CONTROL 0x06 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_GENERATE_KEY_FRAME_CONTROL 0x07 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_UPDATE_FRAME_SEGMENT_CONTROL 0x08 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_VS_SYNC_DELAY_CONTROL 0x09 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_TT_VENDOR_SPECIFIC 0x0100 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_TT_STREAMING 0x0101 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_ITT_VENDOR_SPECIFIC 0x0200 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_ITT_CAMERA 0x0201 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_ITT_MEDIA_TRANSPORT_INPUT 0x0202 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_OTT_VENDOR_SPECIFIC 0x0300 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_OTT_DISPLAY 0x0301 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_OTT_MEDIA_TRANSPORT_OUTPUT 0x0302 14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_EXTERNAL_VENDOR_SPECIFIC 0x0400 14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_COMPOSITE_CONNECTOR 0x0401 15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_SVIDEO_CONNECTOR 0x0402 15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_COMPONENT_CONNECTOR 0x0403 15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_STATUS_TYPE_CONTROL 1 15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_STATUS_TYPE_STREAMING 2 15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_STREAM_EOH (1 << 7) 15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_STREAM_ERR (1 << 6) 15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_STREAM_STI (1 << 5) 15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_STREAM_RES (1 << 4) 16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_STREAM_SCR (1 << 3) 16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_STREAM_PTS (1 << 2) 16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_STREAM_EOF (1 << 1) 16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_STREAM_FID (1 << 0) 16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CONTROL_CAP_GET (1 << 0) 16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CONTROL_CAP_SET (1 << 1) 16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CONTROL_CAP_DISABLED (1 << 2) 16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CONTROL_CAP_AUTOUPDATE (1 << 3) 17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_CONTROL_CAP_ASYNCHRONOUS (1 << 4) 17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct uvc_descriptor_header { 17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorSubType; 17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((packed)); 17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct uvc_header_descriptor { 17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 18011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorSubType; 18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 bcdUVC; 18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wTotalLength; 18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 dwClockFrequency; 18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bInCollection; 18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 baInterfaceNr[]; 18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((__packed__)); 19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_DT_HEADER_SIZE(n) (12+(n)) 19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_HEADER_DESCRIPTOR(n) uvc_header_descriptor_##n 19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#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)) 19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 19411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct uvc_input_terminal_descriptor { 19511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorSubType; 19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bTerminalID; 20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wTerminalType; 20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bAssocTerminal; 20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 iTerminal; 20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((__packed__)); 20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_DT_INPUT_TERMINAL_SIZE 8 20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct uvc_output_terminal_descriptor { 20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 21011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorSubType; 21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bTerminalID; 21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wTerminalType; 21311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 21411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bAssocTerminal; 21511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bSourceID; 21611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 iTerminal; 21711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((__packed__)); 21811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 21911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_DT_OUTPUT_TERMINAL_SIZE 9 22011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct uvc_camera_terminal_descriptor { 22111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 22211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 22311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 22411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorSubType; 22511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bTerminalID; 22611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wTerminalType; 22711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bAssocTerminal; 22811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 22911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 iTerminal; 23011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wObjectiveFocalLengthMin; 23111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wObjectiveFocalLengthMax; 23211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wOcularFocalLength; 23311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 23411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bControlSize; 23511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bmControls[3]; 23611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((__packed__)); 23711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_DT_CAMERA_TERMINAL_SIZE(n) (15+(n)) 23811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 23911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct uvc_selector_unit_descriptor { 24011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 24111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 24211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorSubType; 24311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 24411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bUnitID; 24511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bNrInPins; 24611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 baSourceID[0]; 24711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 iSelector; 24811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 24911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((__packed__)); 25011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_DT_SELECTOR_UNIT_SIZE(n) (6+(n)) 25111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_SELECTOR_UNIT_DESCRIPTOR(n) uvc_selector_unit_descriptor_##n 25211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#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)) 25311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 25411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct uvc_processing_unit_descriptor { 25511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 25611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 25711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorSubType; 25811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 25911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bUnitID; 26011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bSourceID; 26111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wMaxMultiplier; 26211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bControlSize; 26311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 26411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bmControls[2]; 26511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 iProcessing; 26611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((__packed__)); 26711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_DT_PROCESSING_UNIT_SIZE(n) (9+(n)) 26811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 26911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct uvc_extension_unit_descriptor { 27011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 27111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 27211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorSubType; 27311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 27411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bUnitID; 27511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 guidExtensionCode[16]; 27611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bNumControls; 27711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bNrInPins; 27811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 27911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 baSourceID[0]; 28011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bControlSize; 28111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bmControls[0]; 28211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 iExtension; 28311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 28411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((__packed__)); 28511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_DT_EXTENSION_UNIT_SIZE(p, n) (24+(p)+(n)) 28611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_EXTENSION_UNIT_DESCRIPTOR(p, n) uvc_extension_unit_descriptor_##p_##n 28711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#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)) 28811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 28911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct uvc_control_endpoint_descriptor { 29011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 29111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 29211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorSubType; 29311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 29411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wMaxTransferSize; 29511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((__packed__)); 29611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_DT_CONTROL_ENDPOINT_SIZE 5 29711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct uvc_input_header_descriptor { 29811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 29911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 30011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 30111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorSubType; 30211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bNumFormats; 30311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 30411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wTotalLength; 30511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bEndpointAddress; 30611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bmInfo; 30711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bTerminalLink; 30811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 30911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bStillCaptureMethod; 31011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bTriggerSupport; 31111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bTriggerUsage; 31211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bControlSize; 31311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 31411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bmaControls[]; 31511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((__packed__)); 31611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_DT_INPUT_HEADER_SIZE(n, p) (13+(n*p)) 31711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_INPUT_HEADER_DESCRIPTOR(n, p) uvc_input_header_descriptor_##n_##p 31811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 31911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#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)) 32011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct uvc_output_header_descriptor { 32111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 32211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 32311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 32411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorSubType; 32511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bNumFormats; 32611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wTotalLength; 32711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bEndpointAddress; 32811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 32911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bTerminalLink; 33011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bControlSize; 33111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bmaControls[]; 33211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((__packed__)); 33311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 33411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_DT_OUTPUT_HEADER_SIZE(n, p) (9+(n*p)) 33511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_OUTPUT_HEADER_DESCRIPTOR(n, p) uvc_output_header_descriptor_##n_##p 33611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#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)) 33711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct uvc_color_matching_descriptor { 33811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 33911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 34011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 34111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorSubType; 34211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bColorPrimaries; 34311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bTransferCharacteristics; 34511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bMatrixCoefficients; 34611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((__packed__)); 34711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_DT_COLOR_MATCHING_SIZE 6 34811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct uvc_streaming_control { 35011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 bmHint; 35111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bFormatIndex; 35211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bFrameIndex; 35311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 35411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 dwFrameInterval; 35511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wKeyFrameRate; 35611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wPFrameRate; 35711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wCompQuality; 35811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 35911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wCompWindowSize; 36011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wDelay; 36111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 dwMaxVideoFrameSize; 36211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 dwMaxPayloadTransferSize; 36311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 36411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 dwClockFrequency; 36511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bmFramingInfo; 36611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bPreferedVersion; 36711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bMinVersion; 36811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 36911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bMaxVersion; 37011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((__packed__)); 37111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct uvc_format_uncompressed { 37211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 37311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 37411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 37511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorSubType; 37611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bFormatIndex; 37711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bNumFrameDescriptors; 37811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 37911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 guidFormat[16]; 38011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bBitsPerPixel; 38111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDefaultFrameIndex; 38211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bAspectRatioX; 38311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 38411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bAspectRatioY; 38511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bmInterfaceFlags; 38611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bCopyProtect; 38711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((__packed__)); 38811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 38911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_DT_FORMAT_UNCOMPRESSED_SIZE 27 39011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct uvc_frame_uncompressed { 39111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 39211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 39311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorSubType; 39511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bFrameIndex; 39611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bmCapabilities; 39711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wWidth; 39811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wHeight; 40011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 dwMinBitRate; 40111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 dwMaxBitRate; 40211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 dwMaxVideoFrameBufferSize; 40311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 40411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 dwDefaultFrameInterval; 40511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bFrameIntervalType; 40611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 dwFrameInterval[]; 40711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((__packed__)); 40811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 40911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_DT_FRAME_UNCOMPRESSED_SIZE(n) (26+4*(n)) 41011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_FRAME_UNCOMPRESSED(n) uvc_frame_uncompressed_##n 41111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#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)) 41211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct uvc_format_mjpeg { 41311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 41411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 41511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 41611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorSubType; 41711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bFormatIndex; 41811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 41911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bNumFrameDescriptors; 42011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bmFlags; 42111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDefaultFrameIndex; 42211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bAspectRatioX; 42311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 42411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bAspectRatioY; 42511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bmInterfaceFlags; 42611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bCopyProtect; 42711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((__packed__)); 42811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 42911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_DT_FORMAT_MJPEG_SIZE 11 43011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct uvc_frame_mjpeg { 43111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 43211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 43311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 43411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorSubType; 43511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bFrameIndex; 43611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bmCapabilities; 43711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wWidth; 43811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 43911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wHeight; 44011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 dwMinBitRate; 44111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 dwMaxBitRate; 44211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 dwMaxVideoFrameBufferSize; 44311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 dwDefaultFrameInterval; 44511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bFrameIntervalType; 44611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 dwFrameInterval[]; 44711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__((__packed__)); 44811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_DT_FRAME_MJPEG_SIZE(n) (26+4*(n)) 45011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UVC_FRAME_MJPEG(n) uvc_frame_mjpeg_##n 45111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#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)) 45211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 45311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 454