USB系列之-UVC+UAC扬声器+麦克风实例分享

原创 嵌入式Lee 2024-04-15 08:00

一. 前言

前面三篇文章分享了UAC的扬声器,麦克风,扬声器+麦克风的设备。而一般多媒体设备是音频和视频同时有的,所以本文继续分享UVC+UAC(扬声器+麦克风)的复合设备。UVC实例后面再单独分享详细介绍。

.描述符拓扑

我们使用IAD可以方便的实现复合设备,前面已经实现了UVCUAC则只需要把他们拼起来即可。

我这里分享一个基于IADUVC+UAC描述符拓扑实例

UVC一共两个接口

控制接口0,一个输入终端,一个处理单元,一个输出终端。

0带宽流接口1alt 0, 实现了NV12H264MJPEGY800 4种格式,每种格式都有两种帧类型即两种分辨率。

9带宽流接口1alt 1,实现一个IN端点0x81用于发送数据。

UAC一共3个接口,接口2是控制接口,接口3是扬声器流,接口4是麦克风流。

接口3alt00带宽接口,设置接口选择该alt时关闭扬声器流,alt1是数据流接口,设置接口选择该alt时启动扬声器流,该接口下有一个OUT端点用于接收数据。

接口4alt00带宽接口,设置接口选择该alt时关闭麦克风流,alt1是数据流接口,设置接口选择该alt时启动麦克风流,该接口下有一个IN端点用于发送数据。

控制接口中包括

扬声器的:输入终端1,特征单元2和输出终端3。流接口3alt 1绑定到输入终端,

而输入终端对应的是OUT端点0x02

麦克风的:输入终端4,特征单元5和输出终端6。流接口4alt 1绑定到输出终端,

而输出终端对应的是IN端点0x82,注意这里在特征单元5和输出终端6之间插入了选择单元9.

.描述符实例

设备描述符和配置描述符如下,字符串描述符就略去了,描述符后有详细的注释和注意说明,不再赘述。

