[{"id":35784,"web_url":"https://patchwork.libcamera.org/comment/35784/","msgid":"<25ff9f67-45ff-4396-8eeb-5bb7d361ebd5@ideasonboard.com>","date":"2025-09-11T15:50:19","subject":"Re: [PATCH v2 6/6] ipa: simple: agc: Prevent division by zero in AGC","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"2025. 09. 11. 15:51 keltezéssel, Milan Zamazal írta:\n> If the histogram size is non-zero but lower than the number of bins,\n> yHistValsPerBin is zero and then the AGC processing crashes on division\n> by it.  Let's check yHistValsPerBin for being zero and stop AGC\n> processing in such a case.  The condition also covers the cases where\n> histogramSize or yHistValsPerBinMod are zero.\n> \n> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n> ---\n\nTested-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n\n\n>   src/ipa/simple/algorithms/agc.cpp | 6 ++++++\n>   1 file changed, 6 insertions(+)\n> \n> diff --git a/src/ipa/simple/algorithms/agc.cpp b/src/ipa/simple/algorithms/agc.cpp\n> index c46bb0ebe..e47949ec4 100644\n> --- a/src/ipa/simple/algorithms/agc.cpp\n> +++ b/src/ipa/simple/algorithms/agc.cpp\n> @@ -124,6 +124,12 @@ void Agc::process(IPAContext &context,\n>   \tunsigned int denom = 0;\n>   \tunsigned int num = 0;\n>   \n> +\tif (yHistValsPerBin == 0) {\n> +\t\tLOG(IPASoftExposure, Debug)\n> +\t\t\t<< \"Not adjusting exposure due to insufficient histogram data\";\n> +\t\treturn;\n> +\t}\n> +\n>   \tfor (unsigned int i = 0; i < histogramSize; i++) {\n>   \t\tunsigned int idx = (i - (i / yHistValsPerBinMod)) / yHistValsPerBin;\n>   \t\texposureBins[idx] += histogram[blackLevelHistIdx + i];","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 5E5BCBDB13\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 11 Sep 2025 15:50:26 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id EF91469367;\n\tThu, 11 Sep 2025 17:50:24 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B0EB469339\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 11 Sep 2025 17:50:23 +0200 (CEST)","from [192.168.33.12] (185.221.142.115.nat.pool.zt.hu\n\t[185.221.142.115])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id CB578596;\n\tThu, 11 Sep 2025 17:49:08 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"VzDfT9ta\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1757605748;\n\tbh=clNEVNQuVKB6oZxfVE6Xrej7T0MmHWiHeKpC9H8HQFk=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=VzDfT9ta+2YORe36jyeRAG0jl8HqnQOp4mx3A0RCqPH3TD1pwSPqIaN68f9PrZGjS\n\t/A5yIcK+slwD57EmD+HjhNB4sRJDELye84/9QbNlK9RKZJ40QskbgmAD2tnuuRICr4\n\tUQVuSDqkLIgavjE/zs/Dwn5srinbGz8xGzJliqY4=","Message-ID":"<25ff9f67-45ff-4396-8eeb-5bb7d361ebd5@ideasonboard.com>","Date":"Thu, 11 Sep 2025 17:50:19 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 6/6] ipa: simple: agc: Prevent division by zero in AGC","To":"Milan Zamazal <mzamazal@redhat.com>, libcamera-devel@lists.libcamera.org","Cc":"mail@maciej.szmigiero.name","References":"<20250911135144.56586-1-mzamazal@redhat.com>\n\t<20250911135144.56586-7-mzamazal@redhat.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<20250911135144.56586-7-mzamazal@redhat.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","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>"}},{"id":35911,"web_url":"https://patchwork.libcamera.org/comment/35911/","msgid":"<9e89fe59-ded2-4aa2-8f13-5db624f752aa@maciej.szmigiero.name>","date":"2025-09-19T04:10:00","subject":"Re: [PATCH v2 6/6] ipa: simple: agc: Prevent division by zero in AGC","submitter":{"id":237,"url":"https://patchwork.libcamera.org/api/people/237/","name":"Maciej S. Szmigiero","email":"mail@maciej.szmigiero.name"},"content":"On 9/11/25 15:51, Milan Zamazal wrote:\n> If the histogram size is non-zero but lower than the number of bins,\n> yHistValsPerBin is zero and then the AGC processing crashes on division\n> by it.  Let's check yHistValsPerBin for being zero and stop AGC\n> processing in such a case.  The condition also covers the cases where\n> histogramSize or yHistValsPerBinMod are zero.\n> \n> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n> ---\n>   src/ipa/simple/algorithms/agc.cpp | 6 ++++++\n>   1 file changed, 6 insertions(+)\n> \n> diff --git a/src/ipa/simple/algorithms/agc.cpp b/src/ipa/simple/algorithms/agc.cpp\n> index c46bb0ebe..e47949ec4 100644\n> --- a/src/ipa/simple/algorithms/agc.cpp\n> +++ b/src/ipa/simple/algorithms/agc.cpp\n> @@ -124,6 +124,12 @@ void Agc::process(IPAContext &context,\n>   \tunsigned int denom = 0;\n>   \tunsigned int num = 0;\n>   \n> +\tif (yHistValsPerBin == 0) {\n> +\t\tLOG(IPASoftExposure, Debug)\n> +\t\t\t<< \"Not adjusting exposure due to insufficient histogram data\";\n> +\t\treturn;\n> +\t}\n> +\n>   \tfor (unsigned int i = 0; i < histogramSize; i++) {\n>   \t\tunsigned int idx = (i - (i / yHistValsPerBinMod)) / yHistValsPerBin;\n>   \t\texposureBins[idx] += histogram[blackLevelHistIdx + i];\n\nCan yHistValsPerBinMod be zero even if yHistValsPerBin is non-zero?\n\nThanks,\nMaciej","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 159BFBE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 19 Sep 2025 04:10:08 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7E9266B594;\n\tFri, 19 Sep 2025 06:10:06 +0200 (CEST)","from vps-ovh.mhejs.net (vps-ovh.mhejs.net [145.239.82.108])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7D89569367\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 19 Sep 2025 06:10:04 +0200 (CEST)","from MUA\n\tby vps-ovh.mhejs.net with esmtpsa (TLS1.3) tls TLS_AES_128_GCM_SHA256\n\t(Exim 4.98.2) (envelope-from <mhej@vps-ovh.mhejs.net>)\n\tid 1uzSRf-00000002yTM-0IPU; Fri, 19 Sep 2025 06:10:03 +0200"],"Message-ID":"<9e89fe59-ded2-4aa2-8f13-5db624f752aa@maciej.szmigiero.name>","Date":"Fri, 19 Sep 2025 06:10:00 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 6/6] ipa: simple: agc: Prevent division by zero in AGC","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"pobrn@protonmail.com, libcamera-devel@lists.libcamera.org","References":"<20250911135144.56586-1-mzamazal@redhat.com>\n\t<20250911135144.56586-7-mzamazal@redhat.com>","Content-Language":"en-US","From":"\"Maciej S. Szmigiero\" <mail@maciej.szmigiero.name>","In-Reply-To":"<20250911135144.56586-7-mzamazal@redhat.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","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>"}},{"id":35927,"web_url":"https://patchwork.libcamera.org/comment/35927/","msgid":"<85ikhe4q5w.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-09-19T11:50:35","subject":"Re: [PATCH v2 6/6] ipa: simple: agc: Prevent division by zero in AGC","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hi Maciej,\n\nthank you for review.\n\n\"Maciej S. Szmigiero\" <mail@maciej.szmigiero.name> writes:\n\n> On 9/11/25 15:51, Milan Zamazal wrote:\n>> If the histogram size is non-zero but lower than the number of bins,\n>> yHistValsPerBin is zero and then the AGC processing crashes on division\n>\n>> by it.  Let's check yHistValsPerBin for being zero and stop AGC\n>> processing in such a case.  The condition also covers the cases where\n>> histogramSize or yHistValsPerBinMod are zero.\n>> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n>> ---\n>>   src/ipa/simple/algorithms/agc.cpp | 6 ++++++\n>>   1 file changed, 6 insertions(+)\n>> diff --git a/src/ipa/simple/algorithms/agc.cpp b/src/ipa/simple/algorithms/agc.cpp\n>> index c46bb0ebe..e47949ec4 100644\n>> --- a/src/ipa/simple/algorithms/agc.cpp\n>> +++ b/src/ipa/simple/algorithms/agc.cpp\n>> @@ -124,6 +124,12 @@ void Agc::process(IPAContext &context,\n>>   \tunsigned int denom = 0;\n>>   \tunsigned int num = 0;\n>>   +\tif (yHistValsPerBin == 0) {\n>> +\t\tLOG(IPASoftExposure, Debug)\n>> +\t\t\t<< \"Not adjusting exposure due to insufficient histogram data\";\n>> +\t\treturn;\n>> +\t}\n>> +\n>>   \tfor (unsigned int i = 0; i < histogramSize; i++) {\n>>   \t\tunsigned int idx = (i - (i / yHistValsPerBinMod)) / yHistValsPerBin;\n>>   \t\texposureBins[idx] += histogram[blackLevelHistIdx + i];\n>\n> Can yHistValsPerBinMod be zero even if yHistValsPerBin is non-zero?\n\nNo.\n\nyHistValsPerBin = histogramSize / kExposureBinsCount;\nyHistValsPerBinMod = histogramSize / (histogramSize % kExposureBinsCount + 1);\n\nIf yHistValsPerBin > 0 then histogramSize > 0.  And considering that\n(histogramSize % kExposureBinsCount + 1) <= histogramSize,\nthe following holds:\nhistogramSize / (histogramSize % kExposureBinsCount + 1) > 0.\n\n> Thanks,\n> Maciej","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 51CA4BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 19 Sep 2025 11:50:45 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 354FA6B597;\n\tFri, 19 Sep 2025 13:50:44 +0200 (CEST)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 11CDE62C35\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 19 Sep 2025 13:50:41 +0200 (CEST)","from mail-wm1-f71.google.com (mail-wm1-f71.google.com\n\t[209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-370-oDOIZJSWPPGKHyTJJboZOA-1; Fri, 19 Sep 2025 07:50:39 -0400","by mail-wm1-f71.google.com with SMTP id\n\t5b1f17b1804b1-45ddbdb92dfso9125565e9.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 19 Sep 2025 04:50:39 -0700 (PDT)","from mzamazal-thinkpadp1gen7.tpbc.csb\n\t(ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-4613eb27f25sm126682845e9.23.2025.09.19.04.50.36\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tFri, 19 Sep 2025 04:50:36 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"KlvcsALG\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1758282640;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=QXTDOxR+u2Wq07JqSsUyw+pvgh3WD+gVgBj3JD7XIsI=;\n\tb=KlvcsALGSimlmeHjjwhNftD1lT4/kR/NU3D+RJMYJASxxppIUkWSVllS5a3R945rugM7Ye\n\tWuvD1TzVYxSVwLDcTeDP4Bd4sRf50Tju6TCCxtsk2jWgPWz/Kbd8CcATpZsC63diuZtaad\n\tu+3X+ieEOaxATDTIA5Ya98OtpFzwoR4=","X-MC-Unique":"oDOIZJSWPPGKHyTJJboZOA-1","X-Mimecast-MFC-AGG-ID":"oDOIZJSWPPGKHyTJJboZOA_1758282638","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1758282638; x=1758887438;\n\th=mime-version:user-agent:message-id:date:references:in-reply-to\n\t:subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=QXTDOxR+u2Wq07JqSsUyw+pvgh3WD+gVgBj3JD7XIsI=;\n\tb=fN/XomTd2rHO7Pff9nFBfJZu4n9zlNDztWJlOG2bjft9Rl71yGM4O0ANHBvLWaUjkU\n\teiJfLtkrqw5K8ELwHHouE2zRNXFHz5Kx61w9CJthVvUbdQB+/TNaW3jASWFsVSTAd0XL\n\tQXTnrq4X4ztdicDBnOcJy2l+s+WM18GBCgoTqrCXNk8YDIbBNL1CxYzsw4eWfvtIpnBU\n\ttCDRSmSH83H9jWFObyYTufP+u2lC0eMbWAAuBO4HMJy3RIoCS8yviTe+UOkSltNHzBPU\n\tMwdvmPPJEG78m0rdMQR+9HgfGmVu2EetJv9Hi0J+n8V29wJD2XonQKi2GvRMer6j6w81\n\twSwQ==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCXDiCRXFTVof82moFEOyOBXRneHpDdbMQfJ5nBF86KKvqJKd4bWnHjvRe/Lqv6NbNRf+OanLsqKwt6JkQ8s0Xs=@lists.libcamera.org","X-Gm-Message-State":"AOJu0YybpA92My217T0FCiMAlDpR5Vq4VOJd5nGIVTCdZWvpZGSXzCH5\n\t1vso1YZ2Livq4cicI9dAs4xZP3s0TMNiMQJxEfNZLtqpcHoE/ABiQoWuub4UC6uOkfoy0D4RGQd\n\tDck15IzE1EMs/h9/tgnffB+Tykzem2s1b2NlHCmdUvH7EeQXSLigH/apNBrdaWa73dLdY3pYqHs\n\t+dFTlS8269poVHCl5/8R3ca0ts+3w+E8I0IOx2mud4U8NFB/8I0HYiCHjU8E0=","X-Gm-Gg":"ASbGncukeRUCubK8rvrQ8/RXYWS/BpT/Hb0UAVGat2pby2S94G3uV9fu3xOavq0esU1\n\t8xNMceKMw8EpgLgGCfFIi96qJLiPX+vDvj0fjd9vtXM1TnCVbb4ILGCd6Nw5gBjuZCNYwTJE+RG\n\t4RfYP5qUm0wRkzjQFC41f9759UAwyb8ox75kl5nzaytYKS8RMmn5Lx0XIXoaSEfGoIsKk2DUjd8\n\tAJMaWXIhuIulXVKk/ADl0im6yErHotrVmVDVTY0H4L0KPlXUCQefa3M+EC/5O3tcxguh8FXB0Ur\n\t8jx2dg5sXuSBBZsitsgZSO7IaiME6r+3FOIYgBdl3LF2CR36P2vMwlYKHS9IHGRCWbiwlN6mOBD\n\t8PcvdgOVudSRoifJWeQ==","X-Received":["by 2002:a05:600c:3b11:b0:45d:d5c6:97b4 with SMTP id\n\t5b1f17b1804b1-467eed8f96emr28492965e9.9.1758282637753; \n\tFri, 19 Sep 2025 04:50:37 -0700 (PDT)","by 2002:a05:600c:3b11:b0:45d:d5c6:97b4 with SMTP id\n\t5b1f17b1804b1-467eed8f96emr28492635e9.9.1758282637202; \n\tFri, 19 Sep 2025 04:50:37 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IGr/gPrJXN7Xp2ofM4dpg3d5N87zo1CO04gkwca4PtwJw4RrWwQLAUgBqCNydMB+rQ05QJu2w==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"\"Maciej S. Szmigiero\" <mail@maciej.szmigiero.name>","Cc":"pobrn@protonmail.com,  libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v2 6/6] ipa: simple: agc: Prevent division by zero in AGC","In-Reply-To":"<9e89fe59-ded2-4aa2-8f13-5db624f752aa@maciej.szmigiero.name>\n\t(Maciej S. Szmigiero's message of \"Fri, 19 Sep 2025 06:10:00 +0200\")","References":"<20250911135144.56586-1-mzamazal@redhat.com>\n\t<20250911135144.56586-7-mzamazal@redhat.com>\n\t<9e89fe59-ded2-4aa2-8f13-5db624f752aa@maciej.szmigiero.name>","Date":"Fri, 19 Sep 2025 13:50:35 +0200","Message-ID":"<85ikhe4q5w.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"cY_QOqtPIh56wOUywhy8rhLY2msd8cDq0Xrn5bswF8M_1758282638","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain","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>"}}]