From patchwork Tue Jun 16 06:41:43 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Scally X-Patchwork-Id: 26900 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 60084C3304 for ; Tue, 16 Jun 2026 06:42:05 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 8C00C62405; Tue, 16 Jun 2026 08:42:00 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="oVn8tQpl"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id C55DF62405 for ; Tue, 16 Jun 2026 08:41:50 +0200 (CEST) Received: from [127.0.1.1] (chfd-03-b2-v4wan-176392-cust229.vm15.cable.virginm.net [82.19.20.230]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 87EE6217B; Tue, 16 Jun 2026 08:41:17 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1781592077; bh=WBiLUavGVYS+agA29NNKFx8Asd82s77zRY361/HLD1s=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=oVn8tQpl65IJJ6/kK3Gx73ZlaiqDye3jApNnJO6s2tp3IjtGLys+W0eaRHruzqmIQ GAzYVx8wtmYJ6/QR8qzEx2YnanUX/w9UZoxIsnZvxc2+Ho5J21J03AwXhzCESwSivf gyYuy6uT86D5RcU6NUOp+T71AYqY7xiy1+Xefpco= From: Daniel Scally Date: Tue, 16 Jun 2026 07:41:43 +0100 Subject: [PATCH 09/10] ipa: ipu3: Add IPACameraSensorInfo to IPAContext MIME-Version: 1.0 Message-Id: <20260616-ipu3-libipa-rework-v1-9-d4448b54f1d8@ideasonboard.com> References: <20260616-ipu3-libipa-rework-v1-0-d4448b54f1d8@ideasonboard.com> In-Reply-To: <20260616-ipu3-libipa-rework-v1-0-d4448b54f1d8@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Daniel Scally X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2132; i=dan.scally@ideasonboard.com; h=from:subject:message-id; bh=WBiLUavGVYS+agA29NNKFx8Asd82s77zRY361/HLD1s=; b=owEBbQKS/ZANAwAKAchJV3psRXUyAcsmYgBqMPAqlHKIvBEm9cm+1tluERsnTu9/CyS0CwlCd n8xLnGarGSJAjMEAAEKAB0WIQQqyuwyDnZdb+mxmm/ISVd6bEV1MgUCajDwKgAKCRDISVd6bEV1 MkgxD/4oAM9N87by9UsgTRjiJb3iThu1amiOtTMH+ehwbADzVG50cvVS0f+s6aUKFMRQxWxnuOm bQ3OMUjjyIEfciQqz3idvPkOV70x72bog8zaK4mbph6wsg6HLa/U3hhdMyhnrTwQOMwfKPhkfV3 qnmd+8l+yvMPFskKu4dkyXBTMCQFNrDruqO9uVwRdJWf04E5Q2SWM+iQtbBDiLtzr69J2L6SHdZ oXnjo67QrxpN3U8VRBYT12QrcuvaEtxOj63qz7MBffVraG/RZ/UUlg8UdSfjEiDaNJIEmbB8Qki 1KmcHHT+utJYptRotTlV3qAmJNLEIREb8mEu5qAC9nAjzMa7cBfRaHvMVsltdfQEgU/TS4FEQe4 NXOOf5DSaa8MRpQM/bMyaCH8j66TXJogA1IriLnu2r2VA+xOKv55MudduWw3OTJUmo4O11iTf7S T6semhyvwjI8Kp2dmjIeZt4Bi68Ctv3Tb7RFJP1s4F9X+AcOISy99ZZVGgCq/rTkGN+mmsszj0z xKd2G7w4JqPvqWWxp59xHTLHSAA40ltO0pBKl8pTUPjN3+GaxRPM/PR9db9vkPvZoOMeMrBjWHb YO0HnSS9X0aB/p/R0A1S0MA7yEVlNNS0AhKJaNkfy9XdQlIp5Q5tQ2RD6H81hzmPxB5tHscIMKj 6B+EeEvEpqIVHbw== X-Developer-Key: i=dan.scally@ideasonboard.com; a=openpgp; fpr=EEC699ACA1B7CB5D31330C0BBD501C2A3546CCF6 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" Add an instance of IPACameraSensorInfo to the IPAContext and fill it during IPAIPU3::init(). This will allow us to pass sensor information to algorithms at init time. Signed-off-by: Daniel Scally --- src/ipa/ipu3/ipa_context.cpp | 3 +++ src/ipa/ipu3/ipa_context.h | 3 +++ src/ipa/ipu3/ipu3.cpp | 1 + 3 files changed, 7 insertions(+) diff --git a/src/ipa/ipu3/ipa_context.cpp b/src/ipa/ipu3/ipa_context.cpp index 7152d070d3ab1bc463fdaad437d5e1c1b87ce25c..7fcfd5e0e4ade92521cc2914dd07113235af8e45 100644 --- a/src/ipa/ipu3/ipa_context.cpp +++ b/src/ipa/ipu3/ipa_context.cpp @@ -54,6 +54,9 @@ namespace libcamera::ipa::ipu3 { * * \var IPAContext::ctrlMap * \brief A ControlInfoMap::Map of controls populated by the algorithms + * + * \var IPAContext::sensorInfo + * \brief An IPACameraSensorInfo instance holding information about the sensor */ /** diff --git a/src/ipa/ipu3/ipa_context.h b/src/ipa/ipu3/ipa_context.h index 1eaaac82da0e3ad5bed0749c39d9dad8c585cab0..f157f223cbb3119f108d768b14fca514ac5661ca 100644 --- a/src/ipa/ipu3/ipa_context.h +++ b/src/ipa/ipu3/ipa_context.h @@ -15,6 +15,8 @@ #include #include +#include + #include #include #include @@ -93,6 +95,7 @@ struct IPAContext { FCQueue frameContexts; ControlInfoMap::Map ctrlMap; + IPACameraSensorInfo sensorInfo; }; } /* namespace ipa::ipu3 */ diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp index 4bdc4b7677fe9703fb968ca91967c68742454514..0827ad207c9d89b8af4887f609fe08881612ab96 100644 --- a/src/ipa/ipu3/ipu3.cpp +++ b/src/ipa/ipu3/ipu3.cpp @@ -313,6 +313,7 @@ int IPAIPU3::init(const IPASettings &settings, context_.configuration = {}; context_.configuration.sensor.lineDuration = sensorInfo.minLineLength * 1.0s / sensorInfo.pixelRate; + context_.sensorInfo = sensorInfo; /* Load the tuning data file. */ File file(settings.configurationFile);