static const uint8_t dev_desc[] = {    0x12,        /* bLength 本描述符长度,固定为0x12 */    0x01,        /* bDescriptorType 描述符类型DEVICE=1, 见Table 9-5. Descriptor Types */    0x00,0x02,   /* bcdUSB USB规格书发布编号,BCD,小端 */    /* bDeviceClass-bDeviceSubClass-DeviceProtocol决定具体设备类型 见https://www.usb.org/defined-class-codes     * 这里EF-02-01表示IAD设备     */    0xEF,        /* bDeviceClass 设备类类型  */    0x02,        /* bDeviceSubClass 设备子类 */    0x01,        /* bDeviceProtocol 设备协议 */    0x40,        /* bMaxPacketSize0 控制端点最大包大小 */    0x4A,0x4C,   /* idVendor 厂商ID VID,小端*/    0x55,0x4C,   /* idProduct 产品ID PID,小端*/    0x00,0x01,   /* bcdDevice 设备发布号,BCD,小端*/    0x01,        /* iManufacturer 制造商字符串描述符索引 */      0x02,        /* iProduct 产品字符串描述符索引 */    0x03,        /* iSerialNumber 设备序列号字符串描述符索引 0则不使用 */    0x01,        /* bNumConfigurations 配置个数 */};static const uint8_t cfg_desc[] = {    /* 配置描述符见Table 9-10. Standard Configuration Descriptor */    0x09,  /* bLength 本描述符长度,固定为9 */    0x02,  /* bDescriptorType 描述符类型CONFIGURATION =0x02, 见Table 9-5. Descriptor Types P251 */    0xD8,  /* wTotalLength 本配置符所有内容长度,小端 */    0x02,    0x05,  /* bNumInterfaces 本配置的接口数 一个控制一个流 */    0x01,  /* bConfigurationValue 设置配置请求,选择该配置的对应的设置值 */    0x00,  /* iConfiguration 本配置对应的字符串描述符,配置为0则没有     */    0x80,  /* bmAttributes 配置特征 D7固定为1 D6:Self-powered D5:Remote Wakeup*/    0xC8,  /* bMaxPower 最大消耗电流,单位2mA */
    /********************************************************     *           以下是UVC部分     *******************************************************/    /**     * IAD描述符     * 见UVC 1.5 Class specification.pdf 3.6 Interface Association Descriptor P60    */    0x08,                /* bLength 本描述符长度,固定为8 */    0x0B,                /* bDescriptorType 描述符类型 INTERFACE_ASSOCIATION=0x0B 参考InterfaceAssociationDescriptor_ecn P3 */    UVC_ITF_VC,          /* bFirstInterface 本IAD下第一个接口 */    0x02,                /* bInterfaceCount 本IAD下接口数,默认一个控制接口一个流接口 */    0x0E,                /* bFunctionClass 功能类 见UVC 1.5 Class specification.pdf Table A- 1 Video Interface Class Code P171 CC_VIDEO=0x0E */    0x03,                /* bFunctionSubClass 功能子类 见UVC 1.5 Class specification.pdf Table A- 2 Video Interface Subclass Codes P171 SC_VIDEO_INTERFACE_COLLECTION=0x03  */    0x00,                /* bFunctionProtocol 功能协议号 见UVC 1.5 Class specification.pdf Table A- 3 Video Interface Protocol Codes P171 PC_PROTOCOL_UNDEFINED=0x00 */    0x00,                /* iFunction 对应字符串索引                                */
        /* 控制接口描述符 见UVC 1.5 Class specification.pdf 3.7 VideoControl Interface Descriptors P61          * Table 3-2 Standard VC Interface Descriptor        */        0x09,                      /* bLength  本描述符长度,固定为9               */        0x04,                      /* bDescriptorType 描述符类型  见usb_20 P251 Table 9-5. Descriptor Types  INTERFACE=4  */        UVC_ITF_VC,                /* bInterfaceNumber  接口号,从0开始            */        0x00,                      /* bAlternateSetting alt接口号,从0开始         */        0x00,                      /* bNumEndpoints 本接口下端点数                */        0x0E,                      /* bInterfaceClass 接口类,见UVC 1.5 Class specification.pdf Table A- 1 Video Interface Class Code P171 CC_VIDEO=0x0E        */        0x01,                      /* bInterfaceSubClass接口子类 见UVC 1.5 Class specification.pdf Table A- 2 Video Interface Subclass Codes P171 SC_VIDEOCONTROL=0x01   */        0x00,                      /* bInterfaceProtocol 接口协议号,见UVC 1.5 Class specification.pdf Table A- 3 Video Interface Protocol Codes P171 PC_PROTOCOL_UNDEFINED=0x00 */        0x00,                      /* iInterface 本接口字符串描述符索引            */
                /* 见UVC 1.5 Class specification.pdf 3.7.2 Class-Specific VC Interface Descriptor P62                  * Table 3-3 Class-specific VC Interface Header Descriptor                 */                0x0D,                   /* bLength  本描述符长度 12+n */                0x24,                   /* bDescriptorType 描述符类型 见UVC 1.5 Class specification.pdf P171 Table A- 4 Video Class-Specific Descriptor Types CS_INTERFACE=0x24 */                0x01,                   /* bDescriptorSubType 描述符子类型 见UVC 1.5 Class specification.pdf P172 Table A- 5 Video Class-Specific VC Interface Descriptor Subtypes VC_HEADER=0x01 */                0x00, 0x01,             /* bcdUVC UVC版本,压缩BCD,小端 */                53, 0x00,               /* wTotalLength 本描述符加后面的所有Input/Output Terminal和Unit的总长    */                UVC_MAKE_DWORD(UVC_CLOCKFRQ), /* dwClockFrequency 设备时钟频率,单位Hz,小端4字节 */                1,                      /* bInCollection 本VideoControl接口包含的VideoStreaming interfaces接口数 */                UVC_ITF_VS,             /* baInterfaceNr(1) 第一个VideoStreaming interface接口号 */
                        /*  见UVC 1.5 Class specification.pdf P64 3.7.2.1 Input Terminal Descriptor                           *  Table 3-4 Input Terminal Descriptor                         */                        0x12,               /* bLength  8+x */                        0x24,               /* bDescriptorType 描述符类型 见UVC 1.5 Class specification.pdf P171 Table A- 4 Video Class-Specific Descriptor Types CS_INTERFACE=0x24 */                        0x02,               /* bDescriptorSubType 描述符子类型 见UVC 1.5 Class specification.pdf P172 Table A- 5 Video Class-Specific VC Interface Descriptor Subtypes VC_INPUT_TERMINAL=0x02      */                        UVC_TID_IN,         /* bTerminalID (1) 终端ID,非0       */                        UVC_MAKE_WORD(0x0201),       /* wTerminalType  见UVC 1.5 Class specification.pdf P177 Table B- 2 Input Terminal Types (ITT_CAMERA=0x0201)  */                        0x00,                        /* bAssocTerminal(Not  associated with an Output Terminal) */                        0x00,                        /* iTerminal 终端的字符串描述符索引,  (No String Descriptor) */                        UVC_MAKE_WORD(0x0000),       /* wObjectiveFocalLengthMin */                        UVC_MAKE_WORD(0x0000),       /* wObjectiveFocalLengthMax */                        UVC_MAKE_WORD(0x0000),       /* wOcularFocalLength */                        0x03,                        /* bControlSize (3 bytes) */                        /*  bmControls                        D0: Scanning Mode                        D1: Auto-Exposure Mode                        D2: Auto-Exposure Priority                        D3: Exposure Time (Absolute)                        D4: Exposure Time (Relative)                        D5: Focus (Absolute)                        D6 : Focus (Relative)                        D7: Iris (Absolute)                        D8 : Iris (Relative)                        D9: Zoom (Absolute)                        D10: Zoom (Relative)                        D11: PanTilt (Absolute)                        D12: PanTilt (Relative)                        D13: Roll (Absolute)                        D14: Roll (Relative)                        D15: Reserved                        D16: Reserved                        D17: Focus, Auto                        D18: Privacy                        D19: Focus, Simple                        D20: Window                        D21: Region of Interest                        D22 – D23: Reserved, set to zero                        */                        0x00,                        0x00,                        0x00,
                        /* 见UVC 1.5 Class specification.pdf P69 3.7.2.5 Processing Unit Descriptor                          * Table 3-8 Processing Unit Descriptor                         */                        0x0D,                        /*  bLength  (11 bytes) */                        0x24,                        /*  bDescriptorType 描述符类型 见UVC 1.5 Class specification.pdf P171 Table A- 4 Video Class-Specific Descriptor Types CS_INTERFACE=0x24 */                        0x05,                        /*  bDescriptorSubType 描述符子类型 见UVC 1.5 Class specification.pdf P172 Table A- 5 Video Class-Specific VC Interface Descriptor Subtypes VC_PROCESSING_UNIT=0x05 */                        UVC_TID_PU,                  /*  bUnitID (1)   */                        UVC_TID_IN,                  /*  bSourceID (2) */                        UVC_MAKE_WORD(0x0000),       /*  wMaxMultiplier */                        0x03,                        /*  bControlSize (3 bytes) */                        /*                        bmControls                        D0: Brightness                        D1: Contrast                        D2: Hue                        D3: Saturation                        D4: Sharpness                        D5: Gamma                        D6: White Balance Temperature                        D7: White Balance Component                        D8: Backlight Compensation                        D9: Gain                        D10: Power Line Frequency                        D11: Hue, Auto                        D12: White Balance Temperature, Auto                        D13: White Balance Component, Auto                        D14: Digital Multiplier                        D15: Digital Multiplier Limit                        D16: Analog Video Standard                        D17: Analog Video Lock Status                        D18: Contrast, Auto                        D19 – D23: Reserved. Set to zero                        */                        0x00,                        0x00,                        0x00,                        0x00,                  /* iProcessing  Index of a string descriptor */                        /*  bmVideoStandards                        D0: None                        D1: NTSC – 525/60                        D2: PAL – 625/50                        D3: SECAM – 625/50                        D4: NTSC – 625/50                        D5: PAL – 525/60                        */                        0x00,
                        /* 见UVC 1.5 Class specification.pdf 3.7.2.2 Output Terminal Descriptor P66 */                        0x09,               /* bLength */                        0x24,               /* bDescriptorType 描述符类型 见UVC 1.5 Class specification.pdf P171 Table A- 4 Video Class-Specific Descriptor Types CS_INTERFACE=0x24          */                        0x03,               /* bDescriptorSubType 描述符子类型 见UVC 1.5 Class specification.pdf P172 Table A- 5 Video Class-Specific VC Interface Descriptor Subtypes VC_OUTPUT_TERMINAL=0x03  */                        UVC_TID_OUT,        /* bTerminalID 终端ID. 9.2.1 Input Header Descriptor的bTerminalLink对应 */                        UVC_MAKE_WORD(0x0101),     /* wTerminalType  见UVC 1.5 Class specification.pdf P177 Table B- 1 USB Terminal Types (TT_STREAMING=0x0101)   */                        UVC_TID_IN,                /* bAssocTerminal 关联Input Terminal */                        UVC_TID_PU,                /* bSourceID 本终端连接的Unit or Terminal的ID */                        0x00,                      /* iTerminal 描述终端的字符串描述符索*/
        /* Class-Specific VS Interface Descriptors alternate setting 0          * 见UVC 1.5 Class specification.pdf P76 Table 3-13 Standard VS Interface Descriptor         */        0x09,                   /* bLength   接口描述符长固定9字节            */        0x04,                   /* bDescriptorType  bDescriptorType   见usb_20 P251 Table 9-5. Descriptor Types  INTERFACE=4        */        UVC_ITF_VS,             /* bInterfaceNumber  接口索引           */        0x00,                   /* bAlternateSetting alt接口设置索引    */        0x00,                   /* bNumEndpoints 本接口使用的端点个数(不含端点0) */        0x0E,                   /* bInterfaceClass 见UVC 1.5 Class specification.pdf P171 Table A- 1 Video Interface Class Code  CC_VIDEO=0x0E */        0x02,                   /* bInterfaceSubClass 见UVC 1.5 Class specification.pdf P171 Table A- 2 Video Interface Subclass Codes SC_VIDEOSTREAMING=0x02        */        0x00,                   /* bInterfaceProtocol 见UVC 1.5 Class specification.pdf P171 Table A- 3 Video Interface Protocol Codes PC_PROTOCOL_UNDEFINED=0x00 */        0x00,                   /* iInterface 字符串描述符索引 0:            */
                /* 3.9.2 Class-Specific VS Interface Descriptors                   3.9.2.1 Input Header Descriptor                    见UVC 1.5 Class specification.pdf P76 Table 3-14 Class-specific VS Interface Input Header Descriptor*/                0x11,            /* bLength 13+(p*n)                     */                0x24,            /* bDescriptorType 描述符类型 见UVC 1.5 Class specification.pdf P171 Table A- 4 Video Class-Specific Descriptor Types CS_INTERFACE=0x24        */                0x01,            /* bDescriptorSubtype 见UVC 1.5 Class specification.pdf P172 Table A- 6 Video Class-Specific VS Interface Descriptor Subtypes VS_INPUT_HEADER=0x01   */                0x04,            /* bNumFormats 本接口对应的格式描述符个数 */                0xA4,0x01,       /* wTotalLength 本描述符加上后面格式描述帧描述符的长*/                UVC_IN_ED,       /* bEndpointAddress videa data对应的端D7: Direction 1 = IN endpoint D3..0: The endpoint number*/                0x00,            /* bmInfo D0: Dynamic Format Change supported */                UVC_TID_OUT,     /* bTerminalLink 本接口的video端点连接的输出终端的ID */                0x00,            /* bStillCaptureMethod Method of still image capture */                0x00,            /* bTriggerSupport */                0x00,            /* bTriggerUsage */                0x01,            /* bControlSize bmaControls区域的大小 每个格式对应1字节,4种格式 */                /*                For bits D3..0, a bit set to 1 indicates that                the named field is supported by the Video                Probe and Commit Control when                bFormatIndex is 1:                D0: wKeyFrameRate                D1: wPFrameRate                D2: wCompQuality                D3: wCompWindowSize                For bits D5..4, a bit set to 1 indicates that                the named control is supported by the                device when bFormatIndex is 1:                D4: Generate Key Frame                D5: Update Frame Segment                D6..(n*8-1): Reserved, set to zero                */                0x00,            /* bmaControls(1) */                0x00,            /* bmaControls(2) */                0x00,            /* bmaControls(3) */                0x00,            /* bmaControls(4) */
                        /**************************************                         *    NV12格式部分                         *************************************/                        /* 见 USB_Video_Payload_Uncompressed_1.5.pdf P10 Table 3-1 Uncompressed Video Format Descriptor */                        27,                             /* bLength 27*/                        0x24,                           /* bDescriptorType 描述符类型 见UVC 1.5 Class specification.pdf P171 Table A- 4 Video Class-Specific Descriptor Types CS_INTERFACE=0x24  */                        0x04,                           /* bDescriptorSubType : 见UVC 1.5 Class specification.pdf P172 Table A- 6 Video Class-Specific VS Interface Descriptor Subtypes VS_FORMAT_UNCOMPRESSED=0x04 */                        0x01,                           /* bFormatIndex : 格式索引 */                        0x02,                           /* bNumFrameDescriptors : 本格式符下有一个帧描述, 可以有多个不同分辨率的帧 */                        //0x59,0x55,0x59,0x32,          /* Giud Format YUY2 {32595559-0000-0010-8000-00AA00389B71} */                        0x4E,0x56,0x31,0x32,            /* Giud Format NV12 {3231564E-0000-0010-8000-00AA00389B71} */                        0x00,0x00,                        0x10,0x00,                        0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71,                        12,                             // bBitsPerPixel : Number of bits per pixel used to specify color in the decoded video frame - 12 for nv12 16 for YUY2                        0x01,                           /* bDefaultFrameIndex : Default frame index is 1. 默认选择格式下的第一个帧 */                        0x00,                           /* bAspectRatioX : Non-interlaced stream not required. */                        0x00,                           /* bAspectRatioY : Non-interlaced stream not required. */                        0x00,                           /* bmInterlaceFlags : Non-interlaced stream */                        0x00,                           /* bCopyProtect : No restrictions imposed on the duplication of this video stream. */
                        /* 见 USB_Video_Payload_Uncompressed_1.5.pdf P12 Table 3-2 Uncompressed Video Frame Descriptors */                        0x26,                           /* bLength 30*/                        0x24,                           /* bDescriptorType 描述符类型 见UVC 1.5 Class specification.pdf P171 Table A- 4 Video Class-Specific Descriptor Types CS_INTERFACE=0x24 */                        0x05,                           /* bDescriptorSubType : 见UVC 1.5 Class specification.pdf P172 Table A- 6 Video Class-Specific VS Interface Descriptor Subtypes VS_FRAME_UNCOMPRESSED=0x05 */                        0x01,                           /* bFrameIndex : 帧索引 */                        0x02,                           /* bmCapabilities : Still images using capture method 0 are supported at this frame setting.D1: Fixed frame-rate. */                        UVC_MAKE_WORD(UVC_NV12_WIDTH_MAX1),           /* wWidth (2bytes). */                        UVC_MAKE_WORD(UVC_NV12_HEIGHT_MAX1),          /* wHeight (2bytes). */                        UVC_MAKE_DWORD(UVC_NV12_MIN_BIT_RATE1),       /* dwMinBitRate (4bytes): Min bit rate in bits/s  */                        UVC_MAKE_DWORD(UVC_NV12_MAX_BIT_RATE1),       /* dwMaxBitRate (4bytes): Max bit rate in bits/s  */                         UVC_MAKE_DWORD(UVC_NV12_MAX_FRAME_SIZE1),     /* dwMaxVideoFrameBufSize (4bytes): Maximum video or still frame size, in bytes. 这个值不能小,否则host可能分配空间不足以存储一帧图片 */                        UVC_MAKE_DWORD(UVC_NV12_FRAME_DEFINTERVEL1),  /* dwDefaultFrameInterval : 1,000,000 * 100ns -> 10 FPS */                         0x03,                                         /* bFrameIntervalType 帧间隔配置方法 0:连续帧间1..255:离散帧间隔配置个数 */                        UVC_MAKE_DWORD(UVC_NV12_FRAME_MININTERVEL1),  /* bFrameIntervalType=0dwMinFrameInterval 最小帧间隔(最大帧 单位 100ns */                        UVC_MAKE_DWORD(UVC_NV12_FRAME_DEFINTERVEL1),  /* bFrameIntervalType=0dwMaxFrameInterval 最大帧间隔(最小帧 单位 100ns */                        UVC_MAKE_DWORD(UVC_NV12_FRAME_MAXINTERVEL1),  /* bFrameIntervalType=0dwFrameIntervalStep 帧间隔步单位100ns         */
                        /* 见 USB_Video_Payload_Uncompressed_1.5.pdf P12 Table 3-2 Uncompressed Video Frame Descriptors */                        0x26,                           /* bLength 30*/                        0x24,                           /* bDescriptorType 描述符类型 见UVC 1.5 Class specification.pdf P171 Table A- 4 Video Class-Specific Descriptor Types CS_INTERFACE=0x24 */                        0x05,                           /* bDescriptorSubType : 见UVC 1.5 Class specification.pdf P172 Table A- 6 Video Class-Specific VS Interface Descriptor Subtypes VS_FRAME_UNCOMPRESSED=0x05 */                        0x02,                           /* bFrameIndex : 帧索引 */                        0x02,                           /* bmCapabilities : Still images using capture method 0 are supported at this frame setting.D1: Fixed frame-rate. */                        UVC_MAKE_WORD(UVC_NV12_WIDTH_MAX2),           /* wWidth (2bytes). */                        UVC_MAKE_WORD(UVC_NV12_HEIGHT_MAX2),          /* wHeight (2bytes). */                        UVC_MAKE_DWORD(UVC_NV12_MIN_BIT_RATE2),       /* dwMinBitRate (4bytes): Min bit rate in bits/s  */                        UVC_MAKE_DWORD(UVC_NV12_MAX_BIT_RATE2),       /* dwMaxBitRate (4bytes): Max bit rate in bits/s  */                         UVC_MAKE_DWORD(UVC_NV12_MAX_FRAME_SIZE2),     /* dwMaxVideoFrameBufSize (4bytes): Maximum video or still frame size, in bytes. 这个值不能小,否则host可能分配空间不足以存储一帧图片 */                        UVC_MAKE_DWORD(UVC_NV12_FRAME_DEFINTERVEL2),  /* dwDefaultFrameInterval : 1,000,000 * 100ns -> 10 FPS */                         0x03,                                         /* bFrameIntervalType 帧间隔配置方法 0:连续帧间1..255:离散帧间隔配置个数 */                        UVC_MAKE_DWORD(UVC_NV12_FRAME_MININTERVEL2),  /* bFrameIntervalType=0dwMinFrameInterval 最小帧间隔(最大帧 单位 100ns */                        UVC_MAKE_DWORD(UVC_NV12_FRAME_DEFINTERVEL2),  /* bFrameIntervalType=0dwMaxFrameInterval 最大帧间隔(最小帧 单位 100ns */                        UVC_MAKE_DWORD(UVC_NV12_FRAME_MAXINTERVEL2),  /* bFrameIntervalType=0dwFrameIntervalStep 帧间隔步单位100ns         */
                        /* 见 USB_Video_Payload_Uncompressed_1.5.pdf P83 Table 3-19 Color Matching Descriptor                            必须跟在Frame Descriptors后 一个格式描述符只能对应一个                         */                        6,                                    /* bLength */                        0x24,                                 /* bDescriptorType 描述符类型 见UVC 1.5 Class specification.pdf P171 Table A- 4 Video Class-Specific Descriptor Types CS_INTERFACE=0x24 */                        0x0D,                                 /* bDescriptorSubType : 见UVC 1.5 Class specification.pdf P172 Table A- 6 Video Class-Specific VS Interface Descriptor Subtypes VS_COLORFORMAT=0x0D  */                        0x01,                                 /* bColorPrimarie : 1: BT.709, sRGB (default) */                        0x01,                                 /* bTransferCharacteristics : 1: BT.709 (default) */                        0x04,                                 /* bMatrixCoefficients : 4: SMPTE 170M (BT.601,default) */
                        /**************************************                         *    H264格式部分                         *************************************/                        /* 见USB_Video_Payload_Frame_Based_1.5.pdf P11 Table 3-1 Frame Based Payload Video Format Descriptor */                        0x1C,           /* bLength */                        0x24,           /* bDescriptorType 描述符类型 见UVC 1.5 Class specification.pdf P171 Table A- 4 Video Class-Specific Descriptor Types CS_INTERFACE=0x24   */                        0x10,           /* bDescriptorSubtype 见UVC 1.5 Class specification.pdf P172 Table A- 6 Video Class-Specific VS Interface Descriptor Subtypes VS_FORMAT_FRAME_BASED=0x10 */                        0x02,           /* bFormatIndex 格式索引*/                        0x02,           /* bNumFrameDescriptors 本格式下的帧描述符个数 */                        0x48,0x32,0x36,0x34, /* guidFormat */                        0x00,0x00,                        0x10,0x00,                        0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71,                        0x10,           /* bBitsPerPixel */                        0x01,           /* bDefaultFrameIndex  */                        0x00,           /* bAspectRatioX */                        0x00,           /* bAspectRatioY */                        /*                        Specifies interlace information. If the                        scanning mode control in the Camera                        Terminal is supported for this stream,                        this field shall reflect the field format                        used in interlaced mode.                        (Top field in PAL is field 1, top field in                        NTSC is field 2.):                        D0: Interlaced stream or variable. 1 =                        Yes                        D1: Fields per frame. 0= 2 fields, 1 = 1                        field                        D2: Field 1 first. 1 = Yes                        D3: Reserved                        D5..4: Field pattern                        00 = Field 1 only                        01 = Field 2 only                        10 = Regular pattern of fields 1 and 2                        11 = Random pattern of fields 1 and 2                        D7..6: Reserved. Do not use                        */                        0x00,           /* bmInterlaceFlags */                        0x00,           /* bCopyProtect  */                        0x01,           /* bVariableSize 1:帧大小是可变的 0:帧大小是固定的 */
                        /* 见USB_Video_Payload_Frame_Based_1.5.pdf P14 Table 3-2 Frame Based Payload Video Frame Descriptors */                        0x26,                   /* bLength   */                        0x24,                   /* bDescriptorType 描述符类型 见UVC 1.5 Class specification.pdf P171 Table A- 4 Video Class-Specific Descriptor Types CS_INTERFACE=0x24 */                        0x11,                   /* bDescriptorSubtype 见UVC 1.5 Class specification.pdf P172 Table A- 6 Video Class-Specific VS Interface Descriptor Subtypes VS_FRAME_FRAME_BASED=0x11 */                        0x01,                   /* bFrameIndex   */                        0x00,                   /* bmCapabilities*/                        UVC_MAKE_WORD(UVC_H264_WIDTH_MAX1),           /* wWidth  */                        UVC_MAKE_WORD(UVC_H264_HEIGHT_MAX1),          /* wHeight  */                        UVC_MAKE_DWORD(UVC_H264_MIN_BIT_RATE1),       /* dwMinBitRate  */                        UVC_MAKE_DWORD(UVC_H264_MAX_BIT_RATE1),       /* dwMaxBitRate */                        UVC_MAKE_DWORD(UVC_H264_FRAME_DEFINTERVEL1),  /* dwDefaultFrameInterval */                        0x03,                                         /* bFrameIntervalType */                        0x00,0x00,0x00,0x00,                          /* dwBytesPerLine 固定帧大小时使用 */                        UVC_MAKE_DWORD(UVC_H264_FRAME_MININTERVEL1),  /* bFrameIntervalType=0dwMinFrameInterval 最小帧间隔(最大帧 单位 100ns */                        UVC_MAKE_DWORD(UVC_H264_FRAME_DEFINTERVEL1),  /* bFrameIntervalType=0dwMaxFrameInterval 最大帧间隔(最小帧 单位 100ns */                        UVC_MAKE_DWORD(UVC_H264_FRAME_MAXINTERVEL1),  /* bFrameIntervalType=0dwFrameIntervalStep 帧间隔步单位100ns         */
                        /* 见USB_Video_Payload_Frame_Based_1.5.pdf P14 Table 3-2 Frame Based Payload Video Frame Descriptors */                        0x26,                   /* bLength   */                        0x24,                   /* bDescriptorType 描述符类型 见UVC 1.5 Class specification.pdf P171 Table A- 4 Video Class-Specific Descriptor Types CS_INTERFACE=0x24 */                        0x11,                   /* bDescriptorSubtype 见UVC 1.5 Class specification.pdf P172 Table A- 6 Video Class-Specific VS Interface Descriptor Subtypes VS_FRAME_FRAME_BASED=0x11 */                        0x02,                   /* bFrameIndex   */                        0x00,                   /* bmCapabilities*/                        UVC_MAKE_WORD(UVC_H264_WIDTH_MAX2),           /* wWidth  */                        UVC_MAKE_WORD(UVC_H264_HEIGHT_MAX2),          /* wHeight  */                        UVC_MAKE_DWORD(UVC_H264_MIN_BIT_RATE2),       /* dwMinBitRate  */                        UVC_MAKE_DWORD(UVC_H264_MAX_BIT_RATE2),       /* dwMaxBitRate */                        UVC_MAKE_DWORD(UVC_H264_FRAME_DEFINTERVEL2),  /* dwDefaultFrameInterval */                        0x03,                                         /* bFrameIntervalType */                        0x00,0x00,0x00,0x00,                          /* dwBytesPerLine 固定帧大小时使用 */                        UVC_MAKE_DWORD(UVC_H264_FRAME_MININTERVEL2),  /* bFrameIntervalType=0dwMinFrameInterval 最小帧间隔(最大帧 单位 100ns */                        UVC_MAKE_DWORD(UVC_H264_FRAME_DEFINTERVEL2),  /* bFrameIntervalType=0dwMaxFrameInterval 最大帧间隔(最小帧 单位 100ns */                        UVC_MAKE_DWORD(UVC_H264_FRAME_MAXINTERVEL2),  /* bFrameIntervalType=0dwFrameIntervalStep 帧间隔步单位100ns         */
                        /**************************************                         *    MJPEG格式部分                         *************************************/                        /* 见 MJPEG USB_Video_Payload_MJPEG_1.5.pdf P12 3.1.1 MJPEG Video Format Descriptor */                        0x0B,           /* bLength 描述符长固定x0B  */                        0x24,           /* bDescriptorType 描述符类型 见UVC 1.5 Class specification.pdf P171 Table A- 4 Video Class-Specific Descriptor Types CS_INTERFACE=0x24  */                        0x06,           /* bDescriptorSubtype 见UVC 1.5 Class specification.pdf P172 Table A- 6 Video Class-Specific VS Interface Descriptor Subtypes VS_FORMAT_MJPEG=0x06 */                        0x03,           /* bFormatIndex 格式描述索引  */                        0x02,           /* bNumFrameDescriptors 与此格式描述符对应的帧描述符个数 */                        0x01,           /* bmFlags D0: FixedSizeSamples. 1 = Yes */                        0x01,           /* bDefaultFrameIndex 此流的默认帧索引 */                        0x00,           /* bAspectRatioX 纵横比x*/                        0x00,           /* bAspectRatioY 纵横比y*/                        /*                        Specifies interlace information. If the                        scanning mode control in the Camera                        Terminal is supported for this stream,                        this field should reflect the field format                        used in interlaced mode.                        (Top field in PAL is field 1, top field in                        NTSC is field 2.):                        D0: Interlaced stream or variable. 1 =                        Yes                        D1: Fields per frame. 0= 2 fields, 1 = 1                        field                        D2: Field 1 first. 1 = Yes                        D3: Reserved                        D5..4: Field pattern                        00 = Field 1 only                        01 = Field 2 only                        10 = Regular pattern of fields 1 and 2                        11 = Random pattern of fields 1 and 2                        D7..6: Reserved. Do not use.                        */                        0x00,           /* bmInterlaceFlags */                        0x00,           /* bCopyProtect 是否限制重复的视频流 */
                        /* 见 MJPEG USB_Video_Payload_MJPEG_1.5.pdf P13 Table 3-2 Motion-JPEG Video Frame Descriptor */                        0x26,                   /* bLength   描述符长bFrameIntervalType=08,bFrameIntervalType>06+(4*n) */                        0x24,                   /* bDescriptorType 描述符类型 见UVC 1.5 Class specification.pdf P171 Table A- 4 Video Class-Specific Descriptor Types CS_INTERFACE=0x24 */                        0x07,                   /* bDescriptorSubtype 见UVC 1.5 Class specification.pdf P172 Table A- 6 Video Class-Specific VS Interface Descriptor Subtypes VS_FRAME_MJPEG=0x07 */                        0x01,                   /* bFrameIndex  帧描述符索引 */                        0x02,                   /* bmCapabilities D0: Still image supported(Image Capture Method 1) D1: Fixed frame-rate*/                        UVC_MAKE_WORD(UVC_MJPEG_WIDTH_MAX1),        /* wWidth  */                        UVC_MAKE_WORD(UVC_MJPEG_HEIGHT_MAX1),        /* wHeight  */                        UVC_MAKE_DWORD(UVC_MJPEG_MIN_BIT_RATE1),     /* dwMinBitRate 指定默认压缩质量下和最长的帧间隔时对应的传输最小比特率bps */                        UVC_MAKE_DWORD(UVC_MJPEG_MAX_BIT_RATE1),        /* dwMaxBitRate 指定默认压缩质量下和最短的帧间隔时对应的传输最大比特率bps */                        UVC_MAKE_DWORD(UVC_MJPEG_MAX_FRAME_SIZE1),   /* dwMaxVideoFrameBufferSize 帧压缩缓冲大小 */                        UVC_MAKE_DWORD(UVC_MJPEG_FRAME_DEFINTERVEL1),   /* dwDefaultFrameInterval 默认帧间隔 */                        0x03,                                          /* bFrameIntervalType 帧间隔配置方0:连续帧间1..255:离散帧间隔配置个*/                        UVC_MAKE_DWORD(UVC_MJPEG_FRAME_MININTERVEL1),  /* bFrameIntervalType=0dwMinFrameInterval 最小帧间隔(最大帧 单位 100ns */                        UVC_MAKE_DWORD(UVC_MJPEG_FRAME_DEFINTERVEL1),  /* bFrameIntervalType=0dwMaxFrameInterval 最大帧间隔(最小帧 单位 100ns */                        UVC_MAKE_DWORD(UVC_MJPEG_FRAME_MAXINTERVEL1),  /* bFrameIntervalType=0dwFrameIntervalStep 帧间隔步单位100ns         */
                        /* 见 MJPEG USB_Video_Payload_MJPEG_1.5.pdf P13 Table 3-2 Motion-JPEG Video Frame Descriptor */                        0x26,                   /* bLength   描述符长bFrameIntervalType=08,bFrameIntervalType>06+(4*n) */                        0x24,                   /* bDescriptorType 描述符类型 见UVC 1.5 Class specification.pdf P171 Table A- 4 Video Class-Specific Descriptor Types CS_INTERFACE=0x24 */                        0x07,                   /* bDescriptorSubtype 见UVC 1.5 Class specification.pdf P172 Table A- 6 Video Class-Specific VS Interface Descriptor Subtypes VS_FRAME_MJPEG=0x07 */                        0x02,                   /* bFrameIndex  帧描述符索引 */                        0x02,                   /* bmCapabilities D0: Still image supported(Image Capture Method 1) D1: Fixed frame-rate*/                        UVC_MAKE_WORD(UVC_MJPEG_WIDTH_MAX2),        /* wWidth  */                        UVC_MAKE_WORD(UVC_MJPEG_HEIGHT_MAX2),        /* wHeight  */                        UVC_MAKE_DWORD(UVC_MJPEG_MIN_BIT_RATE2),     /* dwMinBitRate 指定默认压缩质量下和最长的帧间隔时对应的传输最小比特率bps */                        UVC_MAKE_DWORD(UVC_MJPEG_MAX_BIT_RATE2),        /* dwMaxBitRate 指定默认压缩质量下和最短的帧间隔时对应的传输最大比特率bps */                        UVC_MAKE_DWORD(UVC_MJPEG_MAX_FRAME_SIZE2),   /* dwMaxVideoFrameBufferSize 帧压缩缓冲大小 */                        UVC_MAKE_DWORD(UVC_MJPEG_FRAME_DEFINTERVEL2),   /* dwDefaultFrameInterval 默认帧间隔 */                        0x03,                                          /* bFrameIntervalType 帧间隔配置方0:连续帧间1..255:离散帧间隔配置个*/                        UVC_MAKE_DWORD(UVC_MJPEG_FRAME_MININTERVEL2),  /* bFrameIntervalType=0dwMinFrameInterval 最小帧间隔(最大帧 单位 100ns */                        UVC_MAKE_DWORD(UVC_MJPEG_FRAME_DEFINTERVEL2),  /* bFrameIntervalType=0dwMaxFrameInterval 最大帧间隔(最小帧 单位 100ns */                        UVC_MAKE_DWORD(UVC_MJPEG_FRAME_MAXINTERVEL2),  /* bFrameIntervalType=0dwFrameIntervalStep 帧间隔步单位100ns         */                                                /**************************************                         *    Y800格式部分                         *************************************/                        /* 见 USB_Video_Payload_Uncompressed_1.5.pdf P10 Table 3-1 Uncompressed Video Format Descriptor */                        27,                             /* bLength 27*/                        0x24,                           /* bDescriptorType 描述符类型 见UVC 1.5 Class specification.pdf P171 Table A- 4 Video Class-Specific Descriptor Types CS_INTERFACE=0x24  */                        0x04,                           /* bDescriptorSubType : 见UVC 1.5 Class specification.pdf P172 Table A- 6 Video Class-Specific VS Interface Descriptor Subtypes VS_FORMAT_UNCOMPRESSED=0x04 */                        0x04,                           /* bFormatIndex : 格式索引 */                        0x02,                           /* bNumFrameDescriptors : 本格式符下有一个帧描述, 可以有多个不同分辨率的帧 */                        'Y',  '8',  '0',  '0',                        0x00,0x00,                        0x10,0x00,                        0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71,                        8,                              /* bBitsPerPixel : Number of bits per pixel used to specify color in the decoded video frame */                         0x01,                           /* bDefaultFrameIndex : Default frame index is 1. 默认选择格式下的第一个帧 */                        0x00,                           /* bAspectRatioX : Non-interlaced stream not required. */                        0x00,                           /* bAspectRatioY : Non-interlaced stream not required. */                        0x00,                           /* bmInterlaceFlags : Non-interlaced stream */                        0x00,                           /* bCopyProtect : No restrictions imposed on the duplication of this video stream. */
                        /* 见 USB_Video_Payload_Uncompressed_1.5.pdf P12 Table 3-2 Uncompressed Video Frame Descriptors */                        0x26,                           /* bLength 30*/                        0x24,                           /* bDescriptorType 描述符类型 见UVC 1.5 Class specification.pdf P171 Table A- 4 Video Class-Specific Descriptor Types CS_INTERFACE=0x24 */                        0x05,                           /* bDescriptorSubType : 见UVC 1.5 Class specification.pdf P172 Table A- 6 Video Class-Specific VS Interface Descriptor Subtypes VS_FRAME_UNCOMPRESSED=0x05 */                        0x01,                           /* bFrameIndex : 帧索引 */                        0x02,                           /* bmCapabilities : Still images using capture method 0 are supported at this frame setting.D1: Fixed frame-rate. */                        UVC_MAKE_WORD(UVC_Y800_WIDTH_MAX1),           /* wWidth (2bytes). */                        UVC_MAKE_WORD(UVC_Y800_HEIGHT_MAX1),          /* wHeight (2bytes). */                        UVC_MAKE_DWORD(UVC_Y800_MIN_BIT_RATE1),       /* dwMinBitRate (4bytes): Min bit rate in bits/s  */                        UVC_MAKE_DWORD(UVC_Y800_MAX_BIT_RATE1),       /* dwMaxBitRate (4bytes): Max bit rate in bits/s  */                         UVC_MAKE_DWORD(UVC_Y800_MAX_FRAME_SIZE1),     /* dwMaxVideoFrameBufSize (4bytes): Maximum video or still frame size, in bytes. 这个值不能小,否则host可能分配空间不足以存储一帧图片 */                        UVC_MAKE_DWORD(UVC_Y800_FRAME_DEFINTERVEL1),  /* dwDefaultFrameInterval : 1,000,000 * 100ns -> 10 FPS */                         0x03,                                         /* bFrameIntervalType 帧间隔配置方法 0:连续帧间1..255:离散帧间隔配置个数 */                        UVC_MAKE_DWORD(UVC_Y800_FRAME_MININTERVEL1),  /* bFrameIntervalType=0dwMinFrameInterval 最小帧间隔(最大帧 单位 100ns */                        UVC_MAKE_DWORD(UVC_Y800_FRAME_DEFINTERVEL1),  /* bFrameIntervalType=0dwMaxFrameInterval 最大帧间隔(最小帧 单位 100ns */                        UVC_MAKE_DWORD(UVC_Y800_FRAME_MAXINTERVEL1),  /* bFrameIntervalType=0dwFrameIntervalStep 帧间隔步单位100ns         */
                        /* 见 USB_Video_Payload_Uncompressed_1.5.pdf P12 Table 3-2 Uncompressed Video Frame Descriptors */                        0x26,                           /* bLength 30*/                        0x24,                           /* bDescriptorType 描述符类型 见UVC 1.5 Class specification.pdf P171 Table A- 4 Video Class-Specific Descriptor Types CS_INTERFACE=0x24 */                        0x05,                           /* bDescriptorSubType : 见UVC 1.5 Class specification.pdf P172 Table A- 6 Video Class-Specific VS Interface Descriptor Subtypes VS_FRAME_UNCOMPRESSED=0x05 */                        0x02,                           /* bFrameIndex : 帧索引 */                        0x02,                           /* bmCapabilities : Still images using capture method 0 are supported at this frame setting.D1: Fixed frame-rate. */                        UVC_MAKE_WORD(UVC_Y800_WIDTH_MAX2),           /* wWidth (2bytes). */                        UVC_MAKE_WORD(UVC_Y800_HEIGHT_MAX2),          /* wHeight (2bytes). */                        UVC_MAKE_DWORD(UVC_Y800_MIN_BIT_RATE2),       /* dwMinBitRate (4bytes): Min bit rate in bits/s  */                        UVC_MAKE_DWORD(UVC_Y800_MAX_BIT_RATE2),       /* dwMaxBitRate (4bytes): Max bit rate in bits/s  */                         UVC_MAKE_DWORD(UVC_Y800_MAX_FRAME_SIZE2),     /* dwMaxVideoFrameBufSize (4bytes): Maximum video or still frame size, in bytes. 这个值不能小,否则host可能分配空间不足以存储一帧图片 */                        UVC_MAKE_DWORD(UVC_Y800_FRAME_DEFINTERVEL2),  /* dwDefaultFrameInterval : 1,000,000 * 100ns -> 10 FPS */                         0x03,                                         /* bFrameIntervalType 帧间隔配置方法 0:连续帧间1..255:离散帧间隔配置个数 */                        UVC_MAKE_DWORD(UVC_Y800_FRAME_MININTERVEL2),  /* bFrameIntervalType=0dwMinFrameInterval 最小帧间隔(最大帧 单位 100ns */                        UVC_MAKE_DWORD(UVC_Y800_FRAME_DEFINTERVEL2),  /* bFrameIntervalType=0dwMaxFrameInterval 最大帧间隔(最小帧 单位 100ns */                        UVC_MAKE_DWORD(UVC_Y800_FRAME_MAXINTERVEL2),  /* bFrameIntervalType=0dwFrameIntervalStep 帧间隔步单位100ns         */
                        /* 见 USB_Video_Payload_Uncompressed_1.5.pdf P83 Table 3-19 Color Matching Descriptor                            必须跟在Frame Descriptors后 一个格式描述符只能对应一个                         */                        6,                                    /* bLength */                        0x24,                                 /* bDescriptorType 描述符类型 见UVC 1.5 Class specification.pdf P171 Table A- 4 Video Class-Specific Descriptor Types CS_INTERFACE=0x24 */                        0x0D,                                 /* bDescriptorSubType : 见UVC 1.5 Class specification.pdf P172 Table A- 6 Video Class-Specific VS Interface Descriptor Subtypes VS_COLORFORMAT=0x0D  */                        0x01,                                 /* bColorPrimarie : 1: BT.709, sRGB (default) */                        0x01,                                 /* bTransferCharacteristics : 1: BT.709 (default) */                        0x04,                                 /* bMatrixCoefficients : 4: SMPTE 170M (BT.601,default) */
        /* 3.9.1 Standard VS Interface Descriptor alternate setting 1 */        0x09,   /* bLength   接口描述符长固定9字节            */        0x04,   /* bDescriptorType  bDescriptorType   见usb_20 P251 Table 9-5. Descriptor Types  INTERFACE=4         */        UVC_ITF_VS,   /* bInterfaceNumber  接口索引          */        0x01,         /* bAlternateSetting alt接口设置索引   */        0x01,         /* bNumEndpoints 本接口使用的端点个数(不含端点0) */        0x0E,         /* bInterfaceClass 见UVC 1.5 Class specification.pdf P171 Table A- 1 Video Interface Class Code  CC_VIDEO=0x0E */        0x02,         /* bInterfaceSubClass 见UVC 1.5 Class specification.pdf P171 Table A- 2 Video Interface Subclass Codes SC_VIDEOSTREAMING=0x02        */        0x00,         /* bInterfaceProtocol 见UVC 1.5 Class specification.pdf P171 Table A- 3 Video Interface Protocol Codes PC_PROTOCOL_UNDEFINED=0x00 */        0x00,         /* iInterface 字符串描述符索引 0:            */
        /* 3.10 VideoStreaming Endpoint Descriptors            3.10.1.1 Standard VS Isochronous Video Data Endpoint Descriptor            见UVC 1.5 Class specification.pdf P85 Table 3-20 Standard VS Isochronous Video Data Endpoint Descriptor        */        0x07,   /* bLength 端点描述符长固定7字节              */        0x05,   /* bDescriptorType 见usb_20.pdf P251 Table 9-5. Descriptor Types ENDPOINT=5           */        UVC_IN_ED,   /* bEndpointAddress    D7: 0 = OUT端点 1 = IN端点 D3..0: 端点*/        0x05,        /* bmAttributes D3..2: 同步类型ISO端点只能01 = Asynchronous  D1..0: 端点类型 01 = 同步端点 */        0x00,        /* wMaxPacketSize 2字节 bit12:11表示一个微帧传几包 bit10:0包大*/#if UVC_PACKET_NUM==1        0x04,#elif UVC_PACKET_NUM==2        0x0C,#elif UVC_PACKET_NUM==3        0x14,#endif        0x01,   /* bInterval 2^(bInterval-1) SOF的间        */
    /********************************************************     *           以下是MIC+SPK部分     *******************************************************/    /**     * IAD描述符  参考InterfaceAssociationDescriptor_ecn P4    */    0x08,         /* bLength 本描述符长度,固定为8 */    0x0B,         /* bDescriptorType 描述符类型 INTERFACE_ASSOCIATION=0x0B 参考InterfaceAssociationDescriptor_ecn P3 */    SPK_AC_ITF,   /* bFirstInterface 本IAD下第一个接口 */    0x03,         /* bInterfaceCount 本IAD下接口数,默认一个控制接口一个SPK流接口一个MIC流接口 */    0x01,         /* bFunctionClass UAC是接口中说明类功能 这里应该是接口类 见https://www.usb.org/defined-class-codes (Audio=1) 见audio10.pdf P99 Table A-1: Audio Interface Class Code AUDIO=1 */    0x02,         /* bFunctionSubClass  UAC是接口中说明类功能 这里应该是接口类子类 见audio10.pdf P99 Table A-2: Audio Interface Subclass Codes AUDIOSTREAMING=0x02 */    0x00,         /* bFunctionProtocol UAC是接口中说明类功能 这里应该是接口协议号 见audio10.pdf P99 Table A-3: Audio Interface Protocol Codes PR_PROTOCOL_UNDEFINED=0x00  */    0x07,         /* iFunction 对应字符串索引                                */
        /********************************************************         *           控制接口部分         *******************************************************/        /* 接口描述符 UAC是接口描述符说明功能          * 见usb_20 P268 Table 9-12. Standard Interface Descriptor         */        0x09,         /* bLength                */        0x04,         /* bDescriptorType   见usb_20 P251 Table 9-5. Descriptor Types  INTERFACE=4   */        SPK_AC_ITF,   /* bInterfaceNumber       */        0x00,         /* bAlternateSetting      */        0x00,         /* bNumEndpoints 本接口下无端点*/        0x01,         /* bInterfaceClass    (Audio)  见audio10.pdf P99 Table A-1: Audio Interface Class Code AUDIO=1  */        0x01,         /* bInterfaceSubClass (Audio Control) 见audio10.pdf P99 Table A-2: Audio Interface Subclass Codes AUDIOCONTROL=0x01 */        0x00,         /* bInterfaceProtocol   见audio10.pdf P99 Table A-3: Audio Interface Protocol Codes PR_PROTOCOL_UNDEFINED=0x00  */        0x07,         /* iInterface 对应字符串索引           */
        /* BasicAudioDevice-10.pdf P57 Table 7-4: Headset Class-Specific AC Interface Header Descriptor */        0x0A,         /* bLength */        0x24,         /* bDescriptorType 见audio10.pdf P99 Table A-4: Audio Class-specific Descriptor Types CS_INTERFACE=0x24  */        0x01,         /* bDescriptorSubtype 见audio10.pdf P100 Table A-5: Audio Class-Specific AC Interface Descriptor Subtypes HEADER=0x01 */        0x00,0x01,    /* bcdADC Audio 1.0 */        0x4D,0x00,    /* wTotalLength 本接口下后续所有描述符的长度 包括本描述符 */        0x02,         /* bInCollection 2个流接口 */        SPK_AS_ITF,   /* baInterfaceNr(1) SPK流接口号 */        MIC_AS_ITF,   /* baInterfaceNr(2) MIC流接口号 */
        /* BasicAudioDevice-10.pdf P22 Table 5-3: Mono Input Terminal Descriptor          * BasicAudioDevice-10.pdf P21 5.3.3.1.3 Headphone Input Terminal ID1 Descriptor         * BasicAudioDevice-10.pdf P58 7.3.3.1.3 Headset Input Terminal ID1 Descriptor        */        0x0C,         /* bLength */        0x24,         /* bDescriptorType 见audio10.pdf P99 Table A-4: Audio Class-specific Descriptor Types CS_INTERFACE=0x24 */        0x02,         /* bDescriptorSubtype 见audio10.pdf P100 Table A-5: Audio Class-Specific AC Interface Descriptor Subtypes INPUT_TERMINAL=0x02 */        SPK_INPUT_TID,/* bTerminalID TID=1*/        0x01,0x01,    /* wTerminalType TT Headphone Input Terminal */        0x00,         /* bAssocTerminal */        0x01,         /* bNrChannels 1个通道 */        0x04,0x00,    /* wChannelConfig Center Front channel. */        0x00,         /* iChannelNames 固定为0 */        0x00,         /* iTerminal 对应字符串描述符索引 */
        /* BasicAudioDevice-10.pdf P24 Table 5-5: Mono Feature Unit Descriptor          * BasicAudioDevice-10.pdf P59 7.3.3.1.7 Headset Feature Unit ID2 Descriptor         */        0x09,         /* bLength */        0x24,         /* bDescriptorType 见audio10.pdf P99 Table A-4: Audio Class-specific Descriptor Types CS_INTERFACE=0x24  */        0x06,         /* bDescriptorSubtype 见audio10.pdf P100 Table A-5: Audio Class-Specific AC Interface Descriptor Subtypes FEATURE_UNIT=0x06 */        SPK_FEATURE_TID,         /* bUnitID   */        SPK_INPUT_TID,           /* bSourceID */        0x01,                 /* bControlSize */        /**            A bit set to 1 indicates that the mentioned            Control is supported for master channel            0:            D0: Mute            D1: Volume            D2: Bass            D3: Mid            D4: Treble            D5: Graphic Equalizer            D6: Automatic Gain            D7: Delay            D8: Bass Boost            D9: Loudness            D10..(n*8-1): Reserved        */        0x01,                 /* bmaControls(0) Mute Control on Master Channel.*/        /*A bit set to 1 indicates that the mentioned          Control is supported for logical channel 1 */        0x02,                 /* bmaControls(1) Volume Control on Center Front channel */        0x00,         /* iFeature 对应字符串描述符索引 */
        /* BasicAudioDevice-10.pdf P25 Table 5-7: Headphone Output Terminal ID3 Descriptor          * BasicAudioDevice-10.pdf P67 7.3.3.1.16 Headset Output Terminal ID3 Descriptor        */        0x09,       /* bLength */        0x24,       /* bDescriptorType 见audio10.pdf P99 Table A-4: Audio Class-specific Descriptor Types CS_INTERFACE=0x24  */        0x03,       /* bDescriptorSubtype 见audio10.pdf P100 Table A-5: Audio Class-Specific AC Interface Descriptor Subtypes OUTPUT_TERMINAL=0x03 */        SPK_OUTPUT_TID,       /* bTerminalID */        0x02, 0x03,           /* 0x0301扬声器 0x0302耳机 Headphones Terminal Type (0x0302) */        0x00,                 /* bAssocTerminal */        SPK_FEATURE_TID,      /* bSourceID */        0x00,                 /* iTerminal */                    /* BasicAudioDevice-10.pdf P59 7.3.3.1.6 Headset Microphone Input Terminal ID4 Descriptor         * BasicAudioDevice-10.pdf P40 6.3.3.1.3 Microphone Input Terminal ID4 Descriptor         * BasicAudioDevice-10.pdf P22 Table 5-3: Mono Input Terminal Descriptor        */        0x0C,       /* bLength */        0x24,       /* bDescriptorType 见audio10.pdf P99 Table A-4: Audio Class-specific Descriptor Types CS_INTERFACE=0x24 */        0x02,       /* bDescriptorSubtype 见audio10.pdf P100 Table A-5: Audio Class-Specific AC Interface Descriptor Subtypes INPUT_TERMINAL=0x02 */        MIC_INPUT_TID,/* bTerminalID TID=4*/        0x01,0x02,    /* wTerminalType TT Terminal is Microphone. */        0x00,         /* bAssocTerminal */        0x01,         /* bNrChannels 1个通道 */        0x04,0x00,    /* wChannelConfig Center Front channel. @todo 0x0000改为0004*/        0x00,         /* iChannelNames 固定为0 */        0x00,         /* iTerminal 对应字符串描述符索引 */
        /*         * BasicAudioDevice-10.pdf P60 7.3.3.1.10 Headset Feature Unit ID5 Descriptor        */        0x09,      /* bLength */        0x24,      /* bDescriptorType 见audio10.pdf P99 Table A-4: Audio Class-specific Descriptor Types CS_INTERFACE=0x24 */        0x06,      /* bDescriptorSubtype 见audio10.pdf P100 Table A-5: Audio Class-Specific AC Interface Descriptor Subtypes FEATURE_UNIT=0x06 */        MIC_FEATURE_TID,      /* bUnitID   */        MIC_INPUT_TID,        /* bSourceID */        0x01,                 /* bControlSize */        /**            A bit set to 1 indicates that the mentioned            Control is supported for master channel            0:            D0: Mute            D1: Volume            D2: Bass            D3: Mid            D4: Treble            D5: Graphic Equalizer            D6: Automatic Gain            D7: Delay            D8: Bass Boost            D9: Loudness            D10..(n*8-1): Reserved        */        0x43,                 /* bmaControls(0) Mute Control on Master Channel.*/        /*A bit set to 1 indicates that the mentioned          Control is supported for logical channel 1 */        0x00,                 /* bmaControls(1) Volume Control on Center Front channel */        0x00,                 /* iFeature 对应字符串描述符索引 */
        /* BasicAudioDevice-10.pdf P66 Table 7-12: Headset Selector Unit ID9 Descriptor for HS2 */        0x07,                 /* bLength */        0x24,                 /* bDescriptorType 见audio10.pdf P99 Table A-4: Audio Class-specific Descriptor Types CS_INTERFACE=0x24 */        0x05,                 /* bDescriptorSubtype 见audio10.pdf P100 Table A-5: Audio Class-Specific AC Interface Descriptor Subtypes SELECTOR_UNIT=0x05 */        MIC_SEL_TID,          /* bUnitID */        0x01,                 /* bNrInPins */        MIC_FEATURE_TID,      /* baSourceID(1) */        0x00,                 /* iSelector */
        /*         * BasicAudioDevice-10.pdf P67 7.3.3.1.17 Headset Output Terminal ID6 Descriptor        */        0x09,    /* bLength */        0x24,    /* bDescriptorType 见audio10.pdf P99 Table A-4: Audio Class-specific Descriptor Types CS_INTERFACE=0x24 */        0x03,    /* bDescriptorSubtype 见audio10.pdf P100 Table A-5: Audio Class-Specific AC Interface Descriptor Subtypes OUTPUT_TERMINAL=0x03 */        MIC_OUTPUT_TID,       /* bTerminalID */        0x01,0x01,            /* wTerminalType USB Streaming Terminal Type*/        0x02,                 /* bAssocTerminal */        MIC_SEL_TID,          /* bSourceID */        0x00,                 /* iTerminal */
        /********************************************************         *           SPK流部分         *******************************************************/
        /* 接口描述符        * usb_20.pdf P268 Table 9-12. Standard Interface Descriptor         * BasicAudioDevice-10.pdf P30  Table 5-13: Headphone Standard AS Interface Descriptor (Alt. Set. 0)        */        0x09,    /* bLength */        0x04,    /* bDescriptorType INTERFACE */        SPK_AS_ITF,    /* bInterfaceNumber */        0x00,    /* bAlternateSetting */        0x00,    /* bNumEndpoints */        0x01,    /* bInterfaceClass 见audio10.pdf P99 Table A-1: Audio Interface Class Code AUDIO=1  */        0x02,    /* bInterfaceSubClass 见audio10.pdf P99 Table A-2: Audio Interface Subclass Codes AUDIOSTREAMING=0x02 */        0x00,    /* bInterfaceProtocol 见audio10.pdf P99 Table A-3: Audio Interface Protocol Codes PR_PROTOCOL_UNDEFINED = 0x00 */        0x00,    /* iInterface         */
        /* 接口描述符        * usb_20.pdf P268 Table 9-12. Standard Interface Descriptor         BasicAudioDevice-10.pdf P31  Table 5-14: Headphone Standard AS Interface Descriptor (Alt. Set .1)        */        0x09,   /* bLength */        0x04,   /* bDescriptorType INTERFACE */        SPK_AS_ITF,   /* bInterfaceNumber */        0x01,   /* bAlternateSetting */        0x01,   /* bNumEndpoints 一个端点 */        0x01,   /* bInterfaceClass 见audio10.pdf P99 Table A-1: Audio Interface Class Code AUDIO=1 */        0x02,   /* bInterfaceSubClass 见audio10.pdf P99 Table A-2: Audio Interface Subclass Codes AUDIOSTREAMING=0x02 */        0x00,   /* bInterfaceProtocol 见audio10.pdf P99 Table A-3: Audio Interface Protocol Codes PR_PROTOCOL_UNDEFINED = 0x00 */        0x00,   /* iInterface         */
        /*         * BasicAudioDevice-10.pdf P31  Table 5-15: Headphone Class-specific AS General Interface Descriptor        */        0x07,   /* bLength */        0x24,   /* bDescriptorType 见audio10.pdf P99 Table A-4: Audio Class-specific Descriptor Types CS_INTERFACE=0x24  */        0x01,   /* bDescriptorSubtype 见audio10.pdf P100 Table A-6: Audio Class-Specific AS Interface Descriptor Subtypes AS_GENERAL=0x01 */        SPK_INPUT_TID,   /* bTerminalLink */        0x01,            /* bDelay Total interface delay, expressed in frames. Not used and shall be set to 0x00 */        0x01,0x00,       /* wFormatTag PCM Format */
        /*         * BasicAudioDevice-10.pdf P32 Table 5-16: Mono Headphone Type I Format Type Descriptor         */        0x0B,  /* bLength */        0x24,  /* bDescriptorType 见audio10.pdf P99 Table A-4: Audio Class-specific Descriptor Types CS_INTERFACE=0x24  */        0x02,  /* bDescriptorSubtype 见audio10.pdf P100 Table A-6: Audio Class-Specific AS Interface Descriptor Subtypes FORMAT_TYPE=0x02 */        0x01,  /* bFormatType 见frmts10.pdf P20 Table A-4: Format Type Codes FORMAT_TYPE_I=0x01 */        0x01,  /* bNrChannels One channel. */        0x02,  /* bSubFrameSize Two bytes per audio subframe. */        0x10,  /* bBitResolution 16 bits per sample */        0x01,  /* bSamFreqType One frequency supported. */        0x80,0x3E,0x00, /* tSamFreq 0x003E80=16000 */
        /* 端点描述符         * usb_20.pdf P269 Table 9-13. Standard Endpoint Descriptor        * BasicAudioDevice-10.pdf P33 Table 5-18: Mono Headphone Standard AS Audio Data Endpoint Descriptor        */        0x09,  /* bLength */        0x05,  /* bDescriptorType 见usb_20.pdf P251 Table 9-5. Descriptor Types ENDPOINT=5 */        SPK_OUT_EP, /* bEndpointAddress */        0x0D,  /* bmAttributes b[1:0] 01 = Isochronous, b[3:2] 11 = Synchronous */        0x20,  0x00,  /* wMaxPacketSize */        0x01,  /* bInterval 1ms一包 */        0x00,  /* bRefresh  */        0x00,  /* bSynchAddress */
        /*         * BasicAudioDevice-10.pdf P33 Table 5-20: Headphone Class-specific Isoc. Audio Data Endpoint Descriptor        */        0x07,  /* bLength                                */        0x25,  /* bDescriptorType 见audio10.pdf P99 Table A-4: Audio Class-specific Descriptor Types CS_ENDPOINT=0x25 */        0x01,  /* bDescriptorSubtype 见audio10.pdf P101 Table A-8: Audio Class-Specific Endpoint Descriptor Subtypes EP_GENERAL=0x01. */        0x00,  /* bmAttributes No sampling frequency control, no pitch control, no packet padding.*/        0x00,  /* bLockDelayUnits */        0x00,  0x00, /* wLockDelay */
        /********************************************************         *           MIC流部分         *******************************************************/        /* 接口描述符        * usb_20.pdf P268 Table 9-12. Standard Interface Descriptor         * BasicAudioDevice-10.pdf P30  Table 5-13: Headphone Standard AS Interface Descriptor (Alt. Set. 0)        */        0x09,    /* bLength */        0x04,    /* bDescriptorType INTERFACE */        MIC_AS_ITF,    /* bInterfaceNumber */        0x00,    /* bAlternateSetting */        0x00,    /* bNumEndpoints */        0x01,    /* bInterfaceClass 见audio10.pdf P99 Table A-1: Audio Interface Class Code AUDIO=1  */        0x02,    /* bInterfaceSubClass 见audio10.pdf P99 Table A-2: Audio Interface Subclass Codes AUDIOSTREAMING=0x02 */        0x00,    /* bInterfaceProtocol 见audio10.pdf P99 Table A-3: Audio Interface Protocol Codes PR_PROTOCOL_UNDEFINED = 0x00 */        0x00,    /* iInterface         */
        /* 接口描述符        * usb_20.pdf P268 Table 9-12. Standard Interface Descriptor         BasicAudioDevice-10.pdf P31  Table 5-14: Headphone Standard AS Interface Descriptor (Alt. Set .1)        */        0x09,   /* bLength */        0x04,   /* bDescriptorType INTERFACE */        MIC_AS_ITF,   /* bInterfaceNumber */        0x01,   /* bAlternateSetting */        0x01,   /* bNumEndpoints 一个端点 */        0x01,   /* bInterfaceClass 见audio10.pdf P99 Table A-1: Audio Interface Class Code AUDIO=1 */        0x02,   /* bInterfaceSubClass 见audio10.pdf P99 Table A-2: Audio Interface Subclass Codes AUDIOSTREAMING=0x02 */        0x00,   /* bInterfaceProtocol 见audio10.pdf P99 Table A-3: Audio Interface Protocol Codes PR_PROTOCOL_UNDEFINED = 0x00 */        0x00,   /* iInterface         */
        /*         * BasicAudioDevice-10.pdf P31  Table 5-15: Headphone Class-specific AS General Interface Descriptor        */        0x07,   /* bLength */        0x24,   /* bDescriptorType 见audio10.pdf P99 Table A-4: Audio Class-specific Descriptor Types CS_INTERFACE=0x24  */        0x01,   /* bDescriptorSubtype 见audio10.pdf P100 Table A-6: Audio Class-Specific AS Interface Descriptor Subtypes AS_GENERAL=0x01 */        MIC_OUTPUT_TID,   /* bTerminalLink */        0x01,            /* bDelay Total interface delay, expressed in frames. Not used and shall be set to 0x00 */        0x01,0x00,       /* wFormatTag PCM Format */
        /*         * BasicAudioDevice-10.pdf P32 Table 5-16: Mono Headphone Type I Format Type Descriptor         */        0x0B,  /* bLength */        0x24,  /* bDescriptorType 见audio10.pdf P99 Table A-4: Audio Class-specific Descriptor Types CS_INTERFACE=0x24  */        0x02,  /* bDescriptorSubtype 见audio10.pdf P100 Table A-6: Audio Class-Specific AS Interface Descriptor Subtypes FORMAT_TYPE=0x02 */        0x01,  /* bFormatType 见frmts10.pdf P20 Table A-4: Format Type Codes FORMAT_TYPE_I=0x01 */        0x01,  /* bNrChannels One channel. */        0x02,  /* bSubFrameSize Two bytes per audio subframe. */        0x10,  /* bBitResolution 16 bits per sample */        0x01,  /* bSamFreqType One frequency supported. */        0x80,0x3E,0x00, /* tSamFreq 0x003E80=16000 */
        /* 端点描述符         * usb_20.pdf P269 Table 9-13. Standard Endpoint Descriptor        * BasicAudioDevice-10.pdf P33 Table 5-18: Mono Headphone Standard AS Audio Data Endpoint Descriptor        */        0x09,  /* bLength */        0x05,  /* bDescriptorType 见usb_20.pdf P251 Table 9-5. Descriptor Types ENDPOINT=5 */        MIC_IN_EP, /* bEndpointAddress */        0x0D,  /* bmAttributes b[1:0] 01 = Isochronous, b[3:2] 11 = Synchronous */        0x20,  0x00,  /* wMaxPacketSize */        0x01,  /* bInterval 1ms一包 */        0x00,  /* bRefresh  */        0x00,  /* bSynchAddress */
        /*         * BasicAudioDevice-10.pdf P33 Table 5-20: Headphone Class-specific Isoc. Audio Data Endpoint Descriptor        */        0x07,  /* bLength                                */        0x25,  /* bDescriptorType 见audio10.pdf P99 Table A-4: Audio Class-specific Descriptor Types CS_ENDPOINT=0x25 */        0x01,  /* bDescriptorSubtype 见audio10.pdf P101 Table A-8: Audio Class-Specific Endpoint Descriptor Subtypes EP_GENERAL=0x01. */        0x00,  /* bmAttributes No sampling frequency control, no pitch control, no packet padding.*/        0x00,  /* bLockDelayUnits */        0x00,  0x00, /* wLockDelay */};

