来分析一个UVC的摄像头的枚举信息

使用到工具USBlyzer导出数据,但是会发现一些还有部分解析未完全。我们将借助UVCView.x86(https://files.cnblogs.com/files/libra13179/77772349UVCView.x86.rar)来进一步来分析。(懒人专用)

 

Connection StatusDevice connected
Current Configuration1
SpeedHigh (480 Mbit/s)
Device Address4
Number Of Open Pipes1
Device Descriptor USB2.0 UVC PC Camera
OffsetFieldSizeValueDescription
0bLength112h 
1bDescriptorType101hDevice
2bcdUSB20200hUSB Spec 2.0
4bDeviceClass1EFhMiscellaneous
5bDeviceSubClass102hCommon Class
6bDeviceProtocol101hInterface Association Descriptor
7bMaxPacketSize0140h64 bytes
8idVendor205E3hGenesys Logic, Inc.
10idProduct20510h 
12bcdDevice20319h3.19
14iManufacturer102h 
15iProduct103h"USB2.0 UVC PC Camera"
16iSerialNumber100h 
17bNumConfigurations101h 
Configuration Descriptor 1 Bus Powered, 200 mA
OffsetFieldSizeValueDescription
0bLength109h 
1bDescriptorType102hConfiguration
2wTotalLength201A9h 
4bNumInterfaces102h 
5bConfigurationValue101h 
6iConfiguration100h 
7bmAttributes180hBus Powered
 4..0: Reserved ...00000  
 5: Remote Wakeup ..0..... No
 6: Self Powered .0...... No, Bus Powered
 7: Reserved (set to one)
(bus-powered for 1.0)
 1.......  
8bMaxPower164h200 mA
Interface Association Descriptor Video Interface Collection
OffsetFieldSizeValueDescription
0bLength108h 
1bDescriptorType10BhInterface Association
2bFirstInterface100h 
3bInterfaceCount102h 
4bFunctionClass10EhVideo
5bFunctionSubClass103hVideo Interface Collection
6bFunctionProtocol100h 
7iFunction101h 
Interface Descriptor 0/0 Video, 1 Endpoint
OffsetFieldSizeValueDescription
0bLength109h 
1bDescriptorType104hInterface
2bInterfaceNumber100h 
3bAlternateSetting100h 
4bNumEndpoints101h 
5bInterfaceClass10EhVideo
6bInterfaceSubClass101hVideo Control
7bInterfaceProtocol100h 
8iInterface101h 
Video Control Interface Header Descriptor
OffsetFieldSizeValueDescription
0bLength10Dh 
1bDescriptorType124hVideo Control Interface Header
2 1101 00 01 69 00 00 87 93 
03 01 01 
 
 
          ===>Class-Specific Video Control Interface Header Descriptor<===
bLength:                           0x0D
bDescriptorType:                   0x24
bDescriptorSubtype:                0x01
bcdVDC:                          0x0100
wTotalLength:                    0x0069  -> Validated
dwClockFrequency:            0x03938700 = (60000000) Hz
bInCollection:                     0x01
baInterfaceNr[1]:                  0x01
View Code

 

 
Video Control Output Terminal Descriptor
OffsetFieldSizeValueDescription
0bLength109h 
1bDescriptorType124hVideo Control Output Terminal
2 703 04 01 01 00 02 00  
 
          ===>Video Control Output Terminal Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x24
bDescriptorSubtype:                0x03
bTerminalID:                       0x04
wTerminalType:                   0x0101 = (TT_STREAMING)
bAssocTerminal:                    0x00
bSourceID:                         0x02
iTerminal:                         0x00
View Code

 

Video Control Extension Unit Descriptor
OffsetFieldSizeValueDescription
0bLength11Bh 
1bDescriptorType124hVideo Control Extension Unit
2 2506 02 0B 36 5D 5E 5F E4 
81 45 9B 0B 37 46 69 BA 
05 D4 10 01 05 02 FF 00 
00 
 
          ===>Video Control Extension Unit Descriptor<===
bLength:                           0x1B
bDescriptorType:                   0x24
bDescriptorSubtype:                0x06
bUnitID:                           0x02
guidExtensionCode:                 {5E5D360B-E45F-4581-9B0B-374669BA05D4}
bNumControls:                      0x10
bNrInPins:                         0x01
===>List of Connected Units and Terminal ID's
baSourceID[1]:                     0x05
bControlSize:                      0x02
bmControls : 0xFF 0x00 
     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 = 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)
