罗技 Logitech BRIO 描述符手工分析记录
参照UVC文档并手动分析有助于更好的理解描述符的意义,这里使用罗技Logitech BRIO,分析了一半,后续再更新
// 设备描述符
12 01 00 03 EF 02 01 09 6D 04 5E 08 17 03 00 02 03 01
10 03 = USB3.0
// Configuration Descriptor 配置描述符
09 //bLength
02 //bDescriptorType USB_CONFIGURATION_DESCRIPTOR_TYPE
69 0C //wTotalLength 3177
03 //bNumInterfaces 3 Interfaces 接口
01 //bConfigurationValue 1 Configuration 配置
00 //iConfiguration Unused
80 //bmAttributes 由总线供电的设备,无远程唤醒功能 USB_CONFIG_BUS_POWERED
FA //bMaxPower 最大功耗为500 mA
// Standard VC Interface Descriptor 接口描述符
09 //bLength
04 //bDescriptorType USB_INTERFACE_DESCRIPTOR_TYPE
00 //bInterfaceNumber 接口号
00 //bAlternateSetting 用于为前一个字段中标识的接口选择备用设置的值
01 //bNumEndpoints 此接口使用的端点数(不包括端点0)。这个数字是0或1,这取决于可选的状态中断端点是否存在
0E //bInterfaceClass CC_VIDEO
01 //bInterfaceSubClass SC_VIDEOCONTROL
00 //bInterfaceProtocol 罗技使用的是UVC1.0 必须设置为 PC_PROTOCOL_UNDEFINED,1.5版本必须设置为 PC_PROTOCOL_15
00 //iInterface 索引到字符串中包含Unicode中的字符串描述符, 必须匹配标准视频接口集合IAD的功能字段
// Class-specific VC Interface Descriptor 控制接口头描述符头
0E //bLength 12+n,
24 //bDescriptorType CS_INTERFACE
01 //bDescriptorSubType VC_HEADER
00 01 //bcdUVC 该设备符合视频类规范1.0版本
FC 00 //wTotalLength 0x00FC=252
80 C3 C9 01 //dwClockFrequency 该设备将提供时间戳和一个基于30MHz时钟的设备时钟参考
02 //bInCollection 流媒体接口数量
01 //baInterfaceNr(1) 集合中第一个视频流媒体接口的接口号
02 //baInterfaceNr(2) 集合中第二个视频流媒体接口的接口号
// Input Terminal Descriptor (Camera) 输入端点描述符
12 //bLength 8+n
24 //bDescriptorType CS_INTERFACE
02 //bDescriptorSubtype VC_INPUT_TERMINAL
01 //bTerminalID 唯一标识终端的非零常数。此值用于处理此终端的所有请求
01 02 //wTerminalType ITT_CAMERA
00 //bAssocTerminal 与此输入终端有关联的输出终端的ID,如果不存在此类关联,则为零(0)
00 //iTerminal 描述输入终端的字符串描述符的一个的索引
//Input Terminal Descriptor (Camera) 根据终端类型,某些输入终端描述符具有附加字段。这些特殊终端类型的描述符将在特定于这些终端的单独部分和随附的文档中进行描述
00 00 //wObjectiveFocalLengthMin 最小焦距(目标)
00 00 //wObjectiveFocalLengthMax 最大焦距(目标)
00 00 //wOcularFocalLength 焦距(眼)
03 //bControlSize 3字节控制码
2E 0A 02 //bmControls 0x020A2E=>0010 0000 1010 0010 1110(从右往左依次D0-D23)
D00 : 0 no - Scanning Mode
D01 : 1 yes - Auto-Exposure Mode
D02 : 1 no - Auto-Exposure Priority
D03 : 1 yes - Exposure Time (Absolute)
D04 : 0 no - Exposure Time (Relative)
D05 : 1 no - Focus (Absolute)
D06 : 0 no - Focus (Relative)
D07 : 0 no - Iris (Absolute)
D08 : 0 no - Iris (Relative)
D09 : 1 yes - Zoom (Absolute)
D10 : 0 no - Zoom (Relative)
D11 : 1 yes - Pan (Absolute)
D12 : 0 no - Pan (Relative)
D13 : 0 no - Roll (Absolute)
D14 : 0 no - Roll (Relative)
D15 : 0 no - Tilt (Absolute)
D16 : 0 no - Tilt (Relative)
D17 : 1 no - Focus Auto
D18 : 0 no - Reserved
D19 : 0 no - Reserved
D20 : 0 no - Reserved
D21 : 0 no - Reserved
D22 : 0 no - Reserved
D23 : 0 no - Reserved
// Processing Unit Descriptor 处理单元描述符
0B //bLength
24 //bDescriptorType CS_INTERFACE
05 //bDescriptorSubtype VC_PROCESSING_UNIT
03 //bUnitID 此单元的ID
01 //bSourceID 本单元的输入引脚连接到ID为0x01机组的输出引脚
00 40 //wMaxMultiplier unused(无用字段)
02 //bControlSize
5B 17 //bmControls 0x175B=>0001011101011011
D00 : 1 yes - Brightness(亮度)
D01 : 1 no - Contrast(对比度)
D02 : 0 no - Hue(色相)
D03 : 1 yes - Saturation(饱和度)
D04 : 1 no - Sharpness(清晰度)
D05 : 0 no - Gamma
D06 : 1 no - White Balance Temperature(白平衡色温)
D07 : 0 no - White Balance Component(白平衡成分)
D08 : 1 no - Backlight Compensation(背光补偿)
D09 : 1 yes - Gain
D10 : 1 yes - Power Line Frequency(电力线频率)
D11 : 0 no - Hue, Auto
D12 : 1 no - White Balance Temperature, Auto(白平衡色温,自动)
D13 : 0 no - White Balance Component, Auto
D14 : 0 no - Digital Multiplier
D15 : 0 no - Digital Multiplier Limit
D16 : 0 no - Analog Video Standard
D17 : 0 no - Analog Video Lock Status
D18 : 0 no - Contrast, Auto
D19 : 0 no - Reserved
D20 : 0 no - Reserved
D21 : 0 no - Reserved
D22 : 0 no - Reserved
D23 : 0 no - Reserved
00 //iProcessing unused(无用字段)
// Extension Unit Descriptor 扩展单元描述符
1B //bLength 24+p+n
24 //bDescriptorType CS_INTERFACE
06 //bDescriptorSubtype VC_EXTENSION_UNIT
0E //bUnitID 一个唯一标识视频功能内的单元的非零常数。此值用于所有处理此单元的请求
6A D1 49 2C B8 32 85 44 3E A8 64 3A 15 23 62 F2 //guidExtensionCode 标识扩展单元的供应商特定的代码
06 //bNumControls 此扩展单元中的控制数量,指定下面控制码为 yes 的数量
01 //bNrInPins 此扩展单元的输入针脚数量
03 //baSourceID(1) 该扩展单元的第一个输入引脚所连接的单元或端子的ID
02 //bControlSize bmControls字段的大小,字节:n
3F 00 //bmControls 0x003F=>0000000000111111
D00 : 1 yes - Vendor-Specific (Optional)
D01 : 1 yes - Vendor-Specific (Optional)
D02 : 1 yes - Vendor-Specific (Optional)
D03 : 1 yes - Vendor-Specific (Optional)
D04 : 1 yes - Vendor-Specific (Optional)
D05 : 1 yes - Vendor-Specific (Optional)
D06 : 0 no - Vendor-Specific (Optional)
D07 : 0 no - Vendor-Specific (Optional)
D08 : 0 no - Vendor-Specific (Optional)
D09 : 0 no - Vendor-Specific (Optional)
D10 : 0 no - Vendor-Specific (Optional)
D11 : 0 no - Vendor-Specific (Optional)
D12 : 0 no - Vendor-Specific (Optional)
D13 : 0 no - Vendor-Specific (Optional)
D14 : 0 no - Vendor-Specific (Optional)
D15 : 0 no - Vendor-Specific (Optional)
D16 : 0 no - Vendor-Specific (Optional)
D17 : 0 no - Vendor-Specific (Optional)
D18 : 0 no - Vendor-Specific (Optional)
D19 : 0 no - Vendor-Specific (Optional)
D20 : 0 no - Vendor-Specific (Optional)
D21 : 0 no - Vendor-Specific (Optional)
D22 : 0 no - Vendor-Specific (Optional)
D23 : 0 no - Vendor-Specific (Optional)
00 //iExtension 描述此扩展单元的字符串描述符的索引
// Extension Unit Descriptor 扩展单元描述符
1B //bLength 24+p+n
24 //bDescriptorType CS_INTERFACE
06 //bDescriptorSubtype VC_EXTENSION_UNIT
06 //bUnitID 一个唯一标识视频功能内的单元的非零常数。此值用于所有处理此单元的请求
D0 9E E4 23 78 11 31 4F AE 52 D2 FB 8A 8D 3B 48 //guidExtensionCode 标识扩展单元的供应商特定的代码
0E //bNumControls 此扩展单元中的控制数量,指定下面控制码为 yes 的数量
01 //bNrInPins 此扩展单元的输入针脚数量
03 //baSourceID(1) 该扩展单元的第一个输入引脚所连接的单元或端子的ID
02 //bControlSize bmControls字段的大小,字节:n
FF 6F //bmControls 0x6FFF=>0110111111111111
D00 : 1 yes - Vendor-Specific (Optional)
D01 : 1 yes - Vendor-Specific (Optional)
D02 : 1 yes - Vendor-Specific (Optional)
D03 : 1 yes - Vendor-Specific (Optional)
D04 : 1 yes - Vendor-Specific (Optional)
D05 : 1 yes - Vendor-Specific (Optional)
D06 : 1 yes - Vendor-Specific (Optional)
D07 : 1 yes - Vendor-Specific (Optional)
D08 : 1 yes - Vendor-Specific (Optional)
D09 : 1 yes - Vendor-Specific (Optional)
D10 : 1 yes - Vendor-Specific (Optional)
D11 : 1 yes - Vendor-Specific (Optional)
D12 : 0 no - Vendor-Specific (Optional)
D13 : 1 yes - Vendor-Specific (Optional)
D14 : 1 yes - Vendor-Specific (Optional)
D15 : 0 no - Vendor-Specific (Optional)
D16 : 0 no - Vendor-Specific (Optional)
D17 : 0 no - Vendor-Specific (Optional)
D18 : 0 no - Vendor-Specific (Optional)
D19 : 0 no - Vendor-Specific (Optional)
D20 : 0 no - Vendor-Specific (Optional)
D21 : 0 no - Vendor-Specific (Optional)
D22 : 0 no - Vendor-Specific (Optional)
D23 : 0 no - Vendor-Specific (Optional)
00 //iExtension 描述此扩展单元的字符串描述符的索引
// Extension Unit Descriptor 扩展单元描述符
1B //bLength 24+p+n
24 //bDescriptorType CS_INTERFACE
06 //bDescriptorSubtype VC_EXTENSION_UNIT
08 //bUnitID 一个唯一标识视频功能内的单元的非零常数。此值用于所有处理此单元的请求
E4 8E 67 69 0F 41 DB 40 A8 50 74 20 D7 D8 24 0E //guidExtensionCode 标识扩展单元的供应商特定的代码
08 //bNumControls 此扩展单元中的控制数量,指定下面控制码为 yes 的数量
01 //bNrInPins 此扩展单元的输入针脚数量
03 //baSourceID(1) 该扩展单元的第一个输入引脚所连接的单元或端子的ID
02 //bControlSize bmControls字段的大小,字节:n
3F 03 //bmControls 0x6FFF=>0000001100111111
D00 : 1 yes - Vendor-Specific (Optional)
D01 : 1 yes - Vendor-Specific (Optional)
D02 : 1 yes - Vendor-Specific (Optional)
D03 : 1 yes - Vendor-Specific (Optional)
D04 : 1 yes - Vendor-Specific (Optional)
D05 : 1 yes - Vendor-Specific (Optional)
D06 : 0 no - Vendor-Specific (Optional)
D07 : 0 no - Vendor-Specific (Optional)
D08 : 1 yes - Vendor-Specific (Optional)
D09 : 1 yes - Vendor-Specific (Optional)
D10 : 0 no - Vendor-Specific (Optional)
D11 : 0 no - Vendor-Specific (Optional)
D12 : 0 no - Vendor-Specific (Optional)
D13 : 0 no - Vendor-Specific (Optional)
D14 : 0 no - Vendor-Specific (Optional)
D15 : 0 no - Vendor-Specific (Optional)
D16 : 0 no - Vendor-Specific (Optional)
D17 : 0 no - Vendor-Specific (Optional)
D18 : 0 no - Vendor-Specific (Optional)
D19 : 0 no - Vendor-Specific (Optional)
D20 : 0 no - Vendor-Specific (Optional)
D21 : 0 no - Vendor-Specific (Optional)
D22 : 0 no - Vendor-Specific (Optional)
D23 : 0 no - Vendor-Specific (Optional)
00 //iExtension 描述此扩展单元的字符串描述符的索引
// Extension Unit Descriptor 扩展单元描述符
1C //bLength 24+p+n
24 //bDescriptorType CS_INTERFACE
06 //bDescriptorSubtype VC_EXTENSION_UNIT
09 //bUnitID 一个唯一标识视频功能内的单元的非零常数。此值用于所有处理此单元的请求
A9 4C 5D 1F 11 DE 87 44 84 0D 50 93 3C 8E C8 D1 //guidExtensionCode 标识扩展单元的供应商特定的代码
12 //bNumControls 此扩展单元中的控制数量,指定下面控制码为 yes 的数量
01 //bNrInPins 此扩展单元的输入针脚数量
03 //baSourceID(1) 该扩展单元的第一个输入引脚所连接的单元或端子的ID
03 //bControlSize bmControls字段的大小,字节:n
FF FF 03 //bmControls 0x03FFFFF=>000000111111111111111111
D00 : 1 yes - Vendor-Specific (Optional)
D01 : 1 yes - Vendor-Specific (Optional)
D02 : 1 yes - Vendor-Specific (Optional)
D03 : 1 yes - Vendor-Specific (Optional)
D04 : 1 yes - Vendor-Specific (Optional)
D05 : 1 yes - Vendor-Specific (Optional)
D06 : 1 yes - Vendor-Specific (Optional)
D07 : 1 yes - Vendor-Specific (Optional)
D08 : 1 yes - Vendor-Specific (Optional)
D09 : 1 yes - Vendor-Specific (Optional)
D10 : 1 yes - Vendor-Specific (Optional)
D11 : 1 yes - Vendor-Specific (Optional)
D12 : 1 yes - Vendor-Specific (Optional)
D13 : 1 yes - Vendor-Specific (Optional)
D14 : 1 yes - Vendor-Specific (Optional)
D15 : 1 yes - Vendor-Specific (Optional)
D16 : 1 yes - Vendor-Specific (Optional)
D17 : 1 yes - Vendor-Specific (Optional)
D18 : 0 no - Vendor-Specific (Optional)
D19 : 0 no - Vendor-Specific (Optional)
D20 : 0 no - Vendor-Specific (Optional)
D21 : 0 no - Vendor-Specific (Optional)
D22 : 0 no - Vendor-Specific (Optional)
D23 : 0 no - Vendor-Specific (Optional)
00 //iExtension 描述此扩展单元的字符串描述符的索引
// Extension Unit Descriptor 扩展单元描述符
1B //bLength 24+p+n
24 //bDescriptorType CS_INTERFACE
06 //bDescriptorSubtype VC_EXTENSION_UNIT
0A //bUnitID 一个唯一标识视频功能内的单元的非零常数。此值用于所有处理此单元的请求
15 02 E4 49 34 F4 FE 47 B1 58 0E 88 50 23 E5 1B
0B //bNumControls 此扩展单元中的控制数量,指定下面控制码为 yes 的数量
01 //bNrInPins 此扩展单元的输入针脚数量
03 //baSourceID(1) 该扩展单元的第一个输入引脚所连接的单元或端子的ID
02 //bControlSize bmControls字段的大小,字节:n
BA 6F //bmControls 0x6FBA=>0110111110111010
D00 : 0 no - Vendor-Specific (Optional)
D01 : 1 yes - Vendor-Specific (Optional)
D02 : 0 no - Vendor-Specific (Optional)
D03 : 1 yes - Vendor-Specific (Optional)
D04 : 1 yes - Vendor-Specific (Optional)
D05 : 1 yes - Vendor-Specific (Optional)
D06 : 0 no - Vendor-Specific (Optional)
D07 : 1 yes - Vendor-Specific (Optional)
D08 : 1 yes - Vendor-Specific (Optional)
D09 : 1 yes - Vendor-Specific (Optional)
D10 : 1 yes - Vendor-Specific (Optional)
D11 : 1 yes - Vendor-Specific (Optional)
D12 : 0 no - Vendor-Specific (Optional)
D13 : 1 yes - Vendor-Specific (Optional)
D14 : 1 yes - Vendor-Specific (Optional)
D15 : 0 no - Vendor-Specific (Optional)
D16 : 0 no - Vendor-Specific (Optional)
D17 : 0 no - Vendor-Specific (Optional)
D18 : 0 no - Vendor-Specific (Optional)
D19 : 0 no - Vendor-Specific (Optional)
D20 : 0 no - Vendor-Specific (Optional)
D21 : 0 no - Vendor-Specific (Optional)
D22 : 0 no - Vendor-Specific (Optional)
D23 : 0 no - Vendor-Specific (Optional)
00 //iExtension 描述此扩展单元的字符串描述符的索引
// Extension Unit Descriptor 扩展单元描述符
1C //bLength 24+p+n
24 //bDescriptorType CS_INTERFACE
06 //bDescriptorSubtype VC_EXTENSION_UNIT
0B //bUnitID 一个唯一标识视频功能内的单元的非零常数。此值用于所有处理此单元的请求
21 2D E5 FF 30 80 2C 4E 82 D9 F5 87 D0 05 40 BD
04 //bNumControls 此扩展单元中的控制数量,指定下面控制码为 yes 的数量
01 //bNrInPins 此扩展单元的输入针脚数量
03 //baSourceID(1) 该扩展单元的第一个输入引脚所连接的单元或端子的ID
03 //bControlSize bmControls字段的大小,字节:n
00 41 01 //bmControls 0x014100=>000000010100000100000000
D00 : 0 no - Vendor-Specific (Optional)
D01 : 0 no - Vendor-Specific (Optional)
D02 : 0 no - Vendor-Specific (Optional)
D03 : 0 no - Vendor-Specific (Optional)
D04 : 0 no - Vendor-Specific (Optional)
D05 : 0 no - Vendor-Specific (Optional)
D06 : 0 no - Vendor-Specific (Optional)
D07 : 0 no - Vendor-Specific (Optional)
D08 : 1 yes - Vendor-Specific (Optional)
D09 : 0 no - Vendor-Specific (Optional)
D10 : 0 no - Vendor-Specific (Optional)
D11 : 0 no - Vendor-Specific (Optional)
D12 : 0 no - Vendor-Specific (Optional)
D13 : 0 no - Vendor-Specific (Optional)
D14 : 1 yes - Vendor-Specific (Optional)
D15 : 0 no - Vendor-Specific (Optional)
D16 : 1 yes - Vendor-Specific (Optional)
D17 : 0 no - Vendor-Specific (Optional)
D18 : 0 no - Vendor-Specific (Optional)
D19 : 0 no - Vendor-Specific (Optional)
D20 : 0 no - Vendor-Specific (Optional)
D21 : 0 no - Vendor-Specific (Optional)
D22 : 0 no - Vendor-Specific (Optional)
D23 : 0 no - Vendor-Specific (Optional)
00 //iExtension 描述此扩展单元的字符串描述符的索引
// Extension Unit Descriptor 扩展单元描述符
1B //bLength 24+p+n
24 //bDescriptorType CS_INTERFACE
06 //bDescriptorSubtype VC_EXTENSION_UNIT
0C //bUnitID 一个唯一标识视频功能内的单元的非零常数。此值用于所有处理此单元的请求
DC 95 3F 0F 32 26 4E 4C 92 C9 A0 47 82 F4 3B C8
02 //bNumControls 此扩展单元中的控制数量,指定下面控制码为 yes 的数量
01 //bNrInPins 此扩展单元的输入针脚数量
03 //baSourceID(1) 该扩展单元的第一个输入引脚所连接的单元或端子的ID
02 //bControlSize bmControls字段的大小,字节:n
20 01 //bmControls 0x0120=>0000000100100000
D00 : 0 no - Vendor-Specific (Optional)
D01 : 0 no - Vendor-Specific (Optional)
D02 : 0 no - Vendor-Specific (Optional)
D03 : 0 no - Vendor-Specific (Optional)
D04 : 0 no - Vendor-Specific (Optional)
D05 : 1 yes - Vendor-Specific (Optional)
D06 : 0 no - Vendor-Specific (Optional)
D07 : 0 no - Vendor-Specific (Optional)
D08 : 1 yes - Vendor-Specific (Optional)
D09 : 0 no - Vendor-Specific (Optional)
D10 : 0 no - Vendor-Specific (Optional)
D11 : 0 no - Vendor-Specific (Optional)
D12 : 0 no - Vendor-Specific (Optional)
D13 : 0 no - Vendor-Specific (Optional)
D14 : 0 no - Vendor-Specific (Optional)
D15 : 0 no - Vendor-Specific (Optional)
D16 : 0 no - Vendor-Specific (Optional)
D17 : 0 no - Vendor-Specific (Optional)
D18 : 0 no - Vendor-Specific (Optional)
D19 : 0 no - Vendor-Specific (Optional)
D20 : 0 no - Vendor-Specific (Optional)
D21 : 0 no - Vendor-Specific (Optional)
D22 : 0 no - Vendor-Specific (Optional)
D23 : 0 no - Vendor-Specific (Optional)
00 //iExtension 描述此扩展单元的字符串描述符的索引
// Output Terminal Descriptor 输出终端描述符
09 //bLength
24 //bDescriptorType CS_INTERFACE
03 //bDescriptorSubtype VC_OUTPUT_TERMINAL
04 //bTerminalID 终端ID
01 01 //wTerminalType TT_STREAMING 该终端是一个USB流媒体终端
00 //bAssocTerminal 无关联
03 //bSourceID 该单元的输入脚连接到3号单元的输出引脚
00 //iTerminal Unused
// Output Terminal Descriptor 输出终端描述符
09 //bLength
24 //bDescriptorType CS_INTERFACE
03 //bDescriptorSubtype VC_OUTPUT_TERMINAL
07 //bTerminalID 终端ID
01 01 //wTerminalType TT_STREAMING 该终端是一个USB流媒体终端
00 //bAssocTerminal 无关联
03 //bSourceID 该单元的输入脚连接到3号单元的输出引脚
00 //iTerminal Unused
// Standard VS Isochronous Video Data Endpoint Descriptor 标准VS等时视频数据端点描述符
07 //bLength
05 //bDescriptorType ENDPOINT
85 //bEndpointAddress Direction=IN(8) EndpointID=5
03 //bmAttributes 中断传输类型
// 02=Bulk transfer type(批量传输类型)
// 03=Interrupt transfer type(中断传输类型)
// 05=Isochronous transfer type(等时转移类型)
40 00 //wMaxPacketSize 64
08 //bInterval 至少每8个ms投递一次
// SuperSpeed Endpoint Companion Descriptor 终结点配套描述符
06 //bLength
30 //bDescriptorType USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_TYPE
00 //bMaxBurst
00 //bmAttributes
40 00 //wBytesPerInterval
// Standard VC Interrupt Endpoint Descriptor
05 //bLength
25 //bDescriptorType CS_ENDPOINT Video Control Endpoint
03 //EP_INTERRUPT
40 00 //wMaxTransferSize
// Standard VC Interface Descriptor 接口描述符
09 //bLength
04 //bDescriptorType USB_INTERFACE_DESCRIPTOR_TYPE
01 //bInterfaceNumber 接口号
00 //bAlternateSetting 用于为前一个字段中标识的接口选择备用设置的值
00 //bNumEndpoints 此接口使用的端点数(不包括端点0)。这个数字是0或1,这取决于可选的状态中断端点是否存在
0E //bInterfaceClass CC_VIDEO
02 //bInterfaceSubClass SC_VIDEOSTREAMING
00 //bInterfaceProtocol 罗技使用的是UVC1.0 必须设置为 PC_PROTOCOL_UNDEFINED,1.5版本必须设置为 PC_PROTOCOL_15
00 //iInterface 索引到字符串中包含Unicode中的字符串描述符, 必须匹配标准视频接口集合IAD的功能字段
// Standard VC Interface Descriptor 接口描述符
09 //bLength
04 //bDescriptorType USB_INTERFACE_DESCRIPTOR_TYPE
01 //bInterfaceNumber 接口号
00 //bAlternateSetting 用于为前一个字段中标识的接口选择备用设置的值
00 //bNumEndpoints 此接口使用的端点数(不包括端点0)。这个数字是0或1,这取决于可选的状态中断端点是否存在
0E //bInterfaceClass CC_VIDEO
02 //bInterfaceSubClass SC_VIDEOSTREAMING
00 //bInterfaceProtocol 罗技使用的是UVC1.0 必须设置为 PC_PROTOCOL_UNDEFINED,1.5版本必须设置为 PC_PROTOCOL_15
00 //iInterface 索引到字符串中包含Unicode中的字符串描述符, 必须匹配标准视频接口集合IAD的功能字段
// Input Terminal Descriptor (Media Transport) 类特定视频控制接口头描述符
10 //bLength
24 //bDescriptorType CS_INTERFACE
01 //bDescriptorSubtype VC_HEADER
03 //bNumFormats 表示下面一共配置了3个格式描述符
5D 09 //wTotalLength 0x095D=2397
81 //bEndpointAddress Direction=IN EndpointID=1
00 //bmInfo 不支持动态格式更改
04 //bTerminalLink 输出端子ID 4
00 //bStillCaptureMethod 无静态捕获
00 //nbTriggerSupport 不支持硬件触发
00 //bTriggerUsage 主机将启动静态图像捕获=否
01 //bControlSize 每个控制码1字节,上面一共有3个格式描述符,所以下面的控制码有3个字节
00 //bmaControls 0x00=00000000
Video Payload Format 1 : 0x00
D0 : 0 no - Key Frame Rate
D1 : 0 no - P Frame Rate
D2 : 0 no - Compression Quality
D3 : 0 no - Compression Window Size
D4 : 0 no - Generate Key Frame
D5 : 0 no - Update Frame Segment
D6 : 0 no - Reserved
D7 : 0 no - Reserved
00 //bmaControls 0x00=00000000
Video Payload Format 2 : 0x00
D0 : 0 no - Key Frame Rate
D1 : 0 no - P Frame Rate
D2 : 0 no - Compression Quality
D3 : 0 no - Compression Window Size
D4 : 0 no - Generate Key Frame
D5 : 0 no - Update Frame Segment
D6 : 0 no - Reserved
D7 : 0 no - Reserved
00 //bmaControls 0x00=00000000
Video Payload Format 3 : 0x00
D0 : 0 no - Key Frame Rate
D1 : 0 no - P Frame Rate
D2 : 0 no - Compression Quality
D3 : 0 no - Compression Window Size
D4 : 0 no - Generate Key Frame
D5 : 0 no - Update Frame Segment
D6 : 0 no - Reserved
D7 : 0 no - Reserved
// VS Uncompressed Format Type Descriptor 未压缩格式类型描述符
1B //bLength
24 //CS_INTERFACE
04 //bDescriptorSubtype VS_FORMAT_UNCOMPRESSED 未压缩格式
01 //bFormatIndex 我们在上面一个描述符中一共指定了3个格式描述符,这里是第一个
13 //bNumFrameDescriptors 19个帧描述符,表示下面一共有19种格式可以选择
59 55 59 32 00 00 10 00 80 00 00 AA 00 38 9B 71 //guidFormat YUY2
10 //bBitsPerPixel 16 bits per pixel
01 //bDefaultFrameIndex 默认选中的帧格式索引
00 //bAspectRatioX
00 //bAspectRatioY
00 //bmInterlaceFlags
00 //bCopyProtect 对此视频流的复制没有施加任何限制
// VS Uncompressed Frame Type Descriptor 未压缩的帧类型描述符
36 //bLength
24 //CS_INTERFACE
05 //bDescriptorSubtype VS_FRAME_UNCOMPRESSED 未压帧缩帧
01 //bFormatIndex 该帧格式索引
00 //bmCapabilities 0x00=>00000010 固定的帧率,该控制码仅D1有效,如果只有1个帧率则为0x00,如果有多个帧率,则为0x02,默认0x00即可不用变
D0: unused
D1: Fixed frame-rate
D2: unused
D3: unused
D4: unused
D5: unused
D6: unused
D7: unused
80 02 //wWidth 640
E0 01 //wHeight 480
00 00 77 01 //dwMinBitRate 0x01770000 (24576000 bps -> 3.72 MB/s)
00 00 CA 08 //dwMaxBitRate 0x08CA0000 (147456000 bps -> 18.432 MB/s)
00 60 09 00 //dwMaxVideoFrameBufferSize 表示缓冲区大小应该为614400 bytes
15 16 05 00 //dwDefaultFrameInterval 0x00051615 (33.3333 ms -> 30.0000 fps)
07 //bFrameIntervalType 表示该帧一共有7个帧率可选,如果只有1个可选帧,那么该数为0x01
15 16 05 00 //adwFrameInterval[1] 0x00051615 (33.3333 ms -> 30.0000 fps)
9A 5B 06 00 //adwFrameInterval[2] 0x00065B9A (41.6666 ms -> 24.0000 fps)
20 A1 07 00 //adwFrameInterval[3] 0x0007A120 (50.0000 ms -> 20.0000 fps)
2A 2C 0A 00 //adwFrameInterval[4] 0x000A2C2A (66.6666 ms -> 15.0000 fps)
40 42 0F 00 //adwFrameInterval[5] 0x000F4240 (100.0000 ms -> 10.0000 fps)
55 58 14 00 //adwFrameInterval[6] 0x00145855 (133.3333 ms -> 7.5000 fps)
80 84 1E 00 //adwFrameInterval[7] 0x001E8480 (200.0000 ms -> 5.0000 fps)
// 下面格式都是一样的就不分解了
// VS Uncompressed Frame Type Descriptor 未压缩的帧类型描述符
36 24 05 02 00 A0 00 78 00 00 70 17 00 00 A0 8C 00 00 96 00 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
// VS Uncompressed Frame Type Descriptor 未压缩的帧类型描述符
36 24 05 03 00 B0 00 90 00 00 F0 1E 00 00 A0 B9 00 00 C6 00 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
// VS Uncompressed Frame Type Descriptor 未压缩的帧类型描述符
36 24 05 04 00 40 01 B4 00 00 50 46 00 00 E0 A5 01 00 C2 01 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
// VS Uncompressed Frame Type Descriptor 未压缩的帧类型描述符
36 24 05 05 00 40 01 F0 00 00 C0 5D 00 00 80 32 02 00 58 02 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
// VS Uncompressed Frame Type Descriptor 未压缩的帧类型描述符
36 24 05 06 00 60 01 20 01 00 C0 7B 00 00 80 E6 02 00 18 03 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
// VS Uncompressed Frame Type Descriptor 未压缩的帧类型描述符
1E 24 05 07 00 54 01 54 01 00 1D 8D 00 00 1D 8D 00 20 87 03 00 15 16 05 00 01 15 16 05 00
// VS Uncompressed Frame Type Descriptor 未压缩的帧类型描述符
36 24 05 08 00 A8 01 F0 00 00 38 7C 00 00 50 E9 02 00 1B 03 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
// VS Uncompressed Frame Type Descriptor 未压缩的帧类型描述符
1E 24 05 09 00 B8 01 B8 01 00 54 EC 00 00 54 EC 00 80 E8 05 00 15 16 05 00 01 15 16 05 00
// VS Uncompressed Frame Type Descriptor 未压缩的帧类型描述符
36 24 05 0A 00 E0 01 0E 01 00 34 9E 00 00 38 B5 03 80 F4 03 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
// VS Uncompressed Frame Type Descriptor 未压缩的帧类型描述符
36 24 05 0B 00 80 02 68 01 00 40 19 01 00 80 97 06 00 08 07 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
// VS Uncompressed Frame Type Descriptor 未压缩的帧类型描述符
36 24 05 0C 00 20 03 C0 01 00 80 B5 01 00 00 41 0A 00 F0 0A 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
// VS Uncompressed Frame Type Descriptor 未压缩的帧类型描述符
36 24 05 0D 00 20 03 58 02 00 F0 49 02 00 A0 BB 0D 00 A6 0E 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
// VS Uncompressed Frame Type Descriptor 未压缩的帧类型描述符
36 24 05 0E 00 50 03 E0 01 00 E0 F0 01 00 40 A5 0B 00 6C 0C 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
// VS Uncompressed Frame Type Descriptor 未压缩的帧类型描述符
36 24 05 0F 00 C0 03 1C 02 00 D0 78 02 00 E0 D4 0E 00 D2 0F 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
// VS Uncompressed Frame Type Descriptor 未压缩的帧类型描述符
36 24 05 10 00 00 04 40 02 00 00 D0 02 00 00 E0 10 00 00 12 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
// VS Uncompressed Frame Type Descriptor 未压缩的帧类型描述符
36 24 05 11 00 00 05 D0 02 00 00 65 04 00 00 5E 1A 00 20 1C 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
// VS Uncompressed Frame Type Descriptor 未压缩的帧类型描述符
36 24 05 12 00 40 06 80 03 00 00 D6 06 00 00 04 29 00 C0 2B 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
// VS Uncompressed Frame Type Descriptor 未压缩的帧类型描述符
36 24 05 13 00 80 07 38 04 00 40 E3 09 00 80 53 3B 00 48 3F 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
// Class-specific Color Matching Descriptor 类特定的颜色匹配描述符
06 //bLength
24 //CS_INTERFACE
0D //bDescriptorSubtype VS_COLORFORMAT
01 //bColorPrimaries 0x01 (BT.709, sRGB)
01 //bTransferCharacteristics 0x01 (BT.709)
04 //bMatrixCoefficients 0x04 (SMPTE 170M)
// 这里是第二种格式,这个是MJPG压缩格式,下面格式都是一样的就不分解了
0B 24 06 02 14 01 01 00 00 00 00
42 24 07 01 00 80 02 E0 01 00 00 77 01 00 00 37 14 00 60 09 00 15 16 05 00 0A 85 45 01 00 07 B2 01 00 0A 8B 02 00 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 07 02 00 A0 00 78 00 00 70 17 00 00 A0 8C 00 00 96 00 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 07 03 00 B0 00 90 00 00 F0 1E 00 00 A0 B9 00 00 C6 00 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 07 04 00 40 01 B4 00 00 50 46 00 00 E0 A5 01 00 C2 01 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 07 05 00 40 01 F0 00 00 C0 5D 00 00 80 32 02 00 58 02 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 07 06 00 60 01 20 01 00 C0 7B 00 00 80 E6 02 00 18 03 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 07 07 00 A8 01 F0 00 00 38 7C 00 00 50 E9 02 00 1B 03 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 07 08 00 E0 01 0E 01 00 34 9E 00 00 38 B5 03 80 F4 03 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 07 09 00 80 02 68 01 00 40 19 01 00 80 97 06 00 08 07 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 07 0A 00 20 03 C0 01 00 80 B5 01 00 00 41 0A 00 F0 0A 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 07 0B 00 20 03 58 02 00 F0 49 02 00 A0 BB 0D 00 A6 0E 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 07 0C 00 50 03 E0 01 00 E0 F0 01 00 40 A5 0B 00 6C 0C 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 07 0D 00 C0 03 1C 02 00 D0 78 02 00 E0 D4 0E 00 D2 0F 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 07 0E 00 00 04 40 02 00 00 D0 02 00 00 E0 10 00 00 12 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
3E 24 07 0F 00 00 05 D0 02 00 00 65 04 00 00 E5 74 00 20 1C 00 15 16 05 00 09 07 B2 01 00 0A 8B 02 00 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 07 10 00 40 06 80 03 00 00 D6 06 00 00 04 29 00 C0 2B 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
3A 24 07 11 00 80 07 38 04 00 40 E3 09 00 00 A7 76 00 48 3F 00 15 16 05 00 08 0A 8B 02 00 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 07 12 00 00 0A A0 05 00 00 94 11 00 00 78 69 00 80 70 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 07 13 00 00 0F 70 08 00 00 8D 27 00 00 4E ED 00 20 FD 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 07 14 00 00 10 70 08 00 00 30 2A 00 00 20 FD 00 00 0E 01 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
06 24 0D 01 01 04
// 这里是第三种格式,这个是NV12未压缩格式,下面格式都是一样的就不分解了
1B 24 04 03 04 4E 56 31 32 00 00 10 00 80 00 00 AA 00 38 9B 71 0C 01 00 00 00 00
36 24 05 01 00 80 02 E0 01 00 00 77 01 00 00 CA 08 00 60 09 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 05 02 00 80 02 68 01 00 40 19 01 00 80 97 06 00 08 07 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 05 03 00 00 05 D0 02 00 00 65 04 00 00 5E 1A 00 20 1C 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
36 24 05 04 00 80 07 38 04 00 40 E3 09 00 80 53 3B 00 48 3F 00 15 16 05 00 07 15 16 05 00 9A 5B 06 00 20 A1 07 00 2A 2C 0A 00 40 42 0F 00 55 58 14 00 80 84 1E 00
06 24 0D 01 01 04
// 视频流接口描述符
09 04 01 01 01 0E 02 00 00
// 视频控制接口中断端点描述符
07 05 81 05 80 01 01
06 30 00 00 80 01
// 标准视频控制接口描述符
09 04 01 02 01 0E 02 00 00
// 视频控制接口中断端点描述符
07 05 81 05 80 02 01
06 30 00 00 80 02
// 标准视频控制接口描述符
09 04 01 03 01 0E 02 00 00
// 视频控制接口中断端点描述符
07 05 81 05 B0 03 01
06 30 00 00 B0 03
// 标准视频控制接口描述符
09 04 01 04 01 0E 02 00 00
// 视频控制接口中断端点描述符
07 05 81 05 00 04 01
06 30 00 00 00 04
// 标准视频控制接口描述符
09 04 01 05 01 0E 02 00 00
// 视频控制接口中断端点描述符
07 05 81 05 00 04 01
06 30 01 00 00 08
// 标准视频控制接口描述符
09 04 01 06 01 0E 02 00 00
// 视频控制接口中断端点描述符
07 05 81 05 00 04 01
06 30 02 00 00 0C
// 标准视频控制接口描述符
09 04 01 07 01 0E 02 00 00
// 视频控制接口中断端点描述符
07 05 81 05 00 04 01
06 30 02 01 00 18
// 标准视频控制接口描述符
09 04 01 08 01 0E 02 00 00
// 视频控制接口中断端点描述符
07 05 81 05 00 04 01
06 30 02 02 00 24
// 标准视频控制接口描述符
09 04 01 09 01 0E 02 00 00
// 视频控制接口中断端点描述符
07 05 81 05 00 04 01
06 30 03 02 00 30
// 标准视频控制接口描述符
09 04 01 0A 01 0E 02 00 00
// 视频控制接口中断端点描述符
07 05 81 05 00 04 01
06 30 04 02 00 3C
// 标准视频控制接口描述符
09 04 01 0B 01 0E 02 00 00
// 视频控制接口中断端点描述符
07 05 81 05 00 04 01
06 30 05 02 00 48
// 标准视频控制接口描述符
09 04 01 0C 01 0E 02 00 00
// 视频控制接口中断端点描述符
07 05 81 05 00 04 01
06 30 06 02 00 54
// 标准视频控制接口描述符
09 04 01 0D 01 0E 02 00 00
// 视频控制接口中断端点描述符
07 05 81 05 00 04 01
06 30 07 02 00 60
// 标准视频控制接口描述符
09 04 01 0E 01 0E 02 00 00
// 视频控制接口中断端点描述符
07 05 81 05 00 04 01
06 30 09 02 00 78
// 标准视频控制接口描述符
09 04 02 00 00 0E 02 00 00
// 输入头描述符
0E 24 01 01 4E 00 82 00 07 00 00 00 01 00
1C 24 10 04 01 32 00 00 00 02 00 10 00 80 00 00 AA 00 38 9B 71 08 01 00 00 00 00 00
1E 24 11 01 00 54 01 54 01 00 57 A7 01 00 57 A7 01 15 16 05 00 01 54 01 00 00 15 16 05 00
// 颜色匹配描述符
06 24 0D 01 01 04
// 标准视频控制接口描述符
09 04 02 01 01 0E 02 00 00
// 视频控制接口中断端点描述符
07 05 82 05 80 01 01
06 30 00 00 80 01
// 标准视频控制接口描述符
09 04 02 02 01 0E 02 00 00
// 视频控制接口中断端点描述符
07 05 82 05 80 02 01
06 30 00 00 80 02
// 标准视频控制接口描述符
09 04 02 03 01 0E 02 00 00
// 视频控制接口中断端点描述符
07 05 82 05 B0 03 01
06 30 00 00 B0 03
// 标准视频控制接口描述符
09 04 02 04 01 0E 02 00 00
// 视频控制接口中断端点描述符
07 05 82 05 00 04 01
06 30 00 00 00 04