[{"id":30115,"web_url":"https://patchwork.libcamera.org/comment/30115/","msgid":"<04b6ab70-89c0-41dd-b3dc-1fae0f14b9c3@ideasonboard.com>","date":"2024-06-28T06:10:14","subject":"Re: [PATCH 10/19] libcamera: software_isp: Call Algorithm::process","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"Hi Milan\n\nOn 26/06/24 12:50 pm, Milan Zamazal wrote:\n> This patch adds Algorithm::process call for the defined algorithms.\n> This is preparation only since there are currently no Algorithm based\n> algorithms defined.\n>\n> As software ISP currently doesn't produce any metadata, a dummy and\n> unused metadata instance is created to satisfy Algorithm::process API.\n> This should be changed in future.\n>\n> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n> ---\n>   src/ipa/simple/soft_simple.cpp | 13 ++++++++++++-\n>   1 file changed, 12 insertions(+), 1 deletion(-)\n>\n> diff --git a/src/ipa/simple/soft_simple.cpp b/src/ipa/simple/soft_simple.cpp\n> index 6ddb4004..c0cb6769 100644\n> --- a/src/ipa/simple/soft_simple.cpp\n> +++ b/src/ipa/simple/soft_simple.cpp\n> @@ -265,10 +265,21 @@ void IPASoftSimple::stop()\n>   }\n>   \n>   void IPASoftSimple::processStats(\n> -\t[[maybe_unused]] const uint32_t frame,\n> +\tconst uint32_t frame,\n>   \t[[maybe_unused]] const uint32_t bufferId,\n>   \tconst ControlList &sensorControls)\n>   {\n> +\tIPAFrameContext &frameContext = context_.frameContexts.get(frame);\n\nI was trying to infer from the previous patches where the frameContexts \nwere allocated per frame.. only to find out it is done in later patch 12/19.\n\nthe Algorithms::* patches ideally would be arranged in the order of \ntheir logical calling sequencing ... but it's not the end of the world. :)\n\nSo far looks good to me.\n\n> +\t/*\n> +\t * \\todo Software ISP currently doesn't produce any metadata so it is\n> +\t * possible to use a dummy metadata instance here. But metadata should be\n> +\t * properly handled in future.\n> +\t */\n> +\tControlList metadata(controls::controls);\n> +\tfor (auto const &algo : algorithms()) {\n> +\t\talgo->process(context_, frame, frameContext, stats_, metadata);\n> +\t}\n> +\n>   \tSwIspStats::Histogram histogram = stats_->yHistogram;\n>   \tif (ignoreUpdates_ > 0)\n>   \t\tblackLevel_.update(histogram);","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 BD5A9BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 28 Jun 2024 06:10:22 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BC95562C98;\n\tFri, 28 Jun 2024 08:10:21 +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 296B862C95\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 28 Jun 2024 08:10:20 +0200 (CEST)","from [IPV6:2405:201:2015:f873:55d7:c02e:b2eb:ee3f] (unknown\n\t[IPv6:2405:201:2015:f873:55d7:c02e:b2eb:ee3f])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 25C48735;\n\tFri, 28 Jun 2024 08:09:54 +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=\"BCaroejr\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1719554995;\n\tbh=qKaAWhzRPA/+OKjyY2BV7wOVD03hPyHsmE7CZ9uAvow=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=BCaroejruzeFuNTQnQe+PA9K4SUoU40n2LSeb8TVY2BRa7mUs5LobbF0kVb4NN5K2\n\tJOWtMLdsKgJVWkm/Sl4G0hcaeTmCHoiOEkYk6+Oc3/UZgKnS3pk8DgbnbL3CvR6qDA\n\trOQrdGjjMKTutdEdgSC+sc9ytEHoLqPMRjTL5IMg=","Message-ID":"<04b6ab70-89c0-41dd-b3dc-1fae0f14b9c3@ideasonboard.com>","Date":"Fri, 28 Jun 2024 11:40:14 +0530","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH 10/19] libcamera: software_isp: Call Algorithm::process","Content-Language":"en-US","To":"Milan Zamazal <mzamazal@redhat.com>, libcamera-devel@lists.libcamera.org","References":"<20240626072100.55497-1-mzamazal@redhat.com>\n\t<20240626072100.55497-11-mzamazal@redhat.com>","From":"Umang Jain <umang.jain@ideasonboard.com>","In-Reply-To":"<20240626072100.55497-11-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":30150,"web_url":"https://patchwork.libcamera.org/comment/30150/","msgid":"<2b18a66d-ae60-4251-9f0e-7da0a514dbb1@ideasonboard.com>","date":"2024-06-29T04:34:07","subject":"Re: [PATCH 10/19] libcamera: software_isp: Call Algorithm::process","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"Hi Milan,\n\nThank you for the patch.\n\nOn 26/06/24 12:50 pm, Milan Zamazal wrote:\n> This patch adds Algorithm::process call for the defined algorithms.\n> This is preparation only since there are currently no Algorithm based\n> algorithms defined.\n>\n> As software ISP currently doesn't produce any metadata, a dummy and\n> unused metadata instance is created to satisfy Algorithm::process API.\n> This should be changed in future.\n>\n> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n> ---\n>   src/ipa/simple/soft_simple.cpp | 13 ++++++++++++-\n>   1 file changed, 12 insertions(+), 1 deletion(-)\n>\n> diff --git a/src/ipa/simple/soft_simple.cpp b/src/ipa/simple/soft_simple.cpp\n> index 6ddb4004..c0cb6769 100644\n> --- a/src/ipa/simple/soft_simple.cpp\n> +++ b/src/ipa/simple/soft_simple.cpp\n> @@ -265,10 +265,21 @@ void IPASoftSimple::stop()\n>   }\n>   \n>   void IPASoftSimple::processStats(\n> -\t[[maybe_unused]] const uint32_t frame,\n> +\tconst uint32_t frame,\n>   \t[[maybe_unused]] const uint32_t bufferId,\n>   \tconst ControlList &sensorControls)\n>   {\n> +\tIPAFrameContext &frameContext = context_.frameContexts.get(frame);\n> +\t/*\n> +\t * \\todo Software ISP currently doesn't produce any metadata so it is\n> +\t * possible to use a dummy metadata instance here. But metadata should be\n> +\t * properly handled in future.\n> +\t */\n\nCan be possibly reworded to:\n\n         /*\n          * Software ISP currently does not produce any metadata. Use a \nempty\n          * ControlList for now.\n          *\n          * \\todo Implement proper metadata handling\n          */\n\n> +\tControlList metadata(controls::controls);\n> +\tfor (auto const &algo : algorithms()) {\n> +\t\talgo->process(context_, frame, frameContext, stats_, metadata);\n> +\t}\n\n{...} can be dropped\n\nReviewed-by: Umang Jain <umang.jain@ideasonboard.com>\n> +\n>   \tSwIspStats::Histogram histogram = stats_->yHistogram;\n>   \tif (ignoreUpdates_ > 0)\n>   \t\tblackLevel_.update(histogram);","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 EAE3BBDB1D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 29 Jun 2024 04:34:14 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E638D62C99;\n\tSat, 29 Jun 2024 06:34:13 +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 72E25619C7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 29 Jun 2024 06:34:12 +0200 (CEST)","from [IPV6:2405:201:2015:f873:55d7:c02e:b2eb:ee3f] (unknown\n\t[IPv6:2405:201:2015:f873:55d7:c02e:b2eb:ee3f])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id BEBD04B0;\n\tSat, 29 Jun 2024 06:33:46 +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=\"mgIKOhbO\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1719635627;\n\tbh=PgPkSsVYIIlNpz9Gp+rxuF5cPS3RgkMJUFd1gpLn4yQ=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=mgIKOhbOskfeB9XMShF5xI0izMZ7ws8/ng1DvZ5zY+y744CM9afJNzPE1p1A6OBoQ\n\tzh3YGKxVHB+oKEH2FixbvGdoPJzDgbaHEuaYZoCsxyMZaZqcpo6l+nKyRfvBJR05cy\n\tAYiK4IPKYaZfKg/LTZDwGKlForq1d4pYzHK4OAJo=","Message-ID":"<2b18a66d-ae60-4251-9f0e-7da0a514dbb1@ideasonboard.com>","Date":"Sat, 29 Jun 2024 10:04:07 +0530","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH 10/19] libcamera: software_isp: Call Algorithm::process","To":"Milan Zamazal <mzamazal@redhat.com>, libcamera-devel@lists.libcamera.org","References":"<20240626072100.55497-1-mzamazal@redhat.com>\n\t<20240626072100.55497-11-mzamazal@redhat.com>","Content-Language":"en-US","From":"Umang Jain <umang.jain@ideasonboard.com>","In-Reply-To":"<20240626072100.55497-11-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":30279,"web_url":"https://patchwork.libcamera.org/comment/30279/","msgid":"<87frsqjtir.fsf@redhat.com>","date":"2024-07-03T17:05:16","subject":"Re: [PATCH 10/19] libcamera: software_isp: Call Algorithm::process","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hi Umang,\n\nthank you for review.\n\nUmang Jain <umang.jain@ideasonboard.com> writes:\n\n> Hi Milan\n>\n> On 26/06/24 12:50 pm, Milan Zamazal wrote:\n>> This patch adds Algorithm::process call for the defined algorithms.\n>> This is preparation only since there are currently no Algorithm based\n>> algorithms defined.\n>>\n>> As software ISP currently doesn't produce any metadata, a dummy and\n>> unused metadata instance is created to satisfy Algorithm::process API.\n>> This should be changed in future.\n>>\n>> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n>> ---\n>>   src/ipa/simple/soft_simple.cpp | 13 ++++++++++++-\n>>   1 file changed, 12 insertions(+), 1 deletion(-)\n>>\n>> diff --git a/src/ipa/simple/soft_simple.cpp b/src/ipa/simple/soft_simple.cpp\n>> index 6ddb4004..c0cb6769 100644\n>> --- a/src/ipa/simple/soft_simple.cpp\n>> +++ b/src/ipa/simple/soft_simple.cpp\n>> @@ -265,10 +265,21 @@ void IPASoftSimple::stop()\n>>   }\n>>     void IPASoftSimple::processStats(\n>> -\t[[maybe_unused]] const uint32_t frame,\n>> +\tconst uint32_t frame,\n>>   \t[[maybe_unused]] const uint32_t bufferId,\n>>   \tconst ControlList &sensorControls)\n>>   {\n>> +\tIPAFrameContext &frameContext = context_.frameContexts.get(frame);\n>\n> I was trying to infer from the previous patches where the frameContexts were\n> allocated per frame.. only to find out it is done in later patch 12/19.\n>\n> the Algorithms::* patches ideally would be arranged in the order of their logical\n> calling sequencing ... but it's not the end of the world. :)\n\nI thought arranging them from simpler to more complicated might be\neasier but since it's actually more confusing, I'll change the order.\n\n> So far looks good to me.\n>\n>> +\t/*\n>> +\t * \\todo Software ISP currently doesn't produce any metadata so it is\n>> +\t * possible to use a dummy metadata instance here. But metadata should be\n>> +\t * properly handled in future.\n>> +\t */\n>> +\tControlList metadata(controls::controls);\n>> +\tfor (auto const &algo : algorithms()) {\n>> +\t\talgo->process(context_, frame, frameContext, stats_, metadata);\n>> +\t}\n>> +\n>>   \tSwIspStats::Histogram histogram = stats_->yHistogram;\n>>   \tif (ignoreUpdates_ > 0)\n>>   \t\tblackLevel_.update(histogram);","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 26D5EBD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  3 Jul 2024 17:05:26 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DEDF162E23;\n\tWed,  3 Jul 2024 19:05:24 +0200 (CEST)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.129.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D606662C96\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  3 Jul 2024 19:05:23 +0200 (CEST)","from mail-ej1-f70.google.com (mail-ej1-f70.google.com\n\t[209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-151-nnaoyAJAMXqeefS2psMWPg-1; Wed, 03 Jul 2024 13:05:21 -0400","by mail-ej1-f70.google.com with SMTP id\n\ta640c23a62f3a-a727d1e7e9aso411566666b.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 03 Jul 2024 10:05:21 -0700 (PDT)","from nuthatch (ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\ta640c23a62f3a-a77b226b1bcsm6249866b.88.2024.07.03.10.05.16\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 03 Jul 2024 10:05:17 -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=\"QOTYkgOu\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1720026322;\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=JzldMhnWERoE9xTxcfVlWjmayGzv5US3Xtj4LGdD71g=;\n\tb=QOTYkgOu3X89IFI55DjQaIgVxgucAdnkHcu6rIurBzwM8ljtQRO2DVaa8KcWJ8dpmQ9YOo\n\tJCNbBPDXimJ5D+OGa7ozSj2MMyPRRjVHGhYbsrPAHLrRfcER2jyVRPzJ2MNJ1aMqBN13yv\n\tICXw6pqU+Ug+ERWtjPa4vijrBUqdhzQ=","X-MC-Unique":"nnaoyAJAMXqeefS2psMWPg-1","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1720026319; x=1720631119;\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=JzldMhnWERoE9xTxcfVlWjmayGzv5US3Xtj4LGdD71g=;\n\tb=HfXB8i3QnUUw5By6TFI3k7prdSzQaE//pkjt/qkkN1zRF0ffSf5s6McVtWw5PhJ9vE\n\tenaxU/K+/+hURdnu81lQDB6F6VzMkZ/ilEv5cYILZzvu+Jj5ZgTZKWn1xaFPpjDJqEN9\n\tsmoTzNUZC3Y1wR9zfjKKSx0OyDBuiUIBV6/L+DDFCVthtsJd8oUa3bADW9hswgfnqUlg\n\tCv+MFPUbRKDjNslkd9gTXPNgV0e5R+XTSbzo4zaBsaprMuCD8MtyfN3PzO5DfMP3pT9c\n\t2CPjtZphUSxZHOQPSRpPzz1T8bx55/tjYYMEWTd2Lu/4aBNcuImiR0eXuWa8cqKsMpr5\n\tXcEQ==","X-Gm-Message-State":"AOJu0Yx60Q6im6rZRpsLi26e/07VBnBTRw5Om0Uv8XP5o9IzY1Yih+yA\n\t/9cLE7qMWgw7Y+Vz8K9PM/n5cgOKrlUENGLBhd+IKB3Dedt8kS0UnvS2D/NTvBOaWDh69Ir/hzZ\n\t5dWwA49rEQFKEDm00vKxa1bP+ah1UXLsoyGroqGKb6TsgZ8Rebwtz8eiGmHG7l1k1T3PxHpurJc\n\t+8Xvec0P7LEDuDMC5OXMvP06xDM/hQxjX3ayerYaP5j4kHdm7S6ywfeJY=","X-Received":["by 2002:a17:906:d152:b0:a6f:ab9c:7780 with SMTP id\n\ta640c23a62f3a-a751440f01bmr769670066b.31.1720026319180; \n\tWed, 03 Jul 2024 10:05:19 -0700 (PDT)","by 2002:a17:906:d152:b0:a6f:ab9c:7780 with SMTP id\n\ta640c23a62f3a-a751440f01bmr769664266b.31.1720026317605; \n\tWed, 03 Jul 2024 10:05:17 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IHBVC8+tvoAu8pC7jCr71AaiM2kwzueO+hRicItuqayKGLarc5lXgDuCOyygT/di2aG34Aljg==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Umang Jain <umang.jain@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH 10/19] libcamera: software_isp: Call Algorithm::process","In-Reply-To":"<04b6ab70-89c0-41dd-b3dc-1fae0f14b9c3@ideasonboard.com> (Umang\n\tJain's message of \"Fri, 28 Jun 2024 11:40:14 +0530\")","References":"<20240626072100.55497-1-mzamazal@redhat.com>\n\t<20240626072100.55497-11-mzamazal@redhat.com>\n\t<04b6ab70-89c0-41dd-b3dc-1fae0f14b9c3@ideasonboard.com>","Date":"Wed, 03 Jul 2024 19:05:16 +0200","Message-ID":"<87frsqjtir.fsf@redhat.com>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","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>"}}]