summaryrefslogtreecommitdiff
path: root/include/ipa
diff options
context:
space:
mode:
authorJacopo Mondi <jacopo@jmondi.org>2019-10-22 01:54:17 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-11-20 21:47:44 +0200
commit4e5e352f3b43fed96987a78eae90f144f26ed7a1 (patch)
tree6ffbfa095e49f214821b9e692b081b336198f88c /include/ipa
parentb44cb6b5f89b7f0c7b8124a689026918116bb03c (diff)
ipa: Define serialized controls
Define data structures to be used during interaction between IPA modules and pipeline handlers to serialize control lists and control info maps. Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'include/ipa')
-rw-r--r--include/ipa/ipa_controls.h54
-rw-r--r--include/ipa/meson.build1
2 files changed, 55 insertions, 0 deletions
diff --git a/include/ipa/ipa_controls.h b/include/ipa/ipa_controls.h
new file mode 100644
index 00000000..de3a017b
--- /dev/null
+++ b/include/ipa/ipa_controls.h
@@ -0,0 +1,54 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/*
+ * Copyright (C) 2019, Google Inc.
+ *
+ * ipa_controls.h - IPA Control handling
+ */
+#ifndef __LIBCAMERA_IPA_CONTROLS_H__
+#define __LIBCAMERA_IPA_CONTROLS_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define IPA_CONTROLS_FORMAT_VERSION 1
+
+struct ipa_controls_header {
+ uint32_t version;
+ uint32_t handle;
+ uint32_t entries;
+ uint32_t size;
+ uint32_t data_offset;
+ uint32_t reserved[3];
+};
+
+struct ipa_control_value_entry {
+ uint32_t id;
+ uint32_t type;
+ uint32_t count;
+ uint32_t offset;
+};
+
+struct ipa_control_range_entry {
+ uint32_t id;
+ uint32_t type;
+ uint32_t offset;
+ uint32_t padding[1];
+};
+
+union ipa_control_value_data {
+ bool b;
+ int32_t i32;
+ int64_t i64;
+};
+
+struct ipa_control_range_data {
+ union ipa_control_value_data min;
+ union ipa_control_value_data max;
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __LIBCAMERA_IPA_CONTROLS_H__ */
diff --git a/include/ipa/meson.build b/include/ipa/meson.build
index a0ce96ba..695a4183 100644
--- a/include/ipa/meson.build
+++ b/include/ipa/meson.build
@@ -1,4 +1,5 @@
libcamera_ipa_api = files([
+ 'ipa_controls.h',
'ipa_interface.h',
'ipa_module_info.h',
])