Hi,
I have some problems with "BisonCam, NB Pro" (5986:0241) with
gstreamer/libv4l (while it works with luvcview).
After some investigation, I found uvcvideo driver answers EIO when
libv4l do VIDIOC_QUERYCTRL, with a particular id: 0x980903. This id
seems correct and correspond to "Hue" control. Someone can confirm this?
Also, dmesg says:
uvcvideo: Failed to query (135) UVC control 6 (unit 5) : -32 (exp. 2).
Error 32 corresponds to EPIPE ("Stalled endpoint").
I wrote a workaround in libv4l :
--- libv4l-0.5.8.orig/libv4l2/libv4l2.c
+++ libv4l-0.5.8/libv4l2/libv4l2.c
@@ -740,0 +740,6 @@
+ // Jezz: Fix bug with '5986:0241 BisonCam, NB Pro'
+ if (request == VIDIOC_QUERYCTRL && result != 0 && errno == EIO) {
+ struct v4l2_queryctrl *queryctrl = arg;
+ if (queryctrl->id == 0x980903)
+ errno = EINVAL;
+ }
This workaround work fine, so problem exists only with this id.
Nevertheless, it is not a perennial solution. So I am looking to correct
problem in uvcvideo driver.
1. I currently work on kernel 2.6.28.9. Do you think it would be useful
to test with 2.6.29 or 2.6.30?
2. It looks like a hardware bug, but how to prove it?
3. Should I add a "quirks" entry in uvcvideo to handle it?
Cheer,
--
Jérôme Pouiller (jezz AT sysmic DOT org)
Bus 002 Device 004: ID 5986:0241 Acer, Inc
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x5986 Acer, Inc
idProduct 0x0241
bcdDevice 3.03
iManufacturer 3 BISON Corporation
iProduct 1 BisonCam, NB Pro
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 471
bNumInterfaces 2
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 1 BisonCam, NB Pro
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 14 Video
bInterfaceSubClass 1 Video Control
bInterfaceProtocol 0
iInterface 1 BisonCam, NB Pro
VideoControl Interface Descriptor:
bLength 13
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdUVC 1.00
wTotalLength 85
dwClockFrequency 30.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 0x00000000
VideoControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 3
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 6
iTerminal 0
VideoControl Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 4 (SELECTOR_UNIT)
bUnitID 4
bNrInPins 1
baSource( 0) 1
iSelector 0
VideoControl Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 5 (PROCESSING_UNIT)
Warning: Descriptor too short
bUnitID 5
bSourceID 4
wMaxMultiplier 0
bControlSize 2
bmControls 0x0000043f
Brightness
Contrast
Hue
Saturation
Sharpness
Gamma
Power Line Frequency
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 6
guidExtensionCode {564c97a7-7ea7-904b-8cbf-1c71ec303000}
bNumControl 16
bNrPins 1
baSourceID( 0) 5
bControlSize 2
bmControls( 0) 0xff
bmControls( 1) 0xff
iExtension 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 15
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 14
bDescriptorType 36
bDescriptorSubtype 1 (INPUT_HEADER)
bNumFormats 1
wTotalLength 291
bEndPointAddress 129
bmInfo 0
bTerminalLink 3
bStillCaptureMethod 2
bTriggerSupport 0
bTriggerUsage 0
bControlSize 1
bmaControls( 0) 27
VideoStreaming Interface Descriptor:
bLength 27
bDescriptorType 36
bDescriptorSubtype 4 (FORMAT_UNCOMPRESSED)
bFormatIndex 1
bNumFrameDescriptors 6
guidFormat
{59555932-0000-1000-8000-00aa00389b71}
bBitsPerPixel 16
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 38
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 1
bmCapabilities 0x01
Still image supported
wWidth 640
wHeight 480
dwMinBitRate 12288000
dwMaxBitRate 12288000
dwMaxVideoFrameBufferSize 614400
dwDefaultFrameInterval 416666
bFrameIntervalType 3
dwFrameInterval( 0) 416666
dwFrameInterval( 1) 666666
dwFrameInterval( 2) 1000000
VideoStreaming Interface Descriptor:
bLength 38
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 2
bmCapabilities 0x01
Still image supported
wWidth 320
wHeight 240
dwMinBitRate 3072000
dwMaxBitRate 3072000
dwMaxVideoFrameBufferSize 153600
dwDefaultFrameInterval 416666
bFrameIntervalType 3
dwFrameInterval( 0) 416666
dwFrameInterval( 1) 666666
dwFrameInterval( 2) 1000000
VideoStreaming Interface Descriptor:
bLength 38
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 3
bmCapabilities 0x01
Still image supported
wWidth 160
wHeight 120
dwMinBitRate 768000
dwMaxBitRate 768000
dwMaxVideoFrameBufferSize 38400
dwDefaultFrameInterval 416666
bFrameIntervalType 3
dwFrameInterval( 0) 416666
dwFrameInterval( 1) 666666
dwFrameInterval( 2) 1000000
VideoStreaming Interface Descriptor:
bLength 38
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 4
bmCapabilities 0x01
Still image supported
wWidth 352
wHeight 288
dwMinBitRate 4055040
dwMaxBitRate 4055040
dwMaxVideoFrameBufferSize 202752
dwDefaultFrameInterval 416666
bFrameIntervalType 3
dwFrameInterval( 0) 416666
dwFrameInterval( 1) 666666
dwFrameInterval( 2) 1000000
VideoStreaming Interface Descriptor:
bLength 38
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 5
bmCapabilities 0x01
Still image supported
wWidth 176
wHeight 144
dwMinBitRate 1013760
dwMaxBitRate 1013760
dwMaxVideoFrameBufferSize 50688
dwDefaultFrameInterval 416666
bFrameIntervalType 3
dwFrameInterval( 0) 416666
dwFrameInterval( 1) 666666
dwFrameInterval( 2) 1000000
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 6
bmCapabilities 0x01
Still image supported
wWidth 1280
wHeight 1024
dwMinBitRate 26214400
dwMaxBitRate 26214400
dwMaxVideoFrameBufferSize 2621440
dwDefaultFrameInterval 1250000
bFrameIntervalType 1
dwFrameInterval( 0) 1250000
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 3 (STILL_IMAGE_FRAME)
bEndpointAddress 0
bNumImageSizePatterns 6
wWidth( 0) 640
wHeight( 0) 480
wWidth( 1) 320
wHeight( 1) 240
wWidth( 2) 160
wHeight( 2) 120
wWidth( 3) 352
wHeight( 3) 288
wWidth( 4) 176
wHeight( 4) 144
wWidth( 5) 1280
wHeight( 5) 1024
bNumCompressionPatterns 6
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 0x1400 3x 1024 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 0x1400 3x 1024 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 0x1400 3x 1024 bytes
bInterval 1
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)
_______________________________________________
Linux-uvc-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel