Hi Armin,

On Friday 21 March 2008, Armin Berres wrote:
> Hi!
>
> I just updated the uvc driver to the latest version available in Debian
> (r193) in the hope to be able to set the red and blue component of the
> white balance when using a Philips SPC1300NC.
> After noticing that the private controls are gone and updating some
> keys everything but one thing works again: I can't set the auto exposure
> any more. When I query V4L2_CID_EXPOSURE_AUTO it is set to 3.
> V4L2_EXPOSURE_AUTO and V4L2_EXPOSURE_MANUAL at the same time?

3 is actually supposed to mean V4L2_EXPOSURE_APERTURE_PRIORITY. The control 
values were not properly defined in uvc_compat.h, I've just committed a fix 
to SVN.

> Setting it to V4L2_EXPOSURE_AUTO or V4L2_EXPOSURE_MANUAL doesn't work, I
> just get the error code 5, Input/output error. When loadng the uvc module
>
> with 'trace=0x004' I find the following in the syslog:
> | uvcvideo: Failed to query (1) UVC control 2 (unit 1) : -32 (exp. 1).
> | uvcvideo: usb_control_msg was delayed
>
> The svn revision 120 worked just fine.

Please try to recompile your userspace application using uvc_compat.h from 
r196 or videodev2.h from the linux-next git tree. You can also modify your 
header files manually with the following definition of the 
v4l2_exposure_auto_type enumeration:

enum  v4l2_exposure_auto_type {
        V4L2_EXPOSURE_MANUAL = 0,
        V4L2_EXPOSURE_AUTO = 1,
        V4L2_EXPOSURE_SHUTTER_PRIORITY = 2,
        V4L2_EXPOSURE_APERTURE_PRIORITY = 3
};

> Now my other problem: When reading r187 I hoped to be able to manually
> set the white balance, but it doesn't seem to be possible.
> Setting V4L2_CID_AUTO_WHITE_BALANCE to 0 doesn't seem to have an effect.
> The control seems to be neither V4L2_CTRL_TYPE_BOOLEAN nor
> V4L2_CTRL_TYPE_INTEGER, so what else it is?

The control is boolean, and is supposed to work. Do you get an error when you 
try to modify it ? Is anything printed to the kernel log ? Do you get the 
previously written value when you read the control back ?

> When trying to get V4L2_CID_RED_BALANCE or V4L2_CID_BLUE_BALANCE I get
> the error code 22, Invalid argument. In the syslog I find
>
> | uvcvideo: Control 0x0098090e not found.
> | uvcvideo: Control 0x0098090f not found.
>
> Is this expected to work, or can't this work? It is quite important for
> me, to get the manual white balance running.

The SPC1300NC has a white balance temperature control, you should use 
V4L2_CID_WHITE_BALANCE_TEMPERATURE instead of V4L2_CID_RED_BALANCE and 
V4L2_CID_BLUE_BALANCE.

> Any help is welcome :)

Hope this helped :-)

> Greetings,
> Armin

Best regards,

Laurent Pinchart
_______________________________________________
Linux-uvc-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel

Reply via email to