{"id":22350,"url":"https://patchwork.libcamera.org/api/1.1/patches/22350/?format=json","web_url":"https://patchwork.libcamera.org/patch/22350/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/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":"<20241216154124.203650-5-stefan.klug@ideasonboard.com>","date":"2024-12-16T15:40:44","name":"[v4,04/20] pipeline: rkisp1: Split inputCrop and outputCrop","commit_ref":null,"pull_url":null,"state":"accepted","archived":false,"hash":"0fa028b6c2dbc07cf5632e833a406e03f6a88594","submitter":{"id":184,"url":"https://patchwork.libcamera.org/api/1.1/people/184/?format=json","name":"Stefan Klug","email":"stefan.klug@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/22350/mbox/","series":[{"id":4896,"url":"https://patchwork.libcamera.org/api/1.1/series/4896/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=4896","date":"2024-12-16T15:40:40","name":"rkisp1: Fix aspect ratio and ScalerCrop","version":4,"mbox":"https://patchwork.libcamera.org/series/4896/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/22350/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/22350/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 4730AC32F6\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 16 Dec 2024 15:42:01 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id ED33367F79;\n\tMon, 16 Dec 2024 16:42:00 +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 783C167F71\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 16 Dec 2024 16:41:58 +0100 (CET)","from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:bfdf:3a3c:e45:66e3])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id CB51B82A;\n\tMon, 16 Dec 2024 16:41:21 +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=\"j/hUrG04\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1734363681;\n\tbh=xnJdSZqd3w9Pk4CsD0ehBtbeHtKdBC2kmTVsoAB1JF8=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=j/hUrG049/hzF2ue/AiypwhfEbPPL8Ssrxj4OpmuDAFH48OtMQcpBzjt70pwt1tKk\n\tXCi2fNsp67H4v5J3xcfWKH/cXmYRRTdjEgvq59OH7qe60JSA7DALA0MaHl2oB0GA0p\n\t7+3RH9QdXmENnjMvXU26x2wWhjBWsg0z9LtSeBzM=","From":"Stefan Klug <stefan.klug@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Stefan Klug <stefan.klug@ideasonboard.com>,\n\tPaul Elder <paul.elder@ideasonboard.com>,\n\tJacopo Mondi <jacopo.mondi@ideasonboard.com>","Subject":"[PATCH v4 04/20] pipeline: rkisp1: Split inputCrop and outputCrop","Date":"Mon, 16 Dec 2024 16:40:44 +0100","Message-ID":"<20241216154124.203650-5-stefan.klug@ideasonboard.com>","X-Mailer":"git-send-email 2.43.0","In-Reply-To":"<20241216154124.203650-1-stefan.klug@ideasonboard.com>","References":"<20241216154124.203650-1-stefan.klug@ideasonboard.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","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>"},"content":"One Rectangle instance is used to calculate the inputCrop and the\noutputCrop of the ISP in the rkisp1 pipeline. Split that into two\ndistinct variables, because both values will be needed in the upcoming\npatches. This patch does not contain any functional changes.\n\nSigned-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\nReviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n\n---\nChanges in v2:\n- Moved declaration of outputCrop after setSelection(inputCrop) to get\n  the potentially updated inputCrop\n- Collected tags\n---\n src/libcamera/pipeline/rkisp1/rkisp1.cpp | 15 ++++++++-------\n 1 file changed, 8 insertions(+), 7 deletions(-)","diff":"diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\nindex 698fe9ff57a4..6ac14cd15c8f 100644\n--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n@@ -795,15 +795,16 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)\n \tif (ret < 0)\n \t\treturn ret;\n \n-\tRectangle rect(0, 0, format.size);\n-\tret = isp_->setSelection(0, V4L2_SEL_TGT_CROP, &rect);\n+\tRectangle inputCrop(0, 0, format.size);\n+\tret = isp_->setSelection(0, V4L2_SEL_TGT_CROP, &inputCrop);\n \tif (ret < 0)\n \t\treturn ret;\n \n \tLOG(RkISP1, Debug)\n \t\t<< \"ISP input pad configured with \" << format\n-\t\t<< \" crop \" << rect;\n+\t\t<< \" crop \" << inputCrop;\n \n+\tRectangle outputCrop = inputCrop;\n \tconst PixelFormat &streamFormat = config->at(0).pixelFormat;\n \tconst PixelFormatInfo &info = PixelFormatInfo::info(streamFormat);\n \tisRaw_ = info.colourEncoding == PixelFormatInfo::ColourEncodingRAW;\n@@ -821,15 +822,15 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)\n \t\tconst auto &cfg = config->at(0);\n \t\tSize ispCrop = format.size.boundedToAspectRatio(cfg.size)\n \t\t\t\t\t  .alignedUpTo(2, 2);\n-\t\trect = ispCrop.centeredTo(Rectangle(format.size).center());\n+\t\toutputCrop = ispCrop.centeredTo(Rectangle(format.size).center());\n \t\tformat.size = ispCrop;\n \t}\n \n \tLOG(RkISP1, Debug)\n \t\t<< \"Configuring ISP output pad with \" << format\n-\t\t<< \" crop \" << rect;\n+\t\t<< \" crop \" << outputCrop;\n \n-\tret = isp_->setSelection(2, V4L2_SEL_TGT_CROP, &rect);\n+\tret = isp_->setSelection(2, V4L2_SEL_TGT_CROP, &outputCrop);\n \tif (ret < 0)\n \t\treturn ret;\n \n@@ -840,7 +841,7 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)\n \n \tLOG(RkISP1, Debug)\n \t\t<< \"ISP output pad configured with \" << format\n-\t\t<< \" crop \" << rect;\n+\t\t<< \" crop \" << outputCrop;\n \n \tstd::map<unsigned int, IPAStream> streamConfig;\n \tstd::vector<std::reference_wrapper<StreamConfiguration>> outputCfgs;\n","prefixes":["v4","04/20"]}