{"id":1338,"url":"https://patchwork.libcamera.org/api/1.1/patches/1338/?format=json","web_url":"https://patchwork.libcamera.org/patch/1338/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20190603231637.28554-2-paul.elder@ideasonboard.com>","date":"2019-06-03T23:16:28","name":"[libcamera-devel,v2,01/10] libcamera: ipa_interface: add header","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"06b9cb354f2a2025be67c3a4d86f9f007bfa6024","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/1.1/people/17/?format=json","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/1338/mbox/","series":[{"id":335,"url":"https://patchwork.libcamera.org/api/1.1/series/335/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=335","date":"2019-06-03T23:16:27","name":"Add IPAManager and IPAInterface","version":2,"mbox":"https://patchwork.libcamera.org/series/335/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/1338/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/1338/checks/","tags":{},"headers":{"Return-Path":"<paul.elder@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F3EB5618F7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  4 Jun 2019 01:16:47 +0200 (CEST)","from localhost.localdomain (unknown [96.44.9.117])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C7E4E530;\n\tTue,  4 Jun 2019 01:16:46 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1559603807;\n\tbh=7IrbRSZZHfyJ2kt6IZiUrLbvK2ZkrHJbfZYAqsiuvrQ=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=awr3rsGR/uDMC2PByUrZuh8eg1FhDArxPcV38gs3BL/yeHoufxbP/TZxfizr580o6\n\tDRmcYyjY/5DGdEv81/Xu9sDdzJYGX+jF9rcuBiP1Sf7xyoZehiFpeBfRRlNi/heCSd\n\tPfqahMG1c6WKVCo6Tw/2tE83BUyAj/DAUuB7s2yY=","From":"Paul Elder <paul.elder@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Mon,  3 Jun 2019 19:16:28 -0400","Message-Id":"<20190603231637.28554-2-paul.elder@ideasonboard.com>","X-Mailer":"git-send-email 2.20.1","In-Reply-To":"<20190603231637.28554-1-paul.elder@ideasonboard.com>","References":"<20190603231637.28554-1-paul.elder@ideasonboard.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v2 01/10] libcamera: ipa_interface: add\n\theader","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Mon, 03 Jun 2019 23:16:48 -0000"},"content":"Define an IPAInterface class which will contain an IPA implementation.\nThe methods that the IPAInterface exposes form the interface to the IPA\nimplementation, hence the name. IPA module shared objects will implement\nthis class.\n\nThis also means that IPA module shared objects must be implemented in\nC++, so remove the C test IPA module.\n\nSigned-off-by: Paul Elder <paul.elder@ideasonboard.com>\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\nNo change in v2\n\n include/libcamera/ipa/ipa_interface.h | 22 ++++++++++++++++++++++\n include/libcamera/meson.build         |  1 +\n src/libcamera/ipa_interface.cpp       | 27 +++++++++++++++++++++++++++\n src/libcamera/meson.build             |  1 +\n test/ipa/ipa_test.cpp                 |  2 --\n test/ipa/meson.build                  |  1 -\n test/ipa/shared_test.c                |  6 ------\n 7 files changed, 51 insertions(+), 9 deletions(-)\n create mode 100644 include/libcamera/ipa/ipa_interface.h\n create mode 100644 src/libcamera/ipa_interface.cpp\n delete mode 100644 test/ipa/shared_test.c","diff":"diff --git a/include/libcamera/ipa/ipa_interface.h b/include/libcamera/ipa/ipa_interface.h\nnew file mode 100644\nindex 0000000..2c5eb1f\n--- /dev/null\n+++ b/include/libcamera/ipa/ipa_interface.h\n@@ -0,0 +1,22 @@\n+/* SPDX-License-Identifier: LGPL-2.1-or-later */\n+/*\n+ * Copyright (C) 2019, Google Inc.\n+ *\n+ * ipa_interface.h - Image Processing Algorithm interface\n+ */\n+#ifndef __LIBCAMERA_IPA_INTERFACE_H__\n+#define __LIBCAMERA_IPA_INTERFACE_H__\n+\n+namespace libcamera {\n+\n+class IPAInterface\n+{\n+public:\n+\tvirtual ~IPAInterface() {}\n+\n+\tvirtual int init() = 0;\n+};\n+\n+} /* namespace libcamera */\n+\n+#endif /* __LIBCAMERA_IPA_INTERFACE_H__ */\ndiff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\nindex 1fcf6b5..1b86fdc 100644\n--- a/include/libcamera/meson.build\n+++ b/include/libcamera/meson.build\n@@ -5,6 +5,7 @@ libcamera_api = files([\n     'event_dispatcher.h',\n     'event_notifier.h',\n     'geometry.h',\n+    'ipa/ipa_interface.h',\n     'ipa/ipa_module_info.h',\n     'object.h',\n     'request.h',\ndiff --git a/src/libcamera/ipa_interface.cpp b/src/libcamera/ipa_interface.cpp\nnew file mode 100644\nindex 0000000..9d30da2\n--- /dev/null\n+++ b/src/libcamera/ipa_interface.cpp\n@@ -0,0 +1,27 @@\n+/* SPDX-License-Identifier: LGPL-2.1-or-later */\n+/*\n+ * Copyright (C) 2019, Google Inc.\n+ *\n+ * ipa_interface.cpp - Image Processing Algorithm interface\n+ */\n+\n+#include <libcamera/ipa/ipa_interface.h>\n+\n+/**\n+ * \\file ipa_interface.h\n+ * \\brief Image Processing Algorithm interface\n+ */\n+\n+namespace libcamera {\n+\n+/**\n+ * \\class IPAInterface\n+ * \\brief Interface for IPA implementation\n+ */\n+\n+/**\n+ * \\fn IPAInterface::init()\n+ * \\brief Initialise the IPAInterface\n+ */\n+\n+} /* namespace libcamera */\ndiff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\nindex 6a73580..07335e5 100644\n--- a/src/libcamera/meson.build\n+++ b/src/libcamera/meson.build\n@@ -10,6 +10,7 @@ libcamera_sources = files([\n     'event_notifier.cpp',\n     'formats.cpp',\n     'geometry.cpp',\n+    'ipa_interface.cpp',\n     'ipa_module.cpp',\n     'log.cpp',\n     'media_device.cpp',\ndiff --git a/test/ipa/ipa_test.cpp b/test/ipa/ipa_test.cpp\nindex 9861ee2..2dbc702 100644\n--- a/test/ipa/ipa_test.cpp\n+++ b/test/ipa/ipa_test.cpp\n@@ -60,8 +60,6 @@ protected:\n \t\t\t9001,\n \t\t};\n \n-\t\tcount += runTest(\"test/ipa/ipa-dummy-c.so\", testInfo);\n-\n \t\tcount += runTest(\"test/ipa/ipa-dummy-cpp.so\", testInfo);\n \n \t\tif (count < 0)\ndiff --git a/test/ipa/meson.build b/test/ipa/meson.build\nindex ecde313..08ee95c 100644\n--- a/test/ipa/meson.build\n+++ b/test/ipa/meson.build\n@@ -1,5 +1,4 @@\n ipa_modules_sources = [\n-    ['ipa-dummy-c',   'shared_test.c'],\n     ['ipa-dummy-cpp', 'shared_test.cpp'],\n ]\n \ndiff --git a/test/ipa/shared_test.c b/test/ipa/shared_test.c\ndeleted file mode 100644\nindex 87d182b..0000000\n--- a/test/ipa/shared_test.c\n+++ /dev/null\n@@ -1,6 +0,0 @@\n-#include <libcamera/ipa/ipa_module_info.h>\n-\n-const struct IPAModuleInfo ipaModuleInfo = {\n-\t.name = \"It's over nine thousand!\",\n-\t.version = 9001,\n-};\n","prefixes":["libcamera-devel","v2","01/10"]}