[v2,4/8] pipeline: rkisp1: Split inputCrop and outputCrop
diff mbox series

Message ID 20241125151430.2437285-5-stefan.klug@ideasonboard.com
State New
Headers show
Series
  • rkisp1: Fix aspect ratio and ScalerCrop
Related show

Commit Message

Stefan Klug Nov. 25, 2024, 3:14 p.m. UTC
One Rectangle instance is used to calculate the inputCrop and the
outputCrop of the ISP in the rkisp1 pipeline. Split that into two
distinct variables, because both values will be needed in the upcoming
patches. This patch does not contain any functional changes.

Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>

---

Changes in v2:
- Moved declaration of outputCrop after setSelection(inputCrop) to get
  the potentially updated inputCrop
- Collected tags
---
 src/libcamera/pipeline/rkisp1/rkisp1.cpp | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

Patch
diff mbox series

diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
index a66b9dda83ab..82f6df74840e 100644
--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
@@ -794,15 +794,16 @@  int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
 	if (ret < 0)
 		return ret;
 
-	Rectangle rect(0, 0, format.size);
-	ret = isp_->setSelection(0, V4L2_SEL_TGT_CROP, &rect);
+	Rectangle inputCrop(0, 0, format.size);
+	ret = isp_->setSelection(0, V4L2_SEL_TGT_CROP, &inputCrop);
 	if (ret < 0)
 		return ret;
 
 	LOG(RkISP1, Debug)
 		<< "ISP input pad configured with " << format
-		<< " crop " << rect;
+		<< " crop " << inputCrop;
 
+	Rectangle outputCrop = inputCrop;
 	const PixelFormat &streamFormat = config->at(0).pixelFormat;
 	const PixelFormatInfo &info = PixelFormatInfo::info(streamFormat);
 	isRaw_ = info.colourEncoding == PixelFormatInfo::ColourEncodingRAW;
@@ -820,18 +821,18 @@  int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
 		const auto &cfg = config->at(0);
 		Size ispCrop = format.size.boundedToAspectRatio(cfg.size)
 					  .alignedUpTo(2, 2);
-		rect = ispCrop.centeredTo(Rectangle(format.size).center());
+		outputCrop = ispCrop.centeredTo(Rectangle(format.size).center());
 		if (ispCrop != format.size)
 			LOG(RkISP1, Info) << "ISP output needs to be cropped to "
-					  << rect;
+					  << outputCrop;
 		format.size = ispCrop;
 	}
 
 	LOG(RkISP1, Debug)
 		<< "Configuring ISP output pad with " << format
-		<< " crop " << rect;
+		<< " crop " << outputCrop;
 
-	ret = isp_->setSelection(2, V4L2_SEL_TGT_CROP, &rect);
+	ret = isp_->setSelection(2, V4L2_SEL_TGT_CROP, &outputCrop);
 	if (ret < 0)
 		return ret;
 
@@ -842,7 +843,7 @@  int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
 
 	LOG(RkISP1, Debug)
 		<< "ISP output pad configured with " << format
-		<< " crop " << rect;
+		<< " crop " << outputCrop;
 
 	std::map<unsigned int, IPAStream> streamConfig;
 	std::vector<std::reference_wrapper<StreamConfiguration>> outputCfgs;