Here is some sample code that I use to set the "Zoom, Absolute" control in v4l2.  You could replace V4L2_CID_ZOOM_ABSOLUTE with V4L2_CID_AUTO_WHITE_BALANCE to enable/disable auto white-balance.

    struct v4l2_queryctrl queryctrl;
    struct v4l2_control control;

    memset (&queryctrl, 0, sizeof (queryctrl));
    queryctrl.id = V4L2_CID_ZOOM_ABSOLUTE;

    if (-1 == ioctl (capture_fd_, VIDIOC_QUERYCTRL, &queryctrl)) {
      if (errno != EINVAL) {
        perror ("VIDIOC_QUERYCTRL");
        exit (EXIT_FAILURE);
      } else {
        printf ("V4L2_CID_ZOOM_ABSOLUTE is not supported\n");
      }
    } else if (queryctrl.flags & V4L2_CTRL_FLAG_DISABLED) {
      printf ("V4L2_CID_ZOOM_ABSOLUTE is not supported\n");
    } else {
      memset (&control, 0, sizeof (control));
      control.id = V4L2_CID_ZOOM_ABSOLUTE;
      control.value = zoom_factor_;

      if (-1 == ioctl (capture_fd_, VIDIOC_S_CTRL, &control)) {
        perror ("VIDIOC_S_CTRL");
        exit (EXIT_FAILURE);
      }
    }


On Mon, Aug 23, 2010 at 10:01 AM, Ken Tossell <ktossell@umd.edu> wrote:
You also might want to check out libwebcam and its command-line
configuration utility, uvcdynctrl:

http://www.quickcamteam.net/software/libwebcam

$ uvcdynctrl -d /dev/video0 -g 'White Balance Temperature, Auto'
1
$ uvcdynctrl -d /dev/video0 -s 'White Balance Temperature, Auto' 0
$ uvcdynctrl -d /dev/video0 -c
Listing available controls for device /dev/video0:
[...]
 Focus (absolute)
 Exposure, Auto Priority
 Exposure (Absolute)
 Exposure, Auto
 Backlight Compensation
 Sharpness
 White Balance Temperature
 Power Line Frequency
 Gain
 White Balance Temperature, Auto
 Saturation
 Contrast
 Brightness

 - Ken
_______________________________________________
ros-users mailing list
ros-users@code.ros.org
https://code.ros.org/mailman/listinfo/ros-users