[{"id":33328,"web_url":"https://patchwork.libcamera.org/comment/33328/","msgid":"<173926716106.2293020.6537214113948740190@ping.linuxembedded.co.uk>","date":"2025-02-11T09:46:01","subject":"Re: [PATCH 3/4] ipa: Use Vector class from libcamera","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Stefan Klug (2025-02-06 14:10:10)\n> Now that there is a Vector class in libcamera, use that one.\n> \n\nI'm assuming that the next patch will confirm this is a complete\nconversion ;-)\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n\nNaush/David, it's very minor but this series touches src/ipa/rpi. Could\nyou confirm if you're ok with this please?\n\n\n> Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> ---\n>  src/ipa/ipu3/algorithms/awb.h              | 2 +-\n>  src/ipa/libipa/colours.h                   | 2 +-\n>  src/ipa/libipa/pwl.h                       | 2 +-\n>  src/ipa/rkisp1/algorithms/awb.h            | 3 ++-\n>  src/ipa/rkisp1/ipa_context.h               | 2 +-\n>  src/ipa/rpi/controller/rpi/agc_channel.cpp | 7 ++++---\n>  6 files changed, 10 insertions(+), 8 deletions(-)\n> \n> diff --git a/src/ipa/ipu3/algorithms/awb.h b/src/ipa/ipu3/algorithms/awb.h\n> index 1916990a5364..dbf69c9073a1 100644\n> --- a/src/ipa/ipu3/algorithms/awb.h\n> +++ b/src/ipa/ipu3/algorithms/awb.h\n> @@ -13,7 +13,7 @@\n>  \n>  #include <libcamera/geometry.h>\n>  \n> -#include \"libipa/vector.h\"\n> +#include \"libcamera/internal/vector.h\"\n>  \n>  #include \"algorithm.h\"\n>  \n> diff --git a/src/ipa/libipa/colours.h b/src/ipa/libipa/colours.h\n> index fa6a8b575cc7..d39b2ca8b87e 100644\n> --- a/src/ipa/libipa/colours.h\n> +++ b/src/ipa/libipa/colours.h\n> @@ -9,7 +9,7 @@\n>  \n>  #include <stdint.h>\n>  \n> -#include \"vector.h\"\n> +#include \"libcamera/internal/vector.h\"\n>  \n>  namespace libcamera {\n>  \n> diff --git a/src/ipa/libipa/pwl.h b/src/ipa/libipa/pwl.h\n> index d4ec9f4f18fb..8fdc70538b93 100644\n> --- a/src/ipa/libipa/pwl.h\n> +++ b/src/ipa/libipa/pwl.h\n> @@ -12,7 +12,7 @@\n>  #include <utility>\n>  #include <vector>\n>  \n> -#include \"vector.h\"\n> +#include \"libcamera/internal/vector.h\"\n>  \n>  namespace libcamera {\n>  \n> diff --git a/src/ipa/rkisp1/algorithms/awb.h b/src/ipa/rkisp1/algorithms/awb.h\n> index e424804861a6..34ec42cbb164 100644\n> --- a/src/ipa/rkisp1/algorithms/awb.h\n> +++ b/src/ipa/rkisp1/algorithms/awb.h\n> @@ -9,8 +9,9 @@\n>  \n>  #include <optional>\n>  \n> +#include \"libcamera/internal/vector.h\"\n> +\n>  #include \"libipa/interpolator.h\"\n> -#include \"libipa/vector.h\"\n>  \n>  #include \"algorithm.h\"\n>  \n> diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h\n> index 5d5b79fa615e..c765b928a55f 100644\n> --- a/src/ipa/rkisp1/ipa_context.h\n> +++ b/src/ipa/rkisp1/ipa_context.h\n> @@ -22,10 +22,10 @@\n>  \n>  #include \"libcamera/internal/debug_controls.h\"\n>  #include \"libcamera/internal/matrix.h\"\n> +#include \"libcamera/internal/vector.h\"\n>  \n>  #include <libipa/camera_sensor_helper.h>\n>  #include <libipa/fc_queue.h>\n> -#include <libipa/vector.h>\n>  \n>  namespace libcamera {\n>  \n> diff --git a/src/ipa/rpi/controller/rpi/agc_channel.cpp b/src/ipa/rpi/controller/rpi/agc_channel.cpp\n> index e79184b7ac74..a5562760e034 100644\n> --- a/src/ipa/rpi/controller/rpi/agc_channel.cpp\n> +++ b/src/ipa/rpi/controller/rpi/agc_channel.cpp\n> @@ -12,8 +12,9 @@\n>  \n>  #include <libcamera/base/log.h>\n>  \n> +#include \"libcamera/internal/vector.h\"\n> +\n>  #include \"libipa/colours.h\"\n> -#include \"libipa/vector.h\"\n>  \n>  #include \"../awb_status.h\"\n>  #include \"../device_status.h\"\n> @@ -700,7 +701,7 @@ static double computeInitialY(StatisticsPtr &stats, AwbStatus const &awb,\n>          * Note that the weights are applied by the IPA to the statistics directly,\n>          * before they are given to us here.\n>          */\n> -       ipa::RGB<double> sum{ 0.0 };\n> +       RGB<double> sum{ 0.0 };\n>         double pixelSum = 0;\n>         for (unsigned int i = 0; i < stats->agcRegions.numRegions(); i++) {\n>                 auto &region = stats->agcRegions.get(i);\n> @@ -716,7 +717,7 @@ static double computeInitialY(StatisticsPtr &stats, AwbStatus const &awb,\n>  \n>         /* Factor in the AWB correction if needed. */\n>         if (stats->agcStatsPos == Statistics::AgcStatsPos::PreWb)\n> -               sum *= ipa::RGB<double>{{ awb.gainR, awb.gainR, awb.gainB }};\n> +               sum *= RGB<double>{ { awb.gainR, awb.gainR, awb.gainB } };\n>  \n>         double ySum = ipa::rec601LuminanceFromRGB(sum);\n>  \n> -- \n> 2.43.0\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 AA7A0BD1F1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 11 Feb 2025 09:46:07 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6EF116861E;\n\tTue, 11 Feb 2025 10:46:06 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2CD9768615\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 11 Feb 2025 10:46:04 +0100 (CET)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id F1DCC2B3;\n\tTue, 11 Feb 2025 10:44:46 +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=\"ivwZY3sq\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1739267087;\n\tbh=Z7Re0lwKMZU3+rBZhmPccEW9itlZUiH/kNPcJt5M1Sw=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=ivwZY3sq/A5IhXB4POqjoB/tg0Ti99ZhdBKpm6VVpj/FKQdBkhVL4P3a8sL5LesHg\n\twqd1DGRkKlzohOrskGLuDl14onQ3cmvoYYw2AwHeNHglIyO9ab66LtTRA0iAxRlcnZ\n\tW2a3Kb7oj6R1XYnCHEhwqAGwlg9BUnc84Wq2lk8c=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20250206141018.236272-4-stefan.klug@ideasonboard.com>","References":"<20250206141018.236272-1-stefan.klug@ideasonboard.com>\n\t<20250206141018.236272-4-stefan.klug@ideasonboard.com>","Subject":"Re: [PATCH 3/4] ipa: Use Vector class from libcamera","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Stefan Klug <stefan.klug@ideasonboard.com>","To":"Stefan Klug <stefan.klug@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org,\n\tNaushir Patuck <naush@raspberrypi.com>, \n\tDavid Plowman <david.plowman@raspberrypi.com>, ","Date":"Tue, 11 Feb 2025 09:46:01 +0000","Message-ID":"<173926716106.2293020.6537214113948740190@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","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":33330,"web_url":"https://patchwork.libcamera.org/comment/33330/","msgid":"<CAEmqJPrrFDn8qgahQvZhhkFNYes05Xe-xYepQe0HoVrccBD7ug@mail.gmail.com>","date":"2025-02-11T10:05:37","subject":"Re: [PATCH 3/4] ipa: Use Vector class from libcamera","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"On Tue, 11 Feb 2025 at 09:46, Kieran Bingham\n<kieran.bingham@ideasonboard.com> wrote:\n>\n> Quoting Stefan Klug (2025-02-06 14:10:10)\n> > Now that there is a Vector class in libcamera, use that one.\n> >\n>\n> I'm assuming that the next patch will confirm this is a complete\n> conversion ;-)\n>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>\n>\n> Naush/David, it's very minor but this series touches src/ipa/rpi. Could\n> you confirm if you're ok with this please?\n\nLooks fine to me!\n\nReviewed-by: Naushir Patuck <naush@raspberrypi.com>\n\n\n>\n>\n> > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> > ---\n> >  src/ipa/ipu3/algorithms/awb.h              | 2 +-\n> >  src/ipa/libipa/colours.h                   | 2 +-\n> >  src/ipa/libipa/pwl.h                       | 2 +-\n> >  src/ipa/rkisp1/algorithms/awb.h            | 3 ++-\n> >  src/ipa/rkisp1/ipa_context.h               | 2 +-\n> >  src/ipa/rpi/controller/rpi/agc_channel.cpp | 7 ++++---\n> >  6 files changed, 10 insertions(+), 8 deletions(-)\n> >\n> > diff --git a/src/ipa/ipu3/algorithms/awb.h b/src/ipa/ipu3/algorithms/awb.h\n> > index 1916990a5364..dbf69c9073a1 100644\n> > --- a/src/ipa/ipu3/algorithms/awb.h\n> > +++ b/src/ipa/ipu3/algorithms/awb.h\n> > @@ -13,7 +13,7 @@\n> >\n> >  #include <libcamera/geometry.h>\n> >\n> > -#include \"libipa/vector.h\"\n> > +#include \"libcamera/internal/vector.h\"\n> >\n> >  #include \"algorithm.h\"\n> >\n> > diff --git a/src/ipa/libipa/colours.h b/src/ipa/libipa/colours.h\n> > index fa6a8b575cc7..d39b2ca8b87e 100644\n> > --- a/src/ipa/libipa/colours.h\n> > +++ b/src/ipa/libipa/colours.h\n> > @@ -9,7 +9,7 @@\n> >\n> >  #include <stdint.h>\n> >\n> > -#include \"vector.h\"\n> > +#include \"libcamera/internal/vector.h\"\n> >\n> >  namespace libcamera {\n> >\n> > diff --git a/src/ipa/libipa/pwl.h b/src/ipa/libipa/pwl.h\n> > index d4ec9f4f18fb..8fdc70538b93 100644\n> > --- a/src/ipa/libipa/pwl.h\n> > +++ b/src/ipa/libipa/pwl.h\n> > @@ -12,7 +12,7 @@\n> >  #include <utility>\n> >  #include <vector>\n> >\n> > -#include \"vector.h\"\n> > +#include \"libcamera/internal/vector.h\"\n> >\n> >  namespace libcamera {\n> >\n> > diff --git a/src/ipa/rkisp1/algorithms/awb.h b/src/ipa/rkisp1/algorithms/awb.h\n> > index e424804861a6..34ec42cbb164 100644\n> > --- a/src/ipa/rkisp1/algorithms/awb.h\n> > +++ b/src/ipa/rkisp1/algorithms/awb.h\n> > @@ -9,8 +9,9 @@\n> >\n> >  #include <optional>\n> >\n> > +#include \"libcamera/internal/vector.h\"\n> > +\n> >  #include \"libipa/interpolator.h\"\n> > -#include \"libipa/vector.h\"\n> >\n> >  #include \"algorithm.h\"\n> >\n> > diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h\n> > index 5d5b79fa615e..c765b928a55f 100644\n> > --- a/src/ipa/rkisp1/ipa_context.h\n> > +++ b/src/ipa/rkisp1/ipa_context.h\n> > @@ -22,10 +22,10 @@\n> >\n> >  #include \"libcamera/internal/debug_controls.h\"\n> >  #include \"libcamera/internal/matrix.h\"\n> > +#include \"libcamera/internal/vector.h\"\n> >\n> >  #include <libipa/camera_sensor_helper.h>\n> >  #include <libipa/fc_queue.h>\n> > -#include <libipa/vector.h>\n> >\n> >  namespace libcamera {\n> >\n> > diff --git a/src/ipa/rpi/controller/rpi/agc_channel.cpp b/src/ipa/rpi/controller/rpi/agc_channel.cpp\n> > index e79184b7ac74..a5562760e034 100644\n> > --- a/src/ipa/rpi/controller/rpi/agc_channel.cpp\n> > +++ b/src/ipa/rpi/controller/rpi/agc_channel.cpp\n> > @@ -12,8 +12,9 @@\n> >\n> >  #include <libcamera/base/log.h>\n> >\n> > +#include \"libcamera/internal/vector.h\"\n> > +\n> >  #include \"libipa/colours.h\"\n> > -#include \"libipa/vector.h\"\n> >\n> >  #include \"../awb_status.h\"\n> >  #include \"../device_status.h\"\n> > @@ -700,7 +701,7 @@ static double computeInitialY(StatisticsPtr &stats, AwbStatus const &awb,\n> >          * Note that the weights are applied by the IPA to the statistics directly,\n> >          * before they are given to us here.\n> >          */\n> > -       ipa::RGB<double> sum{ 0.0 };\n> > +       RGB<double> sum{ 0.0 };\n> >         double pixelSum = 0;\n> >         for (unsigned int i = 0; i < stats->agcRegions.numRegions(); i++) {\n> >                 auto &region = stats->agcRegions.get(i);\n> > @@ -716,7 +717,7 @@ static double computeInitialY(StatisticsPtr &stats, AwbStatus const &awb,\n> >\n> >         /* Factor in the AWB correction if needed. */\n> >         if (stats->agcStatsPos == Statistics::AgcStatsPos::PreWb)\n> > -               sum *= ipa::RGB<double>{{ awb.gainR, awb.gainR, awb.gainB }};\n> > +               sum *= RGB<double>{ { awb.gainR, awb.gainR, awb.gainB } };\n> >\n> >         double ySum = ipa::rec601LuminanceFromRGB(sum);\n> >\n> > --\n> > 2.43.0\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 7A370C32F5\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 11 Feb 2025 10:06:16 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 67ABC61865;\n\tTue, 11 Feb 2025 11:06:15 +0100 (CET)","from mail-yw1-x112d.google.com (mail-yw1-x112d.google.com\n\t[IPv6:2607:f8b0:4864:20::112d])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DD08E61865\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 11 Feb 2025 11:06:12 +0100 (CET)","by mail-yw1-x112d.google.com with SMTP id\n\t00721157ae682-6f9c04101e4so1801677b3.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 11 Feb 2025 02:06:12 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"U2HPnjSi\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1739268371; x=1739873171;\n\tdarn=lists.libcamera.org; \n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date:message-id:reply-to;\n\tbh=w0bWIOIBvkQ6Mtct/kt5ksK9jkZDYrigR1gJm5YlFOw=;\n\tb=U2HPnjSiUse8fFlWqnQIFQc8psFtQhTTLA/fgrk/LOcMAnia3FReqJetCKl77F+3jm\n\tOsog9gpnzDTohyEF2FZyvDgqOD5epwHiLJO7cEr+sKsgE5R1kSOL8rBBZI48+QueWRyq\n\tAedIAWVIPDqfCgZh9V9AhtoZl0QUJx5+EhpuUUIDM0c//WuxJb57j50vdb4UxAiiaXoU\n\tuo33LWpii4mdZnRzU8vyzE0nW+80CKuqVE++G9i7MoQtooupnEqL2MmFl4gnjBturSVs\n\tQh7Udi4xhjpiyI51VU/P+tkDw0a3bBnHepSpfi6vHJ4I1+gtdVgFU51O5yT79u+k9ukj\n\tLwnw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1739268371; x=1739873171;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=w0bWIOIBvkQ6Mtct/kt5ksK9jkZDYrigR1gJm5YlFOw=;\n\tb=L1Q3AZbDqbhVH9J5XkKwQx2SLgWKXb9KnN8/57rYyaKV3xuBPkQsAdl2Jo1E2e183G\n\tj/cwlCT424f5KtuRvlEGKE208NpnJmOnPL/a/06FztHkjZQRF7F1TS5tanxL9VBYFxvK\n\t20n2x3cmWsbe60A2DdhNyoNpgcqwbv2pkXuzQ4XMoWkeJfQtfXZc83RYIEYrU9yLzM7P\n\tjz/AznyKDA88pyBelkXjODTmHSLjH3aIRicpPQTmPQgaDe/Tn5riYQCJ+z0BURWxXBXw\n\tbegi4EfX3to3xj2M8T9WJIsESfmv4KN9JtE62vmKnKHzRg1Slv345c1nq9wZCAsa9xTX\n\tFPvA==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCWnetYswLvtgVPD+iz2Ag/yAZmfbLSbXDO04htrVStzgtlxkLEjhYmRGmMjBwh0xil8m6wNCo9ahm5xQCjRidQ=@lists.libcamera.org","X-Gm-Message-State":"AOJu0YzIZwKrEQWHSRYeAmfFwrGnz+ExfNQVi7myENRZz5OdlGRzVyOo\n\ta8kDOcpjxt5SmBDjX1Yfk/LpXoWvWecWeowb2paKxlhe/Sp0wa4ejjjcLI1oQzOtt807hZW2y/Q\n\tmp31v/uA4G5AjFnDGB7f6yBSwdAatTbsDnaLbLg==","X-Gm-Gg":"ASbGncsjJd4oThDAKmAd+BhHXtEW0C5MUmsHWuWTZbEe+nO6q1U1TwuS6EjmXVATTZp\n\tq7sxavEWA/lNwLpSq6vQYk2yFFt/GhV/elCkGqcraPsFn2XThCyjWXYAkveJOo42k7Mnt+b0hLS\n\t4XELmycU4C9XGi7GtJNTmdK92nFIN1","X-Google-Smtp-Source":"AGHT+IEBA3jnK2BoVMT4c7RI5O38fuLwDaIpABB5UU0FKhq2XlHtIZ4NWcXWAJb+JpMsIytyqrXpu4tSZgvXJlkkE4A=","X-Received":"by 2002:a05:690c:d82:b0:6ef:66fd:1f45 with SMTP id\n\t00721157ae682-6fb0fbe63a8mr8992047b3.0.1739268371550; Tue, 11 Feb 2025\n\t02:06:11 -0800 (PST)","MIME-Version":"1.0","References":"<20250206141018.236272-1-stefan.klug@ideasonboard.com>\n\t<20250206141018.236272-4-stefan.klug@ideasonboard.com>\n\t<173926716106.2293020.6537214113948740190@ping.linuxembedded.co.uk>","In-Reply-To":"<173926716106.2293020.6537214113948740190@ping.linuxembedded.co.uk>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Tue, 11 Feb 2025 10:05:37 +0000","X-Gm-Features":"AWEUYZnU9GzA-k2-NWjbfkUPGQ8TmWuCwSQjh60WzCvfXkMlbW2603ums0h50Io","Message-ID":"<CAEmqJPrrFDn8qgahQvZhhkFNYes05Xe-xYepQe0HoVrccBD7ug@mail.gmail.com>","Subject":"Re: [PATCH 3/4] ipa: Use Vector class from libcamera","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Stefan Klug <stefan.klug@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org, \n\tDavid Plowman <david.plowman@raspberrypi.com>","Content-Type":"text/plain; charset=\"UTF-8\"","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>"}}]