diff options
Diffstat (limited to 'src/ipa/ipu3/ipa_context.h')
-rw-r--r-- | src/ipa/ipu3/ipa_context.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/ipa/ipu3/ipa_context.h b/src/ipa/ipu3/ipa_context.h index 8d681131..42e11141 100644 --- a/src/ipa/ipu3/ipa_context.h +++ b/src/ipa/ipu3/ipa_context.h @@ -8,16 +8,22 @@ #pragma once +#include <array> + #include <linux/intel-ipu3.h> #include <libcamera/base/utils.h> +#include <libcamera/controls.h> #include <libcamera/geometry.h> namespace libcamera { namespace ipa::ipu3 { +/* Maximum number of frame contexts to be held */ +static constexpr uint32_t kMaxFrameContexts = 16; + struct IPASessionConfiguration { struct { ipu3_uapi_grid_config bdsGrid; @@ -71,17 +77,23 @@ struct IPAActiveState { }; struct IPAFrameContext { + IPAFrameContext(); + IPAFrameContext(uint32_t id, const ControlList &reqControls); + struct { uint32_t exposure; double gain; } sensor; + + uint32_t frame; + ControlList frameControls; }; struct IPAContext { IPASessionConfiguration configuration; IPAActiveState activeState; - IPAFrameContext frameContext; + std::array<IPAFrameContext, kMaxFrameContexts> frameContexts; }; } /* namespace ipa::ipu3 */ |