[PATCH v1 5/7] pipeline: rpi: Track which ISP output is configured for a stream

Naushir Patuck naush at raspberrypi.com
Thu Aug 8 12:23:44 CEST 2024


Add a ispIndex field to CropParams that is used to track
which ISP output (0/1) will be used for a given stream during
configuration.

Tracking this information is required for an upcoming change where crop
rectangles can be specified for each configured stream. Currently, the
value is fixed to 0.

Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
---
 src/libcamera/pipeline/rpi/common/pipeline_base.h | 6 ++++--
 src/libcamera/pipeline/rpi/vc4/vc4.cpp            | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.h b/src/libcamera/pipeline/rpi/common/pipeline_base.h
index 2bed905178bc..0ccfa4e82e86 100644
--- a/src/libcamera/pipeline/rpi/common/pipeline_base.h
+++ b/src/libcamera/pipeline/rpi/common/pipeline_base.h
@@ -135,8 +135,8 @@ public:
 	IPACameraSensorInfo sensorInfo_;
 
 	struct CropParams {
-		CropParams(Rectangle ispCrop_, Size ispMinCropSize_)
-			: ispCrop(ispCrop_), ispMinCropSize(ispMinCropSize_)
+		CropParams(Rectangle ispCrop_, Size ispMinCropSize_, unsigned int ispIndex_)
+			: ispCrop(ispCrop_), ispMinCropSize(ispMinCropSize_), ispIndex(ispIndex_)
 		{
 		}
 
@@ -148,6 +148,8 @@ public:
 		Rectangle ispCrop;
 		/* Minimum crop size in ISP output pixels */
 		Size ispMinCropSize;
+		/* Index of the ISP output channel for this crop */
+		unsigned int ispIndex;
 	};
 
 	/* Mapping of CropParams keyed by the stream index in CameraConfiguration */
diff --git a/src/libcamera/pipeline/rpi/vc4/vc4.cpp b/src/libcamera/pipeline/rpi/vc4/vc4.cpp
index d118252f02dd..ffc45653daf1 100644
--- a/src/libcamera/pipeline/rpi/vc4/vc4.cpp
+++ b/src/libcamera/pipeline/rpi/vc4/vc4.cpp
@@ -715,7 +715,7 @@ int Vc4CameraData::platformConfigure(const RPi::RPiCameraConfiguration *rpiConfi
 	cropParams_.clear();
 	cropParams_.emplace(std::piecewise_construct,
 			    std::forward_as_tuple(0),
-			    std::forward_as_tuple(scaleIspCrop(ispCrop), testCrop.size()));
+			    std::forward_as_tuple(scaleIspCrop(ispCrop), testCrop.size(), 0));
 
 	return 0;
 }
-- 
2.34.1



More information about the libcamera-devel mailing list