diff options
Diffstat (limited to 'src/ipa/ipu3/ipa_context.h')
-rw-r--r-- | src/ipa/ipu3/ipa_context.h | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/src/ipa/ipu3/ipa_context.h b/src/ipa/ipu3/ipa_context.h index 42e11141..e9a3863b 100644 --- a/src/ipa/ipu3/ipa_context.h +++ b/src/ipa/ipu3/ipa_context.h @@ -8,22 +8,18 @@ #pragma once -#include <array> - #include <linux/intel-ipu3.h> #include <libcamera/base/utils.h> -#include <libcamera/controls.h> #include <libcamera/geometry.h> +#include <libipa/fc_queue.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; @@ -45,6 +41,7 @@ struct IPASessionConfiguration { struct { int32_t defVBlank; utils::Duration lineDuration; + Size size; } sensor; }; @@ -76,24 +73,18 @@ struct IPAActiveState { } toneMapping; }; -struct IPAFrameContext { - IPAFrameContext(); - IPAFrameContext(uint32_t id, const ControlList &reqControls); - +struct IPAFrameContext : public FrameContext { struct { uint32_t exposure; double gain; } sensor; - - uint32_t frame; - ControlList frameControls; }; struct IPAContext { IPASessionConfiguration configuration; IPAActiveState activeState; - std::array<IPAFrameContext, kMaxFrameContexts> frameContexts; + FCQueue<IPAFrameContext> frameContexts; }; } /* namespace ipa::ipu3 */ |