From patchwork Wed Aug 12 18:50:52 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hans de Goede X-Patchwork-Id: 27769 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 DAD77C3264 for ; Wed, 12 Aug 2026 18:51:17 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 8E105682DA; Wed, 12 Aug 2026 20:51:17 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.b="nOWZUSm+"; dkim=pass (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hVq8xYkt"; dkim-atps=neutral Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 4352C682CC for ; Wed, 12 Aug 2026 20:51:15 +0200 (CEST) Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67CI9FVd057210 for ; Wed, 12 Aug 2026 18:51:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=d5a+T9PrDBu aP4hO9ef88fFXqu63m1qk2Do7DeF3Hbg=; b=nOWZUSm+U5z25jmtrNjTw/l9KI/ To8VfAy3BmpC3/ZxfVZactkr4YrOjUO64JFikOx5nH2S4gkzMuOCBolEmg5r/Prk MCwvaAQheijzobGaNUALOFgfiR2DPdSbfc4rJzw77Dg9Def9LLS81T2XUzgaqgcv GnlUrYSu8SPTJHXv2D83MDR9kR8PUBBOTHNNetkMF3YGGztpw1vSt24M/5jSWCNZ AK4BToMBXb7pWbgc3rh5oPuAiwaEG6SAP+0Zl6MgfdBItEu8oB+Z/uOPleoRan3A jy+qCtKuhs7JkTNdUo3QJC3sPkeKGYhTc9aRH1z1bEKFOsNu6VvwXs0lZdw== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g0pmytd49-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 12 Aug 2026 18:51:13 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-52769fc3f2eso12352591cf.0 for ; Wed, 12 Aug 2026 11:51:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786560672; x=1787165472; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=d5a+T9PrDBuaP4hO9ef88fFXqu63m1qk2Do7DeF3Hbg=; b=hVq8xYktSrkIcmxuFKmBR95wziZAkV46tl2v61Ws+vmIpVcW5qRI1CkBVpV9Rj0EeI oBXJYS7FG060QsYJnvn6hsgxOBYUY6eDrC9QRbf/1N6Vk8Hn27Bl0Nuv7Ww6KyAifMMh Mt8Bs7gRtUhUA4b49THo7r+vKopCSBIZ6Xk5xi4Zu8J33KxaMG/qCDt3LDTD1+o8yZC4 9ZfJzg82DrQHeDa8BZvujIs560E9r55ZXHXpgAlUjRN1Tq0uqU/M+Ct+H34uBsb8D9DL 3i4Pma85Cz9dRN8BO4F8a0CgfMOtgwltMfIXsqgiWMEIQOyircDFsHGulP1H9saPdNO5 TVrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786560672; x=1787165472; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=d5a+T9PrDBuaP4hO9ef88fFXqu63m1qk2Do7DeF3Hbg=; b=GGDbgmbD18Joa0nsmKB1r6dYUlS2Ol7hw8ICO8+Q9tfLEAOqxOMzrHsYhSroV516TB FLLD/BVbn4nQZ3VYUTCy7RQdz56/Et2Xau34VHz1lzi7ZAtGkM1sJpexwSf2st57G5gl hJE0uZyDM5i62wW7Tye3gzm5utzel+deXOTaLxARY/I2Y+CyDpMHMDa/P6+ha4y1yFx/ 71M62OYMYM/M+2+b61xr/xmFl0pdOIXc1XhBbA6irQjI/bkSnTxGQw9tZ1FPjDTB6Xef zA8oWIZ9VEzLJtAiWcM5QkRhPZNpq+zHO9pt5BBtBYuuJBqVNYvF6FHEOu2zae5TWMxx eXqg== X-Gm-Message-State: AOJu0YxmqZo6o4jBQ6fTpyhq9/XqMoh1PwxFVuZeOBIZgybJGFyvdVvd c72zJ5mHPTXiP7QRZ0I5IhrvT6UtJEEN2C0oMyq3Rxq4nyV3w73E+wnRKj5UdlwniTDYyRbbAmH HugP3Knk04Ms2BaZCInc7knb69GxJwWPnIMcyLwB5ZwJQ2xQXfno0wf2CCuAnFq+zlDXmAu57pj IDzLE5IsED X-Gm-Gg: AR+sD13C6ybb967XJZk5tYUDyj8Zfl2c4nzJ+DXWiec45fOx7So/PHshP29JK07SITf bLN4HYgvOmjA9dG4Em1FO1eIXpUeQP+szz/PgoS1UzNwlB0SDbR/dCo3aDiL6dYYBQIcw06qt5o 72I4XyrCznkhcM9ExedD83k7XDBkxtRkNJ7lYGxIxpX7Qr+z9xEI0JZHLdeMTRXQ8MIUPOjOCr0 CY/7jrfsJm0VJVbnWdAZAINCjXNC6gFTNiN82SGBCWfEv+XDlu4VG8LDl0UbnaGw5lUQepsHZeb 7TYeKLKzFzcCUHyGpvpTF49grWaoafHMc0AYRhIwlepH1X7XQMQPaSbjKr1u4KGqLw5g8xO7AZ2 oe9gz0hoey7A6R3C079ZjuqXJ7VISfGQZcDgRUWWoTaVzs3Emggklgp65PTUIz9uwdrw5Xwz766 TMk8hs9wgG7Fub30c= X-Received: by 2002:a05:622a:4018:b0:51c:1b3d:fe62 with SMTP id d75a77b69052e-52d73d14faemr3028491cf.28.1786560672228; Wed, 12 Aug 2026 11:51:12 -0700 (PDT) X-Received: by 2002:a05:622a:4018:b0:51c:1b3d:fe62 with SMTP id d75a77b69052e-52d73d14faemr3027921cf.28.1786560671512; Wed, 12 Aug 2026 11:51:11 -0700 (PDT) Received: from shalem (2001-1c00-0c32-7800-5bfa-a036-83f0-f9ec.cable.dynamic.v6.ziggo.nl. [2001:1c00:c32:7800:5bfa:a036:83f0:f9ec]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6a37f8cd810sm47977a12.26.2026.08.12.11.51.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Aug 2026 11:51:09 -0700 (PDT) From: Hans de Goede To: libcamera-devel@lists.libcamera.org Cc: Loic Poulain , Hans de Goede , Jacopo Mondi Subject: [PATCH v7 5/8] libcamera: Create IPA by IPA proxy type name Date: Wed, 12 Aug 2026 20:50:52 +0200 Message-ID: <20260812185055.289021-6-johannes.goede@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260812185055.289021-1-johannes.goede@oss.qualcomm.com> References: <20260812185055.289021-1-johannes.goede@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-Spam-Info: AW1haW4tMjYwODEyMDE1MSBTYWx0ZWRfX44tZk892lHq2 Ex81hgUN+TWxIxnz1eBv6hKgpYwP8nQrJnYceNZFbilcLXfM+/5V2oTe2Oy/cY/+2f1ufBtw8k6 yok4LWopsKMfviO5CAvvdQwtwRpcGes= X-Proofpoint-ORIG-GUID: jER47YH9Vppm0ZPH5fbeckYDt2AT6Qzy X-Authority-Analysis: v=2.4 cv=C/fZDwP+ c=1 sm=1 tr=0 ts=6a7cc0a1 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=P1BnusSwAAAA:8 a=EUspDBNiAAAA:8 a=SXN59QJeJGJC3baiLVEA:9 a=kacYvNCVWA4VmyqE58fU:22 a=D0XLA9XvdZm18NrgonBM:22 X-Proofpoint-GUID: jER47YH9Vppm0ZPH5fbeckYDt2AT6Qzy X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEyMDE1MSBTYWx0ZWRfX6zchMHexSCLv orWKUBelNVaecOHLHqiCOWjLoHZLo/uXSS4PnbDGRrtJ+O14YC1rqiIf4jJlZuRDSy6hWpVGAOM +H9e5qUO4uT0/X7fAf8SnlXTDBRYSLI44+Ta+3vNvdKCU4rCpy/c3BdHXduEvVGm1k5iiTCYleM UCryz+PkHkhW5OoQMs8dbvxJMPHU8b+nwid3WuWmQWEYFDKY+f7ydtAfhezNZEienypNjCXw+Ig cS2hvlLGLHdtF5lJR+xOxfNNCQ3rl0Y9q8OsGLxN+a3e0rsvOBiLSfKmt1hwVGFEtUrFa9pTmH2 3upYlFkvK05HLdpH4+M6tlzTTNG4YHSCvLtXD9QbzWfgRzwh1ZCrSp/+pGuVY58rBJbYZ6pBYU9 jeXhnZS4HLJqYB4XauSRn5n3JdJSEwKlhua+mThb03zwmF4rDoogSHwprlx+NnmRHVIbxfJEcPs RwSL7jG+4hRGFxTX8ww== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293, Aquarius:18.0.1176, Hydra:6.1.134, FMLib:17.12.100.49 definitions=2026-08-12_05,2026-08-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 phishscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608120151 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" Currently createIPA() / IPAManager::module() assume that there is a 1:1 relationship between pipeline handlers and IPAs and IPA matching is done based on matching the pipe's name to ipaModuleInfo.name[]. This coupling between pipeline name and which IPA to create is undesirable and makes it impossible to for example use the softISP as a fallback in other pipeline handlers than the simple pipeline handler. The actual API contract between the IPA and the pipeline handler is given by the IPA proxy type. Add a static IPAProxyXXX::name() to the generated IPAProxyXXX classes and use this in PipelineHandler::createIPA() instead of using PipelineHandler::name(). This requires changing the name, as well as the subdirectory of the softISP IPA from "simple" to "softisp", which is the more sensible name anyway. Note: this means that softISP IPA config files will now be looked for under /usr/share/libcamera/ipa/softisp instead of /usr/share/libcamera/ipa/simple! Reviewed-by: Jacopo Mondi Signed-off-by: Hans de Goede --- Changes in v7: - Rename the softISP IPA from "simple" to "softisp" instead of "soft" - Mark PipelineHandler::createIPA() overload with an explicit IPA name argument as deprecated Changes in v6: - New patch in v6 of this patch-series --- Documentation/Doxyfile-internal.in | 2 +- include/libcamera/internal/pipeline_handler.h | 2 +- include/libcamera/internal/software_isp/software_isp.h | 4 ++-- include/libcamera/ipa/meson.build | 2 +- include/libcamera/ipa/{soft.mojom => softisp.mojom} | 0 meson_options.txt | 4 ++-- src/ipa/meson.build | 2 +- src/ipa/{simple => softisp}/algorithms/adjust.cpp | 0 src/ipa/{simple => softisp}/algorithms/adjust.h | 0 src/ipa/{simple => softisp}/algorithms/agc.cpp | 0 src/ipa/{simple => softisp}/algorithms/agc.h | 0 src/ipa/{simple => softisp}/algorithms/algorithm.h | 0 src/ipa/{simple => softisp}/algorithms/awb.cpp | 0 src/ipa/{simple => softisp}/algorithms/awb.h | 2 +- src/ipa/{simple => softisp}/algorithms/blc.cpp | 0 src/ipa/{simple => softisp}/algorithms/blc.h | 0 src/ipa/{simple => softisp}/algorithms/ccm.cpp | 0 src/ipa/{simple => softisp}/algorithms/ccm.h | 0 src/ipa/{simple => softisp}/algorithms/meson.build | 0 src/ipa/{simple => softisp}/data/meson.build | 2 +- src/ipa/{simple => softisp}/data/uncalibrated.yaml | 0 src/ipa/{simple => softisp}/ipa_context.cpp | 0 src/ipa/{simple => softisp}/ipa_context.h | 0 src/ipa/{simple => softisp}/meson.build | 0 src/ipa/{simple => softisp}/module.h | 2 +- src/ipa/{simple => softisp}/soft_simple.cpp | 4 ++-- src/libcamera/pipeline_handler.cpp | 8 +++++--- .../libcamera_templates/module_ipa_proxy.h.tmpl | 2 ++ 28 files changed, 20 insertions(+), 16 deletions(-) rename include/libcamera/ipa/{soft.mojom => softisp.mojom} (100%) rename src/ipa/{simple => softisp}/algorithms/adjust.cpp (100%) rename src/ipa/{simple => softisp}/algorithms/adjust.h (100%) rename src/ipa/{simple => softisp}/algorithms/agc.cpp (100%) rename src/ipa/{simple => softisp}/algorithms/agc.h (100%) rename src/ipa/{simple => softisp}/algorithms/algorithm.h (100%) rename src/ipa/{simple => softisp}/algorithms/awb.cpp (100%) rename src/ipa/{simple => softisp}/algorithms/awb.h (97%) rename src/ipa/{simple => softisp}/algorithms/blc.cpp (100%) rename src/ipa/{simple => softisp}/algorithms/blc.h (100%) rename src/ipa/{simple => softisp}/algorithms/ccm.cpp (100%) rename src/ipa/{simple => softisp}/algorithms/ccm.h (100%) rename src/ipa/{simple => softisp}/algorithms/meson.build (100%) rename src/ipa/{simple => softisp}/data/meson.build (79%) rename src/ipa/{simple => softisp}/data/uncalibrated.yaml (100%) rename src/ipa/{simple => softisp}/ipa_context.cpp (100%) rename src/ipa/{simple => softisp}/ipa_context.h (100%) rename src/ipa/{simple => softisp}/meson.build (100%) rename src/ipa/{simple => softisp}/module.h (91%) rename src/ipa/{simple => softisp}/soft_simple.cpp (99%) diff --git a/Documentation/Doxyfile-internal.in b/Documentation/Doxyfile-internal.in index b64b6a6fe..70b7e7ef1 100644 --- a/Documentation/Doxyfile-internal.in +++ b/Documentation/Doxyfile-internal.in @@ -28,7 +28,7 @@ EXCLUDE = @TOP_SRCDIR@/include/libcamera/base/span.h \ @TOP_SRCDIR@/src/libcamera/sensor/camera_sensor_raw.cpp \ @TOP_SRCDIR@/src/libcamera/tracepoints.cpp \ @TOP_BUILDDIR@/include/libcamera/internal/tracepoints.h \ - @TOP_BUILDDIR@/include/libcamera/ipa/soft_ipa_interface.h \ + @TOP_BUILDDIR@/include/libcamera/ipa/softisp_ipa_interface.h \ @TOP_BUILDDIR@/src/libcamera/proxy/ HTML_OUTPUT = internal-api diff --git a/include/libcamera/internal/pipeline_handler.h b/include/libcamera/internal/pipeline_handler.h index b60c07b13..2a2ba95a4 100644 --- a/include/libcamera/internal/pipeline_handler.h +++ b/include/libcamera/internal/pipeline_handler.h @@ -76,7 +76,7 @@ public: std::unique_ptr createIPA(uint32_t minVersion, uint32_t maxVersion) { IPAManager *ipaManager = manager_->_d()->ipaManager(); - return ipaManager->createIPA(name_, minVersion, maxVersion); + return ipaManager->createIPA(T::name(), minVersion, maxVersion); } template diff --git a/include/libcamera/internal/software_isp/software_isp.h b/include/libcamera/internal/software_isp/software_isp.h index 4f72dce9b..3205a2e14 100644 --- a/include/libcamera/internal/software_isp/software_isp.h +++ b/include/libcamera/internal/software_isp/software_isp.h @@ -25,8 +25,8 @@ #include #include -#include -#include +#include +#include #include "libcamera/internal/camera_sensor.h" #include "libcamera/internal/dma_buf_allocator.h" diff --git a/include/libcamera/ipa/meson.build b/include/libcamera/ipa/meson.build index 3ee3ada30..fb518526a 100644 --- a/include/libcamera/ipa/meson.build +++ b/include/libcamera/ipa/meson.build @@ -68,7 +68,7 @@ pipeline_ipa_mojom_mapping = { 'rkisp1': 'rkisp1.mojom', 'rpi/pisp': 'raspberrypi.mojom', 'rpi/vc4': 'raspberrypi.mojom', - 'simple': 'soft.mojom', + 'simple': 'softisp.mojom', 'vimc': 'vimc.mojom', } diff --git a/include/libcamera/ipa/soft.mojom b/include/libcamera/ipa/softisp.mojom similarity index 100% rename from include/libcamera/ipa/soft.mojom rename to include/libcamera/ipa/softisp.mojom diff --git a/meson_options.txt b/meson_options.txt index 20baacc4f..e829ebe60 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -48,8 +48,8 @@ option('gstreamer', option('ipas', type : 'array', - choices : ['ipu3', 'mali-c55', 'rkisp1', 'rpi/pisp', 'rpi/vc4', 'simple', - 'vimc'], + choices : ['ipu3', 'mali-c55', 'rkisp1', 'rpi/pisp', 'rpi/vc4', + 'softisp', 'vimc'], description : 'Select which IPA modules to build') option('lc-compliance', diff --git a/src/ipa/meson.build b/src/ipa/meson.build index c583c7efd..ab4a1897f 100644 --- a/src/ipa/meson.build +++ b/src/ipa/meson.build @@ -30,7 +30,7 @@ supported_ipas = { 'rkisp1': 'rkisp1', 'rpi/pisp': 'rpi/pisp', 'rpi/vc4': 'rpi/vc4', - 'simple': 'simple', + 'simple': 'softisp', 'vimc': 'vimc' } diff --git a/src/ipa/simple/algorithms/adjust.cpp b/src/ipa/softisp/algorithms/adjust.cpp similarity index 100% rename from src/ipa/simple/algorithms/adjust.cpp rename to src/ipa/softisp/algorithms/adjust.cpp diff --git a/src/ipa/simple/algorithms/adjust.h b/src/ipa/softisp/algorithms/adjust.h similarity index 100% rename from src/ipa/simple/algorithms/adjust.h rename to src/ipa/softisp/algorithms/adjust.h diff --git a/src/ipa/simple/algorithms/agc.cpp b/src/ipa/softisp/algorithms/agc.cpp similarity index 100% rename from src/ipa/simple/algorithms/agc.cpp rename to src/ipa/softisp/algorithms/agc.cpp diff --git a/src/ipa/simple/algorithms/agc.h b/src/ipa/softisp/algorithms/agc.h similarity index 100% rename from src/ipa/simple/algorithms/agc.h rename to src/ipa/softisp/algorithms/agc.h diff --git a/src/ipa/simple/algorithms/algorithm.h b/src/ipa/softisp/algorithms/algorithm.h similarity index 100% rename from src/ipa/simple/algorithms/algorithm.h rename to src/ipa/softisp/algorithms/algorithm.h diff --git a/src/ipa/simple/algorithms/awb.cpp b/src/ipa/softisp/algorithms/awb.cpp similarity index 100% rename from src/ipa/simple/algorithms/awb.cpp rename to src/ipa/softisp/algorithms/awb.cpp diff --git a/src/ipa/simple/algorithms/awb.h b/src/ipa/softisp/algorithms/awb.h similarity index 97% rename from src/ipa/simple/algorithms/awb.h rename to src/ipa/softisp/algorithms/awb.h index ff0a7a28e..59ab6fd79 100644 --- a/src/ipa/simple/algorithms/awb.h +++ b/src/ipa/softisp/algorithms/awb.h @@ -14,7 +14,7 @@ #include "libipa/awb.h" #include "libipa/fixedpoint.h" -#include "simple/ipa_context.h" +#include "softisp/ipa_context.h" #include "algorithm.h" diff --git a/src/ipa/simple/algorithms/blc.cpp b/src/ipa/softisp/algorithms/blc.cpp similarity index 100% rename from src/ipa/simple/algorithms/blc.cpp rename to src/ipa/softisp/algorithms/blc.cpp diff --git a/src/ipa/simple/algorithms/blc.h b/src/ipa/softisp/algorithms/blc.h similarity index 100% rename from src/ipa/simple/algorithms/blc.h rename to src/ipa/softisp/algorithms/blc.h diff --git a/src/ipa/simple/algorithms/ccm.cpp b/src/ipa/softisp/algorithms/ccm.cpp similarity index 100% rename from src/ipa/simple/algorithms/ccm.cpp rename to src/ipa/softisp/algorithms/ccm.cpp diff --git a/src/ipa/simple/algorithms/ccm.h b/src/ipa/softisp/algorithms/ccm.h similarity index 100% rename from src/ipa/simple/algorithms/ccm.h rename to src/ipa/softisp/algorithms/ccm.h diff --git a/src/ipa/simple/algorithms/meson.build b/src/ipa/softisp/algorithms/meson.build similarity index 100% rename from src/ipa/simple/algorithms/meson.build rename to src/ipa/softisp/algorithms/meson.build diff --git a/src/ipa/simple/data/meson.build b/src/ipa/softisp/data/meson.build similarity index 79% rename from src/ipa/simple/data/meson.build rename to src/ipa/softisp/data/meson.build index 92795ee4c..fd9aa0fab 100644 --- a/src/ipa/simple/data/meson.build +++ b/src/ipa/softisp/data/meson.build @@ -6,5 +6,5 @@ conf_files = files([ # The install_dir must match the name from the IPAModuleInfo install_data(conf_files, - install_dir : ipa_data_dir / 'simple', + install_dir : ipa_data_dir / 'softisp', install_tag : 'runtime') diff --git a/src/ipa/simple/data/uncalibrated.yaml b/src/ipa/softisp/data/uncalibrated.yaml similarity index 100% rename from src/ipa/simple/data/uncalibrated.yaml rename to src/ipa/softisp/data/uncalibrated.yaml diff --git a/src/ipa/simple/ipa_context.cpp b/src/ipa/softisp/ipa_context.cpp similarity index 100% rename from src/ipa/simple/ipa_context.cpp rename to src/ipa/softisp/ipa_context.cpp diff --git a/src/ipa/simple/ipa_context.h b/src/ipa/softisp/ipa_context.h similarity index 100% rename from src/ipa/simple/ipa_context.h rename to src/ipa/softisp/ipa_context.h diff --git a/src/ipa/simple/meson.build b/src/ipa/softisp/meson.build similarity index 100% rename from src/ipa/simple/meson.build rename to src/ipa/softisp/meson.build diff --git a/src/ipa/simple/module.h b/src/ipa/softisp/module.h similarity index 91% rename from src/ipa/simple/module.h rename to src/ipa/softisp/module.h index 8d4d53fb2..b5d99ba08 100644 --- a/src/ipa/simple/module.h +++ b/src/ipa/softisp/module.h @@ -9,7 +9,7 @@ #include -#include +#include #include "libcamera/internal/software_isp/debayer_params.h" #include "libcamera/internal/software_isp/swisp_stats.h" diff --git a/src/ipa/simple/soft_simple.cpp b/src/ipa/softisp/soft_simple.cpp similarity index 99% rename from src/ipa/simple/soft_simple.cpp rename to src/ipa/softisp/soft_simple.cpp index d4ab91e30..e84feeea7 100644 --- a/src/ipa/simple/soft_simple.cpp +++ b/src/ipa/softisp/soft_simple.cpp @@ -20,7 +20,7 @@ #include #include -#include +#include #include "libcamera/internal/software_isp/debayer_params.h" #include "libcamera/internal/software_isp/swisp_stats.h" @@ -342,7 +342,7 @@ extern "C" { const struct IPAModuleInfo ipaModuleInfo = { IPA_MODULE_API_VERSION, 0, - "simple", + "softisp", }; IPAInterface *ipaCreate() diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp index 25fc11989..a803f6208 100644 --- a/src/libcamera/pipeline_handler.cpp +++ b/src/libcamera/pipeline_handler.cpp @@ -844,8 +844,10 @@ void PipelineHandler::disconnect() * * Create an IPA module using \a ipaName as the matching identifier. This * overload allows pipeline handlers to create an IPA module by specifying its - * name instead of relying on the fact that the IPA module matches the pipeline - * handler's one. + * name instead of relying on the fact that the IPA module matches the IPA + * proxy's type name. + * + * \deprecated This method is deprecated and *MUST* not be used in new code. * * \return A newly created IPA proxy, or nullptr if no matching IPA module is * found or if the IPA proxy fails to initialize @@ -858,7 +860,7 @@ void PipelineHandler::disconnect() * \param[in] minVersion Minimum acceptable version of IPA module * \param[in] maxVersion Maximum acceptable version of IPA module * - * Create an IPA module using the pipeline handler name as the matching + * Create an IPA module using the IPA proxy's type name as the matching * identifier. This overload allows pipeline handler to create an IPA module * whose name matches the pipeline handler one. * diff --git a/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy.h.tmpl b/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy.h.tmpl index d48b90dcf..c18c94c2c 100644 --- a/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy.h.tmpl +++ b/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy.h.tmpl @@ -40,6 +40,8 @@ class {{proxy_name}}Isolated; class {{proxy_name}} : public IPAProxy, public {{interface_name}}, public Object { public: + static constexpr const char *name() { return "{{module_name}}"; }; + using Threaded = {{proxy_name}}Threaded; using Isolated = {{proxy_name}}Isolated;