From patchwork Wed Jul 8 09:25:17 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 27295 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 2D3D5C3330 for ; Wed, 8 Jul 2026 09:25:43 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id B6D12660E9; Wed, 8 Jul 2026 11:25:42 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="D4FCh8DG"; 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 3F57566078 for ; Wed, 8 Jul 2026 11:25:14 +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 9DA503FC6; Wed, 8 Jul 2026 11:24:24 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1783502664; bh=2QvgZUzLDc2ja7R9EkinL3mS8x7xRAxO+EYGjrc7vbU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=D4FCh8DGdgA/1PwjmaokNcoJ3JzWo+nwgtqN9ABxikiG431cqcYDGUZ5tgb5U6sUP c+anVrNvJgsGJwfYu5OcLV0cWXxm/GA1S5UkIdRO3BF8jBK93Q5GKbWHCnqnsGJwkW Pp124SF42EpY7C/SOhwpzguAjNsCWRbZLQD5rxT0= From: Jacopo Mondi Date: Wed, 08 Jul 2026 11:25:17 +0200 Subject: [PATCH v4 30/35] ipa: libipa: lsc_base: Describe the function of lsc_base MIME-Version: 1.0 Message-Id: <20260708-libipa-algorithms-v4-30-f0e99f035294@ideasonboard.com> References: <20260708-libipa-algorithms-v4-0-f0e99f035294@ideasonboard.com> In-Reply-To: <20260708-libipa-algorithms-v4-0-f0e99f035294@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/ZANAwAKAXI0Bo8WoVY8AcsmYgBqThdvi3HVtADvi928wNehQ5TLvHMs5ugSBrCYu Nxq3s2WSYWJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCak4XbwAKCRByNAaPFqFW PGGgD/9AXFtm+AyTXz8Bq9ay8WaNaDBLHe2n2vh3IKJQBkBL+0Qgieh4XDm6bOFjsELXigTadtM bnw7Yas1qibuCBnpgqOD0ajEXU+BAo20U4iX5sifeYEH5qB2lTaaGgQU/Z4FOgGMvTrufCw87bR 2LPrEIvKXh635GUVi7n9Dmr/2T69oyHthxHgqpGP1xKBVPB+Bg+K5Rk7w2nRWDrmzX9pwPvDn0P l4IdM55QBFFX/DaniPSgqd2GBgxvm9F3/fxg+bLq3/a8XU7A1VPyeE+sPMgZ0D4z9cq+iQi6A6r XfOq/XkBg7OykkoJnOFIFZoiRZu6RWBJKXntgFZzaqdwzbF3KDZmmXG7nl5fkrGLDdYq1cxdAqp 4sWouyg/71VW3DjkgkO4x/0V8F1mg0gibuDJ0aKk0NVQaXlARFZ917zDFvw+4Y2CSHD8ra15isY Ka3wbua4L2DzN/yOBU8rQuWOXub/5HnZeTerCpuHO2LHg86/qEHPl0D9PDfmM67gXwTcYJhmoih ENx2P7ArkulnT0tjwPXpUQult7oqHtArBLwX9s4Xx7g6m+OjTOu0PdphzJLHqu2XBo3t/InJkx+ E8F+lkppzft79JaQ/yirzXeZmzAVMhO3wihOdqTC6q9cXvWvNRQjLWhaCC7ePGkTtVaJWdpupZy Zp8IBsek+su6kNg== 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. */ /**