From patchwork Mon May 27 22:35:33 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 1319 Return-Path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 60F59618F9 for ; Tue, 28 May 2019 00:35:48 +0200 (CEST) Received: from localhost.localdomain (unknown [96.44.9.117]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 969FBE3A; Tue, 28 May 2019 00:35:47 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1558996548; bh=2ljHS3N0Hjvdp0oGmhX+DJMavB2ai6e9d3as424ggbA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cu7Cz57lY9J6enz/iLUQXfMjE8RFdiBxV69EpwNwoum0tJvJFzzn0mynsraMjBhDN EqJsLVp/RYbPPEypTCe3urslyu3+fcMsQsMi4aPK9GFxVZlWZef1d0lp5e5gtam4nZ CHzOjP9FR5EECrHURJNqxALCA5FtEJA+K53G3imA= From: Paul Elder To: libcamera-devel@lists.libcamera.org Date: Mon, 27 May 2019 18:35:33 -0400 Message-Id: <20190527223540.21855-2-paul.elder@ideasonboard.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190527223540.21855-1-paul.elder@ideasonboard.com> References: <20190527223540.21855-1-paul.elder@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 1/8] libcamera: ipa_interface: add header X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 May 2019 22:35:48 -0000 Define an IPAInterface class which will contain an IPA implementation. The methods that the IPAInterface exposes form the interface to the IPA implementation, hence the name. IPA module shared objects will implement this class. This also means that IPA module shared objects must be implemented in C++, so remove the C test IPA module. Signed-off-by: Paul Elder Reviewed-by: Laurent Pinchart --- include/libcamera/ipa/ipa_interface.h | 22 ++++++++++++++++++++++ include/libcamera/meson.build | 1 + src/libcamera/ipa_interface.cpp | 27 +++++++++++++++++++++++++++ src/libcamera/meson.build | 1 + test/ipa/ipa_test.cpp | 2 -- test/ipa/meson.build | 1 - test/ipa/shared_test.c | 6 ------ 7 files changed, 51 insertions(+), 9 deletions(-) create mode 100644 include/libcamera/ipa/ipa_interface.h create mode 100644 src/libcamera/ipa_interface.cpp delete mode 100644 test/ipa/shared_test.c diff --git a/include/libcamera/ipa/ipa_interface.h b/include/libcamera/ipa/ipa_interface.h new file mode 100644 index 0000000..2c5eb1f --- /dev/null +++ b/include/libcamera/ipa/ipa_interface.h @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2019, Google Inc. + * + * ipa_interface.h - Image Processing Algorithm interface + */ +#ifndef __LIBCAMERA_IPA_INTERFACE_H__ +#define __LIBCAMERA_IPA_INTERFACE_H__ + +namespace libcamera { + +class IPAInterface +{ +public: + virtual ~IPAInterface() {} + + virtual int init() = 0; +}; + +} /* namespace libcamera */ + +#endif /* __LIBCAMERA_IPA_INTERFACE_H__ */ diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build index 1fcf6b5..1b86fdc 100644 --- a/include/libcamera/meson.build +++ b/include/libcamera/meson.build @@ -5,6 +5,7 @@ libcamera_api = files([ 'event_dispatcher.h', 'event_notifier.h', 'geometry.h', + 'ipa/ipa_interface.h', 'ipa/ipa_module_info.h', 'object.h', 'request.h', diff --git a/src/libcamera/ipa_interface.cpp b/src/libcamera/ipa_interface.cpp new file mode 100644 index 0000000..9d30da2 --- /dev/null +++ b/src/libcamera/ipa_interface.cpp @@ -0,0 +1,27 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2019, Google Inc. + * + * ipa_interface.cpp - Image Processing Algorithm interface + */ + +#include + +/** + * \file ipa_interface.h + * \brief Image Processing Algorithm interface + */ + +namespace libcamera { + +/** + * \class IPAInterface + * \brief Interface for IPA implementation + */ + +/** + * \fn IPAInterface::init() + * \brief Initialise the IPAInterface + */ + +} /* namespace libcamera */ diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build index 6a73580..07335e5 100644 --- a/src/libcamera/meson.build +++ b/src/libcamera/meson.build @@ -10,6 +10,7 @@ libcamera_sources = files([ 'event_notifier.cpp', 'formats.cpp', 'geometry.cpp', + 'ipa_interface.cpp', 'ipa_module.cpp', 'log.cpp', 'media_device.cpp', diff --git a/test/ipa/ipa_test.cpp b/test/ipa/ipa_test.cpp index 9861ee2..2dbc702 100644 --- a/test/ipa/ipa_test.cpp +++ b/test/ipa/ipa_test.cpp @@ -60,8 +60,6 @@ protected: 9001, }; - count += runTest("test/ipa/ipa-dummy-c.so", testInfo); - count += runTest("test/ipa/ipa-dummy-cpp.so", testInfo); if (count < 0) diff --git a/test/ipa/meson.build b/test/ipa/meson.build index ecde313..08ee95c 100644 --- a/test/ipa/meson.build +++ b/test/ipa/meson.build @@ -1,5 +1,4 @@ ipa_modules_sources = [ - ['ipa-dummy-c', 'shared_test.c'], ['ipa-dummy-cpp', 'shared_test.cpp'], ] diff --git a/test/ipa/shared_test.c b/test/ipa/shared_test.c deleted file mode 100644 index 87d182b..0000000 --- a/test/ipa/shared_test.c +++ /dev/null @@ -1,6 +0,0 @@ -#include - -const struct IPAModuleInfo ipaModuleInfo = { - .name = "It's over nine thousand!", - .version = 9001, -};