Added v4l2 controls

This commit is contained in:
Martijn Braam 1970-01-01 01:57:18 +01:00
parent 2f3b1afe2d
commit e41b090090
1 changed files with 22 additions and 1 deletions

23
main.c
View File

@ -61,6 +61,7 @@ static int current_width = -1;
static int current_height = -1;
static int current_fmt = 0;
static int current_rotate = 0;
static int current_fd;
static int capture = 0;
static cairo_surface_t *surface = NULL;
static int preview_width = -1;
@ -190,6 +191,20 @@ init_mmap(int fd)
}
}
static int
v4l2_ctrl_set(int fd, uint32_t id, int val)
{
struct v4l2_control ctrl = {0};
ctrl.id = id;
ctrl.value = val;
if(xioctl(fd, VIDIOC_S_CTRL, &ctrl) == -1){
g_printerr("Failed to set control %d to %d", id, val);
return -1;
}
return 0;
}
static void
init_sensor(char* fn, int width, int height, int mbus)
{
@ -213,7 +228,10 @@ init_sensor(char* fn, int width, int height, int mbus)
g_printerr("Driver returned %dx%d fmt %d\n",
fmt.format.width, fmt.format.height,
fmt.format.code);
close(fd);
v4l2_ctrl_set(fd, V4L2_CID_AUTOGAIN, 0);
close(current_fd);
current_fd = fd;
}
static void
@ -552,6 +570,9 @@ get_frame(int fd)
return TRUE;
}
static int
config_ini_handler(void *user, const char *section, const char *name,
const char *value)