Lens Pro - FreeBSD

Hardware info on main page.

Links

Building a Webcam with FreeBSD, possible programs multimedia: cheese, harvid, kamoso, pwcview, webcamoid,

local links

c1, bb,

History

2023-04-09: bb - testing cheese - doesn't show a picture. Test pwcview - works, but it is hard to manage the user interface. harvid - HTTP Ardour Video Daemon, not sure how this could work for a video camera. webcamoid works nicely.

2023-04-07: bb - I connected the scanner to a FreeBSD workstation running

tingo@kg-bsbox:~ $ freebsd-version -ku
13.1-RELEASE-p6
13.1-RELEASE-p7

the scanner show up in usbconfig output

tingo@kg-bsbox:~ $ sudo usbconfig -d ugen0.10
ugen0.10: <CZUR Technology Co., Ltd. CZUR MIC> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (256mA)

I have webcamd installed, so two /dev/video devices show up

tingo@kg-bsbox:~ $ ls -l /dev/vide*
crw-rw----  1 webcamd  webcamd  0x85 Apr  7 22:08 /dev/video0
crw-rw----  1 webcamd  webcamd  0x86 Apr  7 22:08 /dev/video1

if I try to open video1 device with vlc, I get

tingo@kg-bsbox:~ $ vlc v4l2:///dev/video1
VLC media player 3.0.18 Vetinari (revision 3.0.13-8-g41878ff4f2)
[0000000800c55060] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[0000000818a16060] v4l2 demux error: not a video capture device
[0000000818a16060] v4l2 demux error: not a radio tuner device
[0000000818a311a0] v4l2 stream error: not a video capture device

with video0

tingo@kg-bsbox:~ $ vlc v4l2:///dev/video0
VLC media player 3.0.18 Vetinari (revision 3.0.13-8-g41878ff4f2)
[0000000800c55060] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[0000000818a3b3e0] main decoder error: buffer deadlock prevented

and I get a (moving) picture after a while. video resoultion is 3264x2448 (from vlc). Framerate isn't great. Sometimes I just get

tingo@kg-bsbox:~ $ vlc v4l2:///dev/video0
VLC media player 3.0.18 Vetinari (revision 3.0.13-8-g41878ff4f2)
[0000000800c55060] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
libv4l2: error turning on stream: Device not configured
[0000000818816060] v4l2 demux error: cannot start streaming: Device not configured
[0000000818816060] v4l2 demux error: not a radio tuner device
[0000000818816160] mjpeg demux error: cannot peek

2021-12-22: c1 - disconnecting the scanner results in these lines in /var/log/messages

Dec 22 01:37:30 kg-core1 kernel: ugen3.4: <CZUR Technology Co., Ltd. CZUR MIC> at usbus3 (disconnected)
Dec 22 01:37:30 kg-core1 kernel: uaudio0: at uhub8, port 2, addr 4 (disconnected)
Dec 22 01:37:30 kg-core1 kernel: pcm4: detached
Dec 22 01:37:30 kg-core1 kernel: uaudio0: detached

all for now.

2021-12-22: c1 - connecting the scanner to a FreeBSD workstation running FreeBSD 13.0-release-p5 to get some info.

root@kg-core1:~ # freebsd-version -ku
13.0-RELEASE-p4
13.0-RELEASE-p5

from /var/log/messages

Dec 22 01:02:11 kg-core1 kernel: ugen3.4: <CZUR Technology Co., Ltd. CZUR MIC> at usbus3
Dec 22 01:02:11 kg-core1 kernel: uaudio0 on uhub8
Dec 22 01:02:11 kg-core1 kernel: uaudio0: <CZUR MIC> on usbus3
Dec 22 01:02:11 kg-core1 kernel: uaudio0: No playback.
Dec 22 01:02:11 kg-core1 kernel: uaudio0: Record[0]: 48000 Hz, 1 ch, 16-bit S-LE PCM format, 2x8ms buffer.
Dec 22 01:02:11 kg-core1 kernel: uaudio0: Record[0]: 44100 Hz, 1 ch, 16-bit S-LE PCM format, 2x8ms buffer.
Dec 22 01:02:11 kg-core1 kernel: uaudio0: Record[0]: 24000 Hz, 1 ch, 16-bit S-LE PCM format, 2x8ms buffer.
Dec 22 01:02:11 kg-core1 kernel: uaudio0: Record[0]: 22050 Hz, 1 ch, 16-bit S-LE PCM format, 2x8ms buffer.
Dec 22 01:02:11 kg-core1 kernel: uaudio0: Record[0]: 16000 Hz, 1 ch, 16-bit S-LE PCM format, 2x8ms buffer.
Dec 22 01:02:11 kg-core1 kernel: uaudio0: Record[0]: 11025 Hz, 1 ch, 16-bit S-LE PCM format, 2x8ms buffer.
Dec 22 01:02:11 kg-core1 kernel: uaudio0: Record[0]: 8000 Hz, 1 ch, 16-bit S-LE PCM format, 2x8ms buffer.
Dec 22 01:02:11 kg-core1 kernel: uaudio0: No MIDI sequencer.
Dec 22 01:02:11 kg-core1 kernel: pcm4: <USB audio> on uaudio0
Dec 22 01:02:11 kg-core1 kernel: uaudio0: No HID volume keys found.

