[{"id":32305,"web_url":"https://patchwork.libcamera.org/comment/32305/","msgid":"<Zz3J5OyxTWqjmSZE@pyrite.rasen.tech>","date":"2024-11-20T11:37:08","subject":"Re: [PATCH 5/7] pipeline: rkisp1: Reorder sensorInfo collection code","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"On Wed, Nov 20, 2024 at 09:57:44AM +0100, Stefan Klug wrote:\n> The sensorInfo (specifically the crop rectangle of the selected sensor\n> mode) is collected to be passed to the IPA later. In an upcoming patch\n> that data will also be needed for correct ScalerCrop handling. Move the\n> collection of the sensorInfo before the dewarper configuration step and\n> refactor the code a bit.\n> \n> Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> ---\n>  src/libcamera/pipeline/rkisp1/rkisp1.cpp | 16 ++++++++--------\n>  1 file changed, 8 insertions(+), 8 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> index 6491a48ee83c..4a226d9b809f 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> @@ -844,6 +844,11 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)\n>  \t\t<< \"ISP output pad configured with \" << format\n>  \t\t<< \" crop \" << outputCrop;\n>  \n> +\tIPACameraSensorInfo sensorInfo;\n> +\tret = data->sensor_->sensorInfo(&sensorInfo);\n> +\tif (ret)\n> +\t\treturn ret;\n> +\n>  \tstd::map<unsigned int, IPAStream> streamConfig;\n>  \tstd::vector<std::reference_wrapper<StreamConfiguration>> outputCfgs;\n>  \n> @@ -883,14 +888,9 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)\n>  \t\treturn ret;\n>  \n>  \t/* Inform IPA of stream configuration and sensor controls. */\n> -\tipa::rkisp1::IPAConfigInfo ipaConfig{};\n> -\n> -\tret = data->sensor_->sensorInfo(&ipaConfig.sensorInfo);\n> -\tif (ret)\n> -\t\treturn ret;\n> -\n> -\tipaConfig.sensorControls = data->sensor_->controls();\n> -\tipaConfig.paramFormat = paramFormat.fourcc;\n> +\tipa::rkisp1::IPAConfigInfo ipaConfig{ sensorInfo,\n> +\t\t\t\t\t      data->sensor_->controls(),\n> +\t\t\t\t\t      paramFormat.fourcc };\n>  \n>  \tret = data->ipa_->configure(ipaConfig, streamConfig, &data->ipaControls_);\n>  \tif (ret) {\n> -- \n> 2.43.0\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 AC77BC0F2A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 20 Nov 2024 11:37:16 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 52E2765F4C;\n\tWed, 20 Nov 2024 12:37:16 +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 E647C658C8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 20 Nov 2024 12:37:14 +0100 (CET)","from pyrite.rasen.tech (unknown\n\t[IPv6:2404:7a81:160:2100:6f8:18b9:c92f:628d])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id CA7AE465;\n\tWed, 20 Nov 2024 12:36:55 +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=\"NBlmpEsG\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1732102616;\n\tbh=DhgA7S3bbGmsXctyYoZlJoCl5n5kupakP7B8y9/OGjI=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=NBlmpEsGg9SPHB1scrtn8cKUJ7gVq+7kG+qkWpeTh7EBG7ipXP31I920jZnY+IfR5\n\tsASXYzlrMobXiOb0Yoft+O6W9H/7tpSiU7bw9Mv70GhugPdwMtK8MP+rSsNPx9crRE\n\t7QX+G5J23tuUqZc8kExNmpgjpWwLRCVmYWLx3/Ak=","Date":"Wed, 20 Nov 2024 20:37:08 +0900","From":"Paul Elder <paul.elder@ideasonboard.com>","To":"Stefan Klug <stefan.klug@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH 5/7] pipeline: rkisp1: Reorder sensorInfo collection code","Message-ID":"<Zz3J5OyxTWqjmSZE@pyrite.rasen.tech>","References":"<20241120085753.1993436-1-stefan.klug@ideasonboard.com>\n\t<20241120085753.1993436-6-stefan.klug@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20241120085753.1993436-6-stefan.klug@ideasonboard.com>","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>"}},{"id":32337,"web_url":"https://patchwork.libcamera.org/comment/32337/","msgid":"<qg2s47dv7z75ypnox4cpupopzu56op26pqv6576furtonjl4he@dhmpm4ufs7tl>","date":"2024-11-21T15:01:39","subject":"Re: [PATCH 5/7] pipeline: rkisp1: Reorder sensorInfo collection code","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Stefan\n\nOn Wed, Nov 20, 2024 at 09:57:44AM +0100, Stefan Klug wrote:\n> The sensorInfo (specifically the crop rectangle of the selected sensor\n> mode) is collected to be passed to the IPA later. In an upcoming patch\n> that data will also be needed for correct ScalerCrop handling. Move the\n> collection of the sensorInfo before the dewarper configuration step and\n> refactor the code a bit.\n>\n> Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> ---\n>  src/libcamera/pipeline/rkisp1/rkisp1.cpp | 16 ++++++++--------\n>  1 file changed, 8 insertions(+), 8 deletions(-)\n>\n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> index 6491a48ee83c..4a226d9b809f 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> @@ -844,6 +844,11 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)\n>  \t\t<< \"ISP output pad configured with \" << format\n>  \t\t<< \" crop \" << outputCrop;\n>\n> +\tIPACameraSensorInfo sensorInfo;\n> +\tret = data->sensor_->sensorInfo(&sensorInfo);\n> +\tif (ret)\n> +\t\treturn ret;\n> +\n>  \tstd::map<unsigned int, IPAStream> streamConfig;\n>  \tstd::vector<std::reference_wrapper<StreamConfiguration>> outputCfgs;\n>\n> @@ -883,14 +888,9 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)\n>  \t\treturn ret;\n>\n>  \t/* Inform IPA of stream configuration and sensor controls. */\n> -\tipa::rkisp1::IPAConfigInfo ipaConfig{};\n> -\n> -\tret = data->sensor_->sensorInfo(&ipaConfig.sensorInfo);\n\nYou could move the declaration of ipaConfig up as well and still pass\n&ipaConfig.sensorInfo to sensorInfo() to avoid a copy.\n\nIt's however a nit\nReviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n\nThanks\n  j\n\n> -\tif (ret)\n> -\t\treturn ret;\n> -\n> -\tipaConfig.sensorControls = data->sensor_->controls();\n> -\tipaConfig.paramFormat = paramFormat.fourcc;\n> +\tipa::rkisp1::IPAConfigInfo ipaConfig{ sensorInfo,\n> +\t\t\t\t\t      data->sensor_->controls(),\n> +\t\t\t\t\t      paramFormat.fourcc };\n>\n>  \tret = data->ipa_->configure(ipaConfig, streamConfig, &data->ipaControls_);\n>  \tif (ret) {\n> --\n> 2.43.0\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 89057C326C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 21 Nov 2024 15:01:45 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9785265FD0;\n\tThu, 21 Nov 2024 16:01:44 +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 B901D65898\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 21 Nov 2024 16:01:42 +0100 (CET)","from ideasonboard.com (93-46-82-201.ip106.fastwebnet.it\n\t[93.46.82.201])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id AE42A736;\n\tThu, 21 Nov 2024 16:01:23 +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=\"SCUWGI+R\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1732201283;\n\tbh=0+s8zF/Mw2oEY0dt+4z8KiJyAYathLoMqX3D5O3+OV4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=SCUWGI+R7LMGA4ldZVbzo3yhYoBfr8mV2io/pRW+alvxPwPnAU8aQFVOY24R2RwHe\n\t6pOySXmOKWk7TAiOl3ioE8SjpzEOEZ2iUGKccVUIvRxZsJ/BgjylPThxOoh4gmNYw7\n\tZSpMiUNFzrHAUkSOcGBTR36Omrb7dQ3wK/nWMNys=","Date":"Thu, 21 Nov 2024 16:01:39 +0100","From":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"Stefan Klug <stefan.klug@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH 5/7] pipeline: rkisp1: Reorder sensorInfo collection code","Message-ID":"<qg2s47dv7z75ypnox4cpupopzu56op26pqv6576furtonjl4he@dhmpm4ufs7tl>","References":"<20241120085753.1993436-1-stefan.klug@ideasonboard.com>\n\t<20241120085753.1993436-6-stefan.klug@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20241120085753.1993436-6-stefan.klug@ideasonboard.com>","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>"}}]