From patchwork Mon Dec 29 19:41:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kieran Bingham X-Patchwork-Id: 25619 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id B85FABDCC0 for ; Mon, 29 Dec 2025 19:42:02 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 9002661FB5; Mon, 29 Dec 2025 20:42:01 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="ac5+c09i"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 21566610A6 for ; Mon, 29 Dec 2025 20:42:00 +0100 (CET) Received: from Monstersaurus.infra.iob (cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 83A27BCA; Mon, 29 Dec 2025 20:41:44 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1767037304; bh=l6Y8PSS6t4pvYzgIfa+M5yYCdlwzElxzZUgqXqrVHPk=; h=From:To:Cc:Subject:Date:From; b=ac5+c09iZAwQB56oJj+kmELG5TNK0JGP8Mf1PaxqKJFJagEELrz8NDBXJVKsgIoyn Wx57Ljzlc6XHEk97cQIcMWWLSBWD4tKonlHkB1Uyz2HcmtVisgAS6taRlkXORwaPRA eN75gsvfxpyfgNpP6JaCCL+t8jBc56tVldmww4Gg= From: Kieran Bingham To: libcamera devel Cc: Kieran Bingham Subject: [PATCH] libcamera: software_isp: Always report saturation metadata Date: Mon, 29 Dec 2025 19:41:52 +0000 Message-ID: <20251229194152.1087528-1-kieran.bingham@ideasonboard.com> X-Mailer: git-send-email 2.52.0 MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" When the saturation is applied the metadata is reported for one frame only. Once the colour temperature and saturation is stable, the metadata for the saturation is not stored into the frame context and therefore not reported in the completed request metadata. Update the CCM component to also store the applied saturation in the frameContext so that it can be reported in the metadata. Fixes: 59ac34b728c5 ("libcamera: software_isp: Add saturation control") Signed-off-by: Kieran Bingham --- This is visible when the CCM is enabled, which is more convenient to test now that we have the GPU ISP enablement where I noticed this - but it's still applicable directly to mainline too. src/ipa/simple/algorithms/ccm.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ipa/simple/algorithms/ccm.cpp b/src/ipa/simple/algorithms/ccm.cpp index 0a98406c1a3a..f28b1037d2d2 100644 --- a/src/ipa/simple/algorithms/ccm.cpp +++ b/src/ipa/simple/algorithms/ccm.cpp @@ -95,6 +95,7 @@ void Ccm::prepare(IPAContext &context, const uint32_t frame, utils::abs_diff(ct, lastCt_) < kTemperatureThreshold && saturation == lastSaturation_) { frameContext.ccm.ccm = context.activeState.ccm.ccm; + frameContext.saturation = saturation; context.activeState.ccm.changed = false; return; }