[{"id":37172,"web_url":"https://patchwork.libcamera.org/comment/37172/","msgid":"<9dd94e6b-f285-4332-85bf-3ef02b6d6147@ideasonboard.com>","date":"2025-12-02T18:24:16","subject":"Re: [PATCH v3 3/5] libcamera: request: Make metadata_ a class\n\tinstance","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"2025. 12. 02. 15:49 keltezéssel, Jacopo Mondi írta:\n> The metadata_ member variable is a pointer, for no specific reason.\n> Make it an instance and simplify the class destructor.\n> \n> Suggested-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\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>   include/libcamera/internal/request.h |  4 ++--\n>   src/libcamera/request.cpp            | 13 +++++--------\n>   2 files changed, 7 insertions(+), 10 deletions(-)\n> \n> diff --git a/include/libcamera/internal/request.h b/include/libcamera/internal/request.h\n> index 643f67cabf5778f7515c0117d06d4e0a3fdec4f8..693097ee9a263be5b4217d5e5393ea93cc30a239 100644\n> --- a/include/libcamera/internal/request.h\n> +++ b/include/libcamera/internal/request.h\n> @@ -36,7 +36,7 @@ public:\n>   \tCamera *camera() const { return camera_; }\n>   \tbool hasPendingBuffers() const;\n>   \n> -\tControlList &metadata() { return *metadata_; }\n> +\tControlList &metadata() { return metadata_; }\n>   \n>   \tbool completeBuffer(FrameBuffer *buffer);\n>   \tvoid complete();\n> @@ -63,7 +63,7 @@ private:\n>   \tstd::unordered_set<FrameBuffer *> pending_;\n>   \tstd::map<FrameBuffer *, EventNotifier> notifiers_;\n>   \tstd::unique_ptr<Timer> timer_;\n> -\tControlList *metadata_;\n> +\tControlList metadata_;\n>   };\n>   \n>   } /* namespace libcamera */\n> diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp\n> index a661b2f5c8ae9ae2bcbab2dcdceeef7dcb8d0930..0d6c4a0ce9aec5f328c1f66cea43abb37c82544a 100644\n> --- a/src/libcamera/request.cpp\n> +++ b/src/libcamera/request.cpp\n> @@ -53,20 +53,17 @@ LOG_DEFINE_CATEGORY(Request)\n>   /**\n>    * \\brief Create a Request::Private\n>    * \\param camera The Camera that creates the request\n> + *\n> + * \\todo Add a validator for metadata controls.\n>    */\n>   Request::Private::Private(Camera *camera)\n> -\t: camera_(camera), cancelled_(false)\n> +\t: camera_(camera), cancelled_(false), metadata_(controls::controls)\n>   {\n> -\t/**\n> -\t * \\todo Add a validator for metadata controls.\n> -\t */\n> -\tmetadata_ = new ControlList(controls::controls);\n>   }\n>   \n>   Request::Private::~Private()\n>   {\n>   \tdoCancelRequest();\n> -\tdelete metadata_;\n>   }\n>   \n>   /**\n> @@ -410,7 +407,7 @@ void Request::reuse(ReuseFlag flags)\n>   \tstatus_ = RequestPending;\n>   \n>   \tcontrols_->clear();\n> -\t_d()->metadata_->clear();\n> +\t_d()->metadata_.clear();\n>   }\n>   \n>   /**\n> @@ -435,7 +432,7 @@ void Request::reuse(ReuseFlag flags)\n>    */\n>   const ControlList &Request::metadata() const\n>   {\n> -\treturn *_d()->metadata_;\n> +\treturn _d()->metadata_;\n>   }\n>   \n>   /**\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 3B76CC3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  2 Dec 2025 18:24:19 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DEE1760D37;\n\tTue,  2 Dec 2025 19:24:18 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3165060C8A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  2 Dec 2025 19:24:17 +0100 (CET)","from [192.168.33.23] (185.182.214.104.nat.pool.zt.hu\n\t[185.182.214.104])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 261E93E6;\n\tTue,  2 Dec 2025 19:22:03 +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=\"dDil+H0z\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1764699723;\n\tbh=wWIJGjveP2UhgUOr/JgIqHKgF/zH6BUTe17ahviqkEI=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=dDil+H0zmhmjUHPrFcZ2r1vLnxZtf5MYADzFwcuKWV3rk3YKLAlaLNbayLIUBOtg/\n\tfRJeyw797IhwhhomUpYqUbD9Yt1tlN4S5NantYU01IAcV4m/DRz1/GHrK26tA9pKl1\n\ttmgTh/PVl7KXN4QBmxEQJlr/xrTDy6qTW3AnyQkg=","Message-ID":"<9dd94e6b-f285-4332-85bf-3ef02b6d6147@ideasonboard.com>","Date":"Tue, 2 Dec 2025 19:24:16 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v3 3/5] libcamera: request: Make metadata_ a class\n\tinstance","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20251202-cam-control-override-v3-0-eacab052798d@ideasonboard.com>\n\t<20251202-cam-control-override-v3-3-eacab052798d@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":"<20251202-cam-control-override-v3-3-eacab052798d@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":37378,"web_url":"https://patchwork.libcamera.org/comment/37378/","msgid":"<0b777d96-abb4-4c39-afb7-e25575c04821@ideasonboard.com>","date":"2025-12-15T11:56:31","subject":"Re: [PATCH v3 3/5] libcamera: request: Make metadata_ a class\n\tinstance","submitter":{"id":156,"url":"https://patchwork.libcamera.org/api/people/156/","name":"Dan Scally","email":"dan.scally@ideasonboard.com"},"content":"Hi Jacopo\n\nOn 02/12/2025 14:49, Jacopo Mondi wrote:\n> The metadata_ member variable is a pointer, for no specific reason.\n> Make it an instance and simplify the class destructor.\n> \n> Suggested-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> ---\n\nLGTM:\n\nReviewed-by: Daniel Scally <dan.scally@ideasonboard.com>\n\n>   include/libcamera/internal/request.h |  4 ++--\n>   src/libcamera/request.cpp            | 13 +++++--------\n>   2 files changed, 7 insertions(+), 10 deletions(-)\n> \n> diff --git a/include/libcamera/internal/request.h b/include/libcamera/internal/request.h\n> index 643f67cabf5778f7515c0117d06d4e0a3fdec4f8..693097ee9a263be5b4217d5e5393ea93cc30a239 100644\n> --- a/include/libcamera/internal/request.h\n> +++ b/include/libcamera/internal/request.h\n> @@ -36,7 +36,7 @@ public:\n>   \tCamera *camera() const { return camera_; }\n>   \tbool hasPendingBuffers() const;\n>   \n> -\tControlList &metadata() { return *metadata_; }\n> +\tControlList &metadata() { return metadata_; }\n>   \n>   \tbool completeBuffer(FrameBuffer *buffer);\n>   \tvoid complete();\n> @@ -63,7 +63,7 @@ private:\n>   \tstd::unordered_set<FrameBuffer *> pending_;\n>   \tstd::map<FrameBuffer *, EventNotifier> notifiers_;\n>   \tstd::unique_ptr<Timer> timer_;\n> -\tControlList *metadata_;\n> +\tControlList metadata_;\n>   };\n>   \n>   } /* namespace libcamera */\n> diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp\n> index a661b2f5c8ae9ae2bcbab2dcdceeef7dcb8d0930..0d6c4a0ce9aec5f328c1f66cea43abb37c82544a 100644\n> --- a/src/libcamera/request.cpp\n> +++ b/src/libcamera/request.cpp\n> @@ -53,20 +53,17 @@ LOG_DEFINE_CATEGORY(Request)\n>   /**\n>    * \\brief Create a Request::Private\n>    * \\param camera The Camera that creates the request\n> + *\n> + * \\todo Add a validator for metadata controls.\n>    */\n>   Request::Private::Private(Camera *camera)\n> -\t: camera_(camera), cancelled_(false)\n> +\t: camera_(camera), cancelled_(false), metadata_(controls::controls)\n>   {\n> -\t/**\n> -\t * \\todo Add a validator for metadata controls.\n> -\t */\n> -\tmetadata_ = new ControlList(controls::controls);\n>   }\n>   \n>   Request::Private::~Private()\n>   {\n>   \tdoCancelRequest();\n> -\tdelete metadata_;\n>   }\n>   \n>   /**\n> @@ -410,7 +407,7 @@ void Request::reuse(ReuseFlag flags)\n>   \tstatus_ = RequestPending;\n>   \n>   \tcontrols_->clear();\n> -\t_d()->metadata_->clear();\n> +\t_d()->metadata_.clear();\n>   }\n>   \n>   /**\n> @@ -435,7 +432,7 @@ void Request::reuse(ReuseFlag flags)\n>    */\n>   const ControlList &Request::metadata() const\n>   {\n> -\treturn *_d()->metadata_;\n> +\treturn _d()->metadata_;\n>   }\n>   \n>   /**\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 963F7C3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 15 Dec 2025 11:56:37 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BAD1761979;\n\tMon, 15 Dec 2025 12:56:36 +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 45A1E615B2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 15 Dec 2025 12:56:35 +0100 (CET)","from [192.168.0.43]\n\t(cpc141996-chfd3-2-0-cust928.12-3.cable.virginm.net [86.13.91.161])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 473C3EB4;\n\tMon, 15 Dec 2025 12:56:30 +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=\"ioVAOTvT\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1765799790;\n\tbh=jmF8+KgRjwo+AMBBv9RV5z9W/NO0B1ZrYPWw6R8u/GE=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=ioVAOTvTyiqf0r5Q2auYd2FNwFayw6ad/rdcerpTz5FYy4a1MXZbBZ9kPE80pcT+a\n\tVvmJSwLWJb96s3McLAllhcnZ5J3+ZGGvgrD82DehHQ1AobcyngYy0jTOKM82VnSHLn\n\tgSj4AcGlnMicEDEDbC48DS0M3qYTne6RXYeqSZl0=","Message-ID":"<0b777d96-abb4-4c39-afb7-e25575c04821@ideasonboard.com>","Date":"Mon, 15 Dec 2025 11:56:31 +0000","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v3 3/5] libcamera: request: Make metadata_ a class\n\tinstance","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Cc":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","References":"<20251202-cam-control-override-v3-0-eacab052798d@ideasonboard.com>\n\t<20251202-cam-control-override-v3-3-eacab052798d@ideasonboard.com>","Content-Language":"en-US","From":"Dan Scally <dan.scally@ideasonboard.com>","In-Reply-To":"<20251202-cam-control-override-v3-3-eacab052798d@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":37379,"web_url":"https://patchwork.libcamera.org/comment/37379/","msgid":"<e52768e7-b61e-42d3-8341-279e9317821e@ideasonboard.com>","date":"2025-12-15T11:57:15","subject":"Re: [PATCH v3 3/5] libcamera: request: Make metadata_ a class\n\tinstance","submitter":{"id":156,"url":"https://patchwork.libcamera.org/api/people/156/","name":"Dan Scally","email":"dan.scally@ideasonboard.com"},"content":"On 15/12/2025 11:56, Dan Scally wrote:\n> Hi Jacopo\n> \n> On 02/12/2025 14:49, Jacopo Mondi wrote:\n>> The metadata_ member variable is a pointer, for no specific reason.\n>> Make it an instance and simplify the class destructor.\n\nOh, except I think s/destructor/constructor?>>\n>> Suggested-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n>> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n>> ---\n> \n> LGTM:\n> \n> Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>\n> \n>>   include/libcamera/internal/request.h |  4 ++--\n>>   src/libcamera/request.cpp            | 13 +++++--------\n>>   2 files changed, 7 insertions(+), 10 deletions(-)\n>>\n>> diff --git a/include/libcamera/internal/request.h b/include/libcamera/internal/request.h\n>> index 643f67cabf5778f7515c0117d06d4e0a3fdec4f8..693097ee9a263be5b4217d5e5393ea93cc30a239 100644\n>> --- a/include/libcamera/internal/request.h\n>> +++ b/include/libcamera/internal/request.h\n>> @@ -36,7 +36,7 @@ public:\n>>       Camera *camera() const { return camera_; }\n>>       bool hasPendingBuffers() const;\n>> -    ControlList &metadata() { return *metadata_; }\n>> +    ControlList &metadata() { return metadata_; }\n>>       bool completeBuffer(FrameBuffer *buffer);\n>>       void complete();\n>> @@ -63,7 +63,7 @@ private:\n>>       std::unordered_set<FrameBuffer *> pending_;\n>>       std::map<FrameBuffer *, EventNotifier> notifiers_;\n>>       std::unique_ptr<Timer> timer_;\n>> -    ControlList *metadata_;\n>> +    ControlList metadata_;\n>>   };\n>>   } /* namespace libcamera */\n>> diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp\n>> index a661b2f5c8ae9ae2bcbab2dcdceeef7dcb8d0930..0d6c4a0ce9aec5f328c1f66cea43abb37c82544a 100644\n>> --- a/src/libcamera/request.cpp\n>> +++ b/src/libcamera/request.cpp\n>> @@ -53,20 +53,17 @@ LOG_DEFINE_CATEGORY(Request)\n>>   /**\n>>    * \\brief Create a Request::Private\n>>    * \\param camera The Camera that creates the request\n>> + *\n>> + * \\todo Add a validator for metadata controls.\n>>    */\n>>   Request::Private::Private(Camera *camera)\n>> -    : camera_(camera), cancelled_(false)\n>> +    : camera_(camera), cancelled_(false), metadata_(controls::controls)\n>>   {\n>> -    /**\n>> -     * \\todo Add a validator for metadata controls.\n>> -     */\n>> -    metadata_ = new ControlList(controls::controls);\n>>   }\n>>   Request::Private::~Private()\n>>   {\n>>       doCancelRequest();\n>> -    delete metadata_;\n>>   }\n>>   /**\n>> @@ -410,7 +407,7 @@ void Request::reuse(ReuseFlag flags)\n>>       status_ = RequestPending;\n>>       controls_->clear();\n>> -    _d()->metadata_->clear();\n>> +    _d()->metadata_.clear();\n>>   }\n>>   /**\n>> @@ -435,7 +432,7 @@ void Request::reuse(ReuseFlag flags)\n>>    */\n>>   const ControlList &Request::metadata() const\n>>   {\n>> -    return *_d()->metadata_;\n>> +    return _d()->metadata_;\n>>   }\n>>   /**\n>>\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 672CCC3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 15 Dec 2025 11:57:20 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1CF5A61980;\n\tMon, 15 Dec 2025 12:57:20 +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 022EB615B2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 15 Dec 2025 12:57:19 +0100 (CET)","from [192.168.0.43]\n\t(cpc141996-chfd3-2-0-cust928.12-3.cable.virginm.net [86.13.91.161])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 1C735C66;\n\tMon, 15 Dec 2025 12:57:14 +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=\"bwx9nIPj\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1765799834;\n\tbh=2ob1n8L45xpUwMzz6Meb6OwJLWnLMcbwwPpvivxokWw=;\n\th=Date:Subject:From:To:Cc:References:In-Reply-To:From;\n\tb=bwx9nIPjswm+tyhswupfQDygg7bOIYIpbeUdY8vNYfq+xk/hnZzs148dtIk6yPYdp\n\t4vRFevM7yQv9Xev4dK2CaSwaOK4RwL2bK2zQzEWzswbrowYnZk9pfgL/e4ZK5Xh4OF\n\tz5nyKSXJOfbiGpxxGKsCKb+rvozNrL+0qpZwdEes=","Message-ID":"<e52768e7-b61e-42d3-8341-279e9317821e@ideasonboard.com>","Date":"Mon, 15 Dec 2025 11:57:15 +0000","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v3 3/5] libcamera: request: Make metadata_ a class\n\tinstance","From":"Dan Scally <dan.scally@ideasonboard.com>","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Cc":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","References":"<20251202-cam-control-override-v3-0-eacab052798d@ideasonboard.com>\n\t<20251202-cam-control-override-v3-3-eacab052798d@ideasonboard.com>\n\t<0b777d96-abb4-4c39-afb7-e25575c04821@ideasonboard.com>","Content-Language":"en-US","In-Reply-To":"<0b777d96-abb4-4c39-afb7-e25575c04821@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>"}}]