[{"id":36861,"web_url":"https://patchwork.libcamera.org/comment/36861/","msgid":"<9a3b3384-3470-4928-9adc-13ab7bc60163@ideasonboard.com>","date":"2025-11-17T12:45:42","subject":"Re: [PATCH v3 08/19] ipa: libipa: agc: Remove unused accessors","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"2025. 11. 14. 15:17 keltezéssel, Jacopo Mondi írta:\n> Remove unused accessors. They're not only unused but it is not even\n> clear what the purpose of accessing the fields is.\n> \n> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> ---\n\nReviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n\n\n>   src/ipa/libipa/exposure_mode_helper.cpp | 25 -------------------------\n>   src/ipa/libipa/exposure_mode_helper.h   |  5 -----\n>   2 files changed, 30 deletions(-)\n> \n> diff --git a/src/ipa/libipa/exposure_mode_helper.cpp b/src/ipa/libipa/exposure_mode_helper.cpp\n> index 29e316d9d09181cd65cb08f26babb1a680bee62a..962ce1b1b7503e0f86f3857b484b249cb6383fde 100644\n> --- a/src/ipa/libipa/exposure_mode_helper.cpp\n> +++ b/src/ipa/libipa/exposure_mode_helper.cpp\n> @@ -266,31 +266,6 @@ ExposureModeHelper::splitExposure(utils::Duration exposure) const\n>   \t\t exposure / (exposureTime * gain * quantGain) };\n>   }\n>   \n> -/**\n> - * \\fn ExposureModeHelper::minExposureTime()\n> - * \\brief Retrieve the configured minimum exposure time limit set through\n> - * setLimits()\n> - * \\return The minExposureTime_ value\n> - */\n> -\n> -/**\n> - * \\fn ExposureModeHelper::maxExposureTime()\n> - * \\brief Retrieve the configured maximum exposure time set through setLimits()\n> - * \\return The maxExposureTime_ value\n> - */\n> -\n> -/**\n> - * \\fn ExposureModeHelper::minGain()\n> - * \\brief Retrieve the configured minimum gain set through setLimits()\n> - * \\return The minGain_ value\n> - */\n> -\n> -/**\n> - * \\fn ExposureModeHelper::maxGain()\n> - * \\brief Retrieve the configured maximum gain set through setLimits()\n> - * \\return The maxGain_ value\n> - */\n> -\n>   } /* namespace ipa */\n>   \n>   } /* namespace libcamera */\n> diff --git a/src/ipa/libipa/exposure_mode_helper.h b/src/ipa/libipa/exposure_mode_helper.h\n> index 968192ddc5af768ae0de58aca6c7230c7b3bd507..f8b7a4aa4800b59459f8fc80f502b83647547f51 100644\n> --- a/src/ipa/libipa/exposure_mode_helper.h\n> +++ b/src/ipa/libipa/exposure_mode_helper.h\n> @@ -33,11 +33,6 @@ public:\n>   \tstd::tuple<utils::Duration, double, double, double>\n>   \tsplitExposure(utils::Duration exposure) const;\n>   \n> -\tutils::Duration minExposureTime() const { return minExposureTime_; }\n> -\tutils::Duration maxExposureTime() const { return maxExposureTime_; }\n> -\tdouble minGain() const { return minGain_; }\n> -\tdouble maxGain() const { return maxGain_; }\n> -\n>   private:\n>   \tutils::Duration clampExposureTime(utils::Duration exposureTime,\n>   \t\t\t\t\t  double *quantizationGain = nullptr) const;\n>","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 5AA1DBD80A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 17 Nov 2025 12:45:48 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5286560A80;\n\tMon, 17 Nov 2025 13:45:47 +0100 (CET)","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 56DD460856\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 17 Nov 2025 13:45:46 +0100 (CET)","from [192.168.33.31] (185.221.143.100.nat.pool.zt.hu\n\t[185.221.143.100])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 0B55142B;\n\tMon, 17 Nov 2025 13:43:42 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"ZfhMTIdi\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1763383423;\n\tbh=s07MLaCIds+7FVucO7FRT4RU5VgBUaEKTpnehiZcVUk=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=ZfhMTIdiCTTjs+kN4tf9dr5/Qv8mLsOXb2AwzGDgM6F3l5Ah/b3aCJV0qWfSH6gj1\n\tI/dq88dYSL1Ft9cjdJ1gXeOVgr+6RVkveSOzBVJaNcigWlBhNqNN7hcq/HyRJy9gn5\n\tnyO61D7XFar4eSrPd42Dmuv2sZlqYR3ypPHwicxk=","Message-ID":"<9a3b3384-3470-4928-9adc-13ab7bc60163@ideasonboard.com>","Date":"Mon, 17 Nov 2025 13:45:42 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v3 08/19] ipa: libipa: agc: Remove unused accessors","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>, =?utf-8?q?Niklas_S=C3=B6?=\n\t=?utf-8?q?derlund?= <niklas.soderlund@ragnatech.se>, Robert Mader\n\t<robert.mader@collabora.com>,  libcamera-devel@lists.libcamera.org","References":"<20251114-exposure-limits-v3-0-b7c07feba026@ideasonboard.com>\n\t<20251114-exposure-limits-v3-8-b7c07feba026@ideasonboard.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<20251114-exposure-limits-v3-8-b7c07feba026@ideasonboard.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":36909,"web_url":"https://patchwork.libcamera.org/comment/36909/","msgid":"<20251119043215.GX10711@pendragon.ideasonboard.com>","date":"2025-11-19T04:32:15","subject":"Re: [PATCH v3 08/19] ipa: libipa: agc: Remove unused accessors","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Fri, Nov 14, 2025 at 03:17:03PM +0100, Jacopo Mondi wrote:\n> Remove unused accessors. They're not only unused but it is not even\n> clear what the purpose of accessing the fields is.\n> \n> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> ---\n>  src/ipa/libipa/exposure_mode_helper.cpp | 25 -------------------------\n>  src/ipa/libipa/exposure_mode_helper.h   |  5 -----\n>  2 files changed, 30 deletions(-)\n> \n> diff --git a/src/ipa/libipa/exposure_mode_helper.cpp b/src/ipa/libipa/exposure_mode_helper.cpp\n> index 29e316d9d09181cd65cb08f26babb1a680bee62a..962ce1b1b7503e0f86f3857b484b249cb6383fde 100644\n> --- a/src/ipa/libipa/exposure_mode_helper.cpp\n> +++ b/src/ipa/libipa/exposure_mode_helper.cpp\n> @@ -266,31 +266,6 @@ ExposureModeHelper::splitExposure(utils::Duration exposure) const\n>  \t\t exposure / (exposureTime * gain * quantGain) };\n>  }\n>  \n> -/**\n> - * \\fn ExposureModeHelper::minExposureTime()\n> - * \\brief Retrieve the configured minimum exposure time limit set through\n> - * setLimits()\n> - * \\return The minExposureTime_ value\n> - */\n> -\n> -/**\n> - * \\fn ExposureModeHelper::maxExposureTime()\n> - * \\brief Retrieve the configured maximum exposure time set through setLimits()\n> - * \\return The maxExposureTime_ value\n> - */\n> -\n> -/**\n> - * \\fn ExposureModeHelper::minGain()\n> - * \\brief Retrieve the configured minimum gain set through setLimits()\n> - * \\return The minGain_ value\n> - */\n> -\n> -/**\n> - * \\fn ExposureModeHelper::maxGain()\n> - * \\brief Retrieve the configured maximum gain set through setLimits()\n> - * \\return The maxGain_ value\n> - */\n> -\n>  } /* namespace ipa */\n>  \n>  } /* namespace libcamera */\n> diff --git a/src/ipa/libipa/exposure_mode_helper.h b/src/ipa/libipa/exposure_mode_helper.h\n> index 968192ddc5af768ae0de58aca6c7230c7b3bd507..f8b7a4aa4800b59459f8fc80f502b83647547f51 100644\n> --- a/src/ipa/libipa/exposure_mode_helper.h\n> +++ b/src/ipa/libipa/exposure_mode_helper.h\n> @@ -33,11 +33,6 @@ public:\n>  \tstd::tuple<utils::Duration, double, double, double>\n>  \tsplitExposure(utils::Duration exposure) const;\n>  \n> -\tutils::Duration minExposureTime() const { return minExposureTime_; }\n> -\tutils::Duration maxExposureTime() const { return maxExposureTime_; }\n> -\tdouble minGain() const { return minGain_; }\n> -\tdouble maxGain() const { return maxGain_; }\n> -\n>  private:\n>  \tutils::Duration clampExposureTime(utils::Duration exposureTime,\n>  \t\t\t\t\t  double *quantizationGain = nullptr) const;","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 263BBBD80A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 19 Nov 2025 04:32:53 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CF5CF60AA6;\n\tWed, 19 Nov 2025 05:32:52 +0100 (CET)","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 749D060A7B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 19 Nov 2025 05:32:50 +0100 (CET)","from pendragon.ideasonboard.com (unknown [205.220.129.225])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 7272FB5;\n\tWed, 19 Nov 2025 05:30:43 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"UcFvt1Ad\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1763526646;\n\tbh=4i6CL9Q7GQ9ZxUz7ZH+y8gdeYX75GK3IAmylU9eAtbA=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=UcFvt1Ad3DmLbtn+P19tmIwxAwAGznVu32lkCbH2YgDN9lDDzFyRknZaGhm6LJ+oG\n\tQwqTol9pM47S5eJGPi8dSipD+TY0227YR5DnESX7Tk6SZen3jgvidaG94ccu/ZwDzm\n\tN/iSg9E4cyBtbPBog71n2dq6wyA80HgAN3hwwH1s=","Date":"Wed, 19 Nov 2025 13:32:15 +0900","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Cc":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>,\n\tRobert Mader <robert.mader@collabora.com>, \n\tlibcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v3 08/19] ipa: libipa: agc: Remove unused accessors","Message-ID":"<20251119043215.GX10711@pendragon.ideasonboard.com>","References":"<20251114-exposure-limits-v3-0-b7c07feba026@ideasonboard.com>\n\t<20251114-exposure-limits-v3-8-b7c07feba026@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20251114-exposure-limits-v3-8-b7c07feba026@ideasonboard.com>","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":38122,"web_url":"https://patchwork.libcamera.org/comment/38122/","msgid":"<177039185509.607498.8382761466038699997@neptunite.rasen.tech>","date":"2026-02-06T15:30:55","subject":"Re: [PATCH v3 08/19] ipa: libipa: agc: Remove unused accessors","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"Quoting Jacopo Mondi (2025-11-14 23:17:03)\n> Remove unused accessors. They're not only unused but it is not even\n> clear what the purpose of accessing the fields is.\n\nThis looks like something I wrote... :)\n\nIt was probably meant to be used exactly how you did earlier in this series,\nexcept the helper functions are obviously more useful than using these manually\nand in the exact same way.\n\n> \n> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> ---\n>  src/ipa/libipa/exposure_mode_helper.cpp | 25 -------------------------\n>  src/ipa/libipa/exposure_mode_helper.h   |  5 -----\n>  2 files changed, 30 deletions(-)\n> \n> diff --git a/src/ipa/libipa/exposure_mode_helper.cpp b/src/ipa/libipa/exposure_mode_helper.cpp\n> index 29e316d9d09181cd65cb08f26babb1a680bee62a..962ce1b1b7503e0f86f3857b484b249cb6383fde 100644\n> --- a/src/ipa/libipa/exposure_mode_helper.cpp\n> +++ b/src/ipa/libipa/exposure_mode_helper.cpp\n> @@ -266,31 +266,6 @@ ExposureModeHelper::splitExposure(utils::Duration exposure) const\n>                  exposure / (exposureTime * gain * quantGain) };\n>  }\n>  \n> -/**\n> - * \\fn ExposureModeHelper::minExposureTime()\n> - * \\brief Retrieve the configured minimum exposure time limit set through\n> - * setLimits()\n> - * \\return The minExposureTime_ value\n> - */\n> -\n> -/**\n> - * \\fn ExposureModeHelper::maxExposureTime()\n> - * \\brief Retrieve the configured maximum exposure time set through setLimits()\n> - * \\return The maxExposureTime_ value\n> - */\n> -\n> -/**\n> - * \\fn ExposureModeHelper::minGain()\n> - * \\brief Retrieve the configured minimum gain set through setLimits()\n> - * \\return The minGain_ value\n> - */\n> -\n> -/**\n> - * \\fn ExposureModeHelper::maxGain()\n> - * \\brief Retrieve the configured maximum gain set through setLimits()\n> - * \\return The maxGain_ value\n> - */\n> -\n>  } /* namespace ipa */\n>  \n>  } /* namespace libcamera */\n> diff --git a/src/ipa/libipa/exposure_mode_helper.h b/src/ipa/libipa/exposure_mode_helper.h\n> index 968192ddc5af768ae0de58aca6c7230c7b3bd507..f8b7a4aa4800b59459f8fc80f502b83647547f51 100644\n> --- a/src/ipa/libipa/exposure_mode_helper.h\n> +++ b/src/ipa/libipa/exposure_mode_helper.h\n> @@ -33,11 +33,6 @@ public:\n>         std::tuple<utils::Duration, double, double, double>\n>         splitExposure(utils::Duration exposure) const;\n>  \n> -       utils::Duration minExposureTime() const { return minExposureTime_; }\n> -       utils::Duration maxExposureTime() const { return maxExposureTime_; }\n> -       double minGain() const { return minGain_; }\n> -       double maxGain() const { return maxGain_; }\n> -\n>  private:\n>         utils::Duration clampExposureTime(utils::Duration exposureTime,\n>                                           double *quantizationGain = nullptr) const;\n> \n> -- \n> 2.51.1\n>","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 7BFB0BD78E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  6 Feb 2026 15:31:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 116CA620AD;\n\tFri,  6 Feb 2026 16:31:02 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id BD1086209B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  6 Feb 2026 16:31:00 +0100 (CET)","from neptunite.rasen.tech (unknown\n\t[IPv6:2404:7a81:160:2100:5247:7b72:2b7:10da])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id B87792E0;\n\tFri,  6 Feb 2026 16:30:16 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"ZE0+m22S\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1770391817;\n\tbh=hKsNsGK/ON2D/oTRrrr1zGCHLEkkrwX9+eyU5/de8Ks=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=ZE0+m22SxPSWAW1bVNbFY5dZOSFIywTX776jiw0oEGcXWTXHt2jmL8AKhYl8J1bhw\n\t1Rdgs/z5uhE1MVtJxxVZx1nzKTvFVLFC0wsIxyYKvMvaCnZ2baOYCvlVMe4c6yAplz\n\tDju/D0jobhn74W7kk0yoxtQ71Axs4cQLdPzmUAz8=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20251114-exposure-limits-v3-8-b7c07feba026@ideasonboard.com>","References":"<20251114-exposure-limits-v3-0-b7c07feba026@ideasonboard.com>\n\t<20251114-exposure-limits-v3-8-b7c07feba026@ideasonboard.com>","Subject":"Re: [PATCH v3 08/19] ipa: libipa: agc: Remove unused accessors","From":"Paul Elder <paul.elder@ideasonboard.com>","Cc":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>, Niklas =?utf-8?b?U8O2?=\n\t=?utf-8?q?derlund?= <niklas.soderlund@ragnatech.se>, Robert Mader\n\t<robert.mader@collabora.com>, libcamera-devel@lists.libcamera.org","Date":"Sat, 07 Feb 2026 00:30:55 +0900","Message-ID":"<177039185509.607498.8382761466038699997@neptunite.rasen.tech>","User-Agent":"alot/0.0.0","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>"}}]