Added v4l2 controls
This commit is contained in:
parent
2f3b1afe2d
commit
e41b090090
23
main.c
23
main.c
|
@ -61,6 +61,7 @@ static int current_width = -1;
|
||||||
static int current_height = -1;
|
static int current_height = -1;
|
||||||
static int current_fmt = 0;
|
static int current_fmt = 0;
|
||||||
static int current_rotate = 0;
|
static int current_rotate = 0;
|
||||||
|
static int current_fd;
|
||||||
static int capture = 0;
|
static int capture = 0;
|
||||||
static cairo_surface_t *surface = NULL;
|
static cairo_surface_t *surface = NULL;
|
||||||
static int preview_width = -1;
|
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
|
static void
|
||||||
init_sensor(char* fn, int width, int height, int mbus)
|
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",
|
g_printerr("Driver returned %dx%d fmt %d\n",
|
||||||
fmt.format.width, fmt.format.height,
|
fmt.format.width, fmt.format.height,
|
||||||
fmt.format.code);
|
fmt.format.code);
|
||||||
close(fd);
|
|
||||||
|
v4l2_ctrl_set(fd, V4L2_CID_AUTOGAIN, 0);
|
||||||
|
close(current_fd);
|
||||||
|
current_fd = fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -552,6 +570,9 @@ get_frame(int fd)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
config_ini_handler(void *user, const char *section, const char *name,
|
config_ini_handler(void *user, const char *section, const char *name,
|
||||||
const char *value)
|
const char *value)
|
||||||
|
|
Loading…
Reference in New Issue