Patch Detail
Show a patch.
GET /api/1.1/patches/26333/?format=api
{ "id": 26333, "url": "https://patchwork.libcamera.org/api/1.1/patches/26333/?format=api", "web_url": "https://patchwork.libcamera.org/patch/26333/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20260325105618.8601-1-johannes.goede@oss.qualcomm.com>", "date": "2026-03-25T10:56:18", "name": "libcamera: Make converter/softISP configure()'s outputCfgs argument really const", "commit_ref": "5f770f748c1d75d1056840bea123060659594b5a", "pull_url": null, "state": "accepted", "archived": false, "hash": "cc49cb1146b5008ae30177ff33cfbba701609ca1", "submitter": { "id": 242, "url": "https://patchwork.libcamera.org/api/1.1/people/242/?format=api", "name": "Hans de Goede", "email": "johannes.goede@oss.qualcomm.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/26333/mbox/", "series": [ { "id": 5847, "url": "https://patchwork.libcamera.org/api/1.1/series/5847/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5847", "date": "2026-03-25T10:56:18", "name": "libcamera: Make converter/softISP configure()'s outputCfgs argument really const", "version": 1, "mbox": "https://patchwork.libcamera.org/series/5847/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/26333/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/26333/checks/", "tags": {}, "headers": { "Return-Path": "<libcamera-devel-bounces@lists.libcamera.org>", "X-Original-To": "parsemail@patchwork.libcamera.org", "Delivered-To": "parsemail@patchwork.libcamera.org", "Received": [ "from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 657F1BE086\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 25 Mar 2026 10:56:29 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 547CD627A7;\n\tWed, 25 Mar 2026 11:56:28 +0100 (CET)", "from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com\n\t[205.220.180.131])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 38B9C62788\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 25 Mar 2026 11:56:27 +0100 (CET)", "from pps.filterd (m0279869.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n\t62PACSQ51208841 for <libcamera-devel@lists.libcamera.org>;\n\tWed, 25 Mar 2026 10:56:25 GMT", "from mail-qt1-f198.google.com (mail-qt1-f198.google.com\n\t[209.85.160.198])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d48599f3y-1\n\t(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 25 Mar 2026 10:56:21 +0000 (GMT)", "by mail-qt1-f198.google.com with SMTP id\n\td75a77b69052e-50b6f869676so74904391cf.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 25 Mar 2026 03:56:21 -0700 (PDT)", "from t14s\n\t(2001-1c00-0c32-7800-beb3-9058-f5fe-3f2e.cable.dynamic.v6.ziggo.nl.\n\t[2001:1c00:c32:7800:beb3:9058:f5fe:3f2e])\n\tby smtp.gmail.com with ESMTPSA id\n\ta640c23a62f3a-b983365a159sm753770566b.44.2026.03.25.03.56.19\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 25 Mar 2026 03:56:19 -0700 (PDT)" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=qualcomm.com header.i=@qualcomm.com\n\theader.b=\"OIhU+07b\"; dkim=pass (2048-bit key;\n\tunprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n\theader.b=\"aqyx5dAh\"; dkim-atps=neutral", "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n\tcc:content-transfer-encoding:date:from:message-id:mime-version\n\t:subject:to; s=qcppdkim1; bh=TxCZUFccIS6YcY0XBlTwm7GOvkHh3fFB7Wc\n\txPaIVN5c=; b=OIhU+07b3+hEYjNN99yFcXEjjfkmjkAha51a6EjV8dNr2n4ARyh\n\tVNHmBw5ytU2x3VI9bbyVORfCnhnuMP9cvf4Putgzd0HsrOLNQ93KFKz8yHx7rJAr\n\tLVn0CGolGxPDqpt6ZtvBK6KJW6Hs1fXg+eBdKvvKU0FqD3AV8Kkb4NYQYonX3Mni\n\t59K/qh+RtkFVh8MVIB9ny8BAagGhq8X/iHUiuAwlgvuZcdZJH8c2LJRlIGv4R+cB\n\t5ui2U01LvMEEEHJNE9pjCUV+wLRAWlZR4CwH3pIWxYUqhl7Z43Pcol+vjPjdR8W/\n\tfRfY6tFYeHUP3nXLikL4Rn9D4/N+dTMIpoQ==", "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=oss.qualcomm.com; s=google; t=1774436181; x=1775040981;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:from:to:cc:subject:date:message-id:reply-to;\n\tbh=TxCZUFccIS6YcY0XBlTwm7GOvkHh3fFB7WcxPaIVN5c=;\n\tb=aqyx5dAhc1oSNlj81wC7yjcE1VU5fKtbeqYI4h2P5saqPYdLEeXuZfS9MJnnsmulR5\n\tMTGQ6ddYAOV+mZptmQ54PUwO+fsCJvgbdFAZSuDAP0kr7PWSa9E3AoZu/loJ4y3D2JNe\n\t5+HS7duos+foN9rRw3U79EyDd9G6g+8+FTFjX5W2Qh5nkRFDBc69oFdi7k97+F2ERnmq\n\t27xxy1rtEIBLEznoHgQhdAVIvJeLCiB5ig2G+70mCnphl3J/QLL/uZJmXgUn5TIRVr4n\n\tcygH+CDgt3YnEX7d1Lo8aNf92z0X+zC79T32alDcFbhAYRon+g1s+b+04omoumuwI0y7\n\tPaxQ==" ], "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20251104; t=1774436181; x=1775040981;\n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=TxCZUFccIS6YcY0XBlTwm7GOvkHh3fFB7WcxPaIVN5c=;\n\tb=oSuTQ4dyT11RYpSCOV6h46g1we5neg4DzAmXFPxdm5w0+6Z4fghYQMsXriHQwh1Ntm\n\ttJb6XVSMTlVQrk6O39MppQ9A5mD5vJruMVXeyJ9d8pG8zRELfs7mK9cODeX6QTMld0me\n\tTx4VABMr466XrPp5hIbXKPwvpkkUzZEzLC0KR5t/gSyfpHeKu35t0nFBixcx+LS69EMy\n\tAxj55XkPcIBT+m9aHRVlD8TE8YjNklHVXc02zFgAWWUw+khPEtUBBgsEOiCxVcKzH0Qu\n\tIn+3IHuipC/D0Inmjkgu0/XcCnluCvqntf3StzPjIzpMYfGwQPoGHadOn4+mdiysZTFZ\n\tslHQ==", "X-Gm-Message-State": "AOJu0Yw2zvnlyloUZTOJrTdWHkwzqT9hVfHkVRvbcgOst348GbmNBjNw\n\tHhZTU8gd4M80IxQtFxxjCq9YBs3vgxZCpekwaet86ybyCqLufHHcNLmJ1Vt2kNq/mw1ZcsQqTQN\n\truipEdMUkkLxak4yxGy7Jl5uowtoZzz1LJ7QLePSmwnhjlPaeNF1oqAI2cJqjjLl+O3O46aqRLU\n\t1vhZs/DbOH", "X-Gm-Gg": "ATEYQzzanP4rLkNzYAplX1eMllqTLhQK23ELx3G/oBHdGoqG/w82X+opmiV6rjQquKu\n\tzg76EbrH+2yq0FxHp4Yojp+aKVP9DMp0Pw83sdLPCSqw0q1ggE6jfrJJ1NqbIyKIP00g1lhfrob\n\t1Rz4VE2EhdZ3617UyZfYiWXwwHo1tSSGtjJgkYf7GuwtcZ/Q3r9YVA4sPWUiduvk5ZX+W72VDCv\n\tVWyV9NooZKwT0yz2URbpLesjfSwwd/8gs0bLSV5FkEDWLI0mY9KUsopUuosDODJGCus+WvMZnIv\n\tIQmBnHCKVAqm1t8mLVyzz4auk0uOYmeSm8mblnAoczBMcWmcJ1pbq/uJqXqCMW6s6ce964kVAIc\n\tqBaWvShzk2aFL+XWKFiauo1UK2qsu35i2/XXPlbRtBDCba7e7PVpqqzx1k5f8zXR7212p9v4J1m\n\t+rBco4CgCNyyLgIOg7PqI5es3QQYiQ8e3vlg==", "X-Received": [ "by 2002:ac8:4f03:0:b0:509:31bd:3de4 with SMTP id\n\td75a77b69052e-50b80e65ecbmr31080851cf.56.1774436181091; \n\tWed, 25 Mar 2026 03:56:21 -0700 (PDT)", "by 2002:ac8:4f03:0:b0:509:31bd:3de4 with SMTP id\n\td75a77b69052e-50b80e65ecbmr31080681cf.56.1774436180559; \n\tWed, 25 Mar 2026 03:56:20 -0700 (PDT)" ], "From": "Hans de Goede <johannes.goede@oss.qualcomm.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Milan Zamazal <mzamazal@redhat.com>,\n\tHans de Goede <johannes.goede@oss.qualcomm.com>", "Subject": "[PATCH] libcamera: Make converter/softISP configure()'s outputCfgs\n\targument really const", "Date": "Wed, 25 Mar 2026 11:56:18 +0100", "Message-ID": "<20260325105618.8601-1-johannes.goede@oss.qualcomm.com>", "X-Mailer": "git-send-email 2.53.0", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwMzI1MDA3NyBTYWx0ZWRfX/3wlhgUQc2oN\n\tvmKqSZi9hrIjxFiHiaJcj/h0kkeVnxge5j4gBhjbA/JULE9QuLfjFKUSFDM35jVjL3fj820XAlf\n\tPFAceOH8O/JylQEBrNkOOgpLQRCDzc8xQXoDcChxyCwD4BDXby6OSf3rF9v3UU++4ZmU1UZr+BD\n\tGnpwd6cV3HaRfOwRzLL1mqOp7YhMJXufiMs2bHOJi99mOgLRoPXAxWOHDSdC1szKQ16sVDzoJ+K\n\tbPosBXvn1XBTU5pMESl58BFd1LC8yQWUcsAs0n78Gkc9dz1dboE/yVzuayf4yYuWDfnGkKcGBj1\n\t09RCTQ043wWXb8BrBRk7hK3A8xQ8oKufL+ZQvKAI2d05FSGTfr6yiutNKay2CJBCHCRvlE77Jjg\n\tNnkQ6kRvdL+4UhJIxkYwO2PTJGY4PgQFW82ImRojBnBV59OE3r+UrlFLydianjd5kV1/Qpmr8vF\n\tLZWHCJI5AUzDvshw3BQ==", "X-Authority-Analysis": "v=2.4 cv=VODQXtPX c=1 sm=1 tr=0 ts=69c3bf55 cx=c_pps\n\ta=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=Yq5XynenixoA:10\n\ta=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22\n\ta=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=pt1EKlqNxKOWZmuetCEA:9\n\ta=dawVfQjAaf238kedN5IG:22", "X-Proofpoint-GUID": "TtjbUDq7FKhATiy6RtnmRDxEmRFgO5tP", "X-Proofpoint-ORIG-GUID": "TtjbUDq7FKhATiy6RtnmRDxEmRFgO5tP", "X-Proofpoint-Virus-Version": "vendor=baseguard\n\tengine=ICAP:2.0.293, Aquarius:18.0.1143, Hydra:6.1.51,\n\tFMLib:17.12.100.49\n\tdefinitions=2026-03-25_03,2026-03-24_01,2025-10-01_01", "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n\tsuspectscore=0 lowpriorityscore=0 malwarescore=0 phishscore=0\n\tpriorityscore=1501 spamscore=0 impostorscore=0 clxscore=1015\n\tadultscore=0\n\tbulkscore=0 classifier=typeunknown authscore=0 authtc= authcc=\n\troute=outbound\n\tadjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001\n\tdefinitions=main-2603250077", "X-BeenThere": "libcamera-devel@lists.libcamera.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "<libcamera-devel.lists.libcamera.org>", "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>", "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>", "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>", "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>", "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "The intent of the outputCfgs argument to the configure() function of\nconverter classes and the softISP is to allow the passed in stream-configs\nto not be changed.\n\nBut only the vector is const, the reference inside the vector are not\nconst, which allows modifying the stream-configs as can be seen inside\nDebayerEGL::configure() which was using a non const reference outputCfg\nhelper variable.\n\nFix this by making the references inside the vector const.\n\nSigned-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>\n---\n include/libcamera/internal/converter.h | 2 +-\n include/libcamera/internal/converter/converter_dw100.h | 2 +-\n include/libcamera/internal/converter/converter_v4l2_m2m.h | 2 +-\n include/libcamera/internal/software_isp/software_isp.h | 2 +-\n src/libcamera/converter/converter_dw100.cpp | 2 +-\n src/libcamera/converter/converter_v4l2_m2m.cpp | 2 +-\n src/libcamera/pipeline/rkisp1/rkisp1.cpp | 2 +-\n src/libcamera/pipeline/simple/simple.cpp | 2 +-\n src/libcamera/software_isp/debayer.h | 2 +-\n src/libcamera/software_isp/debayer_cpu.cpp | 2 +-\n src/libcamera/software_isp/debayer_cpu.h | 2 +-\n src/libcamera/software_isp/debayer_egl.cpp | 4 ++--\n src/libcamera/software_isp/debayer_egl.h | 2 +-\n src/libcamera/software_isp/software_isp.cpp | 2 +-\n 14 files changed, 15 insertions(+), 15 deletions(-)", "diff": "diff --git a/include/libcamera/internal/converter.h b/include/libcamera/internal/converter.h\nindex 4b811686f..08e80a22f 100644\n--- a/include/libcamera/internal/converter.h\n+++ b/include/libcamera/internal/converter.h\n@@ -71,7 +71,7 @@ public:\n \t\t\t\t Alignment align = Alignment::Down) = 0;\n \n \tvirtual int configure(const StreamConfiguration &inputCfg,\n-\t\t\t const std::vector<std::reference_wrapper<StreamConfiguration>> &outputCfgs) = 0;\n+\t\t\t const std::vector<std::reference_wrapper<const StreamConfiguration>> &outputCfgs) = 0;\n \tvirtual bool isConfigured(const Stream *stream) const = 0;\n \tvirtual int exportBuffers(const Stream *stream, unsigned int count,\n \t\t\t\t std::vector<std::unique_ptr<FrameBuffer>> *buffers) = 0;\ndiff --git a/include/libcamera/internal/converter/converter_dw100.h b/include/libcamera/internal/converter/converter_dw100.h\nindex d70c8fe76..0a41b180a 100644\n--- a/include/libcamera/internal/converter/converter_dw100.h\n+++ b/include/libcamera/internal/converter/converter_dw100.h\n@@ -34,7 +34,7 @@ public:\n \tint init(const YamlObject ¶ms);\n \n \tint configure(const StreamConfiguration &inputCfg,\n-\t\t const std::vector<std::reference_wrapper<StreamConfiguration>>\n+\t\t const std::vector<std::reference_wrapper<const StreamConfiguration>>\n \t\t\t &outputCfg);\n \tbool isConfigured(const Stream *stream) const;\n \ndiff --git a/include/libcamera/internal/converter/converter_v4l2_m2m.h b/include/libcamera/internal/converter/converter_v4l2_m2m.h\nindex 6d2453bb9..63cea6b08 100644\n--- a/include/libcamera/internal/converter/converter_v4l2_m2m.h\n+++ b/include/libcamera/internal/converter/converter_v4l2_m2m.h\n@@ -54,7 +54,7 @@ public:\n \t\t\t const Size &size, Alignment align = Alignment::Down) override;\n \n \tint configure(const StreamConfiguration &inputCfg,\n-\t\t const std::vector<std::reference_wrapper<StreamConfiguration>>\n+\t\t const std::vector<std::reference_wrapper<const StreamConfiguration>>\n \t\t &outputCfg) override;\n \tbool isConfigured(const Stream *stream) const override;\n \tint exportBuffers(const Stream *stream, unsigned int count,\ndiff --git a/include/libcamera/internal/software_isp/software_isp.h b/include/libcamera/internal/software_isp/software_isp.h\nindex ad89c9b3c..585e0d6d9 100644\n--- a/include/libcamera/internal/software_isp/software_isp.h\n+++ b/include/libcamera/internal/software_isp/software_isp.h\n@@ -64,7 +64,7 @@ public:\n \tstrideAndFrameSize(const PixelFormat &outputFormat, const Size &size);\n \n \tint configure(const StreamConfiguration &inputCfg,\n-\t\t const std::vector<std::reference_wrapper<StreamConfiguration>> &outputCfgs,\n+\t\t const std::vector<std::reference_wrapper<const StreamConfiguration>> &outputCfgs,\n \t\t const ipa::soft::IPAConfigInfo &configInfo);\n \n \tint exportBuffers(const Stream *stream, unsigned int count,\ndiff --git a/src/libcamera/converter/converter_dw100.cpp b/src/libcamera/converter/converter_dw100.cpp\nindex df5155cfd..7899fe8c2 100644\n--- a/src/libcamera/converter/converter_dw100.cpp\n+++ b/src/libcamera/converter/converter_dw100.cpp\n@@ -142,7 +142,7 @@ int ConverterDW100Module::init(const YamlObject ¶ms)\n * \\copydoc libcamera::V4L2M2MConverter::configure\n */\n int ConverterDW100Module::configure(const StreamConfiguration &inputCfg,\n-\t\t\t\t const std::vector<std::reference_wrapper<StreamConfiguration>>\n+\t\t\t\t const std::vector<std::reference_wrapper<const StreamConfiguration>>\n \t\t\t\t\t &outputCfgs)\n {\n \tint ret;\ndiff --git a/src/libcamera/converter/converter_v4l2_m2m.cpp b/src/libcamera/converter/converter_v4l2_m2m.cpp\nindex 4427a37c6..ffba0434e 100644\n--- a/src/libcamera/converter/converter_v4l2_m2m.cpp\n+++ b/src/libcamera/converter/converter_v4l2_m2m.cpp\n@@ -548,7 +548,7 @@ Size V4L2M2MConverter::adjustSizes(const Size &cfgSize,\n * \\copydoc libcamera::Converter::configure\n */\n int V4L2M2MConverter::configure(const StreamConfiguration &inputCfg,\n-\t\t\t\tconst std::vector<std::reference_wrapper<StreamConfiguration>> &outputCfgs)\n+\t\t\t\tconst std::vector<std::reference_wrapper<const StreamConfiguration>> &outputCfgs)\n {\n \tint ret = 0;\n \ndiff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\nindex 320a4dc5a..faeeecd96 100644\n--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n@@ -1037,7 +1037,7 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)\n \tdata->properties_.set(properties::ScalerCropMaximum, sensorCrop);\n \n \tstd::map<unsigned int, IPAStream> streamConfig;\n-\tstd::vector<std::reference_wrapper<StreamConfiguration>> outputCfgs;\n+\tstd::vector<std::reference_wrapper<const StreamConfiguration>> outputCfgs;\n \n \tfor (const StreamConfiguration &cfg : *config) {\n \t\tif (cfg.stream() == &data->mainPathStream_) {\ndiff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp\nindex 4a0b9f58d..9497ac13b 100644\n--- a/src/libcamera/pipeline/simple/simple.cpp\n+++ b/src/libcamera/pipeline/simple/simple.cpp\n@@ -1562,7 +1562,7 @@ int SimplePipelineHandler::configure(Camera *camera, CameraConfiguration *c)\n \t}\n \n \t/* Configure the converter if needed. */\n-\tstd::vector<std::reference_wrapper<StreamConfiguration>> outputCfgs;\n+\tstd::vector<std::reference_wrapper<const StreamConfiguration>> outputCfgs;\n \tdata->useConversion_ = config->needConversion();\n \n \tdata->rawStream_ = nullptr;\ndiff --git a/src/libcamera/software_isp/debayer.h b/src/libcamera/software_isp/debayer.h\nindex ce9350b7b..ea1ec6dcf 100644\n--- a/src/libcamera/software_isp/debayer.h\n+++ b/src/libcamera/software_isp/debayer.h\n@@ -39,7 +39,7 @@ public:\n \tvirtual ~Debayer() = 0;\n \n \tvirtual int configure(const StreamConfiguration &inputCfg,\n-\t\t\t const std::vector<std::reference_wrapper<StreamConfiguration>> &outputCfgs,\n+\t\t\t const std::vector<std::reference_wrapper<const StreamConfiguration>> &outputCfgs,\n \t\t\t bool ccmEnabled) = 0;\n \n \tvirtual std::vector<PixelFormat> formats(PixelFormat inputFormat) = 0;\ndiff --git a/src/libcamera/software_isp/debayer_cpu.cpp b/src/libcamera/software_isp/debayer_cpu.cpp\nindex 1de70b3b7..dd0fff871 100644\n--- a/src/libcamera/software_isp/debayer_cpu.cpp\n+++ b/src/libcamera/software_isp/debayer_cpu.cpp\n@@ -540,7 +540,7 @@ int DebayerCpu::setDebayerFunctions(PixelFormat inputFormat,\n }\n \n int DebayerCpu::configure(const StreamConfiguration &inputCfg,\n-\t\t\t const std::vector<std::reference_wrapper<StreamConfiguration>> &outputCfgs,\n+\t\t\t const std::vector<std::reference_wrapper<const StreamConfiguration>> &outputCfgs,\n \t\t\t bool ccmEnabled)\n {\n \tif (getInputConfig(inputCfg.pixelFormat, inputConfig_) != 0)\ndiff --git a/src/libcamera/software_isp/debayer_cpu.h b/src/libcamera/software_isp/debayer_cpu.h\nindex a96998e92..c6f263e1b 100644\n--- a/src/libcamera/software_isp/debayer_cpu.h\n+++ b/src/libcamera/software_isp/debayer_cpu.h\n@@ -35,7 +35,7 @@ public:\n \t~DebayerCpu();\n \n \tint configure(const StreamConfiguration &inputCfg,\n-\t\t const std::vector<std::reference_wrapper<StreamConfiguration>> &outputCfgs,\n+\t\t const std::vector<std::reference_wrapper<const StreamConfiguration>> &outputCfgs,\n \t\t bool ccmEnabled);\n \tSize patternSize(PixelFormat inputFormat);\n \tstd::vector<PixelFormat> formats(PixelFormat input);\ndiff --git a/src/libcamera/software_isp/debayer_egl.cpp b/src/libcamera/software_isp/debayer_egl.cpp\nindex 9a0606b5a..547b3c3bd 100644\n--- a/src/libcamera/software_isp/debayer_egl.cpp\n+++ b/src/libcamera/software_isp/debayer_egl.cpp\n@@ -277,7 +277,7 @@ int DebayerEGL::initBayerShaders(PixelFormat inputFormat, PixelFormat outputForm\n }\n \n int DebayerEGL::configure(const StreamConfiguration &inputCfg,\n-\t\t\t const std::vector<std::reference_wrapper<StreamConfiguration>> &outputCfgs,\n+\t\t\t const std::vector<std::reference_wrapper<const StreamConfiguration>> &outputCfgs,\n \t\t\t [[maybe_unused]] bool ccmEnabled)\n {\n \tif (getInputConfig(inputCfg.pixelFormat, inputConfig_) != 0)\n@@ -307,7 +307,7 @@ int DebayerEGL::configure(const StreamConfiguration &inputCfg,\n \t\treturn -EINVAL;\n \t}\n \n-\tStreamConfiguration &outputCfg = outputCfgs[0];\n+\tconst StreamConfiguration &outputCfg = outputCfgs[0];\n \tSizeRange outSizeRange = sizes(inputCfg.pixelFormat, inputCfg.size);\n \tstd::tie(outputConfig_.stride, outputConfig_.frameSize) =\n \t\tstrideAndFrameSize(outputCfg.pixelFormat, outputCfg.size);\ndiff --git a/src/libcamera/software_isp/debayer_egl.h b/src/libcamera/software_isp/debayer_egl.h\nindex 3abff1ad2..6bbe487a3 100644\n--- a/src/libcamera/software_isp/debayer_egl.h\n+++ b/src/libcamera/software_isp/debayer_egl.h\n@@ -42,7 +42,7 @@ public:\n \t~DebayerEGL();\n \n \tint configure(const StreamConfiguration &inputCfg,\n-\t\t const std::vector<std::reference_wrapper<StreamConfiguration>> &outputCfgs,\n+\t\t const std::vector<std::reference_wrapper<const StreamConfiguration>> &outputCfgs,\n \t\t bool ccmEnabled);\n \n \tSize patternSize(PixelFormat inputFormat);\ndiff --git a/src/libcamera/software_isp/software_isp.cpp b/src/libcamera/software_isp/software_isp.cpp\nindex 4cf5639d9..60228369f 100644\n--- a/src/libcamera/software_isp/software_isp.cpp\n+++ b/src/libcamera/software_isp/software_isp.cpp\n@@ -262,7 +262,7 @@ SoftwareIsp::strideAndFrameSize(const PixelFormat &outputFormat, const Size &siz\n * \\return 0 on success, a negative errno on failure\n */\n int SoftwareIsp::configure(const StreamConfiguration &inputCfg,\n-\t\t\t const std::vector<std::reference_wrapper<StreamConfiguration>> &outputCfgs,\n+\t\t\t const std::vector<std::reference_wrapper<const StreamConfiguration>> &outputCfgs,\n \t\t\t const ipa::soft::IPAConfigInfo &configInfo)\n {\n \tASSERT(ipa_ && debayer_);\n", "prefixes": [] }