summaryrefslogtreecommitdiff
path: root/src/ipa/simple
diff options
context:
space:
mode:
authorMilan Zamazal <mzamazal@redhat.com>2024-09-27 15:46:18 +0200
committerKieran Bingham <kieran.bingham@ideasonboard.com>2024-09-27 15:01:57 +0100
commit9e7437d5c3a40fdae8ed43dffc92d96f4a9c34d7 (patch)
tree3900465ca81046243838a965e10dd5bc441b9556 /src/ipa/simple
parent2dc696be219e3d337ac335217f9dbad5f6822554 (diff)
libcamera: software_isp: Call Algorithm::process
This patch adds Algorithm::process call for the defined algorithms. This is preparation only since there are currently no Algorithm based algorithms defined. As software ISP currently doesn't produce any metadata, a dummy and unused metadata instance is created to satisfy Algorithm::process API. This should be changed in future. Signed-off-by: Milan Zamazal <mzamazal@redhat.com> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com> Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/ipa/simple')
-rw-r--r--src/ipa/simple/soft_simple.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/ipa/simple/soft_simple.cpp b/src/ipa/simple/soft_simple.cpp
index 3a0cb6e0..5beec45a 100644
--- a/src/ipa/simple/soft_simple.cpp
+++ b/src/ipa/simple/soft_simple.cpp
@@ -287,10 +287,21 @@ void IPASoftSimple::fillParamsBuffer(const uint32_t frame)
algo->prepare(context_, frame, frameContext, params_);
}
-void IPASoftSimple::processStats([[maybe_unused]] const uint32_t frame,
+void IPASoftSimple::processStats(const uint32_t frame,
[[maybe_unused]] const uint32_t bufferId,
const ControlList &sensorControls)
{
+ IPAFrameContext &frameContext = context_.frameContexts.get(frame);
+ /*
+ * Software ISP currently does not produce any metadata. Use an empty
+ * ControlList for now.
+ *
+ * \todo Implement proper metadata handling
+ */
+ ControlList metadata(controls::controls);
+ for (auto const &algo : algorithms())
+ algo->process(context_, frame, frameContext, stats_, metadata);
+
SwIspStats::Histogram histogram = stats_->yHistogram;
if (ignoreUpdates_ > 0)
blackLevel_.update(histogram);