From patchwork Wed Jul 26 12:51:24 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hugues FRUCHET X-Patchwork-Id: 9864745 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 3255960382 for ; Wed, 26 Jul 2017 12:51:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3393A28748 for ; Wed, 26 Jul 2017 12:51:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 27B9928757; Wed, 26 Jul 2017 12:51:54 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B1B492874C for ; Wed, 26 Jul 2017 12:51:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751658AbdGZMvw (ORCPT ); Wed, 26 Jul 2017 08:51:52 -0400 Received: from mx08-00178001.pphosted.com ([91.207.212.93]:58147 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751563AbdGZMvu (ORCPT ); Wed, 26 Jul 2017 08:51:50 -0400 Received: from pps.filterd (m0046661.ppops.net [127.0.0.1]) by mx08-.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id v6QChiot030897; Wed, 26 Jul 2017 14:51:44 +0200 Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx08-.pphosted.com with ESMTP id 2bwb40nd0a-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Wed, 26 Jul 2017 14:51:44 +0200 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id B7EEE3A; Wed, 26 Jul 2017 12:51:43 +0000 (GMT) Received: from Webmail-eu.st.com (Safex1hubcas22.st.com [10.75.90.92]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id A05ED262F; Wed, 26 Jul 2017 12:51:43 +0000 (GMT) Received: from SAFEX1HUBCAS24.st.com (10.75.90.95) by Safex1hubcas22.st.com (10.75.90.92) with Microsoft SMTP Server (TLS) id 14.3.339.0; Wed, 26 Jul 2017 14:51:43 +0200 Received: from localhost (10.201.23.73) by webmail-ga.st.com (10.75.90.48) with Microsoft SMTP Server (TLS) id 14.3.339.0; Wed, 26 Jul 2017 14:51:42 +0200 From: Hugues Fruchet To: Hans Verkuil , Mauro Carvalho Chehab CC: , Gregor Jasny , Christophe Priouzeau , Benjamin Gaignard , Hugues Fruchet , Thomas Petazzoni Subject: [PATCH v2] Build libv4lconvert helper support only when fork() is available Date: Wed, 26 Jul 2017 14:51:24 +0200 Message-ID: <1501073484-9193-2-git-send-email-hugues.fruchet@st.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1501073484-9193-1-git-send-email-hugues.fruchet@st.com> References: <1501073484-9193-1-git-send-email-hugues.fruchet@st.com> MIME-Version: 1.0 X-Originating-IP: [10.201.23.73] X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-07-26_05:, , signatures=0 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Thomas Petazzoni Signed-off-by: Thomas Petazzoni --- 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) {