summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNaushir Patuck <naush@raspberrypi.com>2024-10-31 09:49:53 +0000
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2024-11-04 17:23:54 +0200
commit6bb278c20c2d1ce237b8d534fcc9711a65de8102 (patch)
treef9e692b26748063fcd024cd3ffcc73b4846a1f69
parentfb2326810570206a405e2ed6f59f9d91b1735f71 (diff)
pipeline: rpi: Pass crop rectangle as a parameter to platformSetIspCrop()
This will be required when we program separate crop values to each ISP output in a future commit. Signed-off-by: Naushir Patuck <naush@raspberrypi.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rw-r--r--src/libcamera/pipeline/rpi/common/pipeline_base.cpp2
-rw-r--r--src/libcamera/pipeline/rpi/common/pipeline_base.h2
-rw-r--r--src/libcamera/pipeline/rpi/vc4/vc4.cpp7
3 files changed, 6 insertions, 5 deletions
diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
index 11f1bfd4..2de6111b 100644
--- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
+++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
@@ -1314,7 +1314,7 @@ void CameraData::applyScalerCrop(const ControlList &controls)
if (ispCrop != ispCrop_) {
ispCrop_ = ispCrop;
- platformSetIspCrop();
+ platformSetIspCrop(ispCrop);
}
}
}
diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.h b/src/libcamera/pipeline/rpi/common/pipeline_base.h
index 5161c16e..d65b695c 100644
--- a/src/libcamera/pipeline/rpi/common/pipeline_base.h
+++ b/src/libcamera/pipeline/rpi/common/pipeline_base.h
@@ -83,7 +83,7 @@ public:
Rectangle scaleIspCrop(const Rectangle &ispCrop) const;
void applyScalerCrop(const ControlList &controls);
- virtual void platformSetIspCrop() = 0;
+ virtual void platformSetIspCrop(const Rectangle &ispCrop) = 0;
void cameraTimeout();
void frameStarted(uint32_t sequence);
diff --git a/src/libcamera/pipeline/rpi/vc4/vc4.cpp b/src/libcamera/pipeline/rpi/vc4/vc4.cpp
index e5b6ef2b..0ea03229 100644
--- a/src/libcamera/pipeline/rpi/vc4/vc4.cpp
+++ b/src/libcamera/pipeline/rpi/vc4/vc4.cpp
@@ -109,9 +109,10 @@ public:
Config config_;
private:
- void platformSetIspCrop() override
+ void platformSetIspCrop(const Rectangle &ispCrop) override
{
- isp_[Isp::Input].dev()->setSelection(V4L2_SEL_TGT_CROP, &ispCrop_);
+ Rectangle crop = ispCrop;
+ isp_[Isp::Input].dev()->setSelection(V4L2_SEL_TGT_CROP, &crop);
}
int platformConfigure(const RPi::RPiCameraConfiguration *rpiConfig) override;
@@ -707,7 +708,7 @@ int Vc4CameraData::platformConfigure(const RPi::RPiCameraConfiguration *rpiConfi
Size size = unicamFormat.size.boundedToAspectRatio(maxSize);
ispCrop_ = size.centeredTo(Rectangle(unicamFormat.size).center());
- platformSetIspCrop();
+ platformSetIspCrop(ispCrop_);
return 0;
}