--- 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 #endif #include +#include +#include +#include #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); +}