iExtension:                        0x00
View Code

 

Video Control Extension Unit Descriptor
OffsetFieldSizeValueDescription
0bLength11Bh 
1bDescriptorType124hVideo Control Extension Unit
2 2506 05 03 DF DA EC E3 8F 
27 4D 89 3B A1 8D 25 AE 
EE 09 10 01 03 02 FF 03 
00 
 
          ===>Video Control Extension Unit Descriptor<===
bLength:                           0x1B
bDescriptorType:                   0x24
bDescriptorSubtype:                0x06
bUnitID:                           0x05
guidExtensionCode:                 {ECDADF03-8FE3-4D27-893B-A18D25AEEE09}
bNumControls:                      0x10
bNrInPins:                         0x01
===>List of Connected Units and Terminal ID's
baSourceID[1]:                     0x03
bControlSize:                      0x02
bmControls : 0xFF 0x03 
     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 = 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)
iExtension:                        0x00
View Code

 

Video Control Input Terminal Descriptor
OffsetFieldSizeValueDescription
0bLength112h 
1bDescriptorType124hVideo Control Input Terminal
2 1602 01 01 02 00 00 00 00 
00 00 00 00 03 00 00 00 
 
          ===>Video Control Input Terminal Descriptor<===
bLength:                           0x12
bDescriptorType:                   0x24
bDescriptorSubtype:                0x02
bTerminalID:                       0x01
wTerminalType:                   0x0201 = (ITT_CAMERA)
bAssocTerminal:                    0x00
iTerminal:                         0x00
===>Camera Input Terminal Data
wObjectiveFocalLengthMin:        0x0000
wObjectiveFocalLengthMax:        0x0000
wOcularFocalLength:              0x0000
bControlSize:                      0x03
bmControls : 0x00 0x00 0x00 
     D00 = 0   no -  Scanning Mode
     D01 = 0   no -  Auto-Exposure Mode
     D02 = 0   no -  Auto-Exposure Priority
     D03 = 0   no -  Exposure Time (Absolute)
     D04 = 0   no -  Exposure Time (Relative)
     D05 = 0   no -  Focus (Absolute)
     D06 = 0   no -  Focus (Relative)
     D07 = 0   no -  Iris (Absolute)
     D08 = 0   no -  Iris (Relative)
     D09 = 0   no -  Zoom (Absolute)
     D10 = 0   no -  Zoom (Relative)
     D11 = 0   no -  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 = 0   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
View Code

 

Video Control Processing Unit Descriptor
OffsetFieldSizeValueDescription
0bLength10Bh 
1bDescriptorType124hVideo Control Processing Unit
2 905 03 01 00 00 02 7F 17 
00 
 
 
          ===>Video Control Processing Unit Descriptor<===
bLength:                           0x0B
bDescriptorType:                   0x24
bDescriptorSubtype:                0x05
bUnitID:                           0x03
bSourceID:                         0x01
wMaxMultiplier:                  0x0000
bControlSize:                      0x02
bmControls : 0x7F 0x17 
     D00 = 1  yes -  Brightness
     D01 = 1  yes -  Contrast
     D02 = 1  yes -  Hue
     D03 = 1  yes -  Saturation
     D04 = 1  yes -  Sharpness
     D05 = 1  yes -  Gamma
     D06 = 1  yes -  White Balance Temperature
     D07 = 0   no -  White Balance Component
     D08 = 1  yes -  Backlight Compensation
     D09 = 1  yes -  Gain
     D10 = 1  yes -  Power Line Frequency
     D11 = 0   no -  Hue, Auto
     D12 = 1  yes -  White Balance Temperature, Auto
     D13 = 0   no -  White Balance Component, Auto
     D14 = 0   no -  Digital Multiplier
     D15 = 0   no -  Digital Multiplier Limit
iProcessing:                       0x00
View Code

 

Endpoint Descriptor 83 3 In, Interrupt, 4 ms
OffsetFieldSizeValueDescription
0bLength107h 
1bDescriptorType105hEndpoint
2bEndpointAddress183h3 In
3bmAttributes103hInterrupt
 1..0: Transfer Type ......11 Interrupt
 7..2: Reserved 000000..  
