| --- zbar-0.10/configure.ac |
| +++ zbar-0.10/configure.ac |
| @@ -147,19 +147,13 @@ |
| with_video="no" |
| AS_IF([test "x$enable_video" != "xno"], |
| [AS_IF([test "x$win32" = "xno"], |
| - [AC_CHECK_HEADERS([linux/videodev.h], [with_video="v4l1"], |
| - [AC_MSG_FAILURE([test for video support failed! |
| -rebuild your kernel to include video4linux support or |
| -configure --disable-video to skip building video support.])]) |
| - AC_CHECK_HEADERS([linux/videodev2.h], [with_video="v4l2"], |
| + [AC_CHECK_HEADERS([linux/videodev2.h], [with_video="v4l2"], |
| [AC_MSG_WARN([v4l2 API not detected, upgrade your kernel!])])], |
| [AC_CHECK_HEADERS([vfw.h], [with_video="vfw"], |
| [AC_MSG_FAILURE([test for VfW video support failed! |
| configure --disable-video to skip building vidoe support.])])]) |
| ]) |
| AM_CONDITIONAL([HAVE_VIDEO], [test "x$enable_video" != "xno"]) |
| -AM_CONDITIONAL([HAVE_V4L1], |
| - [test "x$with_video" = "xv4l1" || test "x$with_video" = "xv4l2"]) |
| AM_CONDITIONAL([HAVE_V4L2], [test "x$with_video" = "xv4l2"]) |
| |
| dnl X |
| --- zbar-0.10/zbar/Makefile.am.inc |
| +++ zbar-0.10/zbar/Makefile.am.inc |
| @@ -53,12 +53,9 @@ |
| zbar_libzbar_la_SOURCES += zbar/processor/posix.h zbar/processor/posix.c |
| endif |
| |
| -if HAVE_V4L1 |
| -zbar_libzbar_la_SOURCES += zbar/video/v4l1.c |
| if HAVE_V4L2 |
| zbar_libzbar_la_SOURCES += zbar/video/v4l2.c |
| endif |
| -endif |
| if WIN32 |
| if HAVE_VIDEO |
| zbar_libzbar_la_SOURCES += zbar/video/vfw.c |
| --- zbar-0.10/zbar/video/v4l2.c |
| +++ zbar-0.10/zbar/video/v4l2.c |
| @@ -39,6 +39,9 @@ |
| # include <sys/mman.h> |
| #endif |
| #include <linux/videodev2.h> |
| +#include <sys/stat.h> |
| +#include <unistd.h> |
| +#include <fcntl.h> |
| |
| #include "video.h" |
| #include "image.h" |
| @@ -507,3 +507,23 @@ |
| vdo->dq = v4l2_dq; |
| return(0); |
| } |
| + |
| +int _zbar_video_open (zbar_video_t *vdo, |
| + const char *dev) |
| +{ |
| + vdo->fd = open(dev, O_RDWR); |
| + if(vdo->fd < 0) |
| + return(err_capture_str(vdo, SEV_ERROR, ZBAR_ERR_SYSTEM, __func__, |
| + "opening video device '%s'", dev)); |
| + zprintf(1, "opened camera device %s (fd=%d)\n", dev, vdo->fd); |
| + |
| + int rc = -1; |
| + if(vdo->intf != VIDEO_V4L1) |
| + rc = _zbar_v4l2_probe(vdo); |
| + |
| + if(rc && vdo->fd >= 0) { |
| + close(vdo->fd); |
| + vdo->fd = -1; |
| + } |
| + return(rc); |
| +} |