[{"id":11033,"web_url":"https://patchwork.libcamera.org/comment/11033/","msgid":"<20200701091129.GN5963@pendragon.ideasonboard.com>","date":"2020-07-01T09:11:29","subject":"Re: [libcamera-devel] [PATCH] libcamera: ipa: raspberrypi: Enable\n\tfocus measure without recompile","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi David,\n\nThank you for the patch.\n\nOn Wed, Jul 01, 2020 at 09:53:56AM +0100, David Plowman wrote:\n> Previously output of the focus measure could be enabled without\n> recompiling (because of the RPI_LOGGING_ENABLE macro). Here we disable\n> it in the imx477 tuning, but if re-enabled there it will now be output\n> to the console (much more helpful behaviour).\n> \n> Signed-off-by: David Plowman <david.plowman@raspberrypi.com>\n> ---\n>  src/ipa/raspberrypi/controller/rpi/focus.cpp | 2 +-\n>  src/ipa/raspberrypi/data/imx477.json         | 2 +-\n>  2 files changed, 2 insertions(+), 2 deletions(-)\n> \n> diff --git a/src/ipa/raspberrypi/controller/rpi/focus.cpp b/src/ipa/raspberrypi/controller/rpi/focus.cpp\n> index 1e2b649..133ea6f 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/focus.cpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/focus.cpp\n> @@ -39,7 +39,7 @@ void Focus::Process(StatisticsPtr &stats, Metadata *image_metadata)\n>  \timage_metadata->Set(\"focus.status\", status);\n>  \tif (print_) {\n>  \t\tuint32_t value = (status.focus_measures[5] + status.focus_measures[6]) / 10;\n> -\t\tRPI_LOG(\"Focus contrast measure: \" << value);\n> +\t\tstd::cout << \"Focus contrast measure: \" << value << std::endl;\n\nHow about using the libcamera logging infrastructure ? It would give you\nruntime-controllable log categories and levels.\n\n>  \t}\n>  }\n>  \n> diff --git a/src/ipa/raspberrypi/data/imx477.json b/src/ipa/raspberrypi/data/imx477.json\n> index 389e8ce..8976e31 100644\n> --- a/src/ipa/raspberrypi/data/imx477.json\n> +++ b/src/ipa/raspberrypi/data/imx477.json\n> @@ -415,6 +415,6 @@\n>      },\n>      \"rpi.focus\":\n>      {\n> -\t\"print\": 1\n> +\t\"print\": 0\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 0799ABF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  1 Jul 2020 09:11:35 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 88D5360C56;\n\tWed,  1 Jul 2020 11:11:34 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6383D603B3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  1 Jul 2020 11:11:33 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id CB07D556;\n\tWed,  1 Jul 2020 11:11:32 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"Dp0jc6LJ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1593594693;\n\tbh=4qxpnaTiLk5bD5dCM9hONcO75fJWSDYm1Lb7y4ZnMpQ=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Dp0jc6LJ0Le5m+h5F+PWWVtf6Cog+6YgUjnwxosb8JSdftJmyLqXZSM07TV/HHgQl\n\tEN62yHZUOrincj4nxRyB40sq1V7JWXl+rGsFuEQilI4vXDx/wJvON/AQDBE2ftnTPL\n\tVkIAhRvuIZ5Y5V8WKzgiMCimYGaVN779E4Ydd7tM=","Date":"Wed, 1 Jul 2020 12:11:29 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"David Plowman <david.plowman@raspberrypi.com>","Message-ID":"<20200701091129.GN5963@pendragon.ideasonboard.com>","References":"<20200701085356.3626-1-david.plowman@raspberrypi.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20200701085356.3626-1-david.plowman@raspberrypi.com>","Subject":"Re: [libcamera-devel] [PATCH] libcamera: ipa: raspberrypi: Enable\n\tfocus measure without recompile","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>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":11039,"web_url":"https://patchwork.libcamera.org/comment/11039/","msgid":"<CAHW6GY+7pPddgrvaT2bDdO3ynGdQJ+9yoqd+d7Dt3avxa1gXBQ@mail.gmail.com>","date":"2020-07-01T11:43:47","subject":"Re: [libcamera-devel] [PATCH] libcamera: ipa: raspberrypi: Enable\n\tfocus measure without recompile","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"HI Laurent\n\nOn Wed, 1 Jul 2020 at 10:11, Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> Hi David,\n>\n> Thank you for the patch.\n>\n> On Wed, Jul 01, 2020 at 09:53:56AM +0100, David Plowman wrote:\n> > Previously output of the focus measure could be enabled without\n> > recompiling (because of the RPI_LOGGING_ENABLE macro). Here we disable\n> > it in the imx477 tuning, but if re-enabled there it will now be output\n> > to the console (much more helpful behaviour).\n> >\n> > Signed-off-by: David Plowman <david.plowman@raspberrypi.com>\n> > ---\n> >  src/ipa/raspberrypi/controller/rpi/focus.cpp | 2 +-\n> >  src/ipa/raspberrypi/data/imx477.json         | 2 +-\n> >  2 files changed, 2 insertions(+), 2 deletions(-)\n> >\n> > diff --git a/src/ipa/raspberrypi/controller/rpi/focus.cpp b/src/ipa/raspberrypi/controller/rpi/focus.cpp\n> > index 1e2b649..133ea6f 100644\n> > --- a/src/ipa/raspberrypi/controller/rpi/focus.cpp\n> > +++ b/src/ipa/raspberrypi/controller/rpi/focus.cpp\n> > @@ -39,7 +39,7 @@ void Focus::Process(StatisticsPtr &stats, Metadata *image_metadata)\n> >       image_metadata->Set(\"focus.status\", status);\n> >       if (print_) {\n> >               uint32_t value = (status.focus_measures[5] + status.focus_measures[6]) / 10;\n> > -             RPI_LOG(\"Focus contrast measure: \" << value);\n> > +             std::cout << \"Focus contrast measure: \" << value << std::endl;\n>\n> How about using the libcamera logging infrastructure ? It would give you\n> runtime-controllable log categories and levels.\n\nYes, thank you for the thought. I spent way longer trying to make up\nmy mind than such a trivial and unimportant thing really warrants! But\nI think I've eventually come down on the side of using the libcamera\nlogging, so expect a v2 patch momentarily.\n\nBest regards\nDavid\n\n>\n> >       }\n> >  }\n> >\n> > diff --git a/src/ipa/raspberrypi/data/imx477.json b/src/ipa/raspberrypi/data/imx477.json\n> > index 389e8ce..8976e31 100644\n> > --- a/src/ipa/raspberrypi/data/imx477.json\n> > +++ b/src/ipa/raspberrypi/data/imx477.json\n> > @@ -415,6 +415,6 @@\n> >      },\n> >      \"rpi.focus\":\n> >      {\n> > -     \"print\": 1\n> > +     \"print\": 0\n> >      }\n> >  }\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","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 A82B8BF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  1 Jul 2020 11:44:01 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 273FA60C56;\n\tWed,  1 Jul 2020 13:44:01 +0200 (CEST)","from mail-ot1-x341.google.com (mail-ot1-x341.google.com\n\t[IPv6:2607:f8b0:4864:20::341])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6D3B9603B4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  1 Jul 2020 13:43:59 +0200 (CEST)","by mail-ot1-x341.google.com with SMTP id n5so21190461otj.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 01 Jul 2020 04:43:59 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"S5KGnxgw\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=lfl7/7y1kWdXiB794Gf+QlelqtNls09R8yJd2yT5lhs=;\n\tb=S5KGnxgw5Fd7bnUsunXsM1Lmb2LgwrCdQnKPFBJmwHGjgBaLZIL7shKgHuAM52uSH/\n\tZc6YeCdSpMPs3XuqQEMdL9S82K68Z5yx+7PmLe7VRi7atiSSnTAn8m4cZG1mQhtvTgul\n\t8pKbOhSKet4idbxfdqcpNfZpHEmQOeipeXk0Y1N7H18BHEJ5L6qKTHCGOJDGif0vUZIe\n\te1y0bRHjfA0swt+LrCZP+fWuHj18StWLI9rzisuIVeclDvWbuOzHq9SXfRepWJXHOkj2\n\trIzyYHEZu3DNeu02ACFCwwoPmSfJQ18acJmQzdymTWO6C8OFKLz6eu4itO6elZGjqdJT\n\tTn+A==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=lfl7/7y1kWdXiB794Gf+QlelqtNls09R8yJd2yT5lhs=;\n\tb=eG/hpluKSaPSvcyakvFatY7SVmPw1XqtTkAQTi+myOR3QvoZKB6MaqJhz9ia4AcQhR\n\tpZJiqnQ4ZJzMmZqyeAt/a26fRx3SA0OQAOVjwONOc8gpcAfwdfPzsrm5BTuNpLFIgm4q\n\tCGN09ok0r56oS18w7Gx8bIR+Qyfyq6tVDf9IesPFpdYCY0IgoX7vBVhQDron+4T7GG9Y\n\tZsMcgJ8I5ButgdJn5VzE244XnJkiAqV+gkFrAdKXleiYtQzFPhtYDGDYba2AhQuIPftb\n\toeLTSZqIk8FnsnuxE0dRpBTFitZZzE2QTbwa2FrY1TEy6890s5y2Wpy6GpWEB2ASg4M8\n\tUjew==","X-Gm-Message-State":"AOAM533CXtHfOdaCod5nkzzZ6osdHYfx+o98tsQs5B2ot83leMlgxdSC\n\twSc7TkeqmhC8w1uHwWfqqM2/86TDFVTjeEfz/oGFjw==","X-Google-Smtp-Source":"ABdhPJyw7eMKuoP351Elxi3UC5lJc+TjHO8A5HEF2pansBGEocmGZQ004R2h0d7Gn59b3g8n7Yj930Kbp5H95VlrW7k=","X-Received":"by 2002:a9d:6a92:: with SMTP id\n\tl18mr1293950otq.317.1593603838143; \n\tWed, 01 Jul 2020 04:43:58 -0700 (PDT)","MIME-Version":"1.0","References":"<20200701085356.3626-1-david.plowman@raspberrypi.com>\n\t<20200701091129.GN5963@pendragon.ideasonboard.com>","In-Reply-To":"<20200701091129.GN5963@pendragon.ideasonboard.com>","From":"David Plowman <david.plowman@raspberrypi.com>","Date":"Wed, 1 Jul 2020 12:43:47 +0100","Message-ID":"<CAHW6GY+7pPddgrvaT2bDdO3ynGdQJ+9yoqd+d7Dt3avxa1gXBQ@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] libcamera: ipa: raspberrypi: Enable\n\tfocus measure without recompile","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>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":11040,"web_url":"https://patchwork.libcamera.org/comment/11040/","msgid":"<20200701115025.GS5963@pendragon.ideasonboard.com>","date":"2020-07-01T11:50:25","subject":"Re: [libcamera-devel] [PATCH] libcamera: ipa: raspberrypi: Enable\n\tfocus measure without recompile","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi David,\n\nOn Wed, Jul 01, 2020 at 12:43:47PM +0100, David Plowman wrote:\n> On Wed, 1 Jul 2020 at 10:11, Laurent Pinchart wrote:\n> > On Wed, Jul 01, 2020 at 09:53:56AM +0100, David Plowman wrote:\n> > > Previously output of the focus measure could be enabled without\n> > > recompiling (because of the RPI_LOGGING_ENABLE macro). Here we disable\n> > > it in the imx477 tuning, but if re-enabled there it will now be output\n> > > to the console (much more helpful behaviour).\n> > >\n> > > Signed-off-by: David Plowman <david.plowman@raspberrypi.com>\n> > > ---\n> > >  src/ipa/raspberrypi/controller/rpi/focus.cpp | 2 +-\n> > >  src/ipa/raspberrypi/data/imx477.json         | 2 +-\n> > >  2 files changed, 2 insertions(+), 2 deletions(-)\n> > >\n> > > diff --git a/src/ipa/raspberrypi/controller/rpi/focus.cpp b/src/ipa/raspberrypi/controller/rpi/focus.cpp\n> > > index 1e2b649..133ea6f 100644\n> > > --- a/src/ipa/raspberrypi/controller/rpi/focus.cpp\n> > > +++ b/src/ipa/raspberrypi/controller/rpi/focus.cpp\n> > > @@ -39,7 +39,7 @@ void Focus::Process(StatisticsPtr &stats, Metadata *image_metadata)\n> > >       image_metadata->Set(\"focus.status\", status);\n> > >       if (print_) {\n> > >               uint32_t value = (status.focus_measures[5] + status.focus_measures[6]) / 10;\n> > > -             RPI_LOG(\"Focus contrast measure: \" << value);\n> > > +             std::cout << \"Focus contrast measure: \" << value << std::endl;\n> >\n> > How about using the libcamera logging infrastructure ? It would give you\n> > runtime-controllable log categories and levels.\n> \n> Yes, thank you for the thought. I spent way longer trying to make up\n> my mind than such a trivial and unimportant thing really warrants! But\n> I think I've eventually come down on the side of using the libcamera\n> logging, so expect a v2 patch momentarily.\n\nNice to hear :-) Feel free to define different log categories for\ndifferent algorithms, that could even allow dropping the print options\nfrom the json file completely. Categories have to be valid C++ symbol\nnames so RPI.Focus wouldn't be valid unfortunately.\n\nAdditionally, we're thinking about adding a tracing mechanism that would\nwork similarly to the log but would be more lightweight, it could be\nused in the future for such messages. Or maybe we'll just improve the\nefficiency of the logging system.\n\n> > >       }\n> > >  }\n> > >\n> > > diff --git a/src/ipa/raspberrypi/data/imx477.json b/src/ipa/raspberrypi/data/imx477.json\n> > > index 389e8ce..8976e31 100644\n> > > --- a/src/ipa/raspberrypi/data/imx477.json\n> > > +++ b/src/ipa/raspberrypi/data/imx477.json\n> > > @@ -415,6 +415,6 @@\n> > >      },\n> > >      \"rpi.focus\":\n> > >      {\n> > > -     \"print\": 1\n> > > +     \"print\": 0\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 6FD78BFFE2\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  1 Jul 2020 11:50:31 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0B215609A9;\n\tWed,  1 Jul 2020 13:50:31 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A35B1603B4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  1 Jul 2020 13:50:29 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 1870A556;\n\tWed,  1 Jul 2020 13:50:29 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"MIIxPEKV\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1593604229;\n\tbh=R2XjafoFT6tMvsZ7BSk/ZIkso7hOwhHwkmOSMZnl398=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=MIIxPEKVBjsCIbgPoEV3PYcvUbTpD+6W5wU4q8fbtQdi+6Vq0f3Ph03RrU4L+BE6D\n\ttte/t6jNrd6EbYizXmiV5k69JU7Mte+Ay38TYSQRY7fSaMu6Oy8WWPhK710k4pUx4k\n\tSnGVQDpKrD2+cEitzd5HIeTDKw09r8UJ2AXyotNw=","Date":"Wed, 1 Jul 2020 14:50:25 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"David Plowman <david.plowman@raspberrypi.com>","Message-ID":"<20200701115025.GS5963@pendragon.ideasonboard.com>","References":"<20200701085356.3626-1-david.plowman@raspberrypi.com>\n\t<20200701091129.GN5963@pendragon.ideasonboard.com>\n\t<CAHW6GY+7pPddgrvaT2bDdO3ynGdQJ+9yoqd+d7Dt3avxa1gXBQ@mail.gmail.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<CAHW6GY+7pPddgrvaT2bDdO3ynGdQJ+9yoqd+d7Dt3avxa1gXBQ@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH] libcamera: ipa: raspberrypi: Enable\n\tfocus measure without recompile","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>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]