4wMaxPacketSize20017h23 bytes
6bInterval106h4 ms
Video Control Interrupt Endpoint Descriptor
OffsetFieldSizeValueDescription
0bLength105h 
1bDescriptorType125hVideo Control Interrupt Endpoint
2 303 17 00  
 
          ===>Class-specific VC Interrupt Endpoint Descriptor<===
bLength:                           0x05 
bDescriptorType:                   0x25
bDescriptorSubType:                0x03
wMaxTransferSize:                0x0017 = (23) Bytes
View Code

 

Interface Descriptor 1/0 Video, 0 Endpoints
OffsetFieldSizeValueDescription
0bLength109h 
1bDescriptorType104hInterface
2bInterfaceNumber101h 
3bAlternateSetting100h 
4bNumEndpoints100h 
5bInterfaceClass10EhVideo
6bInterfaceSubClass102hVideo Streaming
7bInterfaceProtocol100h 
8iInterface100h 
Video Streaming Interface Input Header Descriptor
OffsetFieldSizeValueDescription
0bLength10Eh 
1bDescriptorType124hVideo Streaming Interface Input Header
2 1201 01 01 01 81 00 04 02 
01 01 01 00 
 
          ===>Video Class-Specific VS Video Input Header Descriptor<===
bLength:                           0x0E
bDescriptorType:                   0x24
bDescriptorSubtype:                0x01
bNumFormats:                       0x01
wTotalLength:                    0x0101  -> Validated
bEndpointAddress:                  0x81  -> Direction: IN - EndpointID: 1
bmInfo:                            0x00  -> Dynamic Format Change not Supported
bTerminalLink:                     0x04
bStillCaptureMethod:               0x02  -> Still Capture Method 2
bTriggerSupport:                   0x01  -> Hardware Triggering Support
bTriggerUsage:                     0x01  -> Host will notify client application of button event
bControlSize:                      0x01
Video Payload Format 1             0x00 
     D00 = 0   no -  Key Frame Rate
     D01 = 0   no -  P Frame Rate
     D02 = 0   no -  Compression Quality
     D03 = 0   no -  Compression Window Size
     D04 = 0   no -  Generate Key Frame
     D05 = 0   no -  Update Frame Segment
     D06 = 0   no -  Reserved
     D07 = 0   no -  Reserved
View Code

 

Video Streaming Uncompressed Video Format Descriptor
OffsetFieldSizeValueDescription
0bLength11Bh 
1bDescriptorType124hVideo Streaming Uncompressed Video Format
2 2504 01 06 59 55 59 32 00 
00 10 00 80 00 00 AA 00 
38 9B 71 10 01 00 00 00 
00 
 
          ===>Video Streaming Uncompressed Format Type Descriptor<===
bLength:                           0x1B
bDescriptorType:                   0x24
bDescriptorSubtype:                0x04
bFormatIndex:                      0x01
bNumFrameDescriptors:              0x06
guidFormat:                        {32595559-0000-0010-8000-00AA00389B71} = YUY2 Format
bBitsPerPixel:                     0x10
bDefaultFrameIndex:                0x01
bAspectRatioX:                     0x00
bAspectRatioY:                     0x00
bmInterlaceFlags:                  0x00
     D0    = 0x00 Interlaced stream or variable: No
     D1    = 0x00 Fields per frame: 2 fields
     D2    = 0x00 Field 1 first: No
     D3    = 0x00 Reserved
     D4..5 = 0x00 Field patterns  -> Field 1 only
     D6..7 = 0x00 Display Mode  -> Bob only
bCopyProtect:                      0x00  -> Duplication Unrestricted
View Code

 补充一下关于Layout of a GUID Data Structure

 

 

Therefore, for a GUID defined as {32595559-0000-0010-8000-00AA00389B71}, as described
in the table above, the little-endian byte-stream representation would be:
0x59, 0x55, 0x59, 0x32, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71

 

Video Streaming Uncompressed Video Frame Descriptor
OffsetFieldSizeValueDescription
0bLength11Eh 
1bDescriptorType124hVideo Streaming Uncompressed Video Frame
2 2805 01 00 80 02 E0 01 00 
60 EA 00 00 60 EA 00 00 
60 09 00 80 1A 06 00 01 
80 1A 06 00 
 
          ===>Video Streaming Uncompressed Frame Type Descriptor<===