其中

#define SPK_AC_ITF 2#define SPK_AS_ITF 3#define MIC_AS_ITF 4
#define SPK_INPUT_TID 1#define SPK_FEATURE_TID 2#define SPK_OUTPUT_TID 3
#define MIC_INPUT_TID 4#define MIC_FEATURE_TID 5#define MIC_SEL_TID 9 #define MIC_OUTPUT_TID 6
#define SPK_OUT_EP 0x02#define MIC_IN_EP 0x82
#define UVC_ITF_VC 0#define UVC_ITF_VS 1#define UVC_TID_IN 1#define UVC_TID_OUT 3#define UVC_TID_PU 2#define UVC_IN_ED 0x81#define UVC_PACKET_NUM 1
#define UVC_MAKE_DWORD(x) (uint8_t)((x)&0xFF),(uint8_t)(((x)>>8)&0xFF),(uint8_t)(((x)>>16)&0xFF),(uint8_t)(((x)>>24)&0xFF)#define UVC_CLOCKFRQ 30000000ul /* 时钟频率 */#define UVC_MAKE_WORD(x) (uint8_t)((x)&0xFF),(uint8_t)(((x)>>8)&0xFF)
#define UVC_NV12_WIDTH_MAX1 1280 #define UVC_NV12_HEIGHT_MAX1 720 #define UVC_NV12_MIN_FPS1 5#define UVC_NV12_DEF_FPS1 25#define UVC_NV12_MAX_FPS1 30#define UVC_NV12_MIN_BIT_RATE1 (((UVC_NV12_WIDTH_MAX1*UVC_NV12_HEIGHT_MAX1)*3/2)*8*UVC_NV12_MIN_FPS1)#define UVC_NV12_MAX_BIT_RATE1 (((UVC_NV12_WIDTH_MAX1*UVC_NV12_HEIGHT_MAX1)*3/2)*8*UVC_NV12_MAX_FPS1)#define UVC_NV12_MAX_FRAME_SIZE1 ((UVC_NV12_WIDTH_MAX1*UVC_NV12_HEIGHT_MAX1)*3/2)#define UVC_NV12_FRAME_DEFINTERVEL1 (10000000/UVC_NV12_DEF_FPS1)#define UVC_NV12_FRAME_MININTERVEL1 (10000000/UVC_NV12_MAX_FPS1)#define UVC_NV12_FRAME_MAXINTERVEL1 (10000000/UVC_NV12_MIN_FPS1)
#define UVC_NV12_WIDTH_MAX2 320 #define UVC_NV12_HEIGHT_MAX2 240 #define UVC_NV12_MIN_FPS2 5#define UVC_NV12_DEF_FPS2 25#define UVC_NV12_MAX_FPS2 30#define UVC_NV12_MIN_BIT_RATE2 (((UVC_NV12_WIDTH_MAX2*UVC_NV12_HEIGHT_MAX2)*3/2)*8*UVC_NV12_MIN_FPS2)#define UVC_NV12_MAX_BIT_RATE2 (((UVC_NV12_WIDTH_MAX2*UVC_NV12_HEIGHT_MAX2)*3/2)*8*UVC_NV12_MAX_FPS2)#define UVC_NV12_MAX_FRAME_SIZE2 ((UVC_NV12_WIDTH_MAX2*UVC_NV12_HEIGHT_MAX2)*3/2)#define UVC_NV12_FRAME_DEFINTERVEL2 (10000000/UVC_NV12_DEF_FPS2)#define UVC_NV12_FRAME_MININTERVEL2 (10000000/UVC_NV12_MAX_FPS2)#define UVC_NV12_FRAME_MAXINTERVEL2 (10000000/UVC_NV12_MIN_FPS2)

