From patchwork Tue Jul 28 17:24:47 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: 27518 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 3ABF0C32FE for ; Tue, 28 Jul 2026 17:25:04 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id D2CE167FAA; Tue, 28 Jul 2026 19:25:02 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.b="eV62rF3p"; dkim=pass (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="PEY0EegU"; dkim-atps=neutral Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 0300167FB1 for ; Tue, 28 Jul 2026 19:24:58 +0200 (CEST) Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66SGJXlu3327954 for ; Tue, 28 Jul 2026 17:24:57 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=c+O9A6RXZNT /7ALRGO815PqHixx+14el9z+DkMtGVRs=; b=eV62rF3pzQU+HH+SvrvJT6cTL/l HIwcwZNFhYPfLHnkIR/9j6BYdZFr72XmjxUIqtUqWE/xw/UE/yt8Ttn+1JX1tA2b 64/9heRmj3nSIaJMeXOsTVJnOI1xX/JweQyHL+XstZjuv9X3vEpq7aWhsdPyBpkh eqzVy2cFYYJIAjK8hPqm3REe1vCNhkY331yujwv4Cl4NNnq62AfJ5PRFcTpQd0qE clBIbs508gVsJ1TVXZNLxeA9byEHtCCwf3eeNPOObzkvQAkFomxsxPGq+de79F87 ljjIRkWtapgII/HC+B/iA/vK8EkuwBtModZ4SxCq93Ma6vAPrB+zdXBLwtg== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fpyukracs-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 28 Jul 2026 17:24:57 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-51c20762d21so1028231cf.0 for ; Tue, 28 Jul 2026 10:24:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1785259497; x=1785864297; 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=c+O9A6RXZNT/7ALRGO815PqHixx+14el9z+DkMtGVRs=; b=PEY0EegUtptCLzxXYe+09f2L3ZOXYMxEsZYORJKQFdWqVnr+4MJgnWBondz2z2ysnq adh7v4mxy3huL6oPJLQLJ/ch65nGFL41JiYUzDVCXiHEwFcirjkM/01tgwGOGhy5MVJ9 QZb1d51psvf4aeBdTrx+HiH1G+UP0rc1ahdAqb2Qe6uv0FV4vFI7OlGGR+8UqRikaGgH fT3UM/2JN/Q4F8WG79JSCOBK+nMHEFAMh4Aa/SSIzZv3aVJACCqHIl59rL3YKAYsJNEr oM4spKqdBZdRCy2UGNelxpicR7sLMLoH4y2M4MEZetODazqc3nQ7viq/dRD1L4Bv1BPJ oEZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785259497; x=1785864297; 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=c+O9A6RXZNT/7ALRGO815PqHixx+14el9z+DkMtGVRs=; b=DNoL68m3uhwfQDajQv6/Xkg2FOTEGyqhtRUffSU3yl83CBwOqEE2wmsJG3I43RNoN0 pemMgORXHvQIbSjdFVtESns0fKf0vO44BQj0mwOmVeXAskW3HwBtot/UcqI8ZqkbrVQ5 lTNxdzQHAecm7Ul9MzEuaMksyyWkfOu7ZfgujImj7f5qLzYXGelUI7jVl2iQF+vFPUVI loIORhyJDdgmpgftRIKPyT/niNRCeBnQ/R7rnzelDuWkoYLsYoue/3DwUrlMYYInmC46 p/ZLvC6X56CJn9Pl7Wgh/9ddRY+PHR2pXiBbhrTXDzC2iKF+pAqrX6zpllE5qfOYL9P7 +Fsw== X-Gm-Message-State: AOJu0YyAGpEHix7m6dADySWPo3AfjEPUdwUtUOTJK+A45KyD8F6Syuy2 TxnvFxQGK290lyHVgFAAEOZwJNrHzvqksq4Wh40kEzUQu+MZjoPcJrkS+EEtct+PAmUP6yzoV1N WwukSxZ56b8KFHEIfNS7E073XruYsxWS5ekYTw7kFMshzptAgUqTExjvtSrxOY3GPXKw+ryl5Sp NHlEhIRLkw X-Gm-Gg: AR+sD13JTL5O2JQEvKueCcuVgfMnjVv2ArE7Ipgi4qPYTz5x18J3FjQH2eyyOP4ju88 aAMClDsEJHaFfGnXcwzmPtCeullqK/f3KvVRYZHysBvXXj5eezhWQYRggemBbEpXqyzJendd/Dm l/9G3cbRabVsSjELtG+/Up8R47CkP1VjDqKGj2E10yhmfIBOFvBd3ZZB4ScPI74PuyeMXVeT9KU 4TGgnxScUA/VilNRHf4qp1Sk1yeyIRzY5uSuWk7H/IjuhvbgAbmmLuexr6icwTOnfLrtf8hZbMQ X1B4ypJqMPHzG1N+C4vaMoBbAx1weTToB4H1Wijg9flCjorghQ7XB9pBGalQu0MgWAswpfl8Yfg uusrvZGfgpr0iu6UXiNsi2qP2fiMmZB12GUyPK6X7rg55NHJODbCPeScZM5wqNhrBT4vXuv/oR/ LTgDzewMsjwU8= X-Received: by 2002:ac8:5981:0:b0:51a:8c99:1f18 with SMTP id d75a77b69052e-529d7234c58mr27050811cf.71.1785259496882; Tue, 28 Jul 2026 10:24:56 -0700 (PDT) X-Received: by 2002:ac8:5981:0:b0:51a:8c99:1f18 with SMTP id d75a77b69052e-529d7234c58mr27050361cf.71.1785259496199; Tue, 28 Jul 2026 10:24:56 -0700 (PDT) Received: from t14s (2001-1c00-0c32-7800-07d4-cca3-ec08-7ac7.cable.dynamic.v6.ziggo.nl. [2001:1c00:c32:7800:7d4:cca3:ec08:7ac7]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c1f83fabcdasm11136466b.48.2026.07.28.10.24.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Jul 2026 10:24:55 -0700 (PDT) From: Hans de Goede To: libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi , =?utf-8?q?Niklas_S=C3=B6?= =?utf-8?q?derlund?= , Loic Poulain , Hans de Goede Subject: [PATCH v6 5/5] libcamera: Create IPA by IPA proxy type name Date: Tue, 28 Jul 2026 19:24:47 +0200 Message-ID: <20260728172447.68551-6-johannes.goede@oss.qualcomm.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260728172447.68551-1-johannes.goede@oss.qualcomm.com> References: <20260728172447.68551-1-johannes.goede@oss.qualcomm.com> MIME-Version: 1.0 X-Authority-Analysis: v=2.4 cv=O/kJeh9W c=1 sm=1 tr=0 ts=6a68e5e9 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=_0kJXWGtG4qjkoVi4RIA:9 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-GUID: uFsMVbeS3DN5sSI8b-ZAYeeCFTF4Rio3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzI4MDE1MyBTYWx0ZWRfX3s6Y7vfl3TD+ EHQxQwc3B6KdlJFzbKvuYUuAiclIdQGadUpAPsGJNTePuSLowvVCq6ERKmDGOUo9GyUq+5+TsK5 +CntMfROYkGJ4HRbSBfckyqejhGUXgtrM2eW0EQDnAdc4ViKe/eee+YH5BidRjQHaUwj7D2TaGX WrW0NHvyWK7kQomFaMW2PEh6p7TgTK58Wha0sJZ28qg4kO3uYrt8L8hppQevB2CNu2UERdHGUiJ N1Xjw7vE6uF9ysmUMylgEYEERrdNq8sZxfuhQNvE/ysW+pfOebjFEYBPPTYP7P2ldlUQ9EXsjIL FWEZKbGse6c4NPMK07mQltzzonyLC1ntDs7czorUO/JEtJRUkYED3Cs3gRO1CRakJE4c1N6rKc5 OdD32H580WdilNAJ5F/YEQgl90GwEM4zsxDuhQQDy/wFKyyCW1raktnpQynDBU5tNr626w41BW5 TS2IVaYEJwL3stfEglg== X-Proofpoint-ORIG-GUID: uFsMVbeS3DN5sSI8b-ZAYeeCFTF4Rio3 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzI4MDE1MyBTYWx0ZWRfX3u6ZUVkj34V4 ukd87mifpo3RXiGOiP89dBxAaVWPqT8Qye9KG1hW69GASG6N9T4y1zPb7/iG6gF/n+lzRYE2v6p Oki4+biibO32eiNbcBkjuqDSbYHGuV4= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293, Aquarius:18.0.1143, Hydra:6.1.134, FMLib:17.12.100.49 definitions=2026-07-28_04,2026-07-28_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 priorityscore=1501 bulkscore=0 adultscore=0 impostorscore=0 suspectscore=0 phishscore=0 clxscore=1015 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607280153 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 then 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 "soft", 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/soft instead of /usr/share/libcamera/ipa/simple! Signed-off-by: Hans de Goede --- include/libcamera/internal/pipeline_handler.h | 2 +- meson_options.txt | 2 +- src/ipa/meson.build | 2 +- src/ipa/{simple => soft}/algorithms/adjust.cpp | 0 src/ipa/{simple => soft}/algorithms/adjust.h | 0 src/ipa/{simple => soft}/algorithms/agc.cpp | 0 src/ipa/{simple => soft}/algorithms/agc.h | 0 src/ipa/{simple => soft}/algorithms/algorithm.h | 0 src/ipa/{simple => soft}/algorithms/awb.cpp | 2 +- src/ipa/{simple => soft}/algorithms/awb.h | 0 src/ipa/{simple => soft}/algorithms/blc.cpp | 0 src/ipa/{simple => soft}/algorithms/blc.h | 0 src/ipa/{simple => soft}/algorithms/ccm.cpp | 0 src/ipa/{simple => soft}/algorithms/ccm.h | 0 src/ipa/{simple => soft}/algorithms/meson.build | 0 src/ipa/{simple => soft}/data/meson.build | 2 +- src/ipa/{simple => soft}/data/uncalibrated.yaml | 0 src/ipa/{simple => soft}/ipa_context.cpp | 0 src/ipa/{simple => soft}/ipa_context.h | 0 src/ipa/{simple => soft}/meson.build | 0 src/ipa/{simple => soft}/module.h | 0 src/ipa/{simple => soft}/soft_simple.cpp | 2 +- src/libcamera/pipeline_handler.cpp | 6 +++--- .../generators/libcamera_templates/module_ipa_proxy.h.tmpl | 2 ++ 24 files changed, 11 insertions(+), 9 deletions(-) rename src/ipa/{simple => soft}/algorithms/adjust.cpp (100%) rename src/ipa/{simple => soft}/algorithms/adjust.h (100%) rename src/ipa/{simple => soft}/algorithms/agc.cpp (100%) rename src/ipa/{simple => soft}/algorithms/agc.h (100%) rename src/ipa/{simple => soft}/algorithms/algorithm.h (100%) rename src/ipa/{simple => soft}/algorithms/awb.cpp (98%) rename src/ipa/{simple => soft}/algorithms/awb.h (100%) rename src/ipa/{simple => soft}/algorithms/blc.cpp (100%) rename src/ipa/{simple => soft}/algorithms/blc.h (100%) rename src/ipa/{simple => soft}/algorithms/ccm.cpp (100%) rename src/ipa/{simple => soft}/algorithms/ccm.h (100%) rename src/ipa/{simple => soft}/algorithms/meson.build (100%) rename src/ipa/{simple => soft}/data/meson.build (80%) rename src/ipa/{simple => soft}/data/uncalibrated.yaml (100%) rename src/ipa/{simple => soft}/ipa_context.cpp (100%) rename src/ipa/{simple => soft}/ipa_context.h (100%) rename src/ipa/{simple => soft}/meson.build (100%) rename src/ipa/{simple => soft}/module.h (100%) rename src/ipa/{simple => soft}/soft_simple.cpp (99%) 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/meson_options.txt b/meson_options.txt index 20baacc4f..953b093e3 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -48,7 +48,7 @@ option('gstreamer', option('ipas', type : 'array', - choices : ['ipu3', 'mali-c55', 'rkisp1', 'rpi/pisp', 'rpi/vc4', 'simple', + choices : ['ipu3', 'mali-c55', 'rkisp1', 'rpi/pisp', 'rpi/vc4', 'soft', 'vimc'], description : 'Select which IPA modules to build') diff --git a/src/ipa/meson.build b/src/ipa/meson.build index c583c7efd..2ec9d7c4b 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': 'soft', 'vimc': 'vimc' } diff --git a/src/ipa/simple/algorithms/adjust.cpp b/src/ipa/soft/algorithms/adjust.cpp similarity index 100% rename from src/ipa/simple/algorithms/adjust.cpp rename to src/ipa/soft/algorithms/adjust.cpp diff --git a/src/ipa/simple/algorithms/adjust.h b/src/ipa/soft/algorithms/adjust.h similarity index 100% rename from src/ipa/simple/algorithms/adjust.h rename to src/ipa/soft/algorithms/adjust.h diff --git a/src/ipa/simple/algorithms/agc.cpp b/src/ipa/soft/algorithms/agc.cpp similarity index 100% rename from src/ipa/simple/algorithms/agc.cpp rename to src/ipa/soft/algorithms/agc.cpp diff --git a/src/ipa/simple/algorithms/agc.h b/src/ipa/soft/algorithms/agc.h similarity index 100% rename from src/ipa/simple/algorithms/agc.h rename to src/ipa/soft/algorithms/agc.h diff --git a/src/ipa/simple/algorithms/algorithm.h b/src/ipa/soft/algorithms/algorithm.h similarity index 100% rename from src/ipa/simple/algorithms/algorithm.h rename to src/ipa/soft/algorithms/algorithm.h diff --git a/src/ipa/simple/algorithms/awb.cpp b/src/ipa/soft/algorithms/awb.cpp similarity index 98% rename from src/ipa/simple/algorithms/awb.cpp rename to src/ipa/soft/algorithms/awb.cpp index 05155c83d..35b6e28f1 100644 --- a/src/ipa/simple/algorithms/awb.cpp +++ b/src/ipa/soft/algorithms/awb.cpp @@ -15,7 +15,7 @@ #include #include "libipa/colours.h" -#include "simple/ipa_context.h" +#include "soft/ipa_context.h" namespace libcamera { diff --git a/src/ipa/simple/algorithms/awb.h b/src/ipa/soft/algorithms/awb.h similarity index 100% rename from src/ipa/simple/algorithms/awb.h rename to src/ipa/soft/algorithms/awb.h diff --git a/src/ipa/simple/algorithms/blc.cpp b/src/ipa/soft/algorithms/blc.cpp similarity index 100% rename from src/ipa/simple/algorithms/blc.cpp rename to src/ipa/soft/algorithms/blc.cpp diff --git a/src/ipa/simple/algorithms/blc.h b/src/ipa/soft/algorithms/blc.h similarity index 100% rename from src/ipa/simple/algorithms/blc.h rename to src/ipa/soft/algorithms/blc.h diff --git a/src/ipa/simple/algorithms/ccm.cpp b/src/ipa/soft/algorithms/ccm.cpp similarity index 100% rename from src/ipa/simple/algorithms/ccm.cpp rename to src/ipa/soft/algorithms/ccm.cpp diff --git a/src/ipa/simple/algorithms/ccm.h b/src/ipa/soft/algorithms/ccm.h similarity index 100% rename from src/ipa/simple/algorithms/ccm.h rename to src/ipa/soft/algorithms/ccm.h diff --git a/src/ipa/simple/algorithms/meson.build b/src/ipa/soft/algorithms/meson.build similarity index 100% rename from src/ipa/simple/algorithms/meson.build rename to src/ipa/soft/algorithms/meson.build diff --git a/src/ipa/simple/data/meson.build b/src/ipa/soft/data/meson.build similarity index 80% rename from src/ipa/simple/data/meson.build rename to src/ipa/soft/data/meson.build index 92795ee4c..f4b806083 100644 --- a/src/ipa/simple/data/meson.build +++ b/src/ipa/soft/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 / 'soft', install_tag : 'runtime') diff --git a/src/ipa/simple/data/uncalibrated.yaml b/src/ipa/soft/data/uncalibrated.yaml similarity index 100% rename from src/ipa/simple/data/uncalibrated.yaml rename to src/ipa/soft/data/uncalibrated.yaml diff --git a/src/ipa/simple/ipa_context.cpp b/src/ipa/soft/ipa_context.cpp similarity index 100% rename from src/ipa/simple/ipa_context.cpp rename to src/ipa/soft/ipa_context.cpp diff --git a/src/ipa/simple/ipa_context.h b/src/ipa/soft/ipa_context.h similarity index 100% rename from src/ipa/simple/ipa_context.h rename to src/ipa/soft/ipa_context.h diff --git a/src/ipa/simple/meson.build b/src/ipa/soft/meson.build similarity index 100% rename from src/ipa/simple/meson.build rename to src/ipa/soft/meson.build diff --git a/src/ipa/simple/module.h b/src/ipa/soft/module.h similarity index 100% rename from src/ipa/simple/module.h rename to src/ipa/soft/module.h diff --git a/src/ipa/simple/soft_simple.cpp b/src/ipa/soft/soft_simple.cpp similarity index 99% rename from src/ipa/simple/soft_simple.cpp rename to src/ipa/soft/soft_simple.cpp index d4ab91e30..887a1586e 100644 --- a/src/ipa/simple/soft_simple.cpp +++ b/src/ipa/soft/soft_simple.cpp @@ -342,7 +342,7 @@ extern "C" { const struct IPAModuleInfo ipaModuleInfo = { IPA_MODULE_API_VERSION, 0, - "simple", + "soft", }; IPAInterface *ipaCreate() diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp index 25fc11989..d92cb5347 100644 --- a/src/libcamera/pipeline_handler.cpp +++ b/src/libcamera/pipeline_handler.cpp @@ -844,8 +844,8 @@ 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. * * \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 +858,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;