summaryrefslogtreecommitdiff
path: root/include/ipa
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-09-14 22:47:28 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-09-15 13:57:08 +0300
commit1e704c84a946f988c290169f060aa088d53fc4a8 (patch)
treeeaeea3e6465ca1e04d6003e8bd14731e74645221 /include/ipa
parentcecfeed61e8bcb4b53c2ed8e1b26d8c8af38b8e3 (diff)
libcamera: Move ipa includes to the same level as libcamera
The ipa includes are located in include/libcamera/ipa/. This gives an incorrect impression that they are a sub-part of the rest of the libcamera API, while they are the API towards the IPA the same way that include/libcamera/ contains the API towards applications. To clarify this, move them to include/ipa/. The IPA headers are however still part of libcamera, so installing them to ${prefix}/include/ipa/ would make little sense. To fix this, move the application facing API to ${prefix}/include/libcamera/libcamera/ when installed, and the IPA to ${prefix}/include/libcamera/ipa/. When major versions of libcamera will be released, they could then be installed side by side in ${prefix}/include/libcamera-${version}/. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'include/ipa')
-rw-r--r--include/ipa/ipa_interface.h22
-rw-r--r--include/ipa/ipa_module_info.h30
-rw-r--r--include/ipa/meson.build7
3 files changed, 59 insertions, 0 deletions
diff --git a/include/ipa/ipa_interface.h b/include/ipa/ipa_interface.h
new file mode 100644
index 00000000..2c5eb1fd
--- /dev/null
+++ b/include/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/ipa/ipa_module_info.h b/include/ipa/ipa_module_info.h
new file mode 100644
index 00000000..d9e33c1d
--- /dev/null
+++ b/include/ipa/ipa_module_info.h
@@ -0,0 +1,30 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/*
+ * Copyright (C) 2019, Google Inc.
+ *
+ * ipa_module_info.h - Image Processing Algorithm module information
+ */
+#ifndef __LIBCAMERA_IPA_MODULE_INFO_H__
+#define __LIBCAMERA_IPA_MODULE_INFO_H__
+
+#include <stdint.h>
+
+#define IPA_MODULE_API_VERSION 1
+
+namespace libcamera {
+
+struct IPAModuleInfo {
+ int moduleAPIVersion;
+ uint32_t pipelineVersion;
+ char pipelineName[256];
+ char name[256];
+ char license[64];
+} __attribute__((packed));
+
+extern "C" {
+extern const struct IPAModuleInfo ipaModuleInfo;
+};
+
+}; /* namespace libcamera */
+
+#endif /* __LIBCAMERA_IPA_MODULE_INFO_H__ */
diff --git a/include/ipa/meson.build b/include/ipa/meson.build
new file mode 100644
index 00000000..a0ce96ba
--- /dev/null
+++ b/include/ipa/meson.build
@@ -0,0 +1,7 @@
+libcamera_ipa_api = files([
+ 'ipa_interface.h',
+ 'ipa_module_info.h',
+])
+
+install_headers(libcamera_ipa_api,
+ subdir: join_paths(libcamera_include_dir, 'ipa'))