#define UVC_H264_WIDTH_MAX1 1280 #define UVC_H264_HEIGHT_MAX1 720 #define UVC_H264_MIN_FPS1 5#define UVC_H264_DEF_FPS1 25#define UVC_H264_MAX_FPS1 30#define UVC_H264_MIN_BIT_RATE1 (((UVC_H264_WIDTH_MAX1*UVC_H264_HEIGHT_MAX1)*3/2)*8*UVC_H264_MIN_FPS1)#define UVC_H264_MAX_BIT_RATE1 (((UVC_H264_WIDTH_MAX1*UVC_H264_HEIGHT_MAX1)*3/2)*8*UVC_H264_MAX_FPS1)#define UVC_H264_MAX_FRAME_SIZE1 ((UVC_H264_WIDTH_MAX1*UVC_H264_HEIGHT_MAX1)*3/2)#define UVC_H264_FRAME_DEFINTERVEL1 (10000000/UVC_H264_DEF_FPS1)#define UVC_H264_FRAME_MININTERVEL1 (10000000/UVC_H264_MAX_FPS1)#define UVC_H264_FRAME_MAXINTERVEL1 (10000000/UVC_H264_MIN_FPS1)
#define UVC_H264_WIDTH_MAX2 320 #define UVC_H264_HEIGHT_MAX2 240 #define UVC_H264_MIN_FPS2 5#define UVC_H264_DEF_FPS2 25#define UVC_H264_MAX_FPS2 30#define UVC_H264_MIN_BIT_RATE2 (((UVC_H264_WIDTH_MAX2*UVC_H264_HEIGHT_MAX2)*3/2)*8*UVC_H264_MIN_FPS2)#define UVC_H264_MAX_BIT_RATE2 (((UVC_H264_WIDTH_MAX2*UVC_H264_HEIGHT_MAX2)*3/2)*8*UVC_H264_MAX_FPS2)#define UVC_H264_MAX_FRAME_SIZE2 ((UVC_H264_WIDTH_MAX2*UVC_H264_HEIGHT_MAX2)*3/2)#define UVC_H264_FRAME_DEFINTERVEL2 (10000000/UVC_H264_DEF_FPS2)#define UVC_H264_FRAME_MININTERVEL2 (10000000/UVC_H264_MAX_FPS2)#define UVC_H264_FRAME_MAXINTERVEL2 (10000000/UVC_H264_MIN_FPS2)
#define UVC_MJPEG_WIDTH_MAX1 1280 #define UVC_MJPEG_HEIGHT_MAX1 720 #define UVC_MJPEG_MIN_FPS1 5#define UVC_MJPEG_DEF_FPS1 25#define UVC_MJPEG_MAX_FPS1 30#define UVC_MJPEG_MIN_BIT_RATE1 (((UVC_MJPEG_WIDTH_MAX1*UVC_MJPEG_HEIGHT_MAX1)*3/2)*8*UVC_MJPEG_MIN_FPS1)#define UVC_MJPEG_MAX_BIT_RATE1 (((UVC_MJPEG_WIDTH_MAX1*UVC_MJPEG_HEIGHT_MAX1)*3/2)*8*UVC_MJPEG_MAX_FPS1)#define UVC_MJPEG_MAX_FRAME_SIZE1 ((UVC_MJPEG_WIDTH_MAX1*UVC_MJPEG_HEIGHT_MAX1)*3/2)#define UVC_MJPEG_FRAME_DEFINTERVEL1 (10000000/UVC_MJPEG_DEF_FPS1)#define UVC_MJPEG_FRAME_MININTERVEL1 (10000000/UVC_MJPEG_MAX_FPS1)#define UVC_MJPEG_FRAME_MAXINTERVEL1 (10000000/UVC_MJPEG_MIN_FPS1)
#define UVC_MJPEG_WIDTH_MAX2 320 #define UVC_MJPEG_HEIGHT_MAX2 240 #define UVC_MJPEG_MIN_FPS2 5#define UVC_MJPEG_DEF_FPS2 25#define UVC_MJPEG_MAX_FPS2 30#define UVC_MJPEG_MIN_BIT_RATE2 (((UVC_MJPEG_WIDTH_MAX2*UVC_MJPEG_HEIGHT_MAX2)*3/2)*8*UVC_MJPEG_MIN_FPS2)#define UVC_MJPEG_MAX_BIT_RATE2 (((UVC_MJPEG_WIDTH_MAX2*UVC_MJPEG_HEIGHT_MAX2)*3/2)*8*UVC_MJPEG_MAX_FPS2)#define UVC_MJPEG_MAX_FRAME_SIZE2 ((UVC_MJPEG_WIDTH_MAX2*UVC_MJPEG_HEIGHT_MAX2)*3/2)#define UVC_MJPEG_FRAME_DEFINTERVEL2 (10000000/UVC_MJPEG_DEF_FPS2)#define UVC_MJPEG_FRAME_MININTERVEL2 (10000000/UVC_MJPEG_MAX_FPS2)#define UVC_MJPEG_FRAME_MAXINTERVEL2 (10000000/UVC_MJPEG_MIN_FPS2)
#define UVC_Y800_WIDTH_MAX1 1280 #define UVC_Y800_HEIGHT_MAX1 720 #define UVC_Y800_MIN_FPS1 5#define UVC_Y800_DEF_FPS1 25#define UVC_Y800_MAX_FPS1 30#define UVC_Y800_MIN_BIT_RATE1 (((UVC_Y800_WIDTH_MAX1*UVC_Y800_HEIGHT_MAX1)*3/2)*8*UVC_Y800_MIN_FPS1)#define UVC_Y800_MAX_BIT_RATE1 (((UVC_Y800_WIDTH_MAX1*UVC_Y800_HEIGHT_MAX1)*3/2)*8*UVC_Y800_MAX_FPS1)#define UVC_Y800_MAX_FRAME_SIZE1 ((UVC_Y800_WIDTH_MAX1*UVC_Y800_HEIGHT_MAX1)*3/2)#define UVC_Y800_FRAME_DEFINTERVEL1 (10000000/UVC_Y800_DEF_FPS1)#define UVC_Y800_FRAME_MININTERVEL1 (10000000/UVC_Y800_MAX_FPS1)#define UVC_Y800_FRAME_MAXINTERVEL1 (10000000/UVC_Y800_MIN_FPS1)
#define UVC_Y800_WIDTH_MAX2 320 #define UVC_Y800_HEIGHT_MAX2 240 #define UVC_Y800_MIN_FPS2 5#define UVC_Y800_DEF_FPS2 25#define UVC_Y800_MAX_FPS2 30#define UVC_Y800_MIN_BIT_RATE2 (((UVC_Y800_WIDTH_MAX2*UVC_Y800_HEIGHT_MAX2)*3/2)*8*UVC_Y800_MIN_FPS2)#define UVC_Y800_MAX_BIT_RATE2 (((UVC_Y800_WIDTH_MAX2*UVC_Y800_HEIGHT_MAX2)*3/2)*8*UVC_Y800_MAX_FPS2)#define UVC_Y800_MAX_FRAME_SIZE2 ((UVC_Y800_WIDTH_MAX2*UVC_Y800_HEIGHT_MAX2)*3/2)#define UVC_Y800_FRAME_DEFINTERVEL2 (10000000/UVC_Y800_DEF_FPS2)#define UVC_Y800_FRAME_MININTERVEL2 (10000000/UVC_Y800_MAX_FPS2)#define UVC_Y800_FRAME_MAXINTERVEL2 (10000000/UVC_Y800_MIN_FPS2)

如下是UsbTreeView抓到的描述符



