diff options
author | Milan Zamazal <mzamazal@redhat.com> | 2025-03-27 19:59:43 +0100 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2025-03-28 02:09:15 +0200 |
commit | 1375b07edea987856f2cb5cb4cdf4e705411777a (patch) | |
tree | 651b20f85ccd12b3ee5ba3e447ca767cadf83849 /src/ipa | |
parent | 8a4c2682beb3de4951b02147407c290480e36cc2 (diff) |
ipa: simple: Report contrast in metadata
Provide the requested contrast value, if any, in the metadata to add to
the completed requests.
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Milan Zamazal <mzamazal@redhat.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/ipa')
-rw-r--r-- | src/ipa/simple/algorithms/lut.cpp | 15 | ||||
-rw-r--r-- | src/ipa/simple/algorithms/lut.h | 5 | ||||
-rw-r--r-- | src/ipa/simple/ipa_context.h | 1 |
3 files changed, 20 insertions, 1 deletions
diff --git a/src/ipa/simple/algorithms/lut.cpp b/src/ipa/simple/algorithms/lut.cpp index a06cdeba..e8638f27 100644 --- a/src/ipa/simple/algorithms/lut.cpp +++ b/src/ipa/simple/algorithms/lut.cpp @@ -87,9 +87,11 @@ int16_t Lut::ccmValue(unsigned int i, float ccm) const void Lut::prepare(IPAContext &context, [[maybe_unused]] const uint32_t frame, - [[maybe_unused]] IPAFrameContext &frameContext, + IPAFrameContext &frameContext, DebayerParams *params) { + frameContext.contrast = context.activeState.knobs.contrast; + /* * Update the gamma table if needed. This means if black level changes * and since the black level gets updated only if a lower value is @@ -139,6 +141,17 @@ void Lut::prepare(IPAContext &context, } } +void Lut::process([[maybe_unused]] IPAContext &context, + [[maybe_unused]] const uint32_t frame, + [[maybe_unused]] IPAFrameContext &frameContext, + [[maybe_unused]] const SwIspStats *stats, + ControlList &metadata) +{ + const auto &contrast = frameContext.contrast; + if (contrast) + metadata.set(controls::Contrast, contrast.value()); +} + REGISTER_IPA_ALGORITHM(Lut, "Lut") } /* namespace ipa::soft::algorithms */ diff --git a/src/ipa/simple/algorithms/lut.h b/src/ipa/simple/algorithms/lut.h index 77324800..ba8b9021 100644 --- a/src/ipa/simple/algorithms/lut.h +++ b/src/ipa/simple/algorithms/lut.h @@ -30,6 +30,11 @@ public: const uint32_t frame, IPAFrameContext &frameContext, DebayerParams *params) override; + void process(IPAContext &context, + const uint32_t frame, + IPAFrameContext &frameContext, + const SwIspStats *stats, + ControlList &metadata) override; private: void updateGammaTable(IPAContext &context); diff --git a/src/ipa/simple/ipa_context.h b/src/ipa/simple/ipa_context.h index bfac835b..10d539f5 100644 --- a/src/ipa/simple/ipa_context.h +++ b/src/ipa/simple/ipa_context.h @@ -74,6 +74,7 @@ struct IPAFrameContext : public FrameContext { double red; double blue; } gains; + std::optional<double> contrast; }; struct IPAContext { |