diff options
author | Sakari Ailus <sakari.ailus@iki.fi> | 2014-04-12 16:23:53 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2014-04-16 20:07:43 +0200 |
commit | 37aa7537eedea07bc68d28b672fdc6803547f27a (patch) | |
tree | a41b9f969d37d80c443639a76d2b1488ff9ae838 | |
parent | b846edc8c55db1d270b6a0e629ac5d8402480368 (diff) |
Separate device object initialisation and opening
Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi>
-rw-r--r-- | yavta.c | 15 |
1 files changed, 10 insertions, 5 deletions
@@ -220,17 +220,20 @@ static const char *v4l2_format_name(unsigned int fourcc) return name; } -static int video_open(struct device *dev, const char *devname, int no_query) +static void video_init(struct device *dev) { - struct v4l2_capability cap; - unsigned int capabilities; - int ret; - memset(dev, 0, sizeof *dev); dev->fd = -1; dev->memtype = V4L2_MEMORY_MMAP; dev->buffers = NULL; dev->type = (enum v4l2_buf_type)-1; +} + +static int video_open(struct device *dev, const char *devname, int no_query) +{ + struct v4l2_capability cap; + unsigned int capabilities; + int ret; dev->fd = open(devname, O_RDWR); if (dev->fd < 0) { @@ -1599,6 +1602,8 @@ int main(int argc, char *argv[]) unsigned int rt_priority = 1; + video_init(&dev); + opterr = 0; while ((c = getopt_long(argc, argv, "c::Cd:f:F::hi:Iln:pq:r:R::s:t:uw:", opts, NULL)) != -1) { |