bLength:                           0x1E
bDescriptorType:                   0x24
bDescriptorSubtype:                0x05
bFrameIndex:                       0x01
bmCapabilities:                    0x00
wWidth:                          0x0280
wHeight:                         0x01E0
dwMinBitRate:                0x00EA6000
dwMaxBitRate:                0x00EA6000
dwMaxVideoFrameBufferSize:   0x00096000
dwDefaultFrameInterval:      0x00061A80
bFrameIntervalType:                0x01
===>Additional Discrete Frame Type Data
dwFrameInterval[1]:          0x00061A80
View Code

 

Video Streaming Uncompressed Video Frame Descriptor
OffsetFieldSizeValueDescription
0bLength11Eh 
1bDescriptorType124hVideo Streaming Uncompressed Video Frame
2 2805 02 00 A0 00 78 00 00 
A6 0E 00 00 A6 0E 00 00 
96 00 00 80 1A 06 00 01 
80 1A 06 00 
 
 
          ===>Video Streaming Uncompressed Frame Type Descriptor<===
bLength:                           0x1E
bDescriptorType:                   0x24
bDescriptorSubtype:                0x05
bFrameIndex:                       0x02
bmCapabilities:                    0x00
wWidth:                          0x00A0
wHeight:                         0x0078
dwMinBitRate:                0x000EA600
dwMaxBitRate:                0x000EA600
dwMaxVideoFrameBufferSize:   0x00009600
dwDefaultFrameInterval:      0x00061A80
bFrameIntervalType:                0x01
===>Additional Discrete Frame Type Data
dwFrameInterval[1]:          0x00061A80
View Code

 

Video Streaming Uncompressed Video Frame Descriptor
OffsetFieldSizeValueDescription
0bLength11Eh 
1bDescriptorType124hVideo Streaming Uncompressed Video Frame
2 2805 03 00 B0 00 90 00 00 
56 13 00 00 56 13 00 00 
C6 00 00 80 1A 06 00 01 
80 1A 06 00 
 
          ===>Video Streaming Uncompressed Frame Type Descriptor<===
bLength:                           0x1E
bDescriptorType:                   0x24
bDescriptorSubtype:                0x05
bFrameIndex:                       0x03
bmCapabilities:                    0x00
wWidth:                          0x00B0
wHeight:                         0x0090
dwMinBitRate:                0x00135600
dwMaxBitRate:                0x00135600
dwMaxVideoFrameBufferSize:   0x0000C600
dwDefaultFrameInterval:      0x00061A80
bFrameIntervalType:                0x01
===>Additional Discrete Frame Type Data
dwFrameInterval[1]:          0x00061A80
View Code

 

Video Streaming Uncompressed Video Frame Descriptor
OffsetFieldSizeValueDescription
0bLength11Eh 
1bDescriptorType124hVideo Streaming Uncompressed Video Frame
2 2805 04 00 40 01 F0 00 00 
98 3A 00 00 98 3A 00 00 
58 02 00 80 1A 06 00 01 
80 1A 06 00 
 
 
          ===>Video Streaming Uncompressed Frame Type Descriptor<===
bLength:                           0x1E
bDescriptorType:                   0x24
bDescriptorSubtype:                0x05
bFrameIndex:                       0x04
bmCapabilities:                    0x00
wWidth:                          0x0140
wHeight:                         0x00F0
dwMinBitRate:                0x003A9800
dwMaxBitRate:                0x003A9800
dwMaxVideoFrameBufferSize:   0x00025800
dwDefaultFrameInterval:      0x00061A80
bFrameIntervalType:                0x01
===>Additional Discrete Frame Type Data
dwFrameInterval[1]:          0x00061A80
View Code

 

Video Streaming Uncompressed Video Frame Descriptor
OffsetFieldSizeValueDescription
0bLength11Eh 
1bDescriptorType124hVideo Streaming Uncompressed Video Frame
2 2805 05 00 60 01 20 01 00 
58 4D 00 00 58 4D 00 00 
18 03 00 80 1A 06 00 01 
80 1A 06 00 
 
          ===>Video Streaming Uncompressed Frame Type Descriptor<===
