{"id":18424,"url":"https://patchwork.libcamera.org/api/patches/18424/?format=json","web_url":"https://patchwork.libcamera.org/patch/18424/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20230321172004.176852-3-jacopo.mondi@ideasonboard.com>","date":"2023-03-21T17:20:02","name":"[libcamera-devel,v4,2/4] libcamera: rkisp1: Crop on ISP before downscaling","commit_ref":null,"pull_url":null,"state":"accepted","archived":false,"hash":"c1d96c5e7533458480714f2cc32e0fa65b0dbc6b","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/?format=json","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/18424/mbox/","series":[{"id":3809,"url":"https://patchwork.libcamera.org/api/series/3809/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=3809","date":"2023-03-21T17:20:00","name":"libcamera: rkisp1: Fix generateConfiguration","version":4,"mbox":"https://patchwork.libcamera.org/series/3809/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/18424/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/18424/checks/","tags":{},"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 6D631C0F1B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 21 Mar 2023 17:20:17 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3458C62719;\n\tTue, 21 Mar 2023 18:20:16 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4F9606270F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Mar 2023 18:20:13 +0100 (CET)","from uno.homenet.telecomitalia.it\n\t(host-87-18-61-243.retail.telecomitalia.it [87.18.61.243])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id AB1CA80A;\n\tTue, 21 Mar 2023 18:20:12 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1679419216;\n\tbh=gfpR6WY5VdmZ4+VagB9ZikFbjj76SIiQWSxCcO0Y60Y=;\n\th=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=plVBMcPF7c3jGmUp37J8RtpcQcaI1xw+gWTFFs+wBO3Nfs141gB9KEERpV7LvxRSe\n\tkqCmWU/CChieqtCH6Jxx0HmEdT2BpcakzBOZS5o0DZDNc+yuqJkjhq9bUDAM4ip1N3\n\tBFMJfpCVzHDoy9Ii9Dbaknorgj5g9X9+1X0/E8W0lSSfyr7azH4PNCBjOckM3zUkOc\n\tfUjLze4yYOJPPJfAHz4UbPhNVF5BTTuEk0Vovf+hkBnn4McVEZcCnEAjDW4CO05bh9\n\t0sqExol1vGd5OHNor+RVc+XzgiZVOZrP/yNGsUFp4H2asd3GtrpiuA9hpb4wwEc1Tn\n\tx7a94UdEQnjmw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1679419213;\n\tbh=gfpR6WY5VdmZ4+VagB9ZikFbjj76SIiQWSxCcO0Y60Y=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=co6/vtgFmiZLbLdWK6XbkVKj6Z0xQI7R3ZgOG5n9s9V6tfk8FF1ujXhi1xIrH9iv4\n\tTLXgUcts2BgotMlLqLFOEk+mBwcvJHSWkxFPs4GZhQ0nX0Duc6pD4nMHXSstN5j/Uq\n\tnMa93nP5f3wnSTPo19pouZns9hdVGi0e/OlceWhE="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"co6/vtgF\"; dkim-atps=neutral","To":"libcamera-devel@lists.libcamera.org","Date":"Tue, 21 Mar 2023 18:20:02 +0100","Message-Id":"<20230321172004.176852-3-jacopo.mondi@ideasonboard.com>","X-Mailer":"git-send-email 2.40.0","In-Reply-To":"<20230321172004.176852-1-jacopo.mondi@ideasonboard.com>","References":"<20230321172004.176852-1-jacopo.mondi@ideasonboard.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v4 2/4] libcamera: rkisp1: Crop on ISP\n\tbefore downscaling","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":"Jacopo Mondi via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Cc":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>, libcamera@luigi311.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Crop on the resizer sink pad before downscaling to the aspect ratio\nof the desired output size.\n\nCropping the input frame to the output aspect ratio allows to maintain\nthe correct picture proportions, as otherwise downscaling would change\nthe image geometry.\n\nSigned-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n---\n src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 5 ++++-\n 1 file changed, 4 insertions(+), 1 deletion(-)","diff":"diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\nindex 5079b268c464..5547cc32b6ca 100644\n--- a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n+++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n@@ -314,7 +314,10 @@ int RkISP1Path::configure(const StreamConfiguration &config,\n \tif (ret < 0)\n \t\treturn ret;\n \n-\tRectangle rect(0, 0, ispFormat.size);\n+\t/* Crop on the resizer input to maintain FOV before downscaling */\n+\tSize ispCrop = inputFormat.size.boundedToAspectRatio(config.size)\n+\t\t\t\t       .alignedUpTo(2, 2);\n+\tRectangle rect(ispCrop);\n \tret = resizer_->setSelection(0, V4L2_SEL_TGT_CROP, &rect);\n \tif (ret < 0)\n \t\treturn ret;\n","prefixes":["libcamera-devel","v4","2/4"]}