---------------------- Device Descriptor ----------------------bLength : 0x12 (18 bytes)bDescriptorType : 0x01 (Device Descriptor)bcdUSB : 0x200 (USB Version 2.0)bDeviceClass : 0xEF (Miscellaneous)bDeviceSubClass : 0x02bDeviceProtocol : 0x01 (IAD - Interface Association Descriptor)bMaxPacketSize0 : 0x40 (64 bytes)idVendor : 0x4C4A (Unknown Vendor)idProduct : 0x4C55bcdDevice : 0x0100iManufacturer : 0x01 (String Descriptor 1) Language 0x0409 : "xxxxx.Technology"iProduct : 0x02 (String Descriptor 2) Language 0x0409 : "USB.Video"iSerialNumber : 0x03 (String Descriptor 3) Language 0x0409 : "0.1"bNumConfigurations : 0x01 (1 Configuration)Data (HexDump) : 12 01 00 02 EF 02 01 40 4A 4C 55 4C 00 01 01 02 .......@JLUL.... 03 01 ..
------------------ Configuration Descriptor -------------------bLength : 0x09 (9 bytes)bDescriptorType : 0x02 (Configuration Descriptor)wTotalLength : 0x02D8 (728 bytes)bNumInterfaces : 0x05 (5 Interfaces)bConfigurationValue : 0x01 (Configuration 1)iConfiguration : 0x00 (No String Descriptor)bmAttributes : 0x80 D7: Reserved, set 1 : 0x01 D6: Self Powered : 0x00 (no) D5: Remote Wakeup : 0x00 (no) D4..0: Reserved, set 0 : 0x00MaxPower : 0xC8 (400 mA)Data (HexDump) : 09 02 D8 02 05 01 00 80 C8 08 0B 00 02 0E 03 00 ................ 00 09 04 00 00 00 0E 01 00 00 0D 24 01 00 01 35 ...........$...5 00 80 C3 C9 01 01 01 12 24 02 01 01 02 00 00 00 ........$....... 00 00 00 00 00 03 00 00 00 0D 24 05 02 01 00 00 ..........$..... 03 00 00 00 00 00 09 24 03 03 01 01 01 02 00 09 .......$........ 04 01 00 00 0E 02 00 00 11 24 01 04 A4 01 81 00 .........$...... 03 00 00 00 01 00 00 00 00 1B 24 04 01 02 4E 56 ..........$...NV 31 32 00 00 10 00 80 00 00 AA 00 38 9B 71 0C 01 12.........8.q.. 00 00 00 00 26 24 05 01 02 00 05 D0 02 00 C0 4B ....&$.........K 03 00 80 C6 13 00 18 15 00 80 1A 06 00 03 15 16 ................ 05 00 80 1A 06 00 80 84 1E 00 26 24 05 02 02 40 ..........&$...@ 01 F0 00 00 50 46 00 00 E0 A5 01 00 C2 01 00 80 ....PF.......... 1A 06 00 03 15 16 05 00 80 1A 06 00 80 84 1E 00 ................ 06 24 0D 01 01 04 1C 24 10 02 02 48 32 36 34 00 .$.....$...H264. 00 10 00 80 00 00 AA 00 38 9B 71 10 01 00 00 00 ........8.q..... 00 01 26 24 11 01 00 00 05 D0 02 00 C0 4B 03 00 ..&$.........K.. 80 C6 13 80 1A 06 00 03 00 00 00 00 15 16 05 00 ................ 80 1A 06 00 80 84 1E 00 26 24 11 02 00 40 01 F0 ........&$...@.. 00 00 50 46 00 00 E0 A5 01 80 1A 06 00 03 00 00 ..PF............ 00 00 15 16 05 00 80 1A 06 00 80 84 1E 00 0B 24 ...............$ 06 03 02 01 01 00 00 00 00 26 24 07 01 02 00 05 .........&$..... D0 02 00 C0 4B 03 00 80 C6 13 00 18 15 00 80 1A ....K........... 06 00 03 15 16 05 00 80 1A 06 00 80 84 1E 00 26 ...............& 24 07 02 02 40 01 F0 00 00 50 46 00 00 E0 A5 01 $...@....PF..... 00 C2 01 00 80 1A 06 00 03 15 16 05 00 80 1A 06 ................ 00 80 84 1E 00 1B 24 04 04 02 59 38 30 30 00 00 ......$...Y800.. 10 00 80 00 00 AA 00 38 9B 71 08 01 00 00 00 00 .......8.q...... 26 24 05 01 02 00 05 D0 02 00 C0 4B 03 00 80 C6 &$.........K.... 13 00 18 15 00 80 1A 06 00 03 15 16 05 00 80 1A ................ 06 00 80 84 1E 00 26 24 05 02 02 40 01 F0 00 00 ......&$...@.... 50 46 00 00 E0 A5 01 00 C2 01 00 80 1A 06 00 03 PF.............. 15 16 05 00 80 1A 06 00 80 84 1E 00 06 24 0D 01 .............$.. 01 04 09 04 01 01 01 0E 02 00 00 07 05 81 05 00 ................ 04 01 08 0B 02 03 01 02 00 07 09 04 02 00 00 01 ................                           01 00 07 0A 24 01 00 01 4D 00 02 03 04 0C 24 02   ....$...F.....$. 01 01 01 00 01 04 00 00 00 09 24 06 02 01 01 01 ..........$..... 02 00 09 24 03 03 02 03 00 02 00 0C 24 02 04 01 ...$........$... 02 00 01 04 00 00 00 09 24 06 05 04 01 43 00 00 ........$....C.. 07 24 05 09 01 05 00 09 24 03 06 01 01 02 09 00 .$......$....... 09 04 03 00 00 01 02 00 00 09 04 03 01 01 01 02 ................ 00 00 07 24 01 01 01 01 00 0B 24 02 01 01 02 10 ...$......$..... 01 80 3E 00 09 05 02 0D 20 00 01 00 00 07 25 01 ..>..... .....%. 00 00 00 00 09 04 04 00 00 01 02 00 00 09 04 04 ................ 01 01 01 02 00 00 07 24 01 06 01 01 00 0B 24 02 .......$......$. 01 01 02 10 01 80 3E 00 09 05 82 0D 20 00 01 00 ......>..... ... 00 07 25 01 00 00 00 00 ..%.....
------------------- IAD Descriptor --------------------bLength : 0x08 (8 bytes)bDescriptorType : 0x0B (Interface Association Descriptor)bFirstInterface : 0x00 (Interface 0)bInterfaceCount : 0x02 (2 Interfaces)bFunctionClass : 0x0E (Video)bFunctionSubClass : 0x03 (Video Interface Collection)bFunctionProtocol : 0x00 (PC_PROTOCOL_UNDEFINED)iFunction : 0x00 (No String Descriptor)Data (HexDump) : 08 0B 00 02 0E 03 00 00 ........
---------------- Interface Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x04 (Interface Descriptor)bInterfaceNumber : 0x00 (Interface 0)bAlternateSetting : 0x00bNumEndpoints : 0x00 (Default Control Pipe only)bInterfaceClass : 0x0E (Video)bInterfaceSubClass : 0x01 (Video Control)bInterfaceProtocol : 0x00iInterface : 0x00 (No String Descriptor)Data (HexDump) : 09 04 00 00 00 0E 01 00 00 .........
------- Video Control Interface Header Descriptor -----bLength : 0x0D (13 bytes)bDescriptorType : 0x24 (Video Control Interface)bDescriptorSubtype : 0x01 (Video Control Header)bcdUVC : 0x0100 (UVC Version 1.00)wTotalLength : 0x0035 (53 bytes)dwClockFreq : 0x01C9C380 (30 MHz)bInCollection : 0x01 (1 VideoStreaming interface)baInterfaceNr[1] : 0x01 (Interface 1)Data (HexDump) : 0D 24 01 00 01 35 00 80 C3 C9 01 01 01 .$...5.......
-------- Video Control Input Terminal Descriptor ------bLength : 0x12 (18 bytes)bDescriptorType : 0x24 (Video Control Interface)bDescriptorSubtype : 0x02 (Input Terminal)bTerminalID : 0x01 (1)wTerminalType : 0x0201 (ITT_CAMERA)bAssocTerminal : 0x00 (Not associated with an Output Terminal)iTerminal : 0x00 (No String Descriptor)Camera Input Terminal Data:wObjectiveFocalLengthMin : 0x0000wObjectiveFocalLengthMax : 0x0000wOcularFocalLength : 0x0000bControlSize : 0x03 (3 bytes)bmControls : 0x00, 0x00, 0x00 D0 : 0 no - Scanning Mode D1 : 0 no - Auto-Exposure Mode D2 : 0 no - Auto-Exposure Priority D3 : 0 no - Exposure Time (Absolute) D4 : 0 no - Exposure Time (Relative) D5 : 0 no - Focus (Absolute) D6 : 0 no - Focus (Relative) D7 : 0 no - Iris (Absolute) D8 : 0 no - Iris (Relative) D9 : 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 - ReservedData (HexDump) : 12 24 02 01 01 02 00 00 00 00 00 00 00 00 03 00 .$.............. 00 00 ..
-------- Video Control Processing Unit Descriptor -----bLength : 0x0D (13 bytes)bDescriptorType : 0x24 (Video Control Interface)bDescriptorSubtype : 0x05 (Processing Unit)bUnitID : 0x02 (2)bSourceID : 0x01 (1)wMaxMultiplier : 0x0000bControlSize : 0x03 (3 bytes)bmControls : 0x00, 0x00, 0x00 D0 : 0 no - Brightness D1 : 0 no - Contrast D2 : 0 no - Hue D3 : 0 no - Saturation D4 : 0 no - Sharpness D5 : 0 no - Gamma D6 : 0 no - White Balance Temperature D7 : 0 no - White Balance Component D8 : 0 no - Backlight Compensation D9 : 0 no - Gain D10 : 0 no - Power Line Frequency D11 : 0 no - Hue, Auto D12 : 0 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 - ReservediProcessing : 0x00 (No String Descriptor)*!*ERROR: bLength of 0x0D incorrect, should be 0x0CData (HexDump) : 0D 24 05 02 01 00 00 03 00 00 00 00 00 .$...........
------- Video Control Output Terminal Descriptor ------bLength : 0x09 (9 bytes)bDescriptorType : 0x24 (Video Control Interface)bDescriptorSubtype : 0x03 (Output Terminal)bTerminalID : 0x03 (3)wTerminalType : 0x0101 (TT_STREAMING)bAssocTerminal : 0x01 (Associated with Input Terminal ID=1)bSourceID : 0x02 (2)iTerminal : 0x00 (No String Descriptor)Data (HexDump) : 09 24 03 03 01 01 01 02 00 .$.......
---------------- Interface Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x04 (Interface Descriptor)bInterfaceNumber : 0x01 (Interface 1)bAlternateSetting : 0x00bNumEndpoints : 0x00 (Default Control Pipe only)bInterfaceClass : 0x0E (Video)bInterfaceSubClass : 0x02 (Video Streaming)bInterfaceProtocol : 0x00iInterface : 0x00 (No String Descriptor)Data (HexDump) : 09 04 01 00 00 0E 02 00 00 .........
---- VC-Specific VS Video Input Header Descriptor -----bLength : 0x11 (17 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x01 (Input Header)bNumFormats : 0x04wTotalLength : 0x01A4 (420 bytes)bEndpointAddress : 0x81 (Direction=IN EndpointID=1)bmInfo : 0x00 (Dynamic Format Change not supported)bTerminalLink : 0x03 (Output Terminal ID 3)bStillCaptureMethod : 0x00 (No Still Capture)nbTriggerSupport : 0x00 (Hardware Triggering not supported)bTriggerUsage : 0x00 (Host will initiate still image capture)bControlSize : 0x01 (1 bytes each)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 - ReservedVideo 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 - ReservedVideo 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 - ReservedVideo Payload Format 4 : 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 - ReservedData (HexDump) : 11 24 01 04 A4 01 81 00 03 00 00 00 01 00 00 00 .$.............. 00 .
------- VS Uncompressed Format Type Descriptor --------bLength : 0x1B (27 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x04 (Uncompressed Format Type)bFormatIndex : 0x01 (1)bNumFrameDescriptors : 0x02 (2 Frame Descriptors)guidFormat : {3231564E-0000-0010-8000-00AA00389B71} (NV12)bBitsPerPixel : 0x0C (12 bits per pixel)bDefaultFrameIndex : 0x01 (Index 1)bAspectRatioX : 0x00bAspectRatioY : 0x00bmInterlaceFlags : 0x00 D0 IL stream or variable: 0 (no) D1 Fields per frame : 0 (2 fields) D2 Field 1 first : 0 (no) D3 Reserved : 0 D4..5 Field pattern : 0 (Field 1 only) D6..7 Display Mode : 0 (Bob only)bCopyProtect : 0x00 (No restrictions)Data (HexDump) : 1B 24 04 01 02 4E 56 31 32 00 00 10 00 80 00 00 .$...NV12....... AA 00 38 9B 71 0C 01 00 00 00 00 ..8.q......
-------- VS Uncompressed Frame Type Descriptor -----------> This is the Default (optimum) Frame indexbLength : 0x26 (38 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x05 (Uncompressed Frame Type)bFrameIndex : 0x01bmCapabilities : 0x02wWidth : 0x0500 (1280)wHeight : 0x02D0 (720)dwMinBitRate : 0x034BC000 (55296000 bps -> 6.912 MB/s)dwMaxBitRate : 0x13C68000 (331776000 bps -> 41.472 MB/s)dwMaxVideoFrameBufferSize: 0x00151800 (1382400 bytes)dwDefaultFrameInterval : 0x00061A80 (40.0000 ms -> 25.0000 fps)bFrameIntervalType : 0x03 (3 discrete frame intervals supported)adwFrameInterval[1] : 0x00051615 (33.3333 ms -> 30.0000 fps)adwFrameInterval[2] : 0x00061A80 (40.0000 ms -> 25.0000 fps)adwFrameInterval[3] : 0x001E8480 (200.0000 ms -> 5.0000 fps)Data (HexDump) : 26 24 05 01 02 00 05 D0 02 00 C0 4B 03 00 80 C6 &$.........K.... 13 00 18 15 00 80 1A 06 00 03 15 16 05 00 80 1A ................ 06 00 80 84 1E 00 ......
-------- VS Uncompressed Frame Type Descriptor --------bLength : 0x26 (38 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x05 (Uncompressed Frame Type)bFrameIndex : 0x02bmCapabilities : 0x02wWidth : 0x0140 (320)wHeight : 0x00F0 (240)dwMinBitRate : 0x00465000 (4608000 bps -> 576 KB/s)dwMaxBitRate : 0x01A5E000 (27648000 bps -> 3.456 MB/s)dwMaxVideoFrameBufferSize: 0x0001C200 (115200 bytes)dwDefaultFrameInterval : 0x00061A80 (40.0000 ms -> 25.0000 fps)bFrameIntervalType : 0x03 (3 discrete frame intervals supported)adwFrameInterval[1] : 0x00051615 (33.3333 ms -> 30.0000 fps)adwFrameInterval[2] : 0x00061A80 (40.0000 ms -> 25.0000 fps)adwFrameInterval[3] : 0x001E8480 (200.0000 ms -> 5.0000 fps)Data (HexDump) : 26 24 05 02 02 40 01 F0 00 00 50 46 00 00 E0 A5 &$...@....PF.... 01 00 C2 01 00 80 1A 06 00 03 15 16 05 00 80 1A ................ 06 00 80 84 1E 00 ......
------- VS Color Matching Descriptor Descriptor -------bLength : 0x06 (6 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x0D (Color Matching)bColorPrimaries : 0x01 (BT.709, sRGB)bTransferCharacteristics : 0x01 (BT.709)bMatrixCoefficients : 0x04 (SMPTE 170M)Data (HexDump) : 06 24 0D 01 01 04 .$....
---- VS Frame Based Payload Format Type Descriptor ----*!*ERROR: This format is NOT ALLOWED for UVC 1.0 devicesbLength : 0x1C (28 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x10 (Frame Based Format Type)bFormatIndex : 0x02 (2)bNumFrameDescriptors : 0x02 (2)guidFormat : {34363248-0000-0010-8000-00AA00389B71} (H264)bBitsPerPixel : 0x10 (16 bits)bDefaultFrameIndex : 0x01 (1)bAspectRatioX : 0x00bAspectRatioY : 0x00bmInterlaceFlags : 0x00 D0 IL stream or variable: 0 (no) D1 Fields per frame : 0 (2 fields) D2 Field 1 first : 0 (no) D3 Reserved : 0 D4..5 Field pattern : 0 (Field 1 only) D6..7 Display Mode : 0 (Bob only)bCopyProtect : 0x00 (No restrictions)bVariableSize : 0x01 (Variable Size)*!*ERROR: no Color Matching Descriptor for this formatData (HexDump) : 1C 24 10 02 02 48 32 36 34 00 00 10 00 80 00 00 .$...H264....... AA 00 38 9B 71 10 01 00 00 00 00 01 ..8.q.......
----- VS Frame Based Payload Frame Type Descriptor ----*!*ERROR bDescriptorSubtype did not exist in UVC 1.0bLength : 0x26 (38 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x11 (Frame Based Payload Frame Type)bFrameIndex : 0x01bmCapabilities : 0x00wWidth : 0x0500 (1280)wHeight : 0x02D0 (720)dwMinBitRate : 0x034BC000 (55296000 bps -> 6.912 MB/s)dwMaxBitRate : 0x13C68000 (331776000 bps -> 41.472 MB/s)dwDefaultFrameInterval : 0x00061A80 (40.0000 ms -> 25.0000 fps)bFrameIntervalType : 0x03 (3 discrete frame intervals supported)dwBytesPerLine : 0x00 (0 bytes)adwFrameInterval[1] : 0x00051615 (33.3333 ms -> 30.0000 fps)adwFrameInterval[2] : 0x00061A80 (40.0000 ms -> 25.0000 fps)adwFrameInterval[3] : 0x001E8480 (200.0000 ms -> 5.0000 fps)Data (HexDump) : 26 24 11 01 00 00 05 D0 02 00 C0 4B 03 00 80 C6 &$.........K.... 13 80 1A 06 00 03 00 00 00 00 15 16 05 00 80 1A ................ 06 00 80 84 1E 00 ......
----- VS Frame Based Payload Frame Type Descriptor ----*!*ERROR bDescriptorSubtype did not exist in UVC 1.0bLength : 0x26 (38 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x11 (Frame Based Payload Frame Type)bFrameIndex : 0x02bmCapabilities : 0x00wWidth : 0x0140 (320)wHeight : 0x00F0 (240)dwMinBitRate : 0x00465000 (4608000 bps -> 576 KB/s)dwMaxBitRate : 0x01A5E000 (27648000 bps -> 3.456 MB/s)dwDefaultFrameInterval : 0x00061A80 (40.0000 ms -> 25.0000 fps)bFrameIntervalType : 0x03 (3 discrete frame intervals supported)dwBytesPerLine : 0x00 (0 bytes)adwFrameInterval[1] : 0x00051615 (33.3333 ms -> 30.0000 fps)adwFrameInterval[2] : 0x00061A80 (40.0000 ms -> 25.0000 fps)adwFrameInterval[3] : 0x001E8480 (200.0000 ms -> 5.0000 fps)Data (HexDump) : 26 24 11 02 00 40 01 F0 00 00 50 46 00 00 E0 A5 &$...@....PF.... 01 80 1A 06 00 03 00 00 00 00 15 16 05 00 80 1A ................ 06 00 80 84 1E 00 ......
----- Video Streaming MJPEG Format Type Descriptor ----bLength : 0x0B (11 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x06 (Format MJPEG)bFormatIndex : 0x03 (3)bNumFrameDescriptors : 0x02 (2)bmFlags : 0x01 (Sample size is fixed)bDefaultFrameIndex : 0x01 (1)bAspectRatioX : 0x00bAspectRatioY : 0x00bmInterlaceFlags : 0x00 D0 IL stream or variable: 0 (no) D1 Fields per frame : 0 (2 fields) D2 Field 1 first : 0 (no) D3 Reserved : 0 D4..5 Field pattern : 0 (Field 1 only) D6..7 Display Mode : 0 (Bob only)bCopyProtect : 0x00 (No restrictions)*!*ERROR: no Color Matching Descriptor for this formatData (HexDump) : 0B 24 06 03 02 01 01 00 00 00 00 .$.........
----- Video Streaming MJPEG Frame Type Descriptor --------> This is the Default (optimum) Frame indexbLength : 0x26 (38 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x07 (MJPEG Frame Type)bFrameIndex : 0x01bmCapabilities : 0x02wWidth : 0x0500 (1280)wHeight : 0x02D0 (720)dwMinBitRate : 0x034BC000 (55296000 bps -> 6.912 MB/s)dwMaxBitRate : 0x13C68000 (331776000 bps -> 41.472 MB/s)dwMaxVideoFrameBufferSize: 0x00151800 (1382400 bytes)dwDefaultFrameInterval : 0x00061A80 (40.0000 ms -> 25.0000 fps)bFrameIntervalType : 0x03 (3 discrete frame intervals supported)adwFrameInterval[1] : 0x00051615 (33.3333 ms -> 30.0000 fps)adwFrameInterval[2] : 0x00061A80 (40.0000 ms -> 25.0000 fps)adwFrameInterval[3] : 0x001E8480 (200.0000 ms -> 5.0000 fps)Data (HexDump) : 26 24 07 01 02 00 05 D0 02 00 C0 4B 03 00 80 C6 &$.........K.... 13 00 18 15 00 80 1A 06 00 03 15 16 05 00 80 1A ................ 06 00 80 84 1E 00 ......
----- Video Streaming MJPEG Frame Type Descriptor -----bLength : 0x26 (38 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x07 (MJPEG Frame Type)bFrameIndex : 0x02bmCapabilities : 0x02wWidth : 0x0140 (320)wHeight : 0x00F0 (240)dwMinBitRate : 0x00465000 (4608000 bps -> 576 KB/s)dwMaxBitRate : 0x01A5E000 (27648000 bps -> 3.456 MB/s)dwMaxVideoFrameBufferSize: 0x0001C200 (115200 bytes)dwDefaultFrameInterval : 0x00061A80 (40.0000 ms -> 25.0000 fps)bFrameIntervalType : 0x03 (3 discrete frame intervals supported)adwFrameInterval[1] : 0x00051615 (33.3333 ms -> 30.0000 fps)adwFrameInterval[2] : 0x00061A80 (40.0000 ms -> 25.0000 fps)adwFrameInterval[3] : 0x001E8480 (200.0000 ms -> 5.0000 fps)Data (HexDump) : 26 24 07 02 02 40 01 F0 00 00 50 46 00 00 E0 A5 &$...@....PF.... 01 00 C2 01 00 80 1A 06 00 03 15 16 05 00 80 1A ................ 06 00 80 84 1E 00 ......
------- VS Uncompressed Format Type Descriptor --------bLength : 0x1B (27 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x04 (Uncompressed Format Type)bFormatIndex : 0x04 (4)bNumFrameDescriptors : 0x02 (2 Frame Descriptors)guidFormat : {30303859-0000-0010-8000-00AA00389B71} (Y800)bBitsPerPixel : 0x08 (8 bits per pixel)bDefaultFrameIndex : 0x01 (Index 1)bAspectRatioX : 0x00bAspectRatioY : 0x00bmInterlaceFlags : 0x00 D0 IL stream or variable: 0 (no) D1 Fields per frame : 0 (2 fields) D2 Field 1 first : 0 (no) D3 Reserved : 0 D4..5 Field pattern : 0 (Field 1 only) D6..7 Display Mode : 0 (Bob only)bCopyProtect : 0x00 (No restrictions)Data (HexDump) : 1B 24 04 04 02 59 38 30 30 00 00 10 00 80 00 00 .$...Y800....... AA 00 38 9B 71 08 01 00 00 00 00 ..8.q......
-------- VS Uncompressed Frame Type Descriptor -----------> This is the Default (optimum) Frame indexbLength : 0x26 (38 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x05 (Uncompressed Frame Type)bFrameIndex : 0x01bmCapabilities : 0x02wWidth : 0x0500 (1280)wHeight : 0x02D0 (720)dwMinBitRate : 0x034BC000 (55296000 bps -> 6.912 MB/s)dwMaxBitRate : 0x13C68000 (331776000 bps -> 41.472 MB/s)dwMaxVideoFrameBufferSize: 0x00151800 (1382400 bytes)dwDefaultFrameInterval : 0x00061A80 (40.0000 ms -> 25.0000 fps)bFrameIntervalType : 0x03 (3 discrete frame intervals supported)adwFrameInterval[1] : 0x00051615 (33.3333 ms -> 30.0000 fps)adwFrameInterval[2] : 0x00061A80 (40.0000 ms -> 25.0000 fps)adwFrameInterval[3] : 0x001E8480 (200.0000 ms -> 5.0000 fps)Data (HexDump) : 26 24 05 01 02 00 05 D0 02 00 C0 4B 03 00 80 C6 &$.........K.... 13 00 18 15 00 80 1A 06 00 03 15 16 05 00 80 1A ................ 06 00 80 84 1E 00 ......
-------- VS Uncompressed Frame Type Descriptor --------bLength : 0x26 (38 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x05 (Uncompressed Frame Type)bFrameIndex : 0x02bmCapabilities : 0x02wWidth : 0x0140 (320)wHeight : 0x00F0 (240)dwMinBitRate : 0x00465000 (4608000 bps -> 576 KB/s)dwMaxBitRate : 0x01A5E000 (27648000 bps -> 3.456 MB/s)dwMaxVideoFrameBufferSize: 0x0001C200 (115200 bytes)dwDefaultFrameInterval : 0x00061A80 (40.0000 ms -> 25.0000 fps)bFrameIntervalType : 0x03 (3 discrete frame intervals supported)adwFrameInterval[1] : 0x00051615 (33.3333 ms -> 30.0000 fps)adwFrameInterval[2] : 0x00061A80 (40.0000 ms -> 25.0000 fps)adwFrameInterval[3] : 0x001E8480 (200.0000 ms -> 5.0000 fps)Data (HexDump) : 26 24 05 02 02 40 01 F0 00 00 50 46 00 00 E0 A5 &$...@....PF.... 01 00 C2 01 00 80 1A 06 00 03 15 16 05 00 80 1A ................ 06 00 80 84 1E 00 ......
------- VS Color Matching Descriptor Descriptor -------bLength : 0x06 (6 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x0D (Color Matching)bColorPrimaries : 0x01 (BT.709, sRGB)bTransferCharacteristics : 0x01 (BT.709)bMatrixCoefficients : 0x04 (SMPTE 170M)Data (HexDump) : 06 24 0D 01 01 04 .$....
---------------- Interface Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x04 (Interface Descriptor)bInterfaceNumber : 0x01 (Interface 1)bAlternateSetting : 0x01bNumEndpoints : 0x01 (1 Endpoint)bInterfaceClass : 0x0E (Video)bInterfaceSubClass : 0x02 (Video Streaming)bInterfaceProtocol : 0x00iInterface : 0x00 (No String Descriptor)Data (HexDump) : 09 04 01 01 01 0E 02 00 00 .........
----------------- Endpoint Descriptor -----------------bLength : 0x07 (7 bytes)bDescriptorType : 0x05 (Endpoint Descriptor)bEndpointAddress : 0x81 (Direction=IN EndpointID=1)bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)wMaxPacketSize : 0x0400 Bits 15..13 : 0x00 (reserved, must be zero) Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet) Bits 10..0 : 0x400 (1024 bytes per packet)bInterval : 0x01 (1 microframe -> 0.125 ms)Data (HexDump) : 07 05 81 05 00 04 01 .......
------------------- IAD Descriptor --------------------bLength : 0x08 (8 bytes)bDescriptorType : 0x0B (Interface Association Descriptor)bFirstInterface : 0x02 (Interface 2)bInterfaceCount : 0x03 (3 Interfaces)bFunctionClass : 0x01 (Audio)bFunctionSubClass : 0x02 (Audio Streaming)bFunctionProtocol : 0x00iFunction : 0x07 (String Descriptor 7) Language 0x0409 : "USB.Audio"Data (HexDump) : 08 0B 02 03 01 02 00 07 ........
---------------- Interface Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x04 (Interface Descriptor)bInterfaceNumber : 0x02 (Interface 2)bAlternateSetting : 0x00bNumEndpoints : 0x00 (Default Control Pipe only)bInterfaceClass : 0x01 (Audio)bInterfaceSubClass : 0x01 (Audio Control)bInterfaceProtocol : 0x00iInterface : 0x07 (String Descriptor 7) Language 0x0409 : "USB.Audio"Data (HexDump) : 09 04 02 00 00 01 01 00 07 .........
------ Audio Control Interface Header Descriptor ------bLength : 0x0A (10 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x01 (Header)bcdADC : 0x0100wTotalLength : 0x004D (77 bytes)bInCollection : 0x02baInterfaceNr[1] : 0x03baInterfaceNr[2] : 0x04Data (HexDump)           : 0A 24 01 00 01 4D 00 02 03 04                     .$...F....
------- Audio Control Input Terminal Descriptor -------bLength : 0x0C (12 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x02 (Input Terminal)bTerminalID : 0x01wTerminalType : 0x0101 (USB Streaming)bAssocTerminal : 0x00bNrChannels : 0x01 (1 channel)wChannelConfig : 0x0004 (C)iChannelNames : 0x00 (No String Descriptor)iTerminal : 0x00 (No String Descriptor)Data (HexDump) : 0C 24 02 01 01 01 00 01 04 00 00 00 .$..........
-------- Audio Control Feature Unit Descriptor --------bLength : 0x09 (9 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x06 (Feature Unit)bUnitID : 0x02 (2)bSourceID : 0x01 (1)bControlSize : 0x01 (1 byte per control)bmaControls[0] : 0x01 D0: Mute : 1 D1: Volume : 0 D2: Bass : 0 D3: Mid : 0 D4: Treble : 0 D5: Graphic Equalizer : 0 D6: Automatic Gain : 0 D7: Delay : 0bmaControls[1] : 0x02 D0: Mute : 0 D1: Volume : 1 D2: Bass : 0 D3: Mid : 0 D4: Treble : 0 D5: Graphic Equalizer : 0 D6: Automatic Gain : 0 D7: Delay : 0iFeature : 0x00 (No String Descriptor)Data (HexDump) : 09 24 06 02 01 01 01 02 00 .$.......
------- Audio Control Output Terminal Descriptor ------bLength : 0x09 (9 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x03 (Output Terminal)bTerminalID : 0x03wTerminalType : 0x0302 (Headphones)bAssocTerminal : 0x00 (0)bSourceID : 0x02 (2)iTerminal : 0x00 (No String Descriptor)Data (HexDump) : 09 24 03 03 02 03 00 02 00 .$.......
------- Audio Control Input Terminal Descriptor -------bLength : 0x0C (12 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x02 (Input Terminal)bTerminalID : 0x04wTerminalType : 0x0201 (Microphone)bAssocTerminal : 0x00bNrChannels : 0x01 (1 channel)wChannelConfig : 0x0004 (C)iChannelNames : 0x00 (No String Descriptor)iTerminal : 0x00 (No String Descriptor)Data (HexDump) : 0C 24 02 04 01 02 00 01 04 00 00 00 .$..........
-------- Audio Control Feature Unit Descriptor --------bLength : 0x09 (9 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x06 (Feature Unit)bUnitID : 0x05 (5)bSourceID : 0x04 (4)bControlSize : 0x01 (1 byte per control)bmaControls[0] : 0x43 D0: Mute : 1 D1: Volume : 1 D2: Bass : 0 D3: Mid : 0 D4: Treble : 0 D5: Graphic Equalizer : 0 D6: Automatic Gain : 1 D7: Delay : 0bmaControls[1] : 0x00 D0: Mute : 0 D1: Volume : 0 D2: Bass : 0 D3: Mid : 0 D4: Treble : 0 D5: Graphic Equalizer : 0 D6: Automatic Gain : 0 D7: Delay : 0iFeature : 0x00 (No String Descriptor)Data (HexDump) : 09 24 06 05 04 01 43 00 00 .$....C..
------- Audio Control Selector Unit Descriptor --------bLength : 0x07 (7 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x05 (Selector Unit)bUnitID : 0x09bNrInPins : 0x01 (1 Input Pin)baSourceID[1] : 0x05 (5)iSelector : 0x00 (No String Descriptor)Data (HexDump) : 07 24 05 09 01 05 00 .$.....
------- Audio Control Output Terminal Descriptor ------bLength : 0x09 (9 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x03 (Output Terminal)bTerminalID : 0x06wTerminalType : 0x0101 (USB Streaming)bAssocTerminal : 0x02 (2)bSourceID : 0x09 (9)iTerminal : 0x00 (No String Descriptor)Data (HexDump) : 09 24 03 06 01 01 02 09 00 .$.......
---------------- Interface Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x04 (Interface Descriptor)bInterfaceNumber : 0x03 (Interface 3)bAlternateSetting : 0x00bNumEndpoints : 0x00 (Default Control Pipe only)bInterfaceClass : 0x01 (Audio)bInterfaceSubClass : 0x02 (Audio Streaming)bInterfaceProtocol : 0x00iInterface : 0x00 (No String Descriptor)Data (HexDump) : 09 04 03 00 00 01 02 00 00 .........
---------------- Interface Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x04 (Interface Descriptor)bInterfaceNumber : 0x03 (Interface 3)bAlternateSetting : 0x01bNumEndpoints : 0x01 (1 Endpoint)bInterfaceClass : 0x01 (Audio)bInterfaceSubClass : 0x02 (Audio Streaming)bInterfaceProtocol : 0x00iInterface : 0x00 (No String Descriptor)Data (HexDump) : 09 04 03 01 01 01 02 00 00 .........
-------- Audio Streaming Interface Descriptor ---------bLength : 0x07 (7 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x01 (AS_GENERAL)bTerminalLink : 0x01 (Terminal ID 1)bDelay : 0x01 (1 frame)wFormatTag : 0x0001 (PCM)Data (HexDump) : 07 24 01 01 01 01 00 .$.....
------- Audio Streaming Format Type Descriptor --------bLength : 0x0B (11 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x02 (Format Type)bFormatType : 0x01 (FORMAT_TYPE_I)bNrChannels : 0x01 (1 channel)bSubframeSize : 0x02 (2 bytes per subframe)bBitResolution : 0x10 (16 bits per sample)bSamFreqType : 0x01 (supports 1 sample frequence)tSamFreq[1] : 0x03E80 (16000 Hz)Data (HexDump) : 0B 24 02 01 01 02 10 01 80 3E 00 .$.......>.
----------------- Endpoint Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x05 (Endpoint Descriptor)bEndpointAddress : 0x02 (Direction=OUT EndpointID=2)bmAttributes : 0x0D (TransferType=Isochronous SyncType=Synchronous EndpointType=Data)wMaxPacketSize : 0x0020 Bits 15..13 : 0x00 (reserved, must be zero) Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet) Bits 10..0 : 0x20 (32 bytes per packet)bInterval : 0x01 (1 ms)bRefresh : 0x00bSynchAddress : 0x00Data (HexDump) : 09 05 02 0D 20 00 01 00 00 .... ....
----------- Audio Data Endpoint Descriptor ------------bLength : 0x07 (7 bytes)bDescriptorType : 0x25 (Audio Endpoint Descriptor)bDescriptorSubtype : 0x01 (General)bmAttributes : 0x00 D0 : Sampling Freq : 0x00 (not supported) D1 : Pitch : 0x00 (not supported) D6..2: Reserved : 0x00 D7 : MaxPacketsOnly : 0x00 (no)bLockDelayUnits : 0x00 (Undefined)wLockDelay : 0x0000Data (HexDump) : 07 25 01 00 00 00 00 .%.....
---------------- Interface Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x04 (Interface Descriptor)bInterfaceNumber : 0x04 (Interface 4)bAlternateSetting : 0x00bNumEndpoints : 0x00 (Default Control Pipe only)bInterfaceClass : 0x01 (Audio)bInterfaceSubClass : 0x02 (Audio Streaming)bInterfaceProtocol : 0x00iInterface : 0x00 (No String Descriptor)Data (HexDump) : 09 04 04 00 00 01 02 00 00 .........
---------------- Interface Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x04 (Interface Descriptor)bInterfaceNumber : 0x04 (Interface 4)bAlternateSetting : 0x01bNumEndpoints : 0x01 (1 Endpoint)bInterfaceClass : 0x01 (Audio)bInterfaceSubClass : 0x02 (Audio Streaming)bInterfaceProtocol : 0x00iInterface : 0x00 (No String Descriptor)Data (HexDump) : 09 04 04 01 01 01 02 00 00 .........
-------- Audio Streaming Interface Descriptor ---------bLength : 0x07 (7 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x01 (AS_GENERAL)bTerminalLink : 0x06 (Terminal ID 6)bDelay : 0x01 (1 frame)wFormatTag : 0x0001 (PCM)Data (HexDump) : 07 24 01 06 01 01 00 .$.....
------- Audio Streaming Format Type Descriptor --------bLength : 0x0B (11 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x02 (Format Type)bFormatType : 0x01 (FORMAT_TYPE_I)bNrChannels : 0x01 (1 channel)bSubframeSize : 0x02 (2 bytes per subframe)bBitResolution : 0x10 (16 bits per sample)bSamFreqType : 0x01 (supports 1 sample frequence)tSamFreq[1] : 0x03E80 (16000 Hz)Data (HexDump) : 0B 24 02 01 01 02 10 01 80 3E 00 .$.......>.
----------------- Endpoint Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x05 (Endpoint Descriptor)bEndpointAddress : 0x82 (Direction=IN EndpointID=2)bmAttributes : 0x0D (TransferType=Isochronous SyncType=Synchronous EndpointType=Data)wMaxPacketSize : 0x0020 Bits 15..13 : 0x00 (reserved, must be zero) Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet) Bits 10..0 : 0x20 (32 bytes per packet)bInterval : 0x01 (1 ms)bRefresh : 0x00bSynchAddress : 0x00Data (HexDump) : 09 05 82 0D 20 00 01 00 00 .... ....
----------- Audio Data Endpoint Descriptor ------------bLength : 0x07 (7 bytes)bDescriptorType : 0x25 (Audio Endpoint Descriptor)bDescriptorSubtype : 0x01 (General)bmAttributes : 0x00 D0 : Sampling Freq : 0x00 (not supported) D1 : Pitch : 0x00 (not supported) D6..2: Reserved : 0x00 D7 : MaxPacketsOnly : 0x00 (no)bLockDelayUnits : 0x00 (Undefined)wLockDelay : 0x0000Data (HexDump) : 07 25 01 00 00 00 00 .%.....
--------- Device Qualifier Descriptor (for Full-Speed) --------bLength : 0x0A (10 bytes)bDescriptorType : 0x06 (Device_qualifier Descriptor)bcdUSB : 0x200 (USB Version 2.00)bDeviceClass : 0xEF (Miscellaneous)bDeviceSubClass : 0x02bDeviceProtocol : 0x01 (IAD - Interface Association Descriptor)bMaxPacketSize0 : 0x40 (64 Bytes)bNumConfigurations : 0x01 (1 other-speed configuration)bReserved : 0x00Data (HexDump) : 0A 06 00 02 EF 02 01 40 01 00 .......@..
------------------ Configuration Descriptor -------------------bLength : 0x09 (9 bytes)bDescriptorType : 0x02 (Configuration Descriptor)wTotalLength : 0x02D8 (728 bytes)bNumInterfaces : 0x05 (5 Interfaces)bConfigurationValue : 0x01 (Configuration 1)iConfiguration : 0x00 (No String Descriptor)bmAttributes : 0x80 D7: Reserved, set 1 : 0x01 D6: Self Powered : 0x00 (no) D5: Remote Wakeup : 0x00 (no) D4..0: Reserved, set 0 : 0x00MaxPower : 0xC8 (400 mA)Data (HexDump) : 09 02 D8 02 05 01 00 80 C8 08 0B 00 02 0E 03 00 ................ 00 09 04 00 00 00 0E 01 00 00 0D 24 01 00 01 35 ...........$...5 00 80 C3 C9 01 01 01 12 24 02 01 01 02 00 00 00 ........$....... 00 00 00 00 00 03 00 00 00 0D 24 05 02 01 00 00 ..........$..... 03 00 00 00 00 00 09 24 03 03 01 01 01 02 00 09 .......$........ 04 01 00 00 0E 02 00 00 11 24 01 04 A4 01 81 00 .........$...... 03 00 00 00 01 00 00 00 00 1B 24 04 01 02 4E 56 ..........$...NV 31 32 00 00 10 00 80 00 00 AA 00 38 9B 71 0C 01 12.........8.q.. 00 00 00 00 26 24 05 01 02 00 05 D0 02 00 C0 4B ....&$.........K 03 00 80 C6 13 00 18 15 00 80 1A 06 00 03 15 16 ................ 05 00 80 1A 06 00 80 84 1E 00 26 24 05 02 02 40 ..........&$...@ 01 F0 00 00 50 46 00 00 E0 A5 01 00 C2 01 00 80 ....PF.......... 1A 06 00 03 15 16 05 00 80 1A 06 00 80 84 1E 00 ................ 06 24 0D 01 01 04 1C 24 10 02 02 48 32 36 34 00 .$.....$...H264. 00 10 00 80 00 00 AA 00 38 9B 71 10 01 00 00 00 ........8.q..... 00 01 26 24 11 01 00 00 05 D0 02 00 C0 4B 03 00 ..&$.........K.. 80 C6 13 80 1A 06 00 03 00 00 00 00 15 16 05 00 ................ 80 1A 06 00 80 84 1E 00 26 24 11 02 00 40 01 F0 ........&$...@.. 00 00 50 46 00 00 E0 A5 01 80 1A 06 00 03 00 00 ..PF............ 00 00 15 16 05 00 80 1A 06 00 80 84 1E 00 0B 24 ...............$ 06 03 02 01 01 00 00 00 00 26 24 07 01 02 00 05 .........&$..... D0 02 00 C0 4B 03 00 80 C6 13 00 18 15 00 80 1A ....K........... 06 00 03 15 16 05 00 80 1A 06 00 80 84 1E 00 26 ...............& 24 07 02 02 40 01 F0 00 00 50 46 00 00 E0 A5 01 $...@....PF..... 00 C2 01 00 80 1A 06 00 03 15 16 05 00 80 1A 06 ................ 00 80 84 1E 00 1B 24 04 04 02 59 38 30 30 00 00 ......$...Y800.. 10 00 80 00 00 AA 00 38 9B 71 08 01 00 00 00 00 .......8.q...... 26 24 05 01 02 00 05 D0 02 00 C0 4B 03 00 80 C6 &$.........K.... 13 00 18 15 00 80 1A 06 00 03 15 16 05 00 80 1A ................ 06 00 80 84 1E 00 26 24 05 02 02 40 01 F0 00 00 ......&$...@.... 50 46 00 00 E0 A5 01 00 C2 01 00 80 1A 06 00 03 PF.............. 15 16 05 00 80 1A 06 00 80 84 1E 00 06 24 0D 01 .............$.. 01 04 09 04 01 01 01 0E 02 00 00 07 05 81 05 00 ................ 04 01 08 0B 02 03 01 02 00 07 09 04 02 00 00 01 ................                           01 00 07 0A 24 01 00 01 4D 00 02 03 04 0C 24 02   ....$...F.....$. 01 01 01 00 01 04 00 00 00 09 24 06 02 01 01 01 ..........$..... 02 00 09 24 03 03 02 03 00 02 00 0C 24 02 04 01 ...$........$... 02 00 01 04 00 00 00 09 24 06 05 04 01 43 00 00 ........$....C.. 07 24 05 09 01 05 00 09 24 03 06 01 01 02 09 00 .$......$....... 09 04 03 00 00 01 02 00 00 09 04 03 01 01 01 02 ................ 00 00 07 24 01 01 01 01 00 0B 24 02 01 01 02 10 ...$......$..... 01 80 3E 00 09 05 02 0D 20 00 01 00 00 07 25 01 ..>..... .....%. 00 00 00 00 09 04 04 00 00 01 02 00 00 09 04 04 ................ 01 01 01 02 00 00 07 24 01 06 01 01 00 0B 24 02 .......$......$. 01 01 02 10 01 80 3E 00 09 05 82 0D 20 00 01 00 ......>..... ... 00 07 25 01 00 00 00 00 ..%.....
------------------- IAD Descriptor --------------------bLength : 0x08 (8 bytes)bDescriptorType : 0x0B (Interface Association Descriptor)bFirstInterface : 0x00 (Interface 0)bInterfaceCount : 0x02 (2 Interfaces)bFunctionClass : 0x0E (Video)bFunctionSubClass : 0x03 (Video Interface Collection)bFunctionProtocol : 0x00 (PC_PROTOCOL_UNDEFINED)iFunction : 0x00 (No String Descriptor)Data (HexDump) : 08 0B 00 02 0E 03 00 00 ........
---------------- Interface Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x04 (Interface Descriptor)bInterfaceNumber : 0x00 (Interface 0)bAlternateSetting : 0x00bNumEndpoints : 0x00 (Default Control Pipe only)bInterfaceClass : 0x0E (Video)bInterfaceSubClass : 0x01 (Video Control)bInterfaceProtocol : 0x00iInterface : 0x00 (No String Descriptor)Data (HexDump) : 09 04 00 00 00 0E 01 00 00 .........
------- Video Control Interface Header Descriptor -----bLength : 0x0D (13 bytes)bDescriptorType : 0x24 (Video Control Interface)bDescriptorSubtype : 0x01 (Video Control Header)bcdUVC : 0x0100 (UVC Version 1.00)wTotalLength : 0x0035 (53 bytes)dwClockFreq : 0x01C9C380 (30 MHz)bInCollection : 0x01 (1 VideoStreaming interface)baInterfaceNr[1] : 0x01 (Interface 1)Data (HexDump) : 0D 24 01 00 01 35 00 80 C3 C9 01 01 01 .$...5.......
-------- Video Control Input Terminal Descriptor ------bLength : 0x12 (18 bytes)bDescriptorType : 0x24 (Video Control Interface)bDescriptorSubtype : 0x02 (Input Terminal)bTerminalID : 0x01 (1)wTerminalType : 0x0201 (ITT_CAMERA)bAssocTerminal : 0x00 (Not associated with an Output Terminal)iTerminal : 0x00 (No String Descriptor)Camera Input Terminal Data:wObjectiveFocalLengthMin : 0x0000wObjectiveFocalLengthMax : 0x0000wOcularFocalLength : 0x0000bControlSize : 0x03 (3 bytes)bmControls : 0x00, 0x00, 0x00 D0 : 0 no - Scanning Mode D1 : 0 no - Auto-Exposure Mode D2 : 0 no - Auto-Exposure Priority D3 : 0 no - Exposure Time (Absolute) D4 : 0 no - Exposure Time (Relative) D5 : 0 no - Focus (Absolute) D6 : 0 no - Focus (Relative) D7 : 0 no - Iris (Absolute) D8 : 0 no - Iris (Relative) D9 : 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 - ReservedData (HexDump) : 12 24 02 01 01 02 00 00 00 00 00 00 00 00 03 00 .$.............. 00 00 ..
-------- Video Control Processing Unit Descriptor -----bLength : 0x0D (13 bytes)bDescriptorType : 0x24 (Video Control Interface)bDescriptorSubtype : 0x05 (Processing Unit)bUnitID : 0x02 (2)bSourceID : 0x01 (1)wMaxMultiplier : 0x0000bControlSize : 0x03 (3 bytes)bmControls : 0x00, 0x00, 0x00 D0 : 0 no - Brightness D1 : 0 no - Contrast D2 : 0 no - Hue D3 : 0 no - Saturation D4 : 0 no - Sharpness D5 : 0 no - Gamma D6 : 0 no - White Balance Temperature D7 : 0 no - White Balance Component D8 : 0 no - Backlight Compensation D9 : 0 no - Gain D10 : 0 no - Power Line Frequency D11 : 0 no - Hue, Auto D12 : 0 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 - ReservediProcessing : 0x00 (No String Descriptor)*!*ERROR: bLength of 0x0D incorrect, should be 0x0CData (HexDump) : 0D 24 05 02 01 00 00 03 00 00 00 00 00 .$...........
------- Video Control Output Terminal Descriptor ------bLength : 0x09 (9 bytes)bDescriptorType : 0x24 (Video Control Interface)bDescriptorSubtype : 0x03 (Output Terminal)bTerminalID : 0x03 (3)wTerminalType : 0x0101 (TT_STREAMING)bAssocTerminal : 0x01 (Associated with Input Terminal ID=1)bSourceID : 0x02 (2)iTerminal : 0x00 (No String Descriptor)Data (HexDump) : 09 24 03 03 01 01 01 02 00 .$.......
---------------- Interface Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x04 (Interface Descriptor)bInterfaceNumber : 0x01 (Interface 1)bAlternateSetting : 0x00bNumEndpoints : 0x00 (Default Control Pipe only)bInterfaceClass : 0x0E (Video)bInterfaceSubClass : 0x02 (Video Streaming)bInterfaceProtocol : 0x00iInterface : 0x00 (No String Descriptor)Data (HexDump) : 09 04 01 00 00 0E 02 00 00 .........
---- VC-Specific VS Video Input Header Descriptor -----bLength : 0x11 (17 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x01 (Input Header)bNumFormats : 0x04wTotalLength : 0x01A4 (420 bytes)bEndpointAddress : 0x81 (Direction=IN EndpointID=1)bmInfo : 0x00 (Dynamic Format Change not supported)bTerminalLink : 0x03 (Output Terminal ID 3)bStillCaptureMethod : 0x00 (No Still Capture)nbTriggerSupport : 0x00 (Hardware Triggering not supported)bTriggerUsage : 0x00 (Host will initiate still image capture)bControlSize : 0x01 (1 bytes each)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 - ReservedVideo 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 - ReservedVideo 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 - ReservedVideo Payload Format 4 : 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 - ReservedData (HexDump) : 11 24 01 04 A4 01 81 00 03 00 00 00 01 00 00 00 .$.............. 00 .
------- VS Uncompressed Format Type Descriptor --------bLength : 0x1B (27 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x04 (Uncompressed Format Type)bFormatIndex : 0x01 (1)bNumFrameDescriptors : 0x02 (2 Frame Descriptors)guidFormat : {3231564E-0000-0010-8000-00AA00389B71} (NV12)bBitsPerPixel : 0x0C (12 bits per pixel)bDefaultFrameIndex : 0x01 (Index 1)bAspectRatioX : 0x00bAspectRatioY : 0x00bmInterlaceFlags : 0x00 D0 IL stream or variable: 0 (no) D1 Fields per frame : 0 (2 fields) D2 Field 1 first : 0 (no) D3 Reserved : 0 D4..5 Field pattern : 0 (Field 1 only) D6..7 Display Mode : 0 (Bob only)bCopyProtect : 0x00 (No restrictions)Data (HexDump) : 1B 24 04 01 02 4E 56 31 32 00 00 10 00 80 00 00 .$...NV12....... AA 00 38 9B 71 0C 01 00 00 00 00 ..8.q......
-------- VS Uncompressed Frame Type Descriptor -----------> This is the Default (optimum) Frame indexbLength : 0x26 (38 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x05 (Uncompressed Frame Type)bFrameIndex : 0x01bmCapabilities : 0x02wWidth : 0x0500 (1280)wHeight : 0x02D0 (720)dwMinBitRate : 0x034BC000 (55296000 bps -> 6.912 MB/s)dwMaxBitRate : 0x13C68000 (331776000 bps -> 41.472 MB/s)dwMaxVideoFrameBufferSize: 0x00151800 (1382400 bytes)dwDefaultFrameInterval : 0x00061A80 (40.0000 ms -> 25.0000 fps)bFrameIntervalType : 0x03 (3 discrete frame intervals supported)adwFrameInterval[1] : 0x00051615 (33.3333 ms -> 30.0000 fps)adwFrameInterval[2] : 0x00061A80 (40.0000 ms -> 25.0000 fps)adwFrameInterval[3] : 0x001E8480 (200.0000 ms -> 5.0000 fps)Data (HexDump) : 26 24 05 01 02 00 05 D0 02 00 C0 4B 03 00 80 C6 &$.........K.... 13 00 18 15 00 80 1A 06 00 03 15 16 05 00 80 1A ................ 06 00 80 84 1E 00 ......
-------- VS Uncompressed Frame Type Descriptor --------bLength : 0x26 (38 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x05 (Uncompressed Frame Type)bFrameIndex : 0x02bmCapabilities : 0x02wWidth : 0x0140 (320)wHeight : 0x00F0 (240)dwMinBitRate : 0x00465000 (4608000 bps -> 576 KB/s)dwMaxBitRate : 0x01A5E000 (27648000 bps -> 3.456 MB/s)dwMaxVideoFrameBufferSize: 0x0001C200 (115200 bytes)dwDefaultFrameInterval : 0x00061A80 (40.0000 ms -> 25.0000 fps)bFrameIntervalType : 0x03 (3 discrete frame intervals supported)adwFrameInterval[1] : 0x00051615 (33.3333 ms -> 30.0000 fps)adwFrameInterval[2] : 0x00061A80 (40.0000 ms -> 25.0000 fps)adwFrameInterval[3] : 0x001E8480 (200.0000 ms -> 5.0000 fps)Data (HexDump) : 26 24 05 02 02 40 01 F0 00 00 50 46 00 00 E0 A5 &$...@....PF.... 01 00 C2 01 00 80 1A 06 00 03 15 16 05 00 80 1A ................ 06 00 80 84 1E 00 ......
------- VS Color Matching Descriptor Descriptor -------bLength : 0x06 (6 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x0D (Color Matching)bColorPrimaries : 0x01 (BT.709, sRGB)bTransferCharacteristics : 0x01 (BT.709)bMatrixCoefficients : 0x04 (SMPTE 170M)Data (HexDump) : 06 24 0D 01 01 04 .$....
---- VS Frame Based Payload Format Type Descriptor ----*!*ERROR: This format is NOT ALLOWED for UVC 1.0 devicesbLength : 0x1C (28 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x10 (Frame Based Format Type)bFormatIndex : 0x02 (2)bNumFrameDescriptors : 0x02 (2)guidFormat : {34363248-0000-0010-8000-00AA00389B71} (H264)bBitsPerPixel : 0x10 (16 bits)bDefaultFrameIndex : 0x01 (1)bAspectRatioX : 0x00bAspectRatioY : 0x00bmInterlaceFlags : 0x00 D0 IL stream or variable: 0 (no) D1 Fields per frame : 0 (2 fields) D2 Field 1 first : 0 (no) D3 Reserved : 0 D4..5 Field pattern : 0 (Field 1 only) D6..7 Display Mode : 0 (Bob only)bCopyProtect : 0x00 (No restrictions)bVariableSize : 0x01 (Variable Size)*!*ERROR: no Color Matching Descriptor for this formatData (HexDump) : 1C 24 10 02 02 48 32 36 34 00 00 10 00 80 00 00 .$...H264....... AA 00 38 9B 71 10 01 00 00 00 00 01 ..8.q.......
----- VS Frame Based Payload Frame Type Descriptor ----*!*ERROR bDescriptorSubtype did not exist in UVC 1.0bLength : 0x26 (38 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x11 (Frame Based Payload Frame Type)bFrameIndex : 0x01bmCapabilities : 0x00wWidth : 0x0500 (1280)wHeight : 0x02D0 (720)dwMinBitRate : 0x034BC000 (55296000 bps -> 6.912 MB/s)dwMaxBitRate : 0x13C68000 (331776000 bps -> 41.472 MB/s)dwDefaultFrameInterval : 0x00061A80 (40.0000 ms -> 25.0000 fps)bFrameIntervalType : 0x03 (3 discrete frame intervals supported)dwBytesPerLine : 0x00 (0 bytes)adwFrameInterval[1] : 0x00051615 (33.3333 ms -> 30.0000 fps)adwFrameInterval[2] : 0x00061A80 (40.0000 ms -> 25.0000 fps)adwFrameInterval[3] : 0x001E8480 (200.0000 ms -> 5.0000 fps)Data (HexDump) : 26 24 11 01 00 00 05 D0 02 00 C0 4B 03 00 80 C6 &$.........K.... 13 80 1A 06 00 03 00 00 00 00 15 16 05 00 80 1A ................ 06 00 80 84 1E 00 ......
----- VS Frame Based Payload Frame Type Descriptor ----*!*ERROR bDescriptorSubtype did not exist in UVC 1.0bLength : 0x26 (38 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x11 (Frame Based Payload Frame Type)bFrameIndex : 0x02bmCapabilities : 0x00wWidth : 0x0140 (320)wHeight : 0x00F0 (240)dwMinBitRate : 0x00465000 (4608000 bps -> 576 KB/s)dwMaxBitRate : 0x01A5E000 (27648000 bps -> 3.456 MB/s)dwDefaultFrameInterval : 0x00061A80 (40.0000 ms -> 25.0000 fps)bFrameIntervalType : 0x03 (3 discrete frame intervals supported)dwBytesPerLine : 0x00 (0 bytes)adwFrameInterval[1] : 0x00051615 (33.3333 ms -> 30.0000 fps)adwFrameInterval[2] : 0x00061A80 (40.0000 ms -> 25.0000 fps)adwFrameInterval[3] : 0x001E8480 (200.0000 ms -> 5.0000 fps)Data (HexDump) : 26 24 11 02 00 40 01 F0 00 00 50 46 00 00 E0 A5 &$...@....PF.... 01 80 1A 06 00 03 00 00 00 00 15 16 05 00 80 1A ................ 06 00 80 84 1E 00 ......
----- Video Streaming MJPEG Format Type Descriptor ----bLength : 0x0B (11 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x06 (Format MJPEG)bFormatIndex : 0x03 (3)bNumFrameDescriptors : 0x02 (2)bmFlags : 0x01 (Sample size is fixed)bDefaultFrameIndex : 0x01 (1)bAspectRatioX : 0x00bAspectRatioY : 0x00bmInterlaceFlags : 0x00 D0 IL stream or variable: 0 (no) D1 Fields per frame : 0 (2 fields) D2 Field 1 first : 0 (no) D3 Reserved : 0 D4..5 Field pattern : 0 (Field 1 only) D6..7 Display Mode : 0 (Bob only)bCopyProtect : 0x00 (No restrictions)*!*ERROR: no Color Matching Descriptor for this formatData (HexDump) : 0B 24 06 03 02 01 01 00 00 00 00 .$.........
----- Video Streaming MJPEG Frame Type Descriptor --------> This is the Default (optimum) Frame indexbLength : 0x26 (38 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x07 (MJPEG Frame Type)bFrameIndex : 0x01bmCapabilities : 0x02wWidth : 0x0500 (1280)wHeight : 0x02D0 (720)dwMinBitRate : 0x034BC000 (55296000 bps -> 6.912 MB/s)dwMaxBitRate : 0x13C68000 (331776000 bps -> 41.472 MB/s)dwMaxVideoFrameBufferSize: 0x00151800 (1382400 bytes)dwDefaultFrameInterval : 0x00061A80 (40.0000 ms -> 25.0000 fps)bFrameIntervalType : 0x03 (3 discrete frame intervals supported)adwFrameInterval[1] : 0x00051615 (33.3333 ms -> 30.0000 fps)adwFrameInterval[2] : 0x00061A80 (40.0000 ms -> 25.0000 fps)adwFrameInterval[3] : 0x001E8480 (200.0000 ms -> 5.0000 fps)Data (HexDump) : 26 24 07 01 02 00 05 D0 02 00 C0 4B 03 00 80 C6 &$.........K.... 13 00 18 15 00 80 1A 06 00 03 15 16 05 00 80 1A ................ 06 00 80 84 1E 00 ......
----- Video Streaming MJPEG Frame Type Descriptor -----bLength : 0x26 (38 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x07 (MJPEG Frame Type)bFrameIndex : 0x02bmCapabilities : 0x02wWidth : 0x0140 (320)wHeight : 0x00F0 (240)dwMinBitRate : 0x00465000 (4608000 bps -> 576 KB/s)dwMaxBitRate : 0x01A5E000 (27648000 bps -> 3.456 MB/s)dwMaxVideoFrameBufferSize: 0x0001C200 (115200 bytes)dwDefaultFrameInterval : 0x00061A80 (40.0000 ms -> 25.0000 fps)bFrameIntervalType : 0x03 (3 discrete frame intervals supported)adwFrameInterval[1] : 0x00051615 (33.3333 ms -> 30.0000 fps)adwFrameInterval[2] : 0x00061A80 (40.0000 ms -> 25.0000 fps)adwFrameInterval[3] : 0x001E8480 (200.0000 ms -> 5.0000 fps)Data (HexDump) : 26 24 07 02 02 40 01 F0 00 00 50 46 00 00 E0 A5 &$...@....PF.... 01 00 C2 01 00 80 1A 06 00 03 15 16 05 00 80 1A ................ 06 00 80 84 1E 00 ......
------- VS Uncompressed Format Type Descriptor --------bLength : 0x1B (27 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x04 (Uncompressed Format Type)bFormatIndex : 0x04 (4)bNumFrameDescriptors : 0x02 (2 Frame Descriptors)guidFormat : {30303859-0000-0010-8000-00AA00389B71} (Y800)bBitsPerPixel : 0x08 (8 bits per pixel)bDefaultFrameIndex : 0x01 (Index 1)bAspectRatioX : 0x00bAspectRatioY : 0x00bmInterlaceFlags : 0x00 D0 IL stream or variable: 0 (no) D1 Fields per frame : 0 (2 fields) D2 Field 1 first : 0 (no) D3 Reserved : 0 D4..5 Field pattern : 0 (Field 1 only) D6..7 Display Mode : 0 (Bob only)bCopyProtect : 0x00 (No restrictions)Data (HexDump) : 1B 24 04 04 02 59 38 30 30 00 00 10 00 80 00 00 .$...Y800....... AA 00 38 9B 71 08 01 00 00 00 00 ..8.q......
-------- VS Uncompressed Frame Type Descriptor -----------> This is the Default (optimum) Frame indexbLength : 0x26 (38 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x05 (Uncompressed Frame Type)bFrameIndex : 0x01bmCapabilities : 0x02wWidth : 0x0500 (1280)wHeight : 0x02D0 (720)dwMinBitRate : 0x034BC000 (55296000 bps -> 6.912 MB/s)dwMaxBitRate : 0x13C68000 (331776000 bps -> 41.472 MB/s)dwMaxVideoFrameBufferSize: 0x00151800 (1382400 bytes)dwDefaultFrameInterval : 0x00061A80 (40.0000 ms -> 25.0000 fps)bFrameIntervalType : 0x03 (3 discrete frame intervals supported)adwFrameInterval[1] : 0x00051615 (33.3333 ms -> 30.0000 fps)adwFrameInterval[2] : 0x00061A80 (40.0000 ms -> 25.0000 fps)adwFrameInterval[3] : 0x001E8480 (200.0000 ms -> 5.0000 fps)Data (HexDump) : 26 24 05 01 02 00 05 D0 02 00 C0 4B 03 00 80 C6 &$.........K.... 13 00 18 15 00 80 1A 06 00 03 15 16 05 00 80 1A ................ 06 00 80 84 1E 00 ......
-------- VS Uncompressed Frame Type Descriptor --------bLength : 0x26 (38 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x05 (Uncompressed Frame Type)bFrameIndex : 0x02bmCapabilities : 0x02wWidth : 0x0140 (320)wHeight : 0x00F0 (240)dwMinBitRate : 0x00465000 (4608000 bps -> 576 KB/s)dwMaxBitRate : 0x01A5E000 (27648000 bps -> 3.456 MB/s)dwMaxVideoFrameBufferSize: 0x0001C200 (115200 bytes)dwDefaultFrameInterval : 0x00061A80 (40.0000 ms -> 25.0000 fps)bFrameIntervalType : 0x03 (3 discrete frame intervals supported)adwFrameInterval[1] : 0x00051615 (33.3333 ms -> 30.0000 fps)adwFrameInterval[2] : 0x00061A80 (40.0000 ms -> 25.0000 fps)adwFrameInterval[3] : 0x001E8480 (200.0000 ms -> 5.0000 fps)Data (HexDump) : 26 24 05 02 02 40 01 F0 00 00 50 46 00 00 E0 A5 &$...@....PF.... 01 00 C2 01 00 80 1A 06 00 03 15 16 05 00 80 1A ................ 06 00 80 84 1E 00 ......
------- VS Color Matching Descriptor Descriptor -------bLength : 0x06 (6 bytes)bDescriptorType : 0x24 (Video Streaming Interface)bDescriptorSubtype : 0x0D (Color Matching)bColorPrimaries : 0x01 (BT.709, sRGB)bTransferCharacteristics : 0x01 (BT.709)bMatrixCoefficients : 0x04 (SMPTE 170M)Data (HexDump) : 06 24 0D 01 01 04 .$....
---------------- Interface Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x04 (Interface Descriptor)bInterfaceNumber : 0x01 (Interface 1)bAlternateSetting : 0x01bNumEndpoints : 0x01 (1 Endpoint)bInterfaceClass : 0x0E (Video)bInterfaceSubClass : 0x02 (Video Streaming)bInterfaceProtocol : 0x00iInterface : 0x00 (No String Descriptor)Data (HexDump) : 09 04 01 01 01 0E 02 00 00 .........
----------------- Endpoint Descriptor -----------------bLength : 0x07 (7 bytes)bDescriptorType : 0x05 (Endpoint Descriptor)bEndpointAddress : 0x81 (Direction=IN EndpointID=1)bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)wMaxPacketSize : 0x0400 (1024 bytes)bInterval : 0x01 (1 ms)Data (HexDump) : 07 05 81 05 00 04 01 .......
------------------- IAD Descriptor --------------------bLength : 0x08 (8 bytes)bDescriptorType : 0x0B (Interface Association Descriptor)bFirstInterface : 0x02 (Interface 2)bInterfaceCount : 0x03 (3 Interfaces)bFunctionClass : 0x01 (Audio)bFunctionSubClass : 0x02 (Audio Streaming)bFunctionProtocol : 0x00iFunction : 0x07 (String Descriptor 7) Language 0x0409 : "USB.Audio"Data (HexDump) : 08 0B 02 03 01 02 00 07 ........
---------------- Interface Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x04 (Interface Descriptor)bInterfaceNumber : 0x02 (Interface 2)bAlternateSetting : 0x00bNumEndpoints : 0x00 (Default Control Pipe only)bInterfaceClass : 0x01 (Audio)bInterfaceSubClass : 0x01 (Audio Control)bInterfaceProtocol : 0x00iInterface : 0x07 (String Descriptor 7) Language 0x0409 : "USB.Audio"Data (HexDump) : 09 04 02 00 00 01 01 00 07 .........
------ Audio Control Interface Header Descriptor ------bLength : 0x0A (10 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x01 (Header)bcdADC : 0x0100wTotalLength             : 0x004D (77 bytes)bInCollection : 0x02baInterfaceNr[1] : 0x03baInterfaceNr[2] : 0x04Data (HexDump)           : 0A 24 01 00 01 4D 00 02 03 04                     .$...F....
------- Audio Control Input Terminal Descriptor -------bLength : 0x0C (12 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x02 (Input Terminal)bTerminalID : 0x01wTerminalType : 0x0101 (USB Streaming)bAssocTerminal : 0x00bNrChannels : 0x01 (1 channel)wChannelConfig : 0x0004 (C)iChannelNames : 0x00 (No String Descriptor)iTerminal : 0x00 (No String Descriptor)Data (HexDump) : 0C 24 02 01 01 01 00 01 04 00 00 00 .$..........
-------- Audio Control Feature Unit Descriptor --------bLength : 0x09 (9 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x06 (Feature Unit)bUnitID : 0x02 (2)bSourceID : 0x01 (1)bControlSize : 0x01 (1 byte per control)bmaControls[0] : 0x01 D0: Mute : 1 D1: Volume : 0 D2: Bass : 0 D3: Mid : 0 D4: Treble : 0 D5: Graphic Equalizer : 0 D6: Automatic Gain : 0 D7: Delay : 0bmaControls[1] : 0x02 D0: Mute : 0 D1: Volume : 1 D2: Bass : 0 D3: Mid : 0 D4: Treble : 0 D5: Graphic Equalizer : 0 D6: Automatic Gain : 0 D7: Delay : 0iFeature : 0x00 (No String Descriptor)Data (HexDump) : 09 24 06 02 01 01 01 02 00 .$.......
------- Audio Control Output Terminal Descriptor ------bLength : 0x09 (9 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x03 (Output Terminal)bTerminalID : 0x03wTerminalType : 0x0302 (Headphones)bAssocTerminal : 0x00 (0)bSourceID : 0x02 (2)iTerminal : 0x00 (No String Descriptor)Data (HexDump) : 09 24 03 03 02 03 00 02 00 .$.......
------- Audio Control Input Terminal Descriptor -------bLength : 0x0C (12 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x02 (Input Terminal)bTerminalID : 0x04wTerminalType : 0x0201 (Microphone)bAssocTerminal : 0x00bNrChannels : 0x01 (1 channel)wChannelConfig : 0x0004 (C)iChannelNames : 0x00 (No String Descriptor)iTerminal : 0x00 (No String Descriptor)Data (HexDump) : 0C 24 02 04 01 02 00 01 04 00 00 00 .$..........
-------- Audio Control Feature Unit Descriptor --------bLength : 0x09 (9 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x06 (Feature Unit)bUnitID : 0x05 (5)bSourceID : 0x04 (4)bControlSize : 0x01 (1 byte per control)bmaControls[0] : 0x43 D0: Mute : 1 D1: Volume : 1 D2: Bass : 0 D3: Mid : 0 D4: Treble : 0 D5: Graphic Equalizer : 0 D6: Automatic Gain : 1 D7: Delay : 0bmaControls[1] : 0x00 D0: Mute : 0 D1: Volume : 0 D2: Bass : 0 D3: Mid : 0 D4: Treble : 0 D5: Graphic Equalizer : 0 D6: Automatic Gain : 0 D7: Delay : 0iFeature : 0x00 (No String Descriptor)Data (HexDump) : 09 24 06 05 04 01 43 00 00 .$....C..
------- Audio Control Selector Unit Descriptor --------bLength : 0x07 (7 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x05 (Selector Unit)bUnitID : 0x09bNrInPins : 0x01 (1 Input Pin)baSourceID[1] : 0x05 (5)iSelector : 0x00 (No String Descriptor)Data (HexDump) : 07 24 05 09 01 05 00 .$.....
------- Audio Control Output Terminal Descriptor ------bLength : 0x09 (9 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x03 (Output Terminal)bTerminalID : 0x06wTerminalType : 0x0101 (USB Streaming)bAssocTerminal : 0x02 (2)bSourceID : 0x09 (9)iTerminal : 0x00 (No String Descriptor)Data (HexDump) : 09 24 03 06 01 01 02 09 00 .$.......
---------------- Interface Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x04 (Interface Descriptor)bInterfaceNumber : 0x03 (Interface 3)bAlternateSetting : 0x00bNumEndpoints : 0x00 (Default Control Pipe only)bInterfaceClass : 0x01 (Audio)bInterfaceSubClass : 0x02 (Audio Streaming)bInterfaceProtocol : 0x00iInterface : 0x00 (No String Descriptor)Data (HexDump) : 09 04 03 00 00 01 02 00 00 .........
---------------- Interface Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x04 (Interface Descriptor)bInterfaceNumber : 0x03 (Interface 3)bAlternateSetting : 0x01bNumEndpoints : 0x01 (1 Endpoint)bInterfaceClass : 0x01 (Audio)bInterfaceSubClass : 0x02 (Audio Streaming)bInterfaceProtocol : 0x00iInterface : 0x00 (No String Descriptor)Data (HexDump) : 09 04 03 01 01 01 02 00 00 .........
-------- Audio Streaming Interface Descriptor ---------bLength : 0x07 (7 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x01 (AS_GENERAL)bTerminalLink : 0x01 (Terminal ID 1)bDelay : 0x01 (1 frame)wFormatTag : 0x0001 (PCM)Data (HexDump) : 07 24 01 01 01 01 00 .$.....
------- Audio Streaming Format Type Descriptor --------bLength : 0x0B (11 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x02 (Format Type)bFormatType : 0x01 (FORMAT_TYPE_I)bNrChannels : 0x01 (1 channel)bSubframeSize : 0x02 (2 bytes per subframe)bBitResolution : 0x10 (16 bits per sample)bSamFreqType : 0x01 (supports 1 sample frequence)tSamFreq[1] : 0x03E80 (16000 Hz)Data (HexDump) : 0B 24 02 01 01 02 10 01 80 3E 00 .$.......>.
----------------- Endpoint Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x05 (Endpoint Descriptor)bEndpointAddress : 0x02 (Direction=OUT EndpointID=2)bmAttributes : 0x0D (TransferType=Isochronous SyncType=Synchronous EndpointType=Data)wMaxPacketSize : 0x0020 (32 bytes)bInterval : 0x01 (1 ms)bRefresh : 0x00bSynchAddress : 0x00Data (HexDump) : 09 05 02 0D 20 00 01 00 00 .... ....
----------- Audio Data Endpoint Descriptor ------------bLength : 0x07 (7 bytes)bDescriptorType : 0x25 (Audio Endpoint Descriptor)bDescriptorSubtype : 0x01 (General)bmAttributes : 0x00 D0 : Sampling Freq : 0x00 (not supported) D1 : Pitch : 0x00 (not supported) D6..2: Reserved : 0x00 D7 : MaxPacketsOnly : 0x00 (no)bLockDelayUnits : 0x00 (Undefined)wLockDelay : 0x0000Data (HexDump) : 07 25 01 00 00 00 00 .%.....
---------------- Interface Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x04 (Interface Descriptor)bInterfaceNumber : 0x04 (Interface 4)bAlternateSetting : 0x00bNumEndpoints : 0x00 (Default Control Pipe only)bInterfaceClass : 0x01 (Audio)bInterfaceSubClass : 0x02 (Audio Streaming)bInterfaceProtocol : 0x00iInterface : 0x00 (No String Descriptor)Data (HexDump) : 09 04 04 00 00 01 02 00 00 .........
---------------- Interface Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x04 (Interface Descriptor)bInterfaceNumber : 0x04 (Interface 4)bAlternateSetting : 0x01bNumEndpoints : 0x01 (1 Endpoint)bInterfaceClass : 0x01 (Audio)bInterfaceSubClass : 0x02 (Audio Streaming)bInterfaceProtocol : 0x00iInterface : 0x00 (No String Descriptor)Data (HexDump) : 09 04 04 01 01 01 02 00 00 .........
-------- Audio Streaming Interface Descriptor ---------bLength : 0x07 (7 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x01 (AS_GENERAL)bTerminalLink : 0x06 (Terminal ID 6)bDelay : 0x01 (1 frame)wFormatTag : 0x0001 (PCM)Data (HexDump) : 07 24 01 06 01 01 00 .$.....
------- Audio Streaming Format Type Descriptor --------bLength : 0x0B (11 bytes)bDescriptorType : 0x24 (Audio Interface Descriptor)bDescriptorSubtype : 0x02 (Format Type)bFormatType : 0x01 (FORMAT_TYPE_I)bNrChannels : 0x01 (1 channel)bSubframeSize : 0x02 (2 bytes per subframe)bBitResolution : 0x10 (16 bits per sample)bSamFreqType : 0x01 (supports 1 sample frequence)tSamFreq[1] : 0x03E80 (16000 Hz)Data (HexDump) : 0B 24 02 01 01 02 10 01 80 3E 00 .$.......>.
----------------- Endpoint Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x05 (Endpoint Descriptor)bEndpointAddress : 0x82 (Direction=IN EndpointID=2)bmAttributes : 0x0D (TransferType=Isochronous SyncType=Synchronous EndpointType=Data)wMaxPacketSize : 0x0020 (32 bytes)bInterval : 0x01 (1 ms)bRefresh : 0x00bSynchAddress : 0x00Data (HexDump) : 09 05 82 0D 20 00 01 00 00 .... ....
----------- Audio Data Endpoint Descriptor ------------bLength : 0x07 (7 bytes)bDescriptorType : 0x25 (Audio Endpoint Descriptor)bDescriptorSubtype : 0x01 (General)bmAttributes : 0x00 D0 : Sampling Freq : 0x00 (not supported) D1 : Pitch : 0x00 (not supported) D6..2: Reserved : 0x00 D7 : MaxPacketsOnly : 0x00 (no)bLockDelayUnits : 0x00 (Undefined)wLockDelay : 0x0000Data (HexDump) : 07 25 01 00 00 00 00 .%.....
-------------------- String Descriptors ------------------- ------ String Descriptor 0 ------bLength : 0x04 (4 bytes)bDescriptorType : 0x03 (String Descriptor)Language ID[0] : 0x0409 (English - United States)Data (HexDump) : 04 03 09 04 .... ------ String Descriptor 1 ------bLength : 0x22 (34 bytes)bDescriptorType : 0x03 (String Descriptor)Language 0x0409 : "xxxxx.Technology"Data (HexDump) : 22 03 78 00 78 00 78 00 78 00 78 00 2E 00 54 00 ".x.x.x.x.x...T. 65 00 63 00 68 00 6E 00 6F 00 6C 00 6F 00 67 00 e.c.h.n.o.l.o.g. 79 00 y. ------ String Descriptor 2 ------bLength : 0x14 (20 bytes)bDescriptorType : 0x03 (String Descriptor)Language 0x0409 : "USB.Video"Data (HexDump) : 14 03 55 00 53 00 42 00 2E 00 56 00 69 00 64 00 ..U.S.B...V.i.d. 65 00 6F 00 e.o. ------ String Descriptor 3 ------bLength : 0x08 (8 bytes)bDescriptorType : 0x03 (String Descriptor)Language 0x0409 : "0.1"Data (HexDump) : 08 03 30 00 2E 00 31 00 ..0...1. ------ String Descriptor 4 ------bLength : 0x1C (28 bytes)bDescriptorType : 0x03 (String Descriptor)Language 0x0409 : "Configuration"Data (HexDump) : 1C 03 43 00 6F 00 6E 00 66 00 69 00 67 00 75 00 ..C.o.n.f.i.g.u. 72 00 61 00 74 00 69 00 6F 00 6E 00 r.a.t.i.o.n. ------ String Descriptor 5 ------bLength : 0x14 (20 bytes)bDescriptorType : 0x03 (String Descriptor)Language 0x0409 : "USB.Video"Data (HexDump) : 14 03 55 00 53 00 42 00 2E 00 56 00 69 00 64 00 ..U.S.B...V.i.d. 65 00 6F 00 e.o. ------ String Descriptor 6 ------bLength : 0x14 (20 bytes)bDescriptorType : 0x03 (String Descriptor)Language 0x0409 : "USB.Audio"Data (HexDump) : 14 03 55 00 53 00 42 00 2E 00 41 00 75 00 64 00 ..U.S.B...A.u.d. 69 00 6F 00 i.o. ------ String Descriptor 7 ------bLength : 0x14 (20 bytes)bDescriptorType : 0x03 (String Descriptor)Language 0x0409 : "USB.Audio"Data (HexDump) : 14 03 55 00 53 00 42 00 2E 00 41 00 75 00 64 00 ..U.S.B...A.u.d. 69 00 6F 00 i.o. ------ String Descriptor 8 ------bLength : 0x08 (8 bytes)bDescriptorType : 0x03 (String Descriptor)Language 0x0409 : "XXX"Data (HexDump) : 08 03 58 00 58 00 58 00 ..X.X.X. ------ String Descriptor 9 ------bLength : 0x08 (8 bytes)bDescriptorType : 0x03 (String Descriptor)Language 0x0409 : "XXX"Data (HexDump) : 08 03 58 00 58 00 58 00 ..X.X.X.

四. 枚举过程

见五.抓包文件分享,不再赘述

.抓包文件分享

UVC_UAC_SPK_MIC.upv

可以使用USB Packet Viewer这个软件回放,方便查看枚举和数据传输过程。

链接:https://pan.baidu.com/s/1DanwiGhXX3W9kwL9naSVUQ?pwd=wb6n

提取码:wb6n

.总结

以上分享了一个完整的UVC+UAC的扬声器+麦克风的实例,描述符可以直接使用,其他参考单独的UVC和扬声器和麦克风的实现即可。USB描述符的正确是能顺利枚举的首要条件,枚举完成了,基本就成功了一半了。有时候描述符一丁点不对就会导致枚举失败,所以有时候这些问题会困扰很久,有一个正确的描述符作为参考显得很有价值。故特分享此案例。


评论 (0)
  • 二位半 5线数码管的驱动方法这个2位半的7段数码管只用5个管脚驱动。如果用常规的7段+共阳/阴则需要用10个管脚。如果把每个段看成独立的灯。5个管脚来点亮,任选其中一个作为COM端时,另外4条线可以单独各控制一个灯。所以实际上最多能驱动5*4 = 20个段。但是这里会有一个小问题。如果想点亮B1,可以让第3条线(P3)置高,P4 置低,其它阳极连P3的灯对应阴极P2 P1都应置高,此时会发现C1也会点亮。实际操作时,可以把COM端线P3设置为PP输出,其它线为OD输出。就可以单独控制了。实际的驱
    southcreek 2025-05-07 15:06 547浏览
  • 多功能电锅长什么样子,主视图如下图所示。侧视图如下图所示。型号JZ-18A,额定功率600W,额定电压220V,产自潮州市潮安区彩塘镇精致电子配件厂,铭牌如下图所示。有两颗螺丝固定底盖,找到合适的工具,拆开底盖如下图所示。可见和大部分市场的加热锅一样的工作原理,手绘原理图,根据原理图进一步理解和分析。F1为保险,250V/10A,185℃,CPGXLD 250V10A TF185℃ RY 是一款温度保险丝,额定电压是250V,额定电流是10A,动作温度是185℃。CPGXLD是温度保险丝电器元件
    liweicheng 2025-05-05 18:36 473浏览
  • 硅二极管温度传感器是一种基于硅半导体材料特性的测温装置,其核心原理是利用硅二极管的电学参数(如正向压降或电阻)随温度变化的特性实现温度检测。以下是其工作原理、技术特点及典型应用:一、工作原理1、‌PN结温度特性‌硅二极管由PN结构成,当温度变化时,其正向电压 VF与温度呈线性负相关关系。例如,温度每升高1℃,VF约下降2 mV。2、‌电压—温度关系‌通过jing确测量正向电压的微小变化,可推算出环境温度值。部分型号(如SI410)在宽温域内(如1.4 K至475 K)仍能保持高线性度。
    锦正茂科技 2025-05-09 13:52 243浏览
  • 在过去的很长一段时间里,外卖市场呈现出美团和饿了么双寡头垄断的局面。美团凭借先发优势、强大的地推团队以及精细化的运营策略,在市场份额上长期占据领先地位。数据显示,截至2024年上半年,美团外卖以68.2%的市场份额领跑外卖行业,成为当之无愧的行业老大。其业务广泛覆盖,从一线城市的繁华商圈到二三线城市的大街小巷,几乎无处不在,为无数消费者提供便捷的外卖服务。饿了么作为阿里本地生活服务的重要一环,依托阿里强大的资金和技术支持,也在市场中站稳脚跟,以25.4%的份额位居第二。尽管市场份额上与美团有一定
    用户1742991715177 2025-05-06 19:43 112浏览
  • 随着智能驾驶时代到来,汽车正转变为移动计算平台。车载AI技术对存储器提出新挑战:既要高性能,又需低功耗和车规级可靠性。贞光科技代理的紫光国芯车规级LPDDR4存储器,以其卓越性能成为国产芯片产业链中的关键一环,为智能汽车提供坚实的"记忆力"支持。作为官方授权代理商,贞光科技通过专业技术团队和完善供应链,让这款国产存储器更好地服务国内汽车厂商。本文将探讨车载AI算力需求现状及贞光科技如何通过紫光国芯LPDDR4产品满足市场需求。 车载AI算力需求激增的背景与挑战智能驾驶推动算力需求爆发式
    贞光科技 2025-05-07 16:54 219浏览
  • 这款无线入耳式蓝牙耳机是长这个样子的,如下图。侧面特写,如下图。充电接口来个特写,用的是卡座卡在PCB板子上的,上下夹紧PCB的正负极,如下图。撬开耳机喇叭盖子,如下图。精致的喇叭(HY),如下图。喇叭是由电学产生声学的,具体结构如下图。电池包(AFS 451012  21 12),用黄色耐高温胶带进行包裹(安规需求),加强隔离绝缘的,如下图。451012是电池包的型号,聚合物锂电池+3.7V 35mAh,详细如下图。电路板是怎么拿出来的呢,剪断喇叭和电池包的连接线,底部抽出PCB板子
    liweicheng 2025-05-06 22:58 625浏览
  • 文/郭楚妤编辑/cc孙聪颖‍相较于一众措辞谨慎、毫无掌舵者个人风格的上市公司财报,利亚德的财报显得尤为另类。利亚德光电集团成立于1995年,是一家以LED显示、液晶显示产品设计、生产、销售及服务为主业的高新技术企业。自2016年年报起,无论业绩优劣,董事长李军每年都会在财报末尾附上一首七言打油诗,抒发其对公司当年业绩的感悟。从“三年翻番顺大势”“智能显示我第一”“披荆斩棘幸从容”等词句中,不难窥见李军的雄心壮志。2012年,利亚德(300296.SZ)在深交所创业板上市。成立以来,该公司在细分领
    华尔街科技眼 2025-05-07 19:25 437浏览
  • 飞凌嵌入式作为龙芯合作伙伴,隆重推出FET-2K0300i-S全国产自主可控工业级核心板!FET-2K0300i-S核心板基于龙芯2K0300i工业级处理器开发设计,集成1个64位LA264处理器,主频1GHz,提供高效的计算能力;支持硬件ECC;2K0300i还具备丰富的连接接口USB、SDIO、UART、SPI、CAN-FD、Ethernet、ADC等一应俱全,龙芯2K0300i支持四路CAN-FD接口,具备良好的可靠性、实时性和灵活性,可满足用户多路CAN需求。除性价比超高的国产处理器外,
    飞凌嵌入式 2025-05-07 11:54 95浏览
  • 后摄像头是长这个样子,如下图。5孔(D-,D+,5V,12V,GND),说的是连接线的个数,如下图。4LED,+12V驱动4颗LED灯珠,给摄像头补光用的,如下图。打开后盖,发现里面有透明白胶(防水)和白色硬胶(固定),用合适的工具,清理其中的胶状物。BOT层,AN3860,Panasonic Semiconductor (松下电器)制造的,Cylinder Motor Driver IC for Video Camera,如下图。TOP层,感光芯片和广角聚焦镜头组合,如下图。感光芯片,看着是玻
    liweicheng 2025-05-07 23:55 446浏览
  • 2024年初,OpenAI公布的Sora AI视频生成模型,震撼了国产大模型行业。随后国产厂商集体发力视频大模型,快手发布视频生成大模型可灵,字节跳动发布豆包视频生成模型,正式打响了国内AI视频生成领域第一枪。众多企业匆忙入局,只为在这片新兴市场中抢占先机,却往往忽视了技术成熟度与应用规范的打磨。以社交平台上泛滥的 AI 伪造视频为例,全红婵家人被恶意仿冒博流量卖货,明星们也纷纷中招,刘晓庆、张馨予等均曾反馈有人在视频号上通过AI生成视频假冒她。这些伪造视频不仅严重侵犯他人权
    用户1742991715177 2025-05-05 23:08 159浏览
  • 温度传感器的工作原理依据其类型可分为以下几种主要形式:一、热电阻温度传感器利用金属或半导体材料的电阻值随温度变化的特性实现测温:l ‌金属热电阻‌(如铂电阻 Pt100、Pt1000):高温下电阻值呈线性增长,稳定性高,适用于工业精密测温。l ‌热敏电阻‌(NTC/PTC):NTC 热敏电阻阻值随温度升高而下降,PTC 则相反;灵敏度高但线性范围较窄,常用于电子设备温控。二、热电偶传感器基于‌塞贝克效应‌(Seebeck effect):两种不同
    锦正茂科技 2025-05-09 13:31 233浏览
  • ‌一、高斯计的正确选择‌1、‌明确测量需求‌‌磁场类型‌:区分直流或交流磁场,选择对应仪器(如交流高斯计需支持交变磁场测量)。‌量程范围‌:根据被测磁场强度选择覆盖范围,例如地球磁场(0.3–0.5 G)或工业磁体(数百至数千高斯)。‌精度与分辨率‌:高精度场景(如科研)需选择误差低于1%的仪器,分辨率需匹配微小磁场变化检测需求。2、‌仪器类型选择‌‌手持式‌:便携性强,适合现场快速检测;‌台式‌:精度更高,适用于实验室或工业环境。‌探头类型‌:‌横向/轴向探头‌:根据磁场方向选择,轴向探头适合
    锦正茂科技 2025-05-06 11:36 456浏览
  • 文/Leon编辑/cc孙聪颖‍《中国家族企业传承研究报告》显示,超四成“企二代” 明确表达接班意愿,展现出对家族企业延续发展的主动担当。中国研究数据服务平台(CNRDS)提供的精准数据进一步佐证:截至 2022 年,已有至少 280 家上市家族企业完成权杖交接,其中八成新任掌门人为创始人之子,凸显家族企业代际传承中 “子承父业” 的主流模式。然而,对于“企二代” 而言,接棒掌舵绝非易事。在瞬息万变的商业环境中,他们既要在白热化的市场竞争中开拓创新、引领企业突破发展瓶颈,又需应对来自父辈管理层的经
    华尔街科技眼 2025-05-06 18:17 36浏览
  • Matter协议是一个由Amazon Alexa、Apple HomeKit、Google Home和Samsung SmartThings等全球科技巨头与CSA联盟共同制定的开放性标准,它就像一份“共生契约”,能让原本相互独立的家居生态在应用层上握手共存,同时它并非另起炉灶,而是以IP(互联网协议)为基础框架,将不同通信协议下的家居设备统一到同一套“语义规则”之下。作为应用层上的互通标准,Matter协议正在重新定义智能家居行业的运行逻辑,它不仅能向下屏蔽家居设备制造商的生态和系统,让设备、平
    华普微HOPERF 2025-05-08 11:40 385浏览
  • UNISOC Miracle Gaming奇迹手游引擎亮点:• 高帧稳帧:支持《王者荣耀》等主流手游90帧高画质模式,连续丢帧率最高降低85%;• 丝滑操控:游戏冷启动速度提升50%,《和平精英》开镜开枪操作延迟降低80%;• 极速网络:专属游戏网络引擎,使《王者荣耀》平均延迟降低80%;• 智感语音:与腾讯GVoice联合,弱网环境仍能保持清晰通话;• 超高画质:游戏画质增强、超级HDR画质、游戏超分技术,优化游戏视效。全球手游市场规模日益壮大,游戏玩家对极致体验的追求愈发苛刻。紫光展锐全新U
    紫光展锐 2025-05-07 17:07 333浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