From 8a4c2682beb3de4951b02147407c290480e36cc2 Mon Sep 17 00:00:00 2001 From: Kieran Bingham Date: Thu, 27 Mar 2025 19:59:42 +0100 Subject: ipa: simple: Report black levels in metadata Provide the determined black level values in the metadata to add to the completed requests. Reviewed-by: Laurent Pinchart Signed-off-by: Kieran Bingham Signed-off-by: Milan Zamazal Signed-off-by: Laurent Pinchart --- src/ipa/simple/algorithms/blc.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/ipa/simple/algorithms/blc.cpp b/src/ipa/simple/algorithms/blc.cpp index 1d7d370b..53c356c8 100644 --- a/src/ipa/simple/algorithms/blc.cpp +++ b/src/ipa/simple/algorithms/blc.cpp @@ -11,6 +11,8 @@ #include +#include "control_ids.h" + namespace libcamera { namespace ipa::soft::algorithms { @@ -49,8 +51,15 @@ void BlackLevel::process(IPAContext &context, [[maybe_unused]] const uint32_t frame, IPAFrameContext &frameContext, const SwIspStats *stats, - [[maybe_unused]] ControlList &metadata) + ControlList &metadata) { + /* Assign each of the R G G B channels as the same black level. */ + const int32_t blackLevel = context.activeState.blc.level * 256; + const int32_t blackLevels[] = { + blackLevel, blackLevel, blackLevel, blackLevel + }; + metadata.set(controls::SensorBlackLevels, blackLevels); + if (context.configuration.black.level.has_value()) return; -- cgit v1.2.1