{"id":22026,"url":"https://patchwork.libcamera.org/api/patches/22026/?format=json","web_url":"https://patchwork.libcamera.org/patch/22026/","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":"<20241120085753.1993436-5-stefan.klug@ideasonboard.com>","date":"2024-11-20T08:57:43","name":"[4/7] pipeline: rkisp1: Split inputCrop and outputCrop","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"305ae928517a7fe4128a8c9e713a76438e52c922","submitter":{"id":184,"url":"https://patchwork.libcamera.org/api/people/184/?format=json","name":"Stefan Klug","email":"stefan.klug@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/22026/mbox/","series":[{"id":4807,"url":"https://patchwork.libcamera.org/api/series/4807/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=4807","date":"2024-11-20T08:57:39","name":"rkisp1: Fix aspect ratio and ScalerCrop","version":1,"mbox":"https://patchwork.libcamera.org/series/4807/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/22026/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/22026/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 A2F53C32F5\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 20 Nov 2024 08:58:12 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 335A865F4B;\n\tWed, 20 Nov 2024 09:58:12 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F16A565F43\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 20 Nov 2024 09:58:09 +0100 (CET)","from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:bbd:82cc:f3f3:e12e])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 0E25455A;\n\tWed, 20 Nov 2024 09:57:52 +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=\"Fzmtp63V\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1732093072;\n\tbh=b9BVMnXt5XXFsm6kduEaTS6/A863DI2w2MXEoLKD9FU=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=Fzmtp63VsSm54LmYYHsxjsDfVXDjw98rMfq9Jz8wij41o/xfvLmgdBw7BjxFJaard\n\tpFunTL+gFV64MtRKCpb82IkG6W57GsCsVhLuPur29H9BS94s2rINKbtDH9XohHTGYf\n\tTesrUPbSY1TLZ7LWbIBhbCH9CPFcRe4CxOSLY4cQ=","From":"Stefan Klug <stefan.klug@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Stefan Klug <stefan.klug@ideasonboard.com>","Subject":"[PATCH 4/7] pipeline: rkisp1: Split inputCrop and outputCrop","Date":"Wed, 20 Nov 2024 09:57:43 +0100","Message-ID":"<20241120085753.1993436-5-stefan.klug@ideasonboard.com>","X-Mailer":"git-send-email 2.43.0","In-Reply-To":"<20241120085753.1993436-1-stefan.klug@ideasonboard.com>","References":"<20241120085753.1993436-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>\n---\n src/libcamera/pipeline/rkisp1/rkisp1.cpp | 17 +++++++++--------\n 1 file changed, 9 insertions(+), 8 deletions(-)","diff":"diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\nindex 9d36554cec6e..6491a48ee83c 100644\n--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n@@ -794,14 +794,15 @@ 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+\tRectangle outputCrop = inputCrop;\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 \tconst PixelFormat &streamFormat = config->at(0).pixelFormat;\n \tconst PixelFormatInfo &info = PixelFormatInfo::info(streamFormat);\n@@ -819,18 +820,18 @@ 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       .alignedUpTo(2, 2);\n-\t\trect = ispCrop.centeredTo(Rectangle(format.size).center());\n+\t\toutputCrop = ispCrop.centeredTo(Rectangle(format.size).center());\n \t\tif (ispCrop != format.size)\n \t\t\tLOG(RkISP1, Info) << \"ISP output needs to be cropped to \"\n-\t\t\t\t\t  << rect;\n+\t\t\t\t\t  << outputCrop;\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@@ -841,7 +842,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":["4/7"]}