On 6.6.2008, at 5.09, Laurent Pinchart wrote:
Format conversion doesn't belong in the kernel. Linus Torvald has been quite
clear on that.

I agree with that.

There is currently no universal userspace solution. The gstreamer framework is
interesting but not as stable as it should be with v4l2 devices. Other
projects such as the one you mentioned have been started but are usually
nowhere 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 composite
input.

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/video0
Available 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/video0
Available 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

Attachment: 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

Reply via email to