| From 91e7e4f4765780786e1479d28a70982adea256fc Mon Sep 17 00:00:00 2001 |
| From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> |
| Date: Tue, 25 Jul 2017 21:04:35 +0200 |
| Subject: [PATCH] Build libv4lconvert helper support only when fork() is |
| available |
| |
| Upstream: https://git.linuxtv.org/v4l-utils.git/commit/?id=ed6eeee5f7dbc5b1b5b9263ae9281665d3fbe105 |
| |
| Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> |
| --- |
| configure.ac | 3 +++ |
| lib/libv4lconvert/Makefile.am | 7 ++++++- |
| lib/libv4lconvert/libv4lconvert.c | 6 ++++++ |
| 3 files changed, 15 insertions(+), 1 deletion(-) |
| |
| diff --git a/configure.ac b/configure.ac |
| index ae8f2e2..72c9421 100644 |
| --- a/configure.ac |
| +++ b/configure.ac |
| @@ -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]) |
| |
| diff --git a/lib/libv4lconvert/Makefile.am b/lib/libv4lconvert/Makefile.am |
| index 4f332fa..f266f3e 100644 |
| --- a/lib/libv4lconvert/Makefile.am |
| +++ b/lib/libv4lconvert/Makefile.am |
| @@ -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) |
| |
| diff --git a/lib/libv4lconvert/libv4lconvert.c b/lib/libv4lconvert/libv4lconvert.c |
| index d60774e..1a5ccec 100644 |
| --- a/lib/libv4lconvert/libv4lconvert.c |
| +++ b/lib/libv4lconvert/libv4lconvert.c |
| @@ -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) { |
| -- |
| 1.9.1 |
| |