Problems with proxying audio-video devices
Hello. I'm trying to use usb-proxy with webcams and an external sound card.
My Microsoft webcam is successfully proxying, but requesting an image ends with the error: ioctl(USB_RAW_IOCTL_EP_ENABLE): Invalid argument.
Log
+sudo modprobe udc_core +sudo insmod ./raw_gadget.ko insmod: ERROR: could not insert module ./raw_gadget.ko: File exists Device is: musb-hdrc.5.auto Driver is: musb-hdrc vendor_id is: -1 product_id is: -1 Device opened successfully InterfaceNumber 1 AlternateSetting 0 has no endpoint, skip InterfaceNumber 2 AlternateSetting 0 has no endpoint, skip InterfaceNumber 3 AlternateSetting 0 has no endpoint, skip Start hotplug_monitor thread, thread id(2382) Setup USB config successfully Start for EP0, thread id(2380) event: connect, length: 0 event: disconnect Resetting device libusb: error [usbi_get_context] API misuse! Using non-default context as implicit default. event: disconnect Resetting device event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0100, wIndex: 0x0000, wLength: 64 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_DEVICE ep0: transferred 18 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0100, wIndex: 0x0000, wLength: 18 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_DEVICE ep0: transferred 18 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0200, wIndex: 0x0000, wLength: 255 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_CONFIG ep0: transferred 255 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0200, wIndex: 0x0000, wLength: 1429 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_CONFIG ep0: transferred 1429 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0300, wIndex: 0x0000, wLength: 255 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_STRING ep0: transferred 4 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0302, wIndex: 0x0409, wLength: 255 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_STRING ep0: transferred 54 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0100, wIndex: 0x0000, wLength: 18 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_DEVICE ep0: transferred 18 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0200, wIndex: 0x0000, wLength: 9 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_CONFIG ep0: transferred 9 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0200, wIndex: 0x0000, wLength: 1429 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_CONFIG ep0: transferred 1429 bytes (in) event: control, length: 8 bRequestType: 0x00 (OUT), bRequest: 0x09, wValue: 0x0001, wIndex: 0x0000, wLength: 0 type = USB_TYPE_STANDARD req = USB_REQ_SET_CONFIGURATION Activating 1 endpoints on interface 0 int_in: addr = 3, ep = #4 Start reading thread for EP83, thread id(2386) process_eps done Start writing thread for EP83, thread id(2387) Activating 0 endpoints on interface 1 process_eps done Activating 0 endpoints on interface 2 process_eps done Activating 0 endpoints on interface 3 process_eps done ep0: request acked event: control, length: 8 bRequestType: 0x01 (OUT), bRequest: 0x0b, wValue: 0x0000, wIndex: 0x0001, wLength: 0 type = USB_TYPE_STANDARD req = USB_REQ_SET_INTERFACE Interface/altsetting already set ep0: request acked event: control, length: 8 bRequestType: 0x01 (OUT), bRequest: 0x0b, wValue: 0x0000, wIndex: 0x0003, wLength: 0 type = USB_TYPE_STANDARD req = USB_REQ_SET_INTERFACE Interface/altsetting already set ep0: request acked event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0304, wIndex: 0x0409, wLength: 4 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_STRING ep0: transferred 4 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0300, wIndex: 0x0000, wLength: 255 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_STRING ep0: transferred 4 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0304, wIndex: 0x0409, wLength: 54 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_STRING ep0: transferred 54 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0301, wIndex: 0x0409, wLength: 255 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_STRING ep0: transferred 20 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0302, wIndex: 0x0409, wLength: 4 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_STRING ep0: transferred 4 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0302, wIndex: 0x0409, wLength: 255 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_STRING ep0: transferred 54 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0302, wIndex: 0x0409, wLength: 54 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_STRING ep0: transferred 54 bytes (in) event: control, length: 8 bRequestType: 0x01 (OUT), bRequest: 0x0b, wValue: 0x0000, wIndex: 0x0001, wLength: 0 type = USB_TYPE_STANDARD req = USB_REQ_SET_INTERFACE Interface/altsetting already set ep0: request acked event: control, length: 8 bRequestType: 0xa1 (IN), bRequest: 0x86, wValue: 0x0400, wIndex: 0x0100, wLength: 1 type = USB_TYPE_CLASS req = unknown = 0x86 ep0: transferred 1 bytes (in) event: control, length: 8 bRequestType: 0xa1 (IN), bRequest: 0x82, wValue: 0x0400, wIndex: 0x0100, wLength: 4 type = USB_TYPE_CLASS req = unknown = 0x82 ep0: transferred 4 bytes (in) event: control, length: 8 bRequestType: 0xa1 (IN), bRequest: 0x83, wValue: 0x0400, wIndex: 0x0100, wLength: 4 type = USB_TYPE_CLASS req = unknown = 0x83 ep0: transferred 4 bytes (in) event: control, length: 8 bRequestType: 0xa1 (IN), bRequest: 0x84, wValue: 0x0400, wIndex: 0x0100, wLength: 4 type = USB_TYPE_CLASS req = unknown = 0x84 ep0: transferred 4 bytes (in) event: control, length: 8 bRequestType: 0xa1 (IN), bRequest: 0x87, wValue: 0x0400, wIndex: 0x0100, wLength: 4 type = USB_TYPE_CLASS req = unknown = 0x87 ... ep0: transferred 8 bytes (in) event: control, length: 8 bRequestType: 0xa1 (IN), bRequest: 0x81, wValue: 0x0b00, wIndex: 0x0100, wLength: 2 type = USB_TYPE_CLASS req = unknown = 0x81 ep0: transferred 2 bytes (in) Transfer error receiving on EP83: Operation timed out ... Transfer error receiving on EP83: Operation timed out EP83(int_in): wrote 0 bytes to host EP83(int_in): wrote 0 bytes to host event: control, length: 8 bRequestType: 0xa1 (IN), bRequest: 0x81, wValue: 0x0100, wIndex: 0x0001, wLength: 26 type = USB_TYPE_CLASS req = unknown = 0x81 EP83(int_in): wrote 0 bytes to host ep0: transferred 26 bytes (in) event: control, length: 8 bRequestType: 0x21 (OUT), bRequest: 0x01, wValue: 0x0100, wIndex: 0x0001, wLength: 26 type = USB_TYPE_CLASS req = unknown = 0x1 ep0: transferred 26 bytes (out) event: control, length: 8 bRequestType: 0xa1 (IN), bRequest: 0x81, wValue: 0x0100, wIndex: 0x0001, wLength: 26 type = USB_TYPE_CLASS req = unknown = 0x81 ep0: transferred 26 bytes (in) EP83(int_in): wrote 0 bytes to host event: control, length: 8 bRequestType: 0xa1 (IN), bRequest: 0x83, wValue: 0x0100, wIndex: 0x0001, wLength: 26 type = USB_TYPE_CLASS req = unknown = 0x83 ep0: transferred 26 bytes (in) event: control, length: 8 bRequestType: 0xa1 (IN), bRequest: 0x82, wValue: 0x0100, wIndex: 0x0001, wLength: 26 type = USB_TYPE_CLASS req = unknown = 0x82 ep0: transferred 26 bytes (in) EP83(int_in): wrote 0 bytes to host ... EP83(int_in): wrote 0 bytes to host event: control, length: 8 bRequestType: 0x21 (OUT), bRequest: 0x01, wValue: 0x0100, wIndex: 0x0001, wLength: 26 type = USB_TYPE_CLASS req = unknown = 0x1 ep0: transferred 26 bytes (out) event: control, length: 8 bRequestType: 0xa1 (IN), bRequest: 0x81, wValue: 0x0100, wIndex: 0x0001, wLength: 26 type = USB_TYPE_CLASS req = unknown = 0x81 ep0: transferred 26 bytes (in) event: control, length: 8 bRequestType: 0x21 (OUT), bRequest: 0x01, wValue: 0x0200, wIndex: 0x0001, wLength: 26 type = USB_TYPE_CLASS req = unknown = 0x1 ep0: transferred 26 bytes (out) event: control, length: 8 bRequestType: 0x01 (OUT), bRequest: 0x0b, wValue: 0x0006, wIndex: 0x0001, wLength: 0 type = USB_TYPE_STANDARD req = USB_REQ_SET_INTERFACE Changing interface/altsetting Activating 1 endpoints on interface 1 ioctl(USB_RAW_IOCTL_EP_ENABLE): Invalid argument
My Logitech webcam is detected but the process ends with the same error immediately:
Log
+sudo modprobe udc_core +sudo insmod ./raw_gadget.ko insmod: ERROR: could not insert module ./raw_gadget.ko: File exists Device is: musb-hdrc.5.auto Driver is: musb-hdrc vendor_id is: -1 product_id is: -1 Device opened successfully Start hotplug_monitor thread, thread id(2567) InterfaceNumber 1 AlternateSetting 0 has no endpoint, skip InterfaceNumber 2 AlternateSetting 0 has no endpoint, skip InterfaceNumber 3 AlternateSetting 0 has no endpoint, skip Setup USB config successfully Start for EP0, thread id(2561) event: connect, length: 0 event: disconnect Resetting device libusb: error [usbi_get_context] API misuse! Using non-default context as implicit default. event: disconnect Resetting device event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0100, wIndex: 0x0000, wLength: 64 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_DEVICE ep0: transferred 18 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0100, wIndex: 0x0000, wLength: 18 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_DEVICE ep0: transferred 18 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0200, wIndex: 0x0000, wLength: 255 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_CONFIG ep0: transferred 255 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0200, wIndex: 0x0000, wLength: 2469 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_CONFIG ep0: transferred 2469 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0302, wIndex: 0x0409, wLength: 255 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_STRING ep0: transferred 18 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0100, wIndex: 0x0000, wLength: 18 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_DEVICE ep0: transferred 18 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0200, wIndex: 0x0000, wLength: 9 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_CONFIG ep0: transferred 9 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0200, wIndex: 0x0000, wLength: 2469 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_CONFIG ep0: transferred 2469 bytes (in) event: control, length: 8 bRequestType: 0x00 (OUT), bRequest: 0x09, wValue: 0x0001, wIndex: 0x0000, wLength: 0 type = USB_TYPE_STANDARD req = USB_REQ_SET_CONFIGURATION Activating 1 endpoints on interface 0 ioctl(USB_RAW_IOCTL_EP_ENABLE): Invalid argument
The external sound card has the same problems as the Logitech camera.
I know that raw-gadget and usb-proxy didn't support isochronous transfers before. But it should probably work now.
Unfortunately, the issues described on this page didn't help me.
Try turning on debugging output for Raw Gadget and see if you get any error messages in the kernel log. And you can also add extra debugging print calls into raw_ioctl_ep_enable to see why it is failing.
My guess is that your UDC does not support emulating endpoints with required parameters (maybe does not support isochronous endpoints at all?) and thus usb_gadget_ep_match_desc fails to find a match. So you can try using a different board.
Added a note with a bit more details here.
Thanks for your reply.
I switched to raw-gadget-dev, but it didn't help.
I rebuilt the project with #DEBUG, but I don't see any effect: "dmesg | grep gadget" returns:
[ 5.862684] systemd[1]: Reached target usb-gadget.target - Hardware activated USB gadget. [ 47.021589] raw_gadget: loading out-of-tree module taints kernel. [ 47.021802] raw_gadget: module verification failed: signature and/or required key missing - tainting kernel
The datasheet for my processor says:
One USB 2.0 OTG(USB0), with integrated USB 2.0 analog PHY - Compatible with USB2.0 Specification - - - - - - Supports High-Speed (HS, 480 Mbit/s), Full-Speed (FS, 12 Mbit/s) and Low-Speed (LS, 1.5 Mbit/s) in host mode Supports High-Speed (HS, 480 Mbit/s), Full-Speed (FS, 12 Mbit/s) in device mode Compatible with Enhanced Host Controller Interface (EHCI) Specification, Version 1.0, and the Open Host Controller Interface (OHCI) Specification, Version 1.0a for host mode Up Up to 8 User-Configurable Endpoints (EPs) for Bulk, Isochronous, and Interrupt bi-directional transfers Supports (4KB+64Bytes) FIFO for all EPs (including EP0) Supports point-to-point and point-to-multipoint transfers in both host and peripheral modes
Most likely, my UDC supports isochronous endpoints. Or is this irrelevant?
So, I'm still struggling with the problem.
If you don't see any new messages in dmesg, that's likely because your distro disabled showing debug messages. Try adjusting /proc/sys/kernel/printk.
I managed to get these messages from dmesg:
[ 109.209930] raw_gadget: loading out-of-tree module taints kernel. [ 109.216291] raw_gadget: module verification failed: signature and/or required key missing - tainting kernel [ 110.468397] usb 1-1: reset high-speed USB device number 2 using ehci-platform [ 111.020431] usb 1-1: reset high-speed USB device number 2 using ehci-platform [ 111.400498] raw-gadget.0 gadget.0: gadget connected [ 112.184372] raw-gadget.0 gadget.0: fail, bad endpoint descriptor [ 112.193929] raw-gadget.0 gadget.0: gadget disconnected
The endpoint number is also known: 0x87
Ah, I suspect this is related to #12.
Please run the proxy with verbose log enabled (so that print_eps_info prints its stuff) and show the log.
And also share the USB descriptors of the device you're trying to emulate (run lsusb -v and find the device).
My webcam descriptors:
lsusb output
Bus 001 Device 002: ID 046d:081b Logitech, Inc. Webcam C310 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 idVendor 0x046d Logitech, Inc. idProduct 0x081b Webcam C310 bcdDevice 0.10 iManufacturer 0 iProduct 0 iSerial 2 4F8F2C90 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x09a5 bNumInterfaces 4 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 0 bInterfaceCount 2 bFunctionClass 14 Video bFunctionSubClass 3 Video Interface Collection bFunctionProtocol 0 iFunction 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 14 Video bInterfaceSubClass 1 Video Control bInterfaceProtocol 0 iInterface 0 VideoControl Interface Descriptor: bLength 13 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdUVC 1.00 wTotalLength 0x009f dwClockFrequency 48.000000MHz bInCollection 1 baInterfaceNr( 0) 1 VideoControl Interface Descriptor: bLength 18 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 1 wTerminalType 0x0201 Camera Sensor bAssocTerminal 0 iTerminal 0 wObjectiveFocalLengthMin 0 wObjectiveFocalLengthMax 0 wOcularFocalLength 0 bControlSize 3 bmControls 0x0000000e Auto-Exposure Mode Auto-Exposure Priority Exposure Time (Absolute) VideoControl Interface Descriptor: bLength 11 bDescriptorType 36 bDescriptorSubtype 5 (PROCESSING_UNIT) Warning: Descriptor too short bUnitID 2 bSourceID 1 wMaxMultiplier 16384 bControlSize 2 bmControls 0x0000175b Brightness Contrast Saturation Sharpness White Balance Temperature Backlight Compensation Gain Power Line Frequency White Balance Temperature, Auto iProcessing 0 bmVideoStandards 0x1b None NTSC - 525/60 SECAM - 625/50 NTSC - 625/50 VideoControl Interface Descriptor: bLength 27 bDescriptorType 36 bDescriptorSubtype 6 (EXTENSION_UNIT) bUnitID 3 guidExtensionCode {69678ee4-410f-40db-a850-7420d7d8240e} bNumControls 8 bNrInPins 1 baSourceID( 0) 2 bControlSize 2 bmControls( 0) 0x3f bmControls( 1) 0x03 iExtension 0 VideoControl Interface Descriptor: bLength 26 bDescriptorType 36 bDescriptorSubtype 6 (EXTENSION_UNIT) bUnitID 4 guidExtensionCode {49e40215-f434-47fe-b158-0e885023e51b} bNumControls 2 bNrInPins 1 baSourceID( 0) 2 bControlSize 1 bmControls( 0) 0x18 iExtension 0 VideoControl Interface Descriptor: bLength 28 bDescriptorType 36 bDescriptorSubtype 6 (EXTENSION_UNIT) bUnitID 6 guidExtensionCode {1f5d4ca9-de11-4487-840d-50933c8ec8d1} bNumControls 18 bNrInPins 1 baSourceID( 0) 4 bControlSize 3 bmControls( 0) 0xff bmControls( 1) 0xff bmControls( 2) 0x03 iExtension 0 VideoControl Interface Descriptor: bLength 27 bDescriptorType 36 bDescriptorSubtype 6 (EXTENSION_UNIT) bUnitID 7 guidExtensionCode {ffe52d21-8030-4e2c-82d9-f587d00540bd} bNumControls 2 bNrInPins 1 baSourceID( 0) 4 bControlSize 2 bmControls( 0) 0x00 bmControls( 1) 0x03 iExtension 0 VideoControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 5 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bSourceID 4 iTerminal 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x87 EP 7 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 8 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 14 Video bInterfaceSubClass 2 Video Streaming bInterfaceProtocol 0 iInterface 0 VideoStreaming Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 1 (INPUT_HEADER) bNumFormats 3 wTotalLength 0x073a bEndpointAddress 0x81 EP 1 IN bmInfo 0 bTerminalLink 5 bStillCaptureMethod 1 bTriggerSupport 0 bTriggerUsage 0 bControlSize 1 bmaControls( 0) 0 bmaControls( 1) 4 bmaControls( 2) 4 VideoStreaming Interface Descriptor: bLength 27 bDescriptorType 36 bDescriptorSubtype 4 (FORMAT_UNCOMPRESSED) bFormatIndex 1 bNumFrameDescriptors 19 guidFormat {32595559-0000-0010-8000-00aa00389b71} bBitsPerPixel 16 bDefaultFrameIndex 1 bAspectRatioX 0 bAspectRatioY 0 bmInterlaceFlags 0x00 Interlaced stream or variable: No Fields per frame: 2 fields Field 1 first: No Field pattern: Field 1 only bCopyProtect 0 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 5 (FRAME_UNCOMPRESSED) bFrameIndex 1 bmCapabilities 0x01 Still image supported wWidth 640 wHeight 480 dwMinBitRate 24576000 dwMaxBitRate 147456000 dwMaxVideoFrameBufferSize 614400 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 5 (FRAME_UNCOMPRESSED) bFrameIndex 2 bmCapabilities 0x01 Still image supported wWidth 160 wHeight 120 dwMinBitRate 1536000 dwMaxBitRate 9216000 dwMaxVideoFrameBufferSize 38400 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 5 (FRAME_UNCOMPRESSED) bFrameIndex 3 bmCapabilities 0x01 Still image supported wWidth 176 wHeight 144 dwMinBitRate 2027520 dwMaxBitRate 12165120 dwMaxVideoFrameBufferSize 50688 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 5 (FRAME_UNCOMPRESSED) bFrameIndex 4 bmCapabilities 0x01 Still image supported wWidth 320 wHeight 176 dwMinBitRate 4505600 dwMaxBitRate 27033600 dwMaxVideoFrameBufferSize 112640 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 5 (FRAME_UNCOMPRESSED) bFrameIndex 5 bmCapabilities 0x01 Still image supported wWidth 320 wHeight 240 dwMinBitRate 6144000 dwMaxBitRate 36864000 dwMaxVideoFrameBufferSize 153600 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 5 (FRAME_UNCOMPRESSED) bFrameIndex 6 bmCapabilities 0x01 Still image supported wWidth 352 wHeight 288 dwMinBitRate 8110080 dwMaxBitRate 48660480 dwMaxVideoFrameBufferSize 202752 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 5 (FRAME_UNCOMPRESSED) bFrameIndex 7 bmCapabilities 0x01 Still image supported wWidth 432 wHeight 240 dwMinBitRate 8294400 dwMaxBitRate 49766400 dwMaxVideoFrameBufferSize 207360 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 5 (FRAME_UNCOMPRESSED) bFrameIndex 8 bmCapabilities 0x01 Still image supported wWidth 544 wHeight 288 dwMinBitRate 12533760 dwMaxBitRate 75202560 dwMaxVideoFrameBufferSize 313344 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 5 (FRAME_UNCOMPRESSED) bFrameIndex 9 bmCapabilities 0x01 Still image supported wWidth 640 wHeight 360 dwMinBitRate 18432000 dwMaxBitRate 110592000 dwMaxVideoFrameBufferSize 460800 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 46 bDescriptorType 36 bDescriptorSubtype 5 (FRAME_UNCOMPRESSED) bFrameIndex 10 bmCapabilities 0x01 Still image supported wWidth 752 wHeight 416 dwMinBitRate 25026560 dwMaxBitRate 125132800 dwMaxVideoFrameBufferSize 625664 dwDefaultFrameInterval 400000 bFrameIntervalType 5 dwFrameInterval( 0) 400000 dwFrameInterval( 1) 500000 dwFrameInterval( 2) 666666 dwFrameInterval( 3) 1000000 dwFrameInterval( 4) 2000000 VideoStreaming Interface Descriptor: bLength 46 bDescriptorType 36 bDescriptorSubtype 5 (FRAME_UNCOMPRESSED) bFrameIndex 11 bmCapabilities 0x01 Still image supported wWidth 800 wHeight 448 dwMinBitRate 28672000 dwMaxBitRate 143360000 dwMaxVideoFrameBufferSize 716800 dwDefaultFrameInterval 400000 bFrameIntervalType 5 dwFrameInterval( 0) 400000 dwFrameInterval( 1) 500000 dwFrameInterval( 2) 666666 dwFrameInterval( 3) 1000000 dwFrameInterval( 4) 2000000 VideoStreaming Interface Descriptor: bLength 42 bDescriptorType 36 bDescriptorSubtype 5 (FRAME_UNCOMPRESSED) bFrameIndex 12 bmCapabilities 0x01 Still image supported wWidth 800 wHeight 600 dwMinBitRate 38400000 dwMaxBitRate 153600000 dwMaxVideoFrameBufferSize 960000 dwDefaultFrameInterval 500000 bFrameIntervalType 4 dwFrameInterval( 0) 500000 dwFrameInterval( 1) 666666 dwFrameInterval( 2) 1000000 dwFrameInterval( 3) 2000000 VideoStreaming Interface Descriptor: bLength 42 bDescriptorType 36 bDescriptorSubtype 5 (FRAME_UNCOMPRESSED) bFrameIndex 13 bmCapabilities 0x01 Still image supported wWidth 864 wHeight 480 dwMinBitRate 33177600 dwMaxBitRate 132710400 dwMaxVideoFrameBufferSize 829440 dwDefaultFrameInterval 500000 bFrameIntervalType 4 dwFrameInterval( 0) 500000 dwFrameInterval( 1) 666666 dwFrameInterval( 2) 1000000 dwFrameInterval( 3) 2000000 VideoStreaming Interface Descriptor: bLength 38 bDescriptorType 36 bDescriptorSubtype 5 (FRAME_UNCOMPRESSED) bFrameIndex 14 bmCapabilities 0x01 Still image supported wWidth 960 wHeight 544 dwMinBitRate 41779200 dwMaxBitRate 125337600 dwMaxVideoFrameBufferSize 1044480 dwDefaultFrameInterval 666666 bFrameIntervalType 3 dwFrameInterval( 0) 666666 dwFrameInterval( 1) 1000000 dwFrameInterval( 2) 2000000 VideoStreaming Interface Descriptor: bLength 34 bDescriptorType 36 bDescriptorSubtype 5 (FRAME_UNCOMPRESSED) bFrameIndex 15 bmCapabilities 0x01 Still image supported wWidth 960 wHeight 720 dwMinBitRate 55296000 dwMaxBitRate 110592000 dwMaxVideoFrameBufferSize 1382400 dwDefaultFrameInterval 1000000 bFrameIntervalType 2 dwFrameInterval( 0) 1000000 dwFrameInterval( 1) 2000000 VideoStreaming Interface Descriptor: bLength 34 bDescriptorType 36 bDescriptorSubtype 5 (FRAME_UNCOMPRESSED) bFrameIndex 16 bmCapabilities 0x01 Still image supported wWidth 1024 wHeight 576 dwMinBitRate 47185920 dwMaxBitRate 94371840 dwMaxVideoFrameBufferSize 1179648 dwDefaultFrameInterval 1000000 bFrameIntervalType 2 dwFrameInterval( 0) 1000000 dwFrameInterval( 1) 2000000 VideoStreaming Interface Descriptor: bLength 34 bDescriptorType 36 bDescriptorSubtype 5 (FRAME_UNCOMPRESSED) bFrameIndex 17 bmCapabilities 0x01 Still image supported wWidth 1184 wHeight 656 dwMinBitRate 62136320 dwMaxBitRate 124272640 dwMaxVideoFrameBufferSize 1553408 dwDefaultFrameInterval 1000000 bFrameIntervalType 2 dwFrameInterval( 0) 1000000 dwFrameInterval( 1) 2000000 VideoStreaming Interface Descriptor: bLength 34 bDescriptorType 36 bDescriptorSubtype 5 (FRAME_UNCOMPRESSED) bFrameIndex 18 bmCapabilities 0x01 Still image supported wWidth 1280 wHeight 720 dwMinBitRate 73728000 dwMaxBitRate 147456000 dwMaxVideoFrameBufferSize 1843200 dwDefaultFrameInterval 1000000 bFrameIntervalType 2 dwFrameInterval( 0) 1000000 dwFrameInterval( 1) 2000000 VideoStreaming Interface Descriptor: bLength 34 bDescriptorType 36 bDescriptorSubtype 5 (FRAME_UNCOMPRESSED) bFrameIndex 19 bmCapabilities 0x01 Still image supported wWidth 1280 wHeight 960 dwMinBitRate 98304000 dwMaxBitRate 196608000 dwMaxVideoFrameBufferSize 2457600 dwDefaultFrameInterval 2000000 bFrameIntervalType 2 dwFrameInterval( 0) 1333333 dwFrameInterval( 1) 2000000 VideoStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 13 (COLORFORMAT) bColorPrimaries 1 (BT.709,sRGB) bTransferCharacteristics 1 (BT.709) bMatrixCoefficients 4 (SMPTE 170M (BT.601)) VideoStreaming Interface Descriptor: bLength 11 bDescriptorType 36 bDescriptorSubtype 6 (FORMAT_MJPEG) bFormatIndex 2 bNumFrameDescriptors 19 bFlags 1 Fixed-size samples: Yes bDefaultFrameIndex 1 bAspectRatioX 0 bAspectRatioY 0 bmInterlaceFlags 0x00 Interlaced stream or variable: No Fields per frame: 1 fields Field 1 first: No Field pattern: Field 1 only bCopyProtect 0 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 7 (FRAME_MJPEG) bFrameIndex 1 bmCapabilities 0x01 Still image supported wWidth 640 wHeight 480 dwMinBitRate 24576000 dwMaxBitRate 147456000 dwMaxVideoFrameBufferSize 614400 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 7 (FRAME_MJPEG) bFrameIndex 2 bmCapabilities 0x01 Still image supported wWidth 160 wHeight 120 dwMinBitRate 1536000 dwMaxBitRate 9216000 dwMaxVideoFrameBufferSize 38400 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 7 (FRAME_MJPEG) bFrameIndex 3 bmCapabilities 0x01 Still image supported wWidth 176 wHeight 144 dwMinBitRate 2027520 dwMaxBitRate 12165120 dwMaxVideoFrameBufferSize 50688 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 7 (FRAME_MJPEG) bFrameIndex 4 bmCapabilities 0x01 Still image supported wWidth 320 wHeight 176 dwMinBitRate 4505600 dwMaxBitRate 27033600 dwMaxVideoFrameBufferSize 112640 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 7 (FRAME_MJPEG) bFrameIndex 5 bmCapabilities 0x01 Still image supported wWidth 320 wHeight 240 dwMinBitRate 6144000 dwMaxBitRate 36864000 dwMaxVideoFrameBufferSize 153600 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 7 (FRAME_MJPEG) bFrameIndex 6 bmCapabilities 0x01 Still image supported wWidth 352 wHeight 288 dwMinBitRate 8110080 dwMaxBitRate 48660480 dwMaxVideoFrameBufferSize 202752 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 7 (FRAME_MJPEG) bFrameIndex 7 bmCapabilities 0x01 Still image supported wWidth 432 wHeight 240 dwMinBitRate 8294400 dwMaxBitRate 49766400 dwMaxVideoFrameBufferSize 207360 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 7 (FRAME_MJPEG) bFrameIndex 8 bmCapabilities 0x01 Still image supported wWidth 544 wHeight 288 dwMinBitRate 12533760 dwMaxBitRate 75202560 dwMaxVideoFrameBufferSize 313344 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 7 (FRAME_MJPEG) bFrameIndex 9 bmCapabilities 0x01 Still image supported wWidth 640 wHeight 360 dwMinBitRate 18432000 dwMaxBitRate 110592000 dwMaxVideoFrameBufferSize 460800 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 7 (FRAME_MJPEG) bFrameIndex 10 bmCapabilities 0x01 Still image supported wWidth 752 wHeight 416 dwMinBitRate 25026560 dwMaxBitRate 150159360 dwMaxVideoFrameBufferSize 625664 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 7 (FRAME_MJPEG) bFrameIndex 11 bmCapabilities 0x01 Still image supported wWidth 800 wHeight 448 dwMinBitRate 28672000 dwMaxBitRate 172032000 dwMaxVideoFrameBufferSize 716800 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 7 (FRAME_MJPEG) bFrameIndex 12 bmCapabilities 0x01 Still image supported wWidth 800 wHeight 600 dwMinBitRate 38400000 dwMaxBitRate 230400000 dwMaxVideoFrameBufferSize 960000 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 7 (FRAME_MJPEG) bFrameIndex 13 bmCapabilities 0x01 Still image supported wWidth 864 wHeight 480 dwMinBitRate 33177600 dwMaxBitRate 199065600 dwMaxVideoFrameBufferSize 829440 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 7 (FRAME_MJPEG) bFrameIndex 14 bmCapabilities 0x01 Still image supported wWidth 960 wHeight 544 dwMinBitRate 41779200 dwMaxBitRate 250675200 dwMaxVideoFrameBufferSize 1044480 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 7 (FRAME_MJPEG) bFrameIndex 15 bmCapabilities 0x01 Still image supported wWidth 960 wHeight 720 dwMinBitRate 55296000 dwMaxBitRate 331776000 dwMaxVideoFrameBufferSize 1382400 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 7 (FRAME_MJPEG) bFrameIndex 16 bmCapabilities 0x01 Still image supported wWidth 1024 wHeight 576 dwMinBitRate 47185920 dwMaxBitRate 283115520 dwMaxVideoFrameBufferSize 1179648 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 7 (FRAME_MJPEG) bFrameIndex 17 bmCapabilities 0x01 Still image supported wWidth 1184 wHeight 656 dwMinBitRate 62136320 dwMaxBitRate 372817920 dwMaxVideoFrameBufferSize 1553408 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 7 (FRAME_MJPEG) bFrameIndex 18 bmCapabilities 0x01 Still image supported wWidth 1280 wHeight 720 dwMinBitRate 73728000 dwMaxBitRate 442368000 dwMaxVideoFrameBufferSize 1843200 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 50 bDescriptorType 36 bDescriptorSubtype 7 (FRAME_MJPEG) bFrameIndex 19 bmCapabilities 0x01 Still image supported wWidth 1280 wHeight 960 dwMinBitRate 98304000 dwMaxBitRate 589824000 dwMaxVideoFrameBufferSize 2457600 dwDefaultFrameInterval 333333 bFrameIntervalType 6 dwFrameInterval( 0) 333333 dwFrameInterval( 1) 400000 dwFrameInterval( 2) 500000 dwFrameInterval( 3) 666666 dwFrameInterval( 4) 1000000 dwFrameInterval( 5) 2000000 VideoStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 13 (COLORFORMAT) bColorPrimaries 1 (BT.709,sRGB) bTransferCharacteristics 1 (BT.709) bMatrixCoefficients 4 (SMPTE 170M (BT.601)) Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 14 Video bInterfaceSubClass 2 Video Streaming bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x00c0 1x 192 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 2 bNumEndpoints 1 bInterfaceClass 14 Video bInterfaceSubClass 2 Video Streaming bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0180 1x 384 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 3 bNumEndpoints 1 bInterfaceClass 14 Video bInterfaceSubClass 2 Video Streaming bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 4 bNumEndpoints 1 bInterfaceClass 14 Video bInterfaceSubClass 2 Video Streaming bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0280 1x 640 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 5 bNumEndpoints 1 bInterfaceClass 14 Video bInterfaceSubClass 2 Video Streaming bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0320 1x 800 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 6 bNumEndpoints 1 bInterfaceClass 14 Video bInterfaceSubClass 2 Video Streaming bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x03b0 1x 944 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 7 bNumEndpoints 1 bInterfaceClass 14 Video bInterfaceSubClass 2 Video Streaming bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0a80 2x 640 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 8 bNumEndpoints 1 bInterfaceClass 14 Video bInterfaceSubClass 2 Video Streaming bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0b20 2x 800 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 9 bNumEndpoints 1 bInterfaceClass 14 Video bInterfaceSubClass 2 Video Streaming bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0be0 2x 992 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 10 bNumEndpoints 1 bInterfaceClass 14 Video bInterfaceSubClass 2 Video Streaming bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x1380 3x 896 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 11 bNumEndpoints 1 bInterfaceClass 14 Video bInterfaceSubClass 2 Video Streaming bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x13fc 3x 1020 bytes bInterval 1 Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 2 bInterfaceCount 2 bFunctionClass 1 Audio bFunctionSubClass 2 Streaming bFunctionProtocol 0 iFunction 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 1 Control Device bInterfaceProtocol 0 iInterface 0 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 1.00 wTotalLength 0x0026 bInCollection 1 baInterfaceNr(0) 3 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 1 wTerminalType 0x0201 Microphone bAssocTerminal 0 bNrChannels 1 wChannelConfig 0x0000 iChannelNames 0 iTerminal 0 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 3 wTerminalType 0x0101 USB Streaming bAssocTerminal 1 bSourceID 5 iTerminal 0 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 6 (FEATURE_UNIT) bUnitID 5 bSourceID 1 bControlSize 1 bmaControls(0) 0x03 Mute Control Volume Control bmaControls(1) 0x00 iFeature 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 3 bDelay 1 frames wFormatTag 0x0001 PCM AudioStreaming Interface Descriptor: bLength 11 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 1 bSubframeSize 2 bBitResolution 16 bSamFreqType 1 Discrete tSamFreq[ 0] 16000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0044 1x 68 bytes bInterval 4 bRefresh 0 bSynchAddress 0 AudioStreaming Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x01 Sampling Frequency bLockDelayUnits 0 Undefined wLockDelay 0x0000 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 2 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 3 bDelay 1 frames wFormatTag 0x0001 PCM AudioStreaming Interface Descriptor: bLength 11 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 1 bSubframeSize 2 bBitResolution 16 bSamFreqType 1 Discrete tSamFreq[ 0] 24000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0064 1x 100 bytes bInterval 4 bRefresh 0 bSynchAddress 0 AudioStreaming Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x01 Sampling Frequency bLockDelayUnits 0 Undefined wLockDelay 0x0000 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 3 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 3 bDelay 1 frames wFormatTag 0x0001 PCM AudioStreaming Interface Descriptor: bLength 11 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 1 bSubframeSize 2 bBitResolution 16 bSamFreqType 1 Discrete tSamFreq[ 0] 32000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0084 1x 132 bytes bInterval 4 bRefresh 0 bSynchAddress 0 AudioStreaming Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x01 Sampling Frequency bLockDelayUnits 0 Undefined wLockDelay 0x0000 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 4 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 3 bDelay 1 frames wFormatTag 0x0001 PCM AudioStreaming Interface Descriptor: bLength 11 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 1 bSubframeSize 2 bBitResolution 16 bSamFreqType 1 Discrete tSamFreq[ 0] 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x00c4 1x 196 bytes bInterval 4 bRefresh 0 bSynchAddress 0 AudioStreaming Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x01 Sampling Frequency bLockDelayUnits 0 Undefined wLockDelay 0x0000 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0000 (Bus Powered)
Here's the output from usb-proxy with --verbose. I hope I did it right.
usb-proxy output
- sudo modprobe udc_core
- sudo insmod ./raw_gadget.ko Device is: musb-hdrc.5.auto Driver is: musb-hdrc vendor_id is: -1 product_id is: -1 7 Devices in list Device opened successfully Start hotplug_monitor thread, thread id(1915) InterfaceNumber 1 AlternateSetting 0 has no endpoint, skip InterfaceNumber 2 AlternateSetting 0 has no endpoint, skip InterfaceNumber 3 AlternateSetting 0 has no endpoint, skip Setup USB config successfully Start for EP0, thread id(1908) ep #0: name: ep1in addr: 1 type: iso blk int dir : in ___ maxpacket_limit: 512 max_streams: 0 ep #1: name: ep1out addr: 1 type: iso blk int dir : ___ out maxpacket_limit: 512 max_streams: 0 ep #2: name: ep2in addr: 2 type: iso blk int dir : in ___ maxpacket_limit: 512 max_streams: 0 ep #3: name: ep2out addr: 2 type: iso blk int dir : ___ out maxpacket_limit: 512 max_streams: 0 ep #4: name: ep3in addr: 3 type: iso blk int dir : in ___ maxpacket_limit: 512 max_streams: 0 ep #5: name: ep3out addr: 3 type: iso blk int dir : ___ out maxpacket_limit: 512 max_streams: 0 ep #6: name: ep4in addr: 4 type: iso blk int dir : in ___ maxpacket_limit: 512 max_streams: 0 ep #7: name: ep4out addr: 4 type: iso blk int dir : ___ out maxpacket_limit: 512 max_streams: 0 event: connect, length: 0 libusb: error [usbi_get_context] API misuse! Using non-default context as implicit default. event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0100, wIndex: 0x0000, wLength: 64 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_DEVICE Control transfer succeed ep0: transferred 18 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0100, wIndex: 0x0000, wLength: 18 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_DEVICE Control transfer succeed ep0: transferred 18 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0200, wIndex: 0x0000, wLength: 255 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_CONFIG Control transfer succeed ep0: transferred 255 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0200, wIndex: 0x0000, wLength: 2469 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_CONFIG Control transfer succeed ep0: transferred 2469 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0302, wIndex: 0x0409, wLength: 255 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_STRING Control transfer succeed ep0: transferred 18 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0100, wIndex: 0x0000, wLength: 18 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_DEVICE Control transfer succeed ep0: transferred 18 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0200, wIndex: 0x0000, wLength: 9 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_CONFIG Control transfer succeed ep0: transferred 9 bytes (in) event: control, length: 8 bRequestType: 0x80 (IN), bRequest: 0x06, wValue: 0x0200, wIndex: 0x0000, wLength: 2469 type = USB_TYPE_STANDARD req = USB_REQ_GET_DESCRIPTOR desc = USB_DT_CONFIG Control transfer succeed ep0: t[ 508.367289] raw-gadget.0 gadget.0: fail, bad endpoint descriptor ransferred 2469 bytes (in) even[ 508.376452] raw-gadget.0 gadget.0: gadget disconnected t: control, length: 8 bRequestType: 0x00 (OUT), bRequest: 0x09, wValue: 0x0001, wIndex: 0x0000, wLength: 0 type = USB_TYPE_STANDARD req = USB_REQ_SET_CONFIGURATION Activating 1 endpoints on interface 0 ioctl(USB_RAW_IOCTL_EP_ENABLE): Invalid argument
Yeah, looks like the same issue: the device uses endpoint addresses 6 and 7 (0x86 and 0x87), but your UDC only supports addresses up to 4.
You can try modifying setup_host_usb_desc in usb-proxy.cpp to set temp_endpoint.bEndpointAddress to 0x82 whenever it is 0x86 and also do same for 0x83 <= 0x87. Or maybe bEndpointAddress needs to be patched just before the call to usb_raw_ep_enable.
Try both approaches separately, perhaps one of them will work.
Both approaches produce errors:
libusb: error [submit_bulk_transfer] submiturb failed, errno=2 Transfer error receiving on EP83: Input/Output Error ioctl(USB_RAW_IOCTL_EP0_WRITE): Invalid argument
I probably need to change the endpoint addresses in several places.
Well, now a have this. I added this temporary fix to proxy.cpp before calling usb_raw_ep_enable():
struct usb_endpoint_descriptor temp_usb_ep_desc = ep->thread_info.endpoint;
if((temp_usb_ep_desc.bEndpointAddress & 0b00000111) > 0x04){
temp_usb_ep_desc.bEndpointAddress -= 4;
}
After this, function is called with the temporary descriptor:
ep->thread_info.ep_num = usb_raw_ep_enable(fd, &temp_usb_ep_desc);
The webcam doesn't disconnect immediately, but it still disconnects when i try to capture an image:
ioctl(USB_RAW_IOCTL_EP_ENABLE): Invalid argument
To fix this, I limited the endpoint packet size to 512 bytes (the maximum for my UDC) in usb-proxy.cpp:
if(temp_endpoint.wMaxPacketSize > 512){
temp_endpoint.wMaxPacketSize = 512;
}
This solved the webcam disconnection issue. But I still can't capture an image: the screen is blank at any resolution.
And do you see any data flowing through the endpoints (the proxy should print it if you run it with debugging output enabled). If you do, then maybe the data rate is just not good enough to produce an image.
But at this point, I don't have specific ideas on how to fix this. You can try sniffing USB on the host / tracing the host driver to see where things go wrong. Or try using a different UDC and see if that works.
Thank you for you help!
I see data in the console, but it seems to be less than there should be. For example:
usb-proxy output
Sending data to EP81(isoc_in): EP81(isoc_in): enqueued 0 bytes to queue Sending data to EP81(isoc_in): EP81(isoc_in): enqueued 12 bytes to queue Sending data to EP81(isoc_in): 0c 8d 78 e6 3e 61 6d bd 4a 61 ca 04 EP81(isoc_in): enqueued 0 bytes to queue Sending data to EP81(isoc_in): EP81(isoc_in): enqueued 192 bytes to queue Sending data to EP81(isoc_in): 0c 8d e0 d0 7e 61 e1 cd 94 61 30 05 ff d8 ff e0 00 21 41 56 49 31 00 01 01 01 00 78 00 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff db 00 43 00 08 05 06 07 06 05 08 07 06 07 09 08 08 09 0c 14 0d 0c 0b 0b 0c 18 11 12 0e 14 1d 19 1e 1e 1c 19 1c 1f 20 24 2e 27 20 22 2b 22 1b 1c 28 34 28 2b 2f 31 33 34 33 1f 26 38 3c 38 32 3c 2e 32 33 31 ff db 00 43 01 08 09 09 0c 0a 0c 17 0d 0d 17 31 21 1c 21 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 ff dd 00 04 00 EP81(isoc_in): enqueued 0 bytes to queue Sending data to EP81(isoc_in): EP81(isoc_in): enqueued 192 bytes to queue Sending data to EP81(isoc_in): 0c 8d 43 bb be 61 56 de de 61 95 05 ff d8 ff e0 00 21 41 56 49 31 00 01 01 01 00 78 00 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff db 00 43 00 08 05 06 07 06 05 08 07 06 07 09 08 08 09 0c 14 0d 0c 0b 0b 0c 18 11 12 0e 14 1d 19 1e 1e 1c 19 1c 1f 20 24 2e 27 20 22 2b 22 1b 1c 28 34 28 2b 2f 31 33 34 33 1f 26 38 3c 38 32 3c 2e 32 33 31 ff db 00 43 01 08 09 09 0c 0a 0c 17 0d 0d 17 31 21 1c 21 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 ff dd 00 04 00 EP81(isoc_in): enqueued 0 bytes to queue Sending data to EP81(isoc_in): EP81(isoc_in): enqueued 192 bytes to queue Sending data to EP81(isoc_in): 0c 8d a6 a5 fe 61 cb ee 28 62 fa 05 ff d8 ff e0 00 21 41 56 49 31 00 01 01 01 00 78 00 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff db 00 43 00 08 05 06 07 06 05 08 07 06 07 09 08 08 09 0c 14 0d 0c 0b 0b 0c 18 11 12 0e 14 1d 19 1e 1e 1c 19 1c 1f 20 24 2e 27 20 22 2b 22 1b 1c 28 34 28 2b 2f 31 33 34 33 1f 26 38 3c 38 32 3c 2e 32 33 31 ff db 00 43 01 08 09 09 0c 0a 0c 17 0d 0d 17 31 21 1c 21 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 ff dd 00 04 00 EP81(isoc_in): enqueued 192 bytes to queue Sending data to EP81(isoc_in): 0c 8d a6 a5 fe 61 fb 63 29 62 fa 05 0a ff e0 00 04 00 00 ff c0 00 11 08 00 90 00 b0 03 01 21 00 02 11 01 03 11 01 ff da 00 0c 03 01 00 02 11 03 11 00 3f 00 b2 df 2c 64 d7 92 6b 57 d2 dd ea b7 13 c8 df 79 88 c7 5c 0e d5 ce 34 16 90 5a 5d c4 e8 67 48 2e 31 b9 0b f0 ac 7f ba 7d 33 d8 fa f5 e0 f1 0c b6 d7 16 92 f9 77 31 49 0b e3 3b 5d 48 38 a6 33 b3 f8 6d a9 18 b5 41 a7 f3 e5 5c 21 38 27 a3 80 4e 47 e0 08 fc 05 7a 62 2d 0d 09 92 ec e2 b2 fc 47 23 c1 64 ec 92 18 c2 8c 9c 75 a7 61 1e 75 67 7a 20 33 6d 24 b4 8e 58 92 79 35 15 e6 a9 84 52 1b af 07 34 91 af 43 13 50 be 13 02 b9 EP81(isoc_in): enqueued 0 bytes to queue Sending data to EP81(isoc_in): EP81(isoc_in): enqueued 0 bytes to queue Sending data to EP81(isoc_in): EP81(isoc_in): enqueued 0 bytes to queue Sending data to EP81(isoc_in): EP81(isoc_in): enqueued 0 bytes to queue Sending data to EP81(isoc_in): EP81(isoc_in): enqueued 192 bytes to queue Sending data to EP81(isoc_in): 0c 8d 29 dd 12 63 0e 48 51 63 8e 07 ff d8 ff e0 00 21 41 56 49 31 00 01 01 01 00 78 00 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff db 00 43 00 08 05 06 07 06 05 08 07 06 07 09 08 08 09 0c 14 0d 0c 0b 0b 0c 18 11 12 0e 14 1d 19 1e 1e 1c 19 1c 1f 20 24 2e 27 20 22 2b 22 1b 1c 28 34 28 2b 2f 31 33 34 33 1f 26 38 3c 38 32 3c 2e 32 33 31 ff db 00 43 01 08 09 09 0c 0a 0c 17 0d 0d 17 31 21 1c 21 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 ff dd 00 04 00 EP81(isoc_in): enqueued 0 bytes to queue Sending data to EP81(isoc_in): EP81(isoc_in): enqueued 12 bytes to queue Sending data to EP81(isoc_in): 0c 8d b0 4a 87 63 85 58 9b 63 f4 07 EP81(isoc_in): enqueued 0 bytes to queue Sending data to EP81(isoc_in): EP81(isoc_in): enqueued 12 bytes to queue Sending data to EP81(isoc_in): 0c 8d 13 35 c7 63 f9 68 e5 63 59 00 EP81(isoc_in): enqueued 0 bytes to queue