Lens Pro - FreeBSD
Hardware info on main page.
Links
Building a Webcam with FreeBSD, possible programs multimedia: cheese, harvid, kamoso, pwcview, webcamoid,
local links
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.