[{"id":22442,"web_url":"https://patchwork.libcamera.org/comment/22442/","msgid":"<164814266080.1469214.12152257528160954492@Monstersaurus>","date":"2022-03-24T17:24:20","subject":"Re: [libcamera-devel] [PATCH] pipeline: rkisp1: Match sensor aspect\n\tratio when generating configurations","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Laurent Pinchart via libcamera-devel (2022-03-24 13:05:06)\n> The RkISP1Path::generateConfiguration() function limits the maximum\n> resolution to the sensor resolution, to avoid upscaling. It however\n> doesn't take the sensor aspect ratio into account, which leads to a\n> maximum (and default) resolution of 1920x1920 when using the self path\n> with a sensor that has a higher resolution.\n> \n> Fix it by constraining the minimum and maximum resolutions to match the\n> sensor's aspect ratio.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>  src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 7 ++++---\n>  1 file changed, 4 insertions(+), 3 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> index f8d471204d2e..f195f91ead1f 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> @@ -50,12 +50,13 @@ bool RkISP1Path::init(MediaDevice *media)\n>  \n>  StreamConfiguration RkISP1Path::generateConfiguration(const Size &resolution)\n>  {\n> -       Size maxResolution = resolution;\n> -       maxResolution.boundTo(maxResolution_);\n> +       Size maxResolution = maxResolution_.boundedToAspectRatio(resolution)\n> +                                          .boundedTo(resolution);\n\nShould the .boundedToAspectRatio() come afterwards? Feels like the\nboundedTo() could end up losing the aspect ratio after:\n\nChecking:\n\n\tresolution = { 3200, 1800 };\n\n\tmaxResolution_ = { 1600 , 1600 };\n\tSize maxResolution = maxResolution_.boundedToAspectRatio(resolution)\n\t\t== { 1600, 900 } .boundedTo(resolution)\n\t\t== { 1600, 900 };\n\nPasses\n\n\tresolution = { 320, 180 };\n\n\tmaxResolution_ = { 1600 , 1600 };\n\tSize maxResolution = maxResolution_.boundedToAspectRatio(resolution)\n\t\t== { 1600, 900 } .boundedTo(resolution)\n\t\t== { 320, 180 };\n\nPasses.\n\n\tresolution = { 1024, 1024 };\n\n\tmaxResolution_ = { 4000 , 3000 };\n\tSize maxResolution = maxResolution_.boundedToAspectRatio(resolution)\n\t\t== { 3000, 3000 } .boundedTo(resolution)\n\t\t== { 1024, 1024 };\n\nPasses\n\n\tresolution = { 5000, 5000 };\n\n\tmaxResolution_ = { 4000 , 3000 };\n\tSize maxResolution = maxResolution_.boundedToAspectRatio(resolution)\n\t\t== { 3000, 3000 } .boundedTo(resolution)\n\t\t== { 3000, 3000 };\n\nAlso passes, so I don't know what I was imagining. Oh well.\n\nSo I think this is fine.\n\n\n> +       Size minResolution = minResolution_.expandedToAspectRatio(resolution);\n\nI'm so glad we have these expressive helpers. It makes the intent clear.\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n>  \n>         std::map<PixelFormat, std::vector<SizeRange>> streamFormats;\n>         for (const PixelFormat &format : formats_)\n> -               streamFormats[format] = { { minResolution_, maxResolution } };\n> +               streamFormats[format] = { { minResolution, maxResolution } };\n>  \n>         StreamFormats formats(streamFormats);\n>         StreamConfiguration cfg(formats);\n> -- \n> Regards,\n> \n> Laurent Pinchart\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 ACA21C0F1B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 24 Mar 2022 17:24:25 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CBBE1604D5;\n\tThu, 24 Mar 2022 18:24:24 +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 69DEE60397\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 24 Mar 2022 18:24:23 +0100 (CET)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 0960F1844;\n\tThu, 24 Mar 2022 18:24:23 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1648142664;\n\tbh=gQ3/8CyriplnM/kjEnMZzBf7a/JYt/PX0i+0EuB7/rc=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=bL7i2k88XfFAgPkF7qtZA8BRhBsc8+GAhLSqUlbg8KklANIATyr/dtlsohw+fFlgA\n\tnIBoXzUvVqAqSRJmt0jZKfTnIaz/coUrmMD+KRPJddsXOn2x+XPbWCJbhOIIRm5MxQ\n\tmJrNHUw4VuoO5bQuIaq+4LtQ47gdZkxtE/78G9JNfip0Po0zb2l6B7cvrAn8d2Yu6y\n\t3paKyWLCqF+hoFGXWrDo+UGIMTNFus0QDFracFUT7pkNeWpy6JUO2PtyMyQp0vjB0V\n\twuX5M/Wywr3b4/qdjyVOzDFRRBUDssvozoSfeMTEyTPKK2BVgAWZUKs2hxq/QDBjM+\n\tljvZYaMgf8Khg==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1648142663;\n\tbh=gQ3/8CyriplnM/kjEnMZzBf7a/JYt/PX0i+0EuB7/rc=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=cq4fkD5pa/VpdlUpBp+gXL2pDHlnAb5Zrcwlve8AwZ2YoiZhCof+nzWC+nwfRbL0Y\n\tj7DmTk1FF3MlkGSFwqab8A2OksLb+eCoT19C3aKgWo9iWUGDPgKfgwPg+BNtsl8E5n\n\tU2usj5jeOTIAsMWntA6xa7YpkA7xX+WPX06i6mNo="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"cq4fkD5p\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20220324130506.27360-1-laurent.pinchart@ideasonboard.com>","References":"<20220324130506.27360-1-laurent.pinchart@ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Thu, 24 Mar 2022 17:24:20 +0000","Message-ID":"<164814266080.1469214.12152257528160954492@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH] pipeline: rkisp1: Match sensor aspect\n\tratio when generating configurations","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>","From":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":22443,"web_url":"https://patchwork.libcamera.org/comment/22443/","msgid":"<Yjy9OaJY3+jQTH7C@pendragon.ideasonboard.com>","date":"2022-03-24T18:49:29","subject":"Re: [libcamera-devel] [PATCH] pipeline: rkisp1: Match sensor aspect\n\tratio when generating configurations","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Kieran,\n\nOn Thu, Mar 24, 2022 at 05:24:20PM +0000, Kieran Bingham wrote:\n> Quoting Laurent Pinchart via libcamera-devel (2022-03-24 13:05:06)\n> > The RkISP1Path::generateConfiguration() function limits the maximum\n> > resolution to the sensor resolution, to avoid upscaling. It however\n> > doesn't take the sensor aspect ratio into account, which leads to a\n> > maximum (and default) resolution of 1920x1920 when using the self path\n> > with a sensor that has a higher resolution.\n> > \n> > Fix it by constraining the minimum and maximum resolutions to match the\n> > sensor's aspect ratio.\n> > \n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> >  src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 7 ++++---\n> >  1 file changed, 4 insertions(+), 3 deletions(-)\n> > \n> > diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> > index f8d471204d2e..f195f91ead1f 100644\n> > --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> > +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> > @@ -50,12 +50,13 @@ bool RkISP1Path::init(MediaDevice *media)\n> >  \n> >  StreamConfiguration RkISP1Path::generateConfiguration(const Size &resolution)\n> >  {\n> > -       Size maxResolution = resolution;\n> > -       maxResolution.boundTo(maxResolution_);\n> > +       Size maxResolution = maxResolution_.boundedToAspectRatio(resolution)\n> > +                                          .boundedTo(resolution);\n> \n> Should the .boundedToAspectRatio() come afterwards? Feels like the\n> boundedTo() could end up losing the aspect ratio after:\n\nIn theory yes, but given than the target aspect ratio is the one of\nresolution, it will be preserved. The value returned by\nboundedToAspectRatio() can't have only one of with and height larger\nthan resolution's, and the other one smaller.\n\n> Checking:\n> \n> \tresolution = { 3200, 1800 };\n> \n> \tmaxResolution_ = { 1600 , 1600 };\n> \tSize maxResolution = maxResolution_.boundedToAspectRatio(resolution)\n> \t\t== { 1600, 900 } .boundedTo(resolution)\n> \t\t== { 1600, 900 };\n> \n> Passes\n> \n> \tresolution = { 320, 180 };\n> \n> \tmaxResolution_ = { 1600 , 1600 };\n> \tSize maxResolution = maxResolution_.boundedToAspectRatio(resolution)\n> \t\t== { 1600, 900 } .boundedTo(resolution)\n> \t\t== { 320, 180 };\n> \n> Passes.\n> \n> \tresolution = { 1024, 1024 };\n> \n> \tmaxResolution_ = { 4000 , 3000 };\n> \tSize maxResolution = maxResolution_.boundedToAspectRatio(resolution)\n> \t\t== { 3000, 3000 } .boundedTo(resolution)\n> \t\t== { 1024, 1024 };\n> \n> Passes\n> \n> \tresolution = { 5000, 5000 };\n> \n> \tmaxResolution_ = { 4000 , 3000 };\n> \tSize maxResolution = maxResolution_.boundedToAspectRatio(resolution)\n> \t\t== { 3000, 3000 } .boundedTo(resolution)\n> \t\t== { 3000, 3000 };\n> \n> Also passes, so I don't know what I was imagining. Oh well.\n> \n> So I think this is fine.\n> \n> \n> > +       Size minResolution = minResolution_.expandedToAspectRatio(resolution);\n> \n> I'm so glad we have these expressive helpers. It makes the intent clear.\n\nYes, I'm pretty pleased with them too :-)\n\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> >  \n> >         std::map<PixelFormat, std::vector<SizeRange>> streamFormats;\n> >         for (const PixelFormat &format : formats_)\n> > -               streamFormats[format] = { { minResolution_, maxResolution } };\n> > +               streamFormats[format] = { { minResolution, maxResolution } };\n> >  \n> >         StreamFormats formats(streamFormats);\n> >         StreamConfiguration cfg(formats);","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 9BE1CBD80A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 24 Mar 2022 18:49:35 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CA9A2604D5;\n\tThu, 24 Mar 2022 19:49:34 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 18DF860397\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 24 Mar 2022 19:49:33 +0100 (CET)","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 9A3FB14CD;\n\tThu, 24 Mar 2022 19:49:31 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1648147774;\n\tbh=uWDEG5z3wYHqepHu+ep2hltdspAK5ZnStFQDnKUc8bI=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=YAkxIFCOr3c169Q7WrH9WJldb+puI5aa0dk6oRbOy3IcIFqljrzls1Slc6J5bW7UT\n\tycBEV+JqJ+ZLlObL+0fE/5NikeZ/LN1DUI5IsZvhkTboO8QwGumYt23+l2dDsASZNR\n\t7hJepDuKE6aeaJMcNgdScmTeELAKuC2iYdiAoNDGz3GTxFresxHd5sBdHSmho16Yxf\n\tjUbvoguYOCkiWvk27Thlojh/GbZ2rUQAoISg7L+Sbn8dMDLSntKsCAnm74eBx6dk6m\n\tny/FwIp03Wh9TIramus3JO+m7Y7o9OwPC2pH1iqkwXCRkVlQfe+KXoFGjH+VjIlJas\n\tpNYMu4Gl37U4Q==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1648147772;\n\tbh=uWDEG5z3wYHqepHu+ep2hltdspAK5ZnStFQDnKUc8bI=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=FZAFdv9sRDjHdKpLsgbv5JM5IS6B2v7q+FfNFlRzxBDEWftzPL1YLkzGVbIqFTbjy\n\tEIqNp3EA743cwxTWP2HkUAJGz38EkulAaJIh4+J2Aj9Etz8i97zhkjQ5x6ZrkrvE6i\n\t84PE93lyX1dqG3m8BrSdeq450yrEWo6laIDY41/4="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"FZAFdv9s\"; dkim-atps=neutral","Date":"Thu, 24 Mar 2022 20:49:29 +0200","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<Yjy9OaJY3+jQTH7C@pendragon.ideasonboard.com>","References":"<20220324130506.27360-1-laurent.pinchart@ideasonboard.com>\n\t<164814266080.1469214.12152257528160954492@Monstersaurus>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<164814266080.1469214.12152257528160954492@Monstersaurus>","Subject":"Re: [libcamera-devel] [PATCH] pipeline: rkisp1: Match sensor aspect\n\tratio when generating configurations","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>","From":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":22447,"web_url":"https://patchwork.libcamera.org/comment/22447/","msgid":"<20220325052940.GC3036343@pyrite.rasen.tech>","date":"2022-03-25T05:29:40","subject":"Re: [libcamera-devel] [PATCH] pipeline: rkisp1: Match sensor aspect\n\tratio when generating configurations","submitter":{"id":97,"url":"https://patchwork.libcamera.org/api/people/97/","name":"Nicolas Dufresne via libcamera-devel","email":"libcamera-devel@lists.libcamera.org"},"content":"Hi Laurent,\n\nOn Thu, Mar 24, 2022 at 03:05:06PM +0200, Laurent Pinchart wrote:\n> The RkISP1Path::generateConfiguration() function limits the maximum\n> resolution to the sensor resolution, to avoid upscaling. It however\n> doesn't take the sensor aspect ratio into account, which leads to a\n> maximum (and default) resolution of 1920x1920 when using the self path\n> with a sensor that has a higher resolution.\n> \n> Fix it by constraining the minimum and maximum resolutions to match the\n> sensor's aspect ratio.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> ---\n>  src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 7 ++++---\n>  1 file changed, 4 insertions(+), 3 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> index f8d471204d2e..f195f91ead1f 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> @@ -50,12 +50,13 @@ bool RkISP1Path::init(MediaDevice *media)\n>  \n>  StreamConfiguration RkISP1Path::generateConfiguration(const Size &resolution)\n>  {\n> -\tSize maxResolution = resolution;\n> -\tmaxResolution.boundTo(maxResolution_);\n> +\tSize maxResolution = maxResolution_.boundedToAspectRatio(resolution)\n> +\t\t\t\t\t   .boundedTo(resolution);\n> +\tSize minResolution = minResolution_.expandedToAspectRatio(resolution);\n>  \n>  \tstd::map<PixelFormat, std::vector<SizeRange>> streamFormats;\n>  \tfor (const PixelFormat &format : formats_)\n> -\t\tstreamFormats[format] = { { minResolution_, maxResolution } };\n> +\t\tstreamFormats[format] = { { minResolution, maxResolution } };\n>  \n>  \tStreamFormats formats(streamFormats);\n>  \tStreamConfiguration cfg(formats);\n> -- \n> Regards,\n> \n> Laurent Pinchart\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 1834DBD80A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 25 Mar 2022 05:29:49 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 24682604D4;\n\tFri, 25 Mar 2022 06:29:48 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 89937604C0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 25 Mar 2022 06:29:46 +0100 (CET)","from pyrite.rasen.tech (h175-177-042-148.catv02.itscom.jp\n\t[175.177.42.148])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 2CCA46F3;\n\tFri, 25 Mar 2022 06:29:44 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1648186188;\n\tbh=K2iZeWxOF69i4L/W11q/xZNmLH+X+PSDiQt9UjaZads=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=z8mHXLI1mWSJY7WL0b38y+PASHsBb82Y74tDDD3zRY8fDQcQymRENQqsZ+zpmy3fL\n\tVeT1vHzA6zKwIK4NX35C5rolNVp6+azuM5q7CVBHb1fKY/RTbtOGrmbJPFjtXZu/QA\n\tdqWzKTP/a6gI2YvNHbeluVdStXiAsWAJjZGRZqxg7rWYpRQLto3VTEqxgh5Uxx5hgZ\n\taGnHl4P9NB7xIrd4uul3R3hK4uBTCkx9qoo+1+X/JurxxtCZ1bl4jteaDlzKuHkPC0\n\twUDHmxE6YpHQmiHDDuYU0ZdylIH1z/38dgvcfXYKwFx8H+p/Rc7gDAnbJWkJLr9GyF\n\tbKshEzFL5zkrA==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1648186186;\n\tbh=K2iZeWxOF69i4L/W11q/xZNmLH+X+PSDiQt9UjaZads=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=tUU3O9TLdsVChQGG0Ea5w/COfqXy1jtHrnXtCQDMvhDsCEGymWx2CoLnsVovebBgJ\n\ta8DAd57fNZtAOw8u2I9YU8Ou469gWOWq6CK49Ef00vsQa7GHjzJ3O/wEPQ31LxDTpI\n\tbWX9BCud9NbaUiJfyU/BTQIG8E4vhNdI1wQzOREk="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"tUU3O9TL\"; dkim-atps=neutral","Date":"Fri, 25 Mar 2022 14:29:40 +0900","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20220325052940.GC3036343@pyrite.rasen.tech>","References":"<20220324130506.27360-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20220324130506.27360-1-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] pipeline: rkisp1: Match sensor aspect\n\tratio when generating configurations","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>","From":"Paul Elder via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"paul.elder@ideasonboard.com","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]