nopnop2002 / esp-idf-video-streaming

Capture video from a USB camera using ESP-IDF
MIT License
49 stars 6 forks source link

[FAIL]Logitech C615 #3

Open nopnop2002 opened 2 years ago

nopnop2002 commented 2 years ago

Logitech C615

Cannot be used with ESP-IDF.
ESP-IDF does not get proper device descriptors.
This is not a libuvc issue, but a USB support issue.

Divice ID

$ lsusb
Bus 001 Device 041: ID 046d:082c Logitech, Inc. HD Webcam C615

Device descriptor read by Linux

DEVICE CONFIGURATION (046d:082c/205F2260) ---
Status: idle
VideoControl:
        bcdUVC: 0x0100
VideoStreaming(1):
        bEndpointAddress: 129
        Formats:
        UncompressedFormat(1)
                  bits per pixel: 16
                  GUID: 5955593200001000800000aa00389b71 (YUY2)
                  default frame: 1
                  aspect ratio: 0x0
                  interlace flags: 00
                  copy protect: 00
                        FrameDescriptor(1)
                          capabilities: 01
                          size: 640x480
                          bit rate: 24576000-147456000
                          max frame size: 614400
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(2)
                          capabilities: 01
                          size: 160x120
                          bit rate: 1536000-9216000
                          max frame size: 38400
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(3)
                          capabilities: 01
                          size: 176x144
                          bit rate: 2027520-12165120
                          max frame size: 50688
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(4)
                          capabilities: 01
                          size: 320x240
                          bit rate: 6144000-36864000
                          max frame size: 153600
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(5)
                          capabilities: 01
                          size: 432x240
                          bit rate: 8294400-49766400
                          max frame size: 207360
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(6)
                          capabilities: 01
                          size: 352x288
                          bit rate: 8110080-48660480
                          max frame size: 202752
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(7)
                          capabilities: 01
                          size: 640x360
                          bit rate: 18432000-110592000
                          max frame size: 460800
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(8)
                          capabilities: 01
                          size: 800x448
                          bit rate: 28672000-172032000
                          max frame size: 716800
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(9)
                          capabilities: 01
                          size: 864x480
                          bit rate: 33177600-159252480
                          max frame size: 829440
                          default interval: 1/24
                          interval[0]: 1/24
                          interval[1]: 1/20
                          interval[2]: 1/15
                          interval[3]: 1/10
                          interval[4]: 1/7
                          interval[5]: 1/5
                        FrameDescriptor(10)
                          capabilities: 01
                          size: 1024x576
                          bit rate: 47185920-141557760
                          max frame size: 1179648
                          default interval: 1/15
                          interval[0]: 1/15
                          interval[1]: 1/10
                          interval[2]: 1/7
                          interval[3]: 1/5
                        FrameDescriptor(11)
                          capabilities: 01
                          size: 800x600
                          bit rate: 38400000-184320000
                          max frame size: 960000
                          default interval: 1/24
                          interval[0]: 1/24
                          interval[1]: 1/20
                          interval[2]: 1/15
                          interval[3]: 1/10
                          interval[4]: 1/7
                          interval[5]: 1/5
                        FrameDescriptor(12)
                          capabilities: 01
                          size: 960x720
                          bit rate: 55296000-165888000
                          max frame size: 1382400
                          default interval: 1/15
                          interval[0]: 1/15
                          interval[1]: 1/10
                          interval[2]: 1/7
                          interval[3]: 1/5
                        FrameDescriptor(13)
                          capabilities: 01
                          size: 1280x720
                          bit rate: 73728000-147456000
                          max frame size: 1843200
                          default interval: 1/10
                          interval[0]: 1/10
                          interval[1]: 1/7
                          interval[2]: 1/5
                        FrameDescriptor(14)
                          capabilities: 01
                          size: 1600x896
                          bit rate: 114688000-172032000
                          max frame size: 2867200
                          default interval: 1/7
                          interval[0]: 1/7
                          interval[1]: 1/5
                        FrameDescriptor(15)
                          capabilities: 01
                          size: 1920x1080
                          bit rate: 165888000-165888000
                          max frame size: 4147200
                          default interval: 1/5
                          interval[0]: 1/5
        MJPEGFormat(2)
                  bits per pixel: 0
                  GUID: 4d4a5047000000000000000000000000 (MJPG)
                  default frame: 1
                  aspect ratio: 0x0
                  interlace flags: 00
                  copy protect: 00
                        FrameDescriptor(1)
                          capabilities: 01
                          size: 640x480
                          bit rate: 24576000-147456000
                          max frame size: 614400
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(2)
                          capabilities: 01
                          size: 160x120
                          bit rate: 1536000-9216000
                          max frame size: 38400
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(3)
                          capabilities: 01
                          size: 176x144
                          bit rate: 2027520-12165120
                          max frame size: 50688
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(4)
                          capabilities: 01
                          size: 320x240
                          bit rate: 6144000-36864000
                          max frame size: 153600
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(5)
                          capabilities: 01
                          size: 432x240
                          bit rate: 8294400-49766400
                          max frame size: 207360
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(6)
                          capabilities: 01
                          size: 352x288
                          bit rate: 8110080-48660480
                          max frame size: 202752
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(7)
                          capabilities: 01
                          size: 640x360
                          bit rate: 18432000-110592000
                          max frame size: 460800
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(8)
                          capabilities: 01
                          size: 800x448
                          bit rate: 28672000-172032000
                          max frame size: 716800
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(9)
                          capabilities: 01
                          size: 864x480
                          bit rate: 33177600-199065600
                          max frame size: 829440
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(10)
                          capabilities: 01
                          size: 1024x576
                          bit rate: 47185920-283115520
                          max frame size: 1179648
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(11)
                          capabilities: 01
                          size: 800x600
                          bit rate: 38400000-230400000
                          max frame size: 960000
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(12)
                          capabilities: 01
                          size: 960x720
                          bit rate: 55296000-331776000
                          max frame size: 1382400
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(13)
                          capabilities: 01
                          size: 1280x720
                          bit rate: 73728000-442368000
                          max frame size: 1843200
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(14)
                          capabilities: 01
                          size: 1600x896
                          bit rate: 114688000-688128000
                          max frame size: 2867200
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(15)
                          capabilities: 01
                          size: 1920x1080
                          bit rate: 165888000-995328000
                          max frame size: 4147200
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
END DEVICE CONFIGURATION

