@@ -299,6 +299,9 @@ argp_saved_libs=$LIBS
AC_SUBST([ARGP_LIBS])
LIBS=$argp_saved_libs
+AC_CHECK_FUNCS([fork], AC_DEFINE([HAVE_LIBV4LCONVERT_HELPERS],[1],[whether to use libv4lconvert helpers]))
+AM_CONDITIONAL([HAVE_LIBV4LCONVERT_HELPERS], [test x$ac_cv_func_fork = xyes])
+
AC_CHECK_HEADER([linux/i2c-dev.h], [linux_i2c_dev=yes], [linux_i2c_dev=no])
AM_CONDITIONAL([HAVE_LINUX_I2C_DEV], [test x$linux_i2c_dev = xyes])
@@ -1,6 +1,8 @@
if WITH_DYN_LIBV4L
lib_LTLIBRARIES = libv4lconvert.la
+if HAVE_LIBV4LCONVERT_HELPERS
libv4lconvertpriv_PROGRAMS = ov511-decomp ov518-decomp
+endif
include_HEADERS = ../include/libv4lconvert.h
pkgconfig_DATA = libv4lconvert.pc
LIBV4LCONVERT_VERSION = -version-info 0
@@ -16,11 +18,14 @@ libv4lconvert_la_SOURCES = \
control/libv4lcontrol.c control/libv4lcontrol.h control/libv4lcontrol-priv.h \
processing/libv4lprocessing.c processing/whitebalance.c processing/autogain.c \
processing/gamma.c processing/libv4lprocessing.h processing/libv4lprocessing-priv.h \
- helper.c helper-funcs.h libv4lconvert-priv.h libv4lsyscall-priv.h \
+ helper-funcs.h libv4lconvert-priv.h libv4lsyscall-priv.h \
tinyjpeg.h tinyjpeg-internal.h
if HAVE_JPEG
libv4lconvert_la_SOURCES += jpeg_memsrcdest.c jpeg_memsrcdest.h
endif
+if HAVE_LIBV4LCONVERT_HELPERS
+libv4lconvert_la_SOURCES += helper.c
+endif
libv4lconvert_la_CPPFLAGS = $(CFLAG_VISIBILITY) $(ENFORCE_LIBV4L_STATIC)
libv4lconvert_la_LDFLAGS = $(LIBV4LCONVERT_VERSION) -lrt -lm $(JPEG_LIBS) $(ENFORCE_LIBV4L_STATIC)
@@ -122,8 +122,10 @@ static const struct v4lconvert_pixfmt supported_src_pixfmts[] = {
{ V4L2_PIX_FMT_JPEG, 0, 7, 7, 0 },
{ V4L2_PIX_FMT_PJPG, 0, 7, 7, 1 },
{ V4L2_PIX_FMT_JPGL, 0, 7, 7, 1 },
+#ifdef HAVE_LIBV4LCONVERT_HELPERS
{ V4L2_PIX_FMT_OV511, 0, 7, 7, 1 },
{ V4L2_PIX_FMT_OV518, 0, 7, 7, 1 },
+#endif
/* uncompressed bayer */
{ V4L2_PIX_FMT_SBGGR8, 8, 8, 8, 0 },
{ V4L2_PIX_FMT_SGBRG8, 8, 8, 8, 0 },
@@ -278,7 +280,9 @@ void v4lconvert_destroy(struct v4lconvert_data *data)
if (data->cinfo_initialized)
jpeg_destroy_decompress(&data->cinfo);
#endif // HAVE_JPEG
+#ifdef HAVE_LIBV4LCONVERT_HELPERS
v4lconvert_helper_cleanup(data);
+#endif
free(data->convert1_buf);
free(data->convert2_buf);
free(data->rotate90_buf);
@@ -833,6 +837,7 @@ static int v4lconvert_convert_pixfmt(struct v4lconvert_data *data,
return -1;
}
break;
+#ifdef HAVE_LIBV4LCONVERT_HELPERS
case V4L2_PIX_FMT_OV511:
if (v4lconvert_helper_decompress(data, LIBV4LCONVERT_PRIV_DIR "/ov511-decomp",
src, src_size, d, d_size, width, height, yvu)) {
@@ -849,6 +854,7 @@ static int v4lconvert_convert_pixfmt(struct v4lconvert_data *data,
return -1;
}
break;
+#endif
}
switch (dest_pix_fmt) {