usbconfig info

root@kg-core1:~ # usbconfig -d ugen3.4
ugen3.4: <CZUR Technology Co., Ltd. CZUR MIC> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (256mA)

device descriptor

root@kg-core1:~ # usbconfig -d ugen3.4 dump_device_desc
ugen3.4: <CZUR Technology Co., Ltd. CZUR MIC> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (256mA)

  bLength = 0x0012 
  bDescriptorType = 0x0001 
  bcdUSB = 0x0200 
  bDeviceClass = 0x00ef  <Miscellaneous device>
  bDeviceSubClass = 0x0002 
  bDeviceProtocol = 0x0001 
  bMaxPacketSize0 = 0x0040 
  idVendor = 0x1e4f 
  idProduct = 0x1227 
  bcdDevice = 0x0100 
  iManufacturer = 0x0002  <CZUR Technology Co., Ltd.>
  iProduct = 0x0001  <CZUR MIC>
  iSerialNumber = 0x0000  <no string>
  bNumConfigurations = 0x0001 

current config descriptor

root@kg-core1:~ # usbconfig -d ugen3.4 dump_curr_config_desc
ugen3.4: <CZUR Technology Co., Ltd. CZUR MIC> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (256mA)


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x046e 
    bNumInterfaces = 0x0004 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x0080 
    bMaxPower = 0x0080 

    Additional Descriptor

    bLength = 0x08
    bDescriptorType = 0x0b
    bDescriptorSubType = 0x00
     RAW dump: 
     0x00 | 0x08, 0x0b, 0x00, 0x02, 0x0e, 0x03, 0x00, 0x05


    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0001 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0005  <CZUR E012A>

      Additional Descriptor

      bLength = 0x0d
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x0d, 0x24, 0x01, 0x00, 0x01, 0x6c, 0x00, 0xc0, 
       0x08 | 0xe1, 0xe4, 0x00, 0x01, 0x01


      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x24
      bDescriptorSubType = 0x03
       RAW dump: 
       0x00 | 0x09, 0x24, 0x03, 0x05, 0x01, 0x01, 0x00, 0x04, 
       0x08 | 0x00

      Additional Descriptor

      bLength = 0x1c
      bDescriptorType = 0x24
      bDescriptorSubType = 0x06
       RAW dump: 
       0x00 | 0x1c, 0x24, 0x06, 0x03, 0x70, 0x33, 0xf0, 0x28, 
       0x08 | 0x11, 0x63, 0x2e, 0x4a, 0xba, 0x2c, 0x68, 0x90, 
       0x10 | 0xeb, 0x33, 0x40, 0x16, 0x18, 0x01, 0x02, 0x03, 
       0x18 | 0xff, 0xff, 0xff, 0x00


      Additional Descriptor

      bLength = 0x1d
      bDescriptorType = 0x24
      bDescriptorSubType = 0x06
       RAW dump: 
       0x00 | 0x1d, 0x24, 0x06, 0x04, 0xb4, 0x21, 0x53, 0xbd, 
       0x08 | 0x35, 0xd6, 0x45, 0xca, 0xb2, 0x03, 0x4e, 0x01, 
       0x10 | 0x49, 0xb3, 0x01, 0xbc, 0x20, 0x01, 0x03, 0x04, 
       0x18 | 0x03, 0x80, 0x3f, 0x9f, 0x00


      Additional Descriptor

      bLength = 0x12
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump: 
       0x00 | 0x12, 0x24, 0x02, 0x01, 0x01, 0x02, 0x00, 0x00, 
       0x08 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0e, 
       0x10 | 0x60, 0x00


      Additional Descriptor

      bLength = 0x0b
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x0b, 0x24, 0x05, 0x02, 0x01, 0x00, 0x00, 0x02, 
       0x08 | 0x7f, 0x17, 0x00


     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0083  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0010 
        bInterval = 0x0006 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

      Additional Descriptor

      bLength = 0x05
      bDescriptorType = 0x25
      bDescriptorSubType = 0x03
       RAW dump: 
       0x00 | 0x05, 0x25, 0x03, 0x80, 0x00



    Interface 1
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0001 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0000 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x0f
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x0f, 0x24, 0x01, 0x02, 0xf3, 0x02, 0x81, 0x00, 
       0x08 | 0x05, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00


      Additional Descriptor

      bLength = 0x1b
      bDescriptorType = 0x24
      bDescriptorSubType = 0x04
       RAW dump: 
       0x00 | 0x1b, 0x24, 0x04, 0x01, 0x0a, 0x59, 0x55, 0x59, 
       0x08 | 0x32, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 
       0x10 | 0xaa, 0x00, 0x38, 0x9b, 0x71, 0x10, 0x01, 0x00, 
       0x18 | 0x00, 0x00, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x05, 0x01, 0x00, 0xc0, 0x0c, 0x90, 
       0x08 | 0x09, 0x00, 0x80, 0x3d, 0x0f, 0x00, 0x80, 0x3d, 
       0x10 | 0x0f, 0x00, 0xd8, 0xf3, 0x00, 0x40, 0x4b, 0x4c, 
       0x18 | 0x00, 0x01, 0x40, 0x4b, 0x4c, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x05, 0x02, 0x00, 0x20, 0x0a, 0x98, 
       0x08 | 0x07, 0x00, 0x60, 0x9c, 0x09, 0x00, 0x60, 0x9c, 
       0x10 | 0x09, 0x00, 0xc6, 0x99, 0x00, 0x40, 0x4b, 0x4c, 
       0x18 | 0x00, 0x01, 0x40, 0x4b, 0x4c, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x05, 0x03, 0x00, 0x00, 0x08, 0x00, 
       0x08 | 0x06, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 
       0x10 | 0x09, 0x00, 0x00, 0x60, 0x00, 0xd5, 0xdc, 0x32, 
       0x18 | 0x00, 0x01, 0xd5, 0xdc, 0x32, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x05, 0x04, 0x00, 0x80, 0x07, 0x38, 
       0x08 | 0x04, 0x00, 0xc0, 0xee, 0x05, 0x00, 0xc0, 0xee, 
       0x10 | 0x05, 0x00, 0x48, 0x3f, 0x00, 0xd5, 0xdc, 0x32, 
       0x18 | 0x00, 0x01, 0xd5, 0xdc, 0x32, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x05, 0x05, 0x00, 0x40, 0x06, 0xb0, 
       0x08 | 0x04, 0x00, 0xc0, 0x27, 0x09, 0x00, 0xc0, 0x27, 
       0x10 | 0x09, 0x00, 0x98, 0x3a, 0x00, 0x80, 0x84, 0x1e, 
       0x18 | 0x00, 0x01, 0x80, 0x84, 0x1e, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x05, 0x06, 0x00, 0x00, 0x05, 0xc0, 
       0x08 | 0x03, 0x00, 0x00, 0xdc, 0x05, 0x00, 0x00, 0xdc, 
       0x10 | 0x05, 0x00, 0x80, 0x25, 0x00, 0x80, 0x84, 0x1e, 
       0x18 | 0x00, 0x01, 0x80, 0x84, 0x1e, 0x00


      Additional Descriptor

      bLength = 0x22
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x22, 0x24, 0x05, 0x07, 0x00, 0x00, 0x05, 0xd0, 
       0x08 | 0x02, 0x00, 0x00, 0x65, 0x04, 0x00, 0x00, 0xca, 
       0x10 | 0x08, 0x00, 0x20, 0x1c, 0x00, 0x40, 0x42, 0x0f, 
       0x18 | 0x00, 0x02, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x84, 
       0x20 | 0x1e, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x05, 0x08, 0x00, 0x00, 0x04, 0x00, 
       0x08 | 0x03, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x80, 
       0x10 | 0x07, 0x00, 0x00, 0x18, 0x00, 0x40, 0x42, 0x0f, 
       0x18 | 0x00, 0x01, 0x40, 0x42, 0x0f, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x05, 0x09, 0x00, 0x20, 0x03, 0x58, 
       0x08 | 0x02, 0x00, 0xc0, 0x27, 0x09, 0x00, 0xc0, 0x27, 
       0x10 | 0x09, 0x00, 0xa6, 0x0e, 0x00, 0x20, 0xa1, 0x07, 
       0x18 | 0x00, 0x01, 0x20, 0xa1, 0x07, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x05, 0x0a, 0x00, 0x80, 0x02, 0xe0, 
       0x08 | 0x01, 0x00, 0x00, 0xca, 0x08, 0x00, 0x00, 0xca, 
       0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x01, 0x15, 0x16, 0x05, 0x00


      Additional Descriptor

      bLength = 0x2e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x03
       RAW dump: 
       0x00 | 0x2e, 0x24, 0x03, 0x00, 0x0a, 0xc0, 0x0c, 0x90, 
       0x08 | 0x09, 0x20, 0x0a, 0x98, 0x07, 0x00, 0x08, 0x00, 
       0x10 | 0x06, 0x80, 0x07, 0x38, 0x04, 0x40, 0x06, 0xb0, 
       0x18 | 0x04, 0x00, 0x05, 0xc0, 0x03, 0x00, 0x05, 0xd0, 
       0x20 | 0x02, 0x00, 0x04, 0x00, 0x03, 0x20, 0x03, 0x58, 
       0x28 | 0x02, 0x80, 0x02, 0xe0, 0x01, 0x00


      Additional Descriptor

      bLength = 0x0b
      bDescriptorType = 0x24
      bDescriptorSubType = 0x06
       RAW dump: 
       0x00 | 0x0b, 0x24, 0x06, 0x02, 0x0a, 0x00, 0x01, 0x00, 
       0x08 | 0x00, 0x00, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x07, 0x01, 0x00, 0xc0, 0x0c, 0x90, 
       0x08 | 0x09, 0x00, 0x40, 0x4d, 0x72, 0x00, 0x40, 0x4d, 
       0x10 | 0x72, 0x4d, 0xda, 0xf3, 0x00, 0x2a, 0x2c, 0x0a, 
       0x18 | 0x00, 0x01, 0x2a, 0x2c, 0x0a, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x07, 0x02, 0x00, 0x20, 0x0a, 0x98, 
       0x08 | 0x07, 0x00, 0xd0, 0x14, 0x48, 0x00, 0xd0, 0x14, 
       0x10 | 0x48, 0x4d, 0xc8, 0x99, 0x00, 0x2a, 0x2c, 0x0a, 
       0x18 | 0x00, 0x01, 0x2a, 0x2c, 0x0a, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x07, 0x03, 0x00, 0x00, 0x08, 0x00, 
       0x08 | 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 
       0x10 | 0x2d, 0x4d, 0x02, 0x60, 0x00, 0x2a, 0x2c, 0x0a, 
       0x18 | 0x00, 0x01, 0x2a, 0x2c, 0x0a, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x07, 0x04, 0x00, 0x80, 0x07, 0x38, 
       0x08 | 0x04, 0x00, 0x40, 0x70, 0x31, 0x00, 0x40, 0x70, 
       0x10 | 0x31, 0x4d, 0x4a, 0x3f, 0x00, 0x80, 0x1a, 0x06, 
       0x18 | 0x00, 0x01, 0x80, 0x1a, 0x06, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x07, 0x05, 0x00, 0x40, 0x06, 0xb0, 
       0x08 | 0x04, 0x00, 0x80, 0xee, 0x36, 0x00, 0x80, 0xee, 
       0x10 | 0x36, 0x4d, 0x9a, 0x3a, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x01, 0x15, 0x16, 0x05, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x07, 0x06, 0x00, 0x00, 0x05, 0xc0, 
       0x08 | 0x03, 0x00, 0x00, 0x28, 0x23, 0x00, 0x00, 0x28, 
       0x10 | 0x23, 0x4d, 0x82, 0x25, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x01, 0x15, 0x16, 0x05, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x07, 0x07, 0x00, 0x00, 0x05, 0xd0, 
       0x08 | 0x02, 0x00, 0x00, 0xf9, 0x15, 0x00, 0x00, 0xf9, 
       0x10 | 0x15, 0x4d, 0x22, 0x1c, 0x00, 0x80, 0x1a, 0x06, 
       0x18 | 0x00, 0x01, 0x80, 0x1a, 0x06, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x07, 0x08, 0x00, 0x00, 0x04, 0x00, 
       0x08 | 0x03, 0x00, 0x00, 0x80, 0x16, 0x00, 0x00, 0x80, 
       0x10 | 0x16, 0x4d, 0x02, 0x18, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x01, 0x15, 0x16, 0x05, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x07, 0x09, 0x00, 0x20, 0x03, 0x58, 
       0x08 | 0x02, 0x00, 0xa0, 0xbb, 0x0d, 0x00, 0xa0, 0xbb, 
       0x10 | 0x0d, 0x4d, 0xa8, 0x0e, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x01, 0x15, 0x16, 0x05, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x07, 0x0a, 0x00, 0x80, 0x02, 0xe0, 
       0x08 | 0x01, 0x00, 0x00, 0xca, 0x08, 0x00, 0x00, 0xca, 
       0x10 | 0x08, 0x4d, 0x62, 0x09, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x01, 0x15, 0x16, 0x05, 0x00


      Additional Descriptor

      bLength = 0x2e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x03
       RAW dump: 
       0x00 | 0x2e, 0x24, 0x03, 0x00, 0x0a, 0xc0, 0x0c, 0x90, 
       0x08 | 0x09, 0x20, 0x0a, 0x98, 0x07, 0x00, 0x08, 0x00, 
       0x10 | 0x06, 0x80, 0x07, 0x38, 0x04, 0x40, 0x06, 0xb0, 
       0x18 | 0x04, 0x00, 0x05, 0xc0, 0x03, 0x00, 0x05, 0xd0, 
       0x20 | 0x02, 0x00, 0x04, 0x00, 0x03, 0x20, 0x03, 0x58, 
       0x28 | 0x02, 0x80, 0x02, 0xe0, 0x01, 0x00


      Additional Descriptor

      bLength = 0x06
      bDescriptorType = 0x24
      bDescriptorSubType = 0x0d
       RAW dump: 
       0x00 | 0x06, 0x24, 0x0d, 0x01, 0x01, 0x04



    Interface 1 Alt 1
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0001 
      bAlternateSetting = 0x0001 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0080 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 


    Interface 1 Alt 2
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0001 
      bAlternateSetting = 0x0002 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0100 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 


    Interface 1 Alt 3
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0001 
      bAlternateSetting = 0x0003 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0320 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 


    Interface 1 Alt 4
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0001 
      bAlternateSetting = 0x0004 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0b20 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 


    Interface 1 Alt 5
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0001 
      bAlternateSetting = 0x0005 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x1320 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 


    Interface 1 Alt 6
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0001 
      bAlternateSetting = 0x0006 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x1400 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

      Additional Descriptor

      bLength = 0x08
      bDescriptorType = 0x0b
      bDescriptorSubType = 0x02
       RAW dump: 
       0x00 | 0x08, 0x0b, 0x02, 0x02, 0x01, 0x00, 0x00, 0x04



    Interface 2
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0002 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0000 
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0001 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0004  <CZUR MIC>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x09, 0x24, 0x01, 0x00, 0x01, 0x29, 0x00, 0x01, 
       0x08 | 0x03

      Additional Descriptor

      bLength = 0x0c
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump: 
       0x00 | 0x0c, 0x24, 0x02, 0x01, 0x01, 0x02, 0x00, 0x01, 
       0x08 | 0x00, 0x00, 0x00, 0x00


      Additional Descriptor

      bLength = 0x0b
      bDescriptorType = 0x24
      bDescriptorSubType = 0x06
       RAW dump: 
       0x00 | 0x0b, 0x24, 0x06, 0x02, 0x01, 0x02, 0x01, 0x00, 
       0x08 | 0x02, 0x00, 0x00


      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x24
      bDescriptorSubType = 0x03
       RAW dump: 
       0x00 | 0x09, 0x24, 0x03, 0x03, 0x01, 0x01, 0x00, 0x02, 
       0x08 | 0x00


    Interface 3
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0003 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0000 
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0004  <CZUR MIC>


    Interface 3 Alt 1
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0003 
      bAlternateSetting = 0x0001 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0004  <CZUR MIC>

      Additional Descriptor

      bLength = 0x07
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x07, 0x24, 0x01, 0x03, 0x01, 0x01, 0x00


      Additional Descriptor

      bLength = 0x1d
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump: 
       0x00 | 0x1d, 0x24, 0x02, 0x01, 0x01, 0x02, 0x10, 0x07, 
       0x08 | 0x40, 0x1f, 0x00, 0x11, 0x2b, 0x00, 0x80, 0x3e, 
       0x10 | 0x00, 0x22, 0x56, 0x00, 0xc0, 0x5d, 0x00, 0x44, 
       0x18 | 0xac, 0x00, 0x80, 0xbb, 0x00


     Endpoint 0
        bLength = 0x0009 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0084  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x00c0 
        bInterval = 0x0004 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

      Additional Descriptor

      bLength = 0x07
      bDescriptorType = 0x25
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00

very long.

2021-12-22: I created this page.