diff options
author | Jacopo Mondi <jacopo@jmondi.org> | 2019-10-22 01:54:17 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-11-20 21:47:44 +0200 |
commit | 4e5e352f3b43fed96987a78eae90f144f26ed7a1 (patch) | |
tree | 6ffbfa095e49f214821b9e692b081b336198f88c /include | |
parent | b44cb6b5f89b7f0c7b8124a689026918116bb03c (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')
-rw-r--r-- | include/ipa/ipa_controls.h | 54 | ||||
-rw-r--r-- | include/ipa/meson.build | 1 |
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', ]) |