[{"id":12061,"web_url":"https://patchwork.libcamera.org/comment/12061/","msgid":"<20200820084613.jqweprmfcgpjt6ku@uno.localdomain>","date":"2020-08-20T08:46:13","subject":"Re: [libcamera-devel] [PATCH 06/13] libcamera: pipeline: rkisp1:\n\tExport stream formats to applicaitons","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Niklas,\n   a few questions\n\nOn Thu, Aug 13, 2020 at 02:52:39AM +0200, Niklas Söderlund wrote:\n> The information about stream format is available but not exported to\n> applications, fix this.\n>\n> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> ---\n>  src/libcamera/pipeline/rkisp1/rkisp1.cpp | 8 +++++++-\n>  1 file changed, 7 insertions(+), 1 deletion(-)\n>\n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> index 9d5a52d352aefabc..8e0f6db5faa96928 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> @@ -585,7 +585,13 @@ CameraConfiguration *PipelineHandlerRkISP1::generateConfiguration(Camera *camera\n>  \tif (roles.empty())\n>  \t\treturn config;\n>\n> -\tStreamConfiguration cfg{};\n> +\tstd::map<PixelFormat, std::vector<SizeRange>> streamFormats;\n> +\tfor (const PixelFormat &format : RKISP1_RSZ_MP_FORMATS)\n> +\t\tstreamFormats[format] =\n> +\t\t\t{ { RKISP1_RSZ_MP_SRC_MIN, RKISP1_RSZ_MP_SRC_MAX } };\n> +\n\nCan the ISP freely up-scale? Otherwise the size should be capped to\nthe max sensor size\n\nCan all formats be produced from all input formats ? Otherwise the\nformats that can be produced should be matched with the ones produced\nby the sensor.\n\nAs a general note, should we try to report the available stream\nformats by inspeting the ones that can be produced by the video device\nor can we live with a static enumeration in the pipeline handler ?\n\nThanks\n  j\n\n> +\tStreamFormats formats(streamFormats);\n> +\tStreamConfiguration cfg(formats);\n>  \tcfg.pixelFormat = formats::NV12;\n>  \tcfg.size = data->sensor_->resolution();\n>\n> --\n> 2.28.0\n>\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","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 460B6BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 20 Aug 2020 08:42:32 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D789D61F61;\n\tThu, 20 Aug 2020 10:42:31 +0200 (CEST)","from relay2-d.mail.gandi.net (relay2-d.mail.gandi.net\n\t[217.70.183.194])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4FB9861ED9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 20 Aug 2020 10:42:31 +0200 (CEST)","from uno.localdomain (host-82-52-18-94.retail.telecomitalia.it\n\t[82.52.18.94]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay2-d.mail.gandi.net (Postfix) with ESMTPSA id A6EC140005;\n\tThu, 20 Aug 2020 08:42:30 +0000 (UTC)"],"X-Originating-IP":"82.52.18.94","Date":"Thu, 20 Aug 2020 10:46:13 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Message-ID":"<20200820084613.jqweprmfcgpjt6ku@uno.localdomain>","References":"<20200813005246.3265807-1-niklas.soderlund@ragnatech.se>\n\t<20200813005246.3265807-7-niklas.soderlund@ragnatech.se>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20200813005246.3265807-7-niklas.soderlund@ragnatech.se>","Subject":"Re: [libcamera-devel] [PATCH 06/13] libcamera: pipeline: rkisp1:\n\tExport stream formats to applicaitons","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=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":12075,"web_url":"https://patchwork.libcamera.org/comment/12075/","msgid":"<20200820150435.GL6593@pendragon.ideasonboard.com>","date":"2020-08-20T15:04:35","subject":"Re: [libcamera-devel] [PATCH 06/13] libcamera: pipeline: rkisp1:\n\tExport stream formats to applicaitons","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hello,\n\ns/applicaitons/applications/ in the subject line.\n\nOn Thu, Aug 20, 2020 at 10:46:13AM +0200, Jacopo Mondi wrote:\n> Hi Niklas,\n>    a few questions\n> \n> On Thu, Aug 13, 2020 at 02:52:39AM +0200, Niklas Söderlund wrote:\n> > The information about stream format is available but not exported to\n> > applications, fix this.\n> >\n> > Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> > ---\n> >  src/libcamera/pipeline/rkisp1/rkisp1.cpp | 8 +++++++-\n> >  1 file changed, 7 insertions(+), 1 deletion(-)\n> >\n> > diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> > index 9d5a52d352aefabc..8e0f6db5faa96928 100644\n> > --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> > +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> > @@ -585,7 +585,13 @@ CameraConfiguration *PipelineHandlerRkISP1::generateConfiguration(Camera *camera\n> >  \tif (roles.empty())\n> >  \t\treturn config;\n> >\n> > -\tStreamConfiguration cfg{};\n> > +\tstd::map<PixelFormat, std::vector<SizeRange>> streamFormats;\n> > +\tfor (const PixelFormat &format : RKISP1_RSZ_MP_FORMATS)\n> > +\t\tstreamFormats[format] =\n> > +\t\t\t{ { RKISP1_RSZ_MP_SRC_MIN, RKISP1_RSZ_MP_SRC_MAX } };\n> > +\n> \n> Can the ISP freely up-scale? Otherwise the size should be capped to\n> the max sensor size\n\nEven if the ISP can upscale I'm not sure we should allow it. I'd prefer\ncapping the size.\n\n> Can all formats be produced from all input formats ? Otherwise the\n> formats that can be produced should be matched with the ones produced\n> by the sensor.\n> \n> As a general note, should we try to report the available stream\n> formats by inspeting the ones that can be produced by the video device\n> or can we live with a static enumeration in the pipeline handler ?\n\nWe don't need to query the kernel if we know the information already,\nbut we should only report formats that can actually be produced for the\nconnected sensor.\n\n> > +\tStreamFormats formats(streamFormats);\n> > +\tStreamConfiguration cfg(formats);\n> >  \tcfg.pixelFormat = formats::NV12;\n> >  \tcfg.size = data->sensor_->resolution();\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 DC202BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 20 Aug 2020 15:04:55 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 74D3E61F7B;\n\tThu, 20 Aug 2020 17:04:55 +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 28EF760381\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 20 Aug 2020 17:04:54 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 6FA3023D;\n\tThu, 20 Aug 2020 17:04:53 +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=\"NW0o/0FH\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1597935893;\n\tbh=H+gTZSdw8es9ZWFVzJCtnMlid6tJMoZevyDwL79bkms=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=NW0o/0FHProeWLxrRmwTU6ihJKZVEOqFucBU954Rgf6V7YmdM+xj++4/azwbx8Z/+\n\tlvrhr6Vc7MdaPu+IdBZREzqFA1gKq62t6Ucuwt8F4zhunCzWYUJLSChgz0Vy5qEwQo\n\t/4E2DWSnuAleh/WlJ/QNN0uk75IsTUkcx+NIVYBI=","Date":"Thu, 20 Aug 2020 18:04:35 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Message-ID":"<20200820150435.GL6593@pendragon.ideasonboard.com>","References":"<20200813005246.3265807-1-niklas.soderlund@ragnatech.se>\n\t<20200813005246.3265807-7-niklas.soderlund@ragnatech.se>\n\t<20200820084613.jqweprmfcgpjt6ku@uno.localdomain>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20200820084613.jqweprmfcgpjt6ku@uno.localdomain>","Subject":"Re: [libcamera-devel] [PATCH 06/13] libcamera: pipeline: rkisp1:\n\tExport stream formats to applicaitons","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=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":12489,"web_url":"https://patchwork.libcamera.org/comment/12489/","msgid":"<20200914094608.GE1127199@oden.dyn.berto.se>","date":"2020-09-14T09:46:08","subject":"Re: [libcamera-devel] [PATCH 06/13] libcamera: pipeline: rkisp1:\n\tExport stream formats to applicaitons","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hello Jacopo and Laurent,\n\nOn 2020-08-20 18:04:35 +0300, Laurent Pinchart wrote:\n> Hello,\n> \n> s/applicaitons/applications/ in the subject line.\n> \n> On Thu, Aug 20, 2020 at 10:46:13AM +0200, Jacopo Mondi wrote:\n> > Hi Niklas,\n> >    a few questions\n> > \n> > On Thu, Aug 13, 2020 at 02:52:39AM +0200, Niklas Söderlund wrote:\n> > > The information about stream format is available but not exported to\n> > > applications, fix this.\n> > >\n> > > Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> > > ---\n> > >  src/libcamera/pipeline/rkisp1/rkisp1.cpp | 8 +++++++-\n> > >  1 file changed, 7 insertions(+), 1 deletion(-)\n> > >\n> > > diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> > > index 9d5a52d352aefabc..8e0f6db5faa96928 100644\n> > > --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> > > +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> > > @@ -585,7 +585,13 @@ CameraConfiguration *PipelineHandlerRkISP1::generateConfiguration(Camera *camera\n> > >  \tif (roles.empty())\n> > >  \t\treturn config;\n> > >\n> > > -\tStreamConfiguration cfg{};\n> > > +\tstd::map<PixelFormat, std::vector<SizeRange>> streamFormats;\n> > > +\tfor (const PixelFormat &format : RKISP1_RSZ_MP_FORMATS)\n> > > +\t\tstreamFormats[format] =\n> > > +\t\t\t{ { RKISP1_RSZ_MP_SRC_MIN, RKISP1_RSZ_MP_SRC_MAX } };\n> > > +\n> > \n> > Can the ISP freely up-scale? Otherwise the size should be capped to\n> > the max sensor size\n> \n> Even if the ISP can upscale I'm not sure we should allow it. I'd prefer\n> capping the size.\n\nThis is a great idea!\n\n> \n> > Can all formats be produced from all input formats ? Otherwise the\n> > formats that can be produced should be matched with the ones produced\n> > by the sensor.\n\nFor the ones supported today, yes. For the future when we add RAW \nrudimentary my tests suggest we can't convert between the different RGB \nlayouts and can only support the one produced by the sensor.\n\n> > \n> > As a general note, should we try to report the available stream\n> > formats by inspeting the ones that can be produced by the video device\n> > or can we live with a static enumeration in the pipeline handler ?\n> \n> We don't need to query the kernel if we know the information already,\n> but we should only report formats that can actually be produced for the\n> connected sensor.\n\nI would love to have a kernel API where we could enumerate this with all \nconstraints added by the pipeline configuration. I fear this will never \nhappen and we need to have knowledge about this in user-space.\n\n> \n> > > +\tStreamFormats formats(streamFormats);\n> > > +\tStreamConfiguration cfg(formats);\n> > >  \tcfg.pixelFormat = formats::NV12;\n> > >  \tcfg.size = data->sensor_->resolution();\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 43ECBBF01C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 14 Sep 2020 09:46:12 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C949C62D99;\n\tMon, 14 Sep 2020 11:46:11 +0200 (CEST)","from mail-lf1-x142.google.com (mail-lf1-x142.google.com\n\t[IPv6:2a00:1450:4864:20::142])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7B0716036B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 14 Sep 2020 11:46:10 +0200 (CEST)","by mail-lf1-x142.google.com with SMTP id m5so12717271lfp.7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 14 Sep 2020 02:46:10 -0700 (PDT)","from localhost (h-209-203.A463.priv.bahnhof.se. [155.4.209.203])\n\tby smtp.gmail.com with ESMTPSA id\n\t18sm3249072lfz.141.2020.09.14.02.46.09\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 14 Sep 2020 02:46:09 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=ragnatech-se.20150623.gappssmtp.com\n\theader.i=@ragnatech-se.20150623.gappssmtp.com\n\theader.b=\"mE2rPNA0\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to;\n\tbh=aLgL/uIduKMiwbQeO28UmvD89IJS8jPWvuq/Lvg//Sc=;\n\tb=mE2rPNA0dwIgPN6o3esJm+oxO3CsMjrpWCfuSC74BFd1/75WDBvCJ4AJEOWGgz7fj8\n\tSIATWvIKXK8D2Xzuwc9gEMvdoI8ePF5Ww55QENYlK7T7Jll0zWlo/Ku679rQzrwh+9xj\n\tBtoMkqsM+t0+2+LxyVX+zEC7mSLGiND+NyuAs4lkLgPfXLnZ1somGR882eqyJJHI4sRm\n\t7IR7E0F32Cculp7iOGhu3/KHttNMeOljEKjdw94cGUfI9TYKWnd/nQLuTpXviMNcQEAi\n\tknX0J5r43/ZRKNYDPpa33vJzXGjgeMeLEfQxqLZme1JRpp94Y9p8bgZbE0d8zbqiOO2E\n\tPaKQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to;\n\tbh=aLgL/uIduKMiwbQeO28UmvD89IJS8jPWvuq/Lvg//Sc=;\n\tb=jUGumLe5IIAQaFBzvjEAmIDmnxEdSE/gwhf6quUbQjOOMeyJDlDZ/5oTjzOtWXjmQu\n\tPHqtSAgxr/PIQZKNY02TIh43V882Hr3+UVwZF+AxnRon7h/x+k2vFrP/Tz0UiFrfOfV7\n\t1i+lDyQTT1G8nobeNQFqUIjEadzNvVJFMaZQw5zWtcj43hGHoq7QsWjw9v2iY5lH97nw\n\t6bEWzckoGiusCfUgjRRGBXfIRz7BoyUFJ5LkQ3pi0VqDJz7OfvXETtTJAgxbJVGa4AuH\n\trIyEtBP9nweDNwD4jhM9xoYejGLInrzhMrv66xslf50mDYizjoKH4wbzzU3ZlWAbHtWo\n\towCw==","X-Gm-Message-State":"AOAM533Pqx5TWnzyJxS78+7ZUcPpch/Snl3DsNbIm5y0s3RGhYyyqZBJ\n\t4LI+fc2Zn1Idww8MCNaIr9XVSaRkftm7Bw==","X-Google-Smtp-Source":"ABdhPJys47DBiv1TYFZTfz5OTZ628fI2ixM+T3qQOdwSnVqy7BeSAF2788EisLFnNS2Aqxd9WBCSrw==","X-Received":"by 2002:a19:2291:: with SMTP id\n\ti139mr3903513lfi.387.1600076769676; \n\tMon, 14 Sep 2020 02:46:09 -0700 (PDT)","Date":"Mon, 14 Sep 2020 11:46:08 +0200","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20200914094608.GE1127199@oden.dyn.berto.se>","References":"<20200813005246.3265807-1-niklas.soderlund@ragnatech.se>\n\t<20200813005246.3265807-7-niklas.soderlund@ragnatech.se>\n\t<20200820084613.jqweprmfcgpjt6ku@uno.localdomain>\n\t<20200820150435.GL6593@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20200820150435.GL6593@pendragon.ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 06/13] libcamera: pipeline: rkisp1:\n\tExport stream formats to applicaitons","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=\"iso-8859-1\"","Content-Transfer-Encoding":"quoted-printable","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]