From patchwork Mon Jul 6 08:01:50 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 27230 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 379B8C330A for ; Mon, 6 Jul 2026 08:02:38 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id DC6B066060; Mon, 6 Jul 2026 10:02:37 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="kUlFu5Ct"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 406C866024 for ; Mon, 6 Jul 2026 10:02:17 +0200 (CEST) Received: from [192.168.125.177] (mob-109-113-60-81.net.vodafone.it [109.113.60.81]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id D46B83FF5; Mon, 6 Jul 2026 10:01:28 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1783324889; bh=wb0bQGsjGojAwnPuRxkfgTB4xkOkV0ZPsl0VfiBQO/U=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=kUlFu5CtDo7/qbFZZ44J1E07X+Bto85HIMcboQx6RagkKCTNbWMlHom1AdhuQPqQO 8O2SQANQEhS+4AveB6HUtYanc2s9kXQPiwqT3aXzo/eRoVi1CTivjfN32p8ISVk+IU +9hHJVPBDXOw7TfQECVugsMnrH/1y5rxBxpNIAbg= From: Jacopo Mondi Date: Mon, 06 Jul 2026 10:01:50 +0200 Subject: [PATCH v3 30/35] ipa: libipa: lsc_base: Describe the function of lsc_base MIME-Version: 1.0 Message-Id: <20260706-libipa-algorithms-v3-30-968757b038bb@ideasonboard.com> References: <20260706-libipa-algorithms-v3-0-968757b038bb@ideasonboard.com> In-Reply-To: <20260706-libipa-algorithms-v3-0-968757b038bb@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=wb0bQGsjGojAwnPuRxkfgTB4xkOkV0ZPsl0VfiBQO/U=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBqS2DysL4dkzzQCpaTw9z+c9CFa3zPozBKTQr47 zYDs71Q3NuJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaktg8gAKCRByNAaPFqFW PKE1D/40qaGfQ+3tYWk+WWLD6NBnXBQ9s6Rk0hRQFPAdBEttwL5KDM/FSO/Kmhc2LH9WyUjrUzp 0XhGuJCxdP8pKaj8D88C3h6IrIF6Wk1UTcRnHlcw7E7XPuUrulZ0vj8mHhRMP5y9sD5Kbm0RR8X kWI6aEXB2Xf/aDr0bluVpK2o7p6+0LOPsn3DxcQ80WOxSCK8XJMXfRp189zhKiSF+2zi6IYG9me 7xA3yDZQU2ZvPKUTh+VqdArdqnkYQSYqILCWilgvNvzcsp8eI6hQqnHn8TNEKIlDJx13w9fliYL Ql1nUURk1KoHZMhi8xkPyoAVH5FpIhPqxc5QA7Pf/G1148QH6CNmRjTbANV+ookWlAHRfKuEHfj +OH5yR3TIzHci0vNdULHJR5rxYaFmGphT5j2N5oLsjJjk4AW+GymhaXh3xqE0rmYhjs7jpqQdq3 ZXP3/Hpznp6XaYREnh5Gs3fs/El3sAk3Lgj6ZJr1EKAfcoXkBv3vLSaAjtK+x2quvZkGqFr8UC1 uj2SX01FTaU2xqIR+I4tJw9g2N3IjQW/fwWbIqImfDyoSAM3iK9egTkNeb+FL7kW2UpXJ1fcFGn GX5TKrdJNPDXgm51pdCtnc5ptTCSfQAEZ+JkbctdOdL1zQykKZdoqOY7i3nLqFl6axYAeyI6OAs 0zZecvnh1t3NBZg== 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 0eeb99f6881a..0c3a10d25cf8 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. */ /**