From patchwork Wed Jul 8 15:51:13 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 27339 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 75874C3261 for ; Wed, 8 Jul 2026 15:51:57 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 08ABF66122; Wed, 8 Jul 2026 17:51:57 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="S+VrK6z4"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 3D1CC660E1 for ; Wed, 8 Jul 2026 17:51:22 +0200 (CEST) Received: from [192.168.1.182] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 421631CFD; Wed, 8 Jul 2026 17:50:32 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1783525832; bh=2QvgZUzLDc2ja7R9EkinL3mS8x7xRAxO+EYGjrc7vbU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=S+VrK6z4YVDphyIYq2CWnXaMiHTihyYEszSCyYsxOWamk4+IfYO3VLhGaw/mM119Z e7gkUjyrVLi19QKcbIc9YWpg9FGjP+4qF+e4CnBBt1TJNx5X9eNtowtoRhrqoDhuX4 Rx5umKxt88B4VXo9uKfxO7QRNcLkwiPeGwn0aTX8= From: Jacopo Mondi Date: Wed, 08 Jul 2026 17:51:13 +0200 Subject: [PATCH v5 31/36] ipa: libipa: lsc_base: Describe the function of lsc_base MIME-Version: 1.0 Message-Id: <20260708-libipa-algorithms-v5-31-0759d0359f52@ideasonboard.com> References: <20260708-libipa-algorithms-v5-0-0759d0359f52@ideasonboard.com> In-Reply-To: <20260708-libipa-algorithms-v5-0-0759d0359f52@ideasonboard.com> To: libcamera-devel@lists.libcamera.org, Stefan Klug Cc: Jacopo Mondi X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1646; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=2QvgZUzLDc2ja7R9EkinL3mS8x7xRAxO+EYGjrc7vbU=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBqTnHsY+ooRauRg5kUkwAZcxTRbA5sBc5cQPShj ZdkGUdHeUqJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCak5x7AAKCRByNAaPFqFW PLdFEACBfSt1warTMjInwgyM7KrOxIIyqlLYwFbKDUTKgQyB26bQsS6Cg49ylntEc3pSV18/c5t lFdl4NS04LrMf/lwkIV1ExNtmlz7bOcecaM7kUvo9diXaP5JPKr9vdyJKtuPdElIfTjkTj5GPWo bgTBKhlfMJ8wh41CchxNnvPfCgkAhvnSiU6ORTbZhGd8nJHAsdlSrpEKP73cYsHDHUNEplOJCtZ vVhO4i+lS2uq56qK3dlyeJMrWOE2g1iSlUuQkovX+nT67ZY67MQBT4BZpEOOb3tAva8BgBDgDVM gwuPqeRJHKOLpH2klWuhLtlTQl5T1tcz1vYCDfIrAWZApixYViTMA7mg7ymf32dd9EhbX1PqMnW vyc7iabwfQRtNSQTM9Etix/7FW2ax6cXxEHW/j8fPu+88DlcXGLQXIC/Ic95DgwjxsCOzNpP6As Uvb1bWC3/mlUpbCbtGn3Tyx3wPTxh85vV2HKZBHV+e/vgUS7rYcgAlkpeu3JhdgiJpqCGbNo87k UwGXgu9ycScVi9K7+/KnWCa2n9xqewfiqgyv0IKSE9i/R7g8N6MIwgTvGibfShkFe9CoZ+mecZC iI1eVVkV8R2AfzZPIsOpftfJr/xbX6e9qyj4b7UVT59x3xw1VmN2Owpp19zRrxxqPGgFrYxig1V S0u4L7AicB9LFkw== X-Developer-Key: i=jacopo.mondi@ideasonboard.com; a=openpgp; fpr=72392EDC88144A65C701EA9BA5826A2587AD026B 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" Now that the class hierarchy is in place, describe the function of the lsc_base header in the file comment. Signed-off-by: Jacopo Mondi --- src/ipa/libipa/lsc_base.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/ipa/libipa/lsc_base.cpp b/src/ipa/libipa/lsc_base.cpp index b91da4e5be9d..dd2e1128a546 100644 --- a/src/ipa/libipa/lsc_base.cpp +++ b/src/ipa/libipa/lsc_base.cpp @@ -10,6 +10,19 @@ /** * \file lsc_base.h * \brief Base types and definitions for LscImplementation class hierarchy + * + * Split the common classes and types definitions to a dedicated file to avoid + * circular inclusions. + * + * Both LscTable and LscPolynomial inherit from LscImplementation and they are + * instantiated from lsc.h as the LscAlgorithm::init() function is there inlined. + * + * For this reason lsc.h needs to include lsc_table.h and lsc_polynomial.h which + * need the LscImplementation class definition themselves. + * + * Split the LscImplementation interface definition to this file so that it can + * be included by both lsc_table.h and lsc_polynomial.h, which are then included + * by lsc.h. */ namespace libcamera { @@ -88,7 +101,8 @@ void Interpolator:: * \brief Pure virtual base class for LSC algorithm implementations * \tparam U The fixedpoint LSC engine register format * - * Defines the interface for the LSC algorithm implementation. + * Defines the interface for the LSC algorithm implementation. Currently + * implemented by LscTable and LscPolynomial. */ /**