diff options
Diffstat (limited to 'src/ipa/simple/ipa_context.h')
-rw-r--r-- | src/ipa/simple/ipa_context.h | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/src/ipa/simple/ipa_context.h b/src/ipa/simple/ipa_context.h index 4af51306..7dc2cd7a 100644 --- a/src/ipa/simple/ipa_context.h +++ b/src/ipa/simple/ipa_context.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ /* - * Copyright (C) 2024 Red Hat, Inc. + * Copyright (C) 2024-2025 Red Hat, Inc. * * Simple pipeline IPA Context */ @@ -13,8 +13,13 @@ #include <libcamera/controls.h> +#include "libcamera/internal/matrix.h" +#include "libcamera/internal/vector.h" + #include <libipa/fc_queue.h> +#include "core_ipa_interface.h" + namespace libcamera { namespace ipa::soft { @@ -24,6 +29,7 @@ struct IPASessionConfiguration { struct { int32_t exposureMin, exposureMax; double againMin, againMax, againMinStep; + utils::Duration lineDuration; } agc; struct { std::optional<uint8_t> level; @@ -36,10 +42,9 @@ struct IPAActiveState { } blc; struct { - double red; - double green; - double blue; - } gains; + RGB<float> gains; + unsigned int temperatureK; + } awb; static constexpr unsigned int kGammaLookupSize = 1024; struct { @@ -47,6 +52,12 @@ struct IPAActiveState { uint8_t blackLevel; double contrast; } gamma; + + struct { + Matrix<float, 3, 3> ccm; + bool changed; + } ccm; + struct { /* 0..2 range, 1.0 = normal */ std::optional<double> contrast; @@ -55,9 +66,18 @@ struct IPAActiveState { struct IPAFrameContext : public FrameContext { struct { + Matrix<float, 3, 3> ccm; + } ccm; + + struct { int32_t exposure; double gain; } sensor; + struct { + double red; + double blue; + } gains; + std::optional<double> contrast; }; struct IPAContext { @@ -66,10 +86,12 @@ struct IPAContext { { } + IPACameraSensorInfo sensorInfo; IPASessionConfiguration configuration; IPAActiveState activeState; FCQueue<IPAFrameContext> frameContexts; ControlInfoMap::Map ctrlMap; + bool ccmEnabled; }; } /* namespace ipa::soft */ |