bLength:                           0x1E
bDescriptorType:                   0x24
bDescriptorSubtype:                0x05
bFrameIndex:                       0x05
bmCapabilities:                    0x00
wWidth:                          0x0160
wHeight:                         0x0120
dwMinBitRate:                0x004D5800
dwMaxBitRate:                0x004D5800
dwMaxVideoFrameBufferSize:   0x00031800
dwDefaultFrameInterval:      0x00061A80
bFrameIntervalType:                0x01
===>Additional Discrete Frame Type Data
dwFrameInterval[1]:          0x00061A80
View Code
Video Streaming Uncompressed Video Frame Descriptor
OffsetFieldSizeValueDescription
0bLength11Eh 
1bDescriptorType124hVideo Streaming Uncompressed Video Frame
2 2805 06 00 80 02 E0 01 00 
60 EA 00 00 60 EA 00 00 
60 09 00 80 1A 06 00 01 
80 1A 06 00 
 
          ===>Video Streaming Uncompressed Frame Type Descriptor<===
bLength:                           0x1E
bDescriptorType:                   0x24
bDescriptorSubtype:                0x05
bFrameIndex:                       0x06
bmCapabilities:                    0x00
wWidth:                          0x0280
wHeight:                         0x01E0
dwMinBitRate:                0x00EA6000
dwMaxBitRate:                0x00EA6000
dwMaxVideoFrameBufferSize:   0x00096000
dwDefaultFrameInterval:      0x00061A80
bFrameIntervalType:                0x01
===>Additional Discrete Frame Type Data
dwFrameInterval[1]:          0x00061A80
View Code
Video Streaming Still Image Frame Descriptor
OffsetFieldSizeValueDescription
0bLength11Eh 
1bDescriptorType124hVideo Streaming Still Image Frame
2 2803 00 06 80 02 E0 01 A0 
00 78 00 B0 00 90 00 40 
01 F0 00 60 01 20 01 80 
02 E0 01 00 
 
 
          ===>Still Image Frame Type Descriptor<===
bLength:                           0x1E
bDescriptorType:                   0x24
bDescriptorSubtype:                0x03
bEndpointAddress:                  0x00
bNumImageSizePatterns:             0x06
wWidth[1]:                       0x0280
wHeight[1]:                      0x01E0
wWidth[2]:                       0x00A0
wHeight[2]:                      0x0078
wWidth[3]:                       0x00B0
wHeight[3]:                      0x0090
wWidth[4]:                       0x0140
wHeight[4]:                      0x00F0
wWidth[5]:                       0x0160
wHeight[5]:                      0x0120
wWidth[6]:                       0x0280
wHeight[6]:                      0x01E0
bNumCompressionPattern:            0x00
View Code

 

Video Streaming Color Matching Descriptor
OffsetFieldSizeValueDescription
0bLength106h 
1bDescriptorType124hVideo Streaming Color Matching
2 40D 01 01 04  
          ===>Color Matching Descriptor<===
bLength:                           0x06
bDescriptorType:                   0x24
bDescriptorSubtype:                0x0D
bColorPrimaries:                   0x01
bTransferCharacteristics:          0x01
bMatrixCoefficients:               0x04
View Code

 

Interface Descriptor 1/1 Video, 1 Endpoint
OffsetFieldSizeValueDescription
0bLength109h 
1bDescriptorType104hInterface
2bInterfaceNumber101h 
3bAlternateSetting101h 
4bNumEndpoints101h 
5bInterfaceClass10EhVideo
6bInterfaceSubClass102hVideo Streaming
7bInterfaceProtocol100h 
8iInterface100h 
Endpoint Descriptor 81 1 In, Isochronous, 125 us
OffsetFieldSizeValueDescription
0bLength107h 
1bDescriptorType105hEndpoint
2bEndpointAddress181h1 In
3bmAttributes105hIsochronous, Asynchronous, Data
 1..0: Transfer Type ......01 Isochronous
 3..2: Sync Type ....01.. Asynchronous
 5..4: Usage Type ..00.... Data
 7..6: Reserved 00......  
4wMaxPacketSize21400h1024 bytes, 2 additional transactions (3 per microframe)
6bInterval101h125 us

 

转载于:https://www.cnblogs.com/libra13179/p/9132485.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值