On 6.6.2008, at 5.09, Laurent Pinchart wrote:
Format conversion doesn't belong in the kernel. Linus Torvald has been quiteclear on that.
I agree with that.
There is currently no universal userspace solution. The gstreamer framework isinteresting but not as stable as it should be with v4l2 devices. Otherprojects such as the one you mentioned have been started but are usuallynowhere near completion.
So have to just wait...but until that need to get the driver issues fixed.
I had a closer look at the USB descriptors. The camera reports a selector unit and two input terminals, one for the camera sensor and one for a compositeinput. Does your webcam really have multiple inputs ?
No, and I have no idea what the composite input is doing there actually... If you think it might disturb something I can test it. However yesterday I had some time to dig into it and what I've found out so far:
Failed querying control 9963788 on device '/dev/video0'. (5 - Input/ output error)
The mentioned query control in hex is 0x98090C which in turn is White Balance Temperature, Auto. If I make an exclusion in for example uvc_find_control where I add the exclusion:
if (v4l2_id == 0x0098090c) return;
then the camera will work just fine. If I do an lsusb -v it will print:
bmControls 0x0000163f
Brightness
Contrast
Hue
Saturation
Sharpness
Gamma
Gain
Power Line Frequency
White Balance Temperature, Auto
So the camera is reporting to support the white balance temperature
auto setting, no problem with the driver there. Then if I check the
kernel logs while running the driver I can find:
[ 1599.394979] uvcvideo: Failed to query (135) UVC control 11 (unit 5) : -32 (exp. 1).
This is the part where the device actually fails. The gstreamer program does a GET_DEF request (135) to the "White Balance Temperature, Auto" (11) which then returns the error code -32, which seems to be a general error code because I also get it for nonexistant controls. By the spec PU_WHITE_BALANCE_COMPONENT_AUTO_CONTROL should also support the commands SET_CUR, GET_CUR, GET_INFO, GET_DEF so I tried to do GET_INFO and GET_CUR for it instead of GET_DEF. But all fail exactly the same way. I haven't tried SET_CUR because it requires a bit more modifications, but will test it if I have time.
Now how do you think, is the camera faulty with reporting the White Balance Temperature, Auto or is there still something that could be done? If it's considered to be faulty I can add a hack to ignore the white balance thing for this camera type and test it...
Oh and could add luvcview output also for reference to show it really fails with it:
[EMAIL PROTECTED]:~/Source/linux-uvc$ luvcview -l luvcview version 0.2.1 Video driver: x11 A window manager is available video /dev/video0Available controls of device 'Camera 1' (Type 1=Integer 2=Boolean 3=Menu 4=Button)
V4L2_CID_BASE (predefined controls):index:9963776 name:Brightness type:1 min:-16 max:16 step:1 def:0 now:0 index:9963777 name:Contrast type:1 min: 0 max:15 step:1 def:0 now:0 index:9963778 name:Saturation type:1 min: 0 max:50 step:1 def:25 now:25 index:9963779 name:Hue type:1 min:-18 max:18 step:1 def:0 now:0
error getting base controls After patching it to ignore the white balance I get: [EMAIL PROTECTED]:~/Source/linux-uvc$ luvcview -l luvcview version 0.2.1 Video driver: x11 A window manager is available video /dev/video0Available controls of device 'Camera 1' (Type 1=Integer 2=Boolean 3=Menu 4=Button)
V4L2_CID_BASE (predefined controls):index:9963776 name:Brightness type:1 min:-16 max:16 step:1 def:0 now:0 index:9963777 name:Contrast type:1 min: 0 max:15 step:1 def:0 now:0 index:9963778 name:Saturation type:1 min: 0 max:50 step:1 def:25 now:25 index:9963779 name:Hue type:1 min:-18 max:18 step:1 def:0 now:0 index:9963792 name:Gamma type:1 min: 0 max:40 step:1 def:40 now:40 index:9963795 name:Gain type:1 min: 0 max:255 step:1 def:64 now:64
V4L2_CID_PRIVATE_BASE (driver specific controls):This looks much better to me. Please give some comments on the issue since you have more experience about these things. :)
Regards, Juho
PGP.sig
Description: This is a digitally signed message part
_______________________________________________ Linux-uvc-devel mailing list [email protected] https://lists.berlios.de/mailman/listinfo/linux-uvc-devel
