[PATCH 10/19] libcamera: software_isp: Call Algorithm::process

Milan Zamazal mzamazal at redhat.com
Wed Jun 26 09:20:51 CEST 2024


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 at redhat.com>
---
 src/ipa/simple/soft_simple.cpp | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/ipa/simple/soft_simple.cpp b/src/ipa/simple/soft_simple.cpp
index 6ddb4004..c0cb6769 100644
--- a/src/ipa/simple/soft_simple.cpp
+++ b/src/ipa/simple/soft_simple.cpp
@@ -265,10 +265,21 @@ void IPASoftSimple::stop()
 }
 
 void IPASoftSimple::processStats(
-	[[maybe_unused]] const uint32_t frame,
+	const uint32_t frame,
 	[[maybe_unused]] const uint32_t bufferId,
 	const ControlList &sensorControls)
 {
+	IPAFrameContext &frameContext = context_.frameContexts.get(frame);
+	/*
+	 * \todo Software ISP currently doesn't produce any metadata so it is
+	 * possible to use a dummy metadata instance here. But metadata should be
+	 * properly handled in future.
+	 */
+	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);
-- 
2.44.1



More information about the libcamera-devel mailing list