Device descriptor read by ESP-IDF

DEVICE CONFIGURATION (046d:082c/2) ---
Status: idle
VideoControl:
        bcdUVC: 0x0100
VideoStreaming(1):
        bEndpointAddress: 129
        Formats:
        UncompressedFormat(1)
                  bits per pixel: 16
                  GUID: 5955593200001000800000aa00389b71 (YUY2)
                  default frame: 1
                  aspect ratio: 0x0
                  interlace flags: 00
                  copy protect: 00
                        FrameDescriptor(1)
                          capabilities: 01
                          size: 160x120
                          bit rate: 1536000-4608000
                          max frame size: 38400
                          default interval: 1/15
                          interval[0]: 1/15
                          interval[1]: 1/10
                          interval[2]: 1/7
                          interval[3]: 1/5
                        FrameDescriptor(2)
                          capabilities: 01
                          size: 176x144
                          bit rate: 2027520-6082560
                          max frame size: 50688
                          default interval: 1/15
                          interval[0]: 1/15
                          interval[1]: 1/10
                          interval[2]: 1/7
                          interval[3]: 1/5
        MJPEGFormat(2)
                  bits per pixel: 0
                  GUID: 4d4a5047000000000000000000000000 (MJPG)
                  default frame: 1
                  aspect ratio: 0x0
                  interlace flags: 00
                  copy protect: 00
                        FrameDescriptor(1)
                          capabilities: 01
                          size: 640x480
                          bit rate: 24576000-147456000
                          max frame size: 614400
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(2)
                          capabilities: 01
                          size: 160x120
                          bit rate: 1536000-9216000
                          max frame size: 38400
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(3)
                          capabilities: 01
                          size: 176x144
                          bit rate: 2027520-12165120
                          max frame size: 50688
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(4)
                          capabilities: 01
                          size: 320x240
                          bit rate: 6144000-36864000
                          max frame size: 153600
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(5)
                          capabilities: 01
                          size: 432x240
                          bit rate: 8294400-49766400
                          max frame size: 207360
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(6)
                          capabilities: 01
                          size: 352x288
                          bit rate: 8110080-48660480
                          max frame size: 202752
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
                        FrameDescriptor(7)
                          capabilities: 01
                          size: 640x360
                          bit rate: 18432000-110592000
                          max frame size: 460800
                          default interval: 1/30
                          interval[0]: 1/30
                          interval[1]: 1/24
                          interval[2]: 1/20
                          interval[3]: 1/15
                          interval[4]: 1/10
                          interval[5]: 1/7
                          interval[6]: 1/5
END DEVICE CONFIGURATION

Fail on ESP-IDF

E (12493) Transfer failed: Status 7
E (12493) USBH: Device 1 gone
bmHint: 0001
bFormatIndex: 1
bFrameIndex: 1
transfer_status: 7I (12493) USB_CAMERA: libuvc_adapter_cb event=2
dwFrameInterval: 666666
wKeyFrameRate: 0
wPFrameRate: 0
wCompQuality: 61
wCompWindowSize: 0
wDelay: 0
dwMaxVideoFrameSize: 38400
dwMaxPayloadTransferSize: 512
bInterfaceNumber: 3
I (12513) USB_CAMERA: uvc_start_streaming=-99
E (12523) USB_CAMERA: uvc_start_streaming fail
E (12523) USB_CAMERA: Change other camera and re-start