[libcamera-devel] [PATCH] pipeline: raspberrypi: Sensor flips should be applied unconditionally

Naushir Patuck naush at raspberrypi.com
Fri Oct 2 11:08:07 CEST 2020


The code in pipeline_handler::start() that applies the flips were in a
block that was conditional on the RPi::IPA_CONFIG_STAGGERED_WRITE return
result. This should be applied unconditionally.

Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
---
 .../pipeline/raspberrypi/raspberrypi.cpp      | 26 +++++++++----------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
index d4d04c0d..1052bdce 100644
--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
@@ -1172,19 +1172,6 @@ int RPiCameraData::configureIPA(const CameraConfiguration *config)
 					      { V4L2_CID_EXPOSURE, result.data[resultIdx++] } });
 			sensorMetadata_ = result.data[resultIdx++];
 		}
-
-		/*
-		 * Configure the H/V flip controls based on the combination of
-		 * the sensor and user transform.
-		 */
-		if (supportsFlips_) {
-			ControlList ctrls(unicam_[Unicam::Image].dev()->controls());
-			ctrls.set(V4L2_CID_HFLIP,
-				  static_cast<int32_t>(!!(rpiConfig->combinedTransform_ & Transform::HFlip)));
-			ctrls.set(V4L2_CID_VFLIP,
-				  static_cast<int32_t>(!!(rpiConfig->combinedTransform_ & Transform::VFlip)));
-			unicam_[Unicam::Image].dev()->setControls(&ctrls);
-		}
 	}
 
 	if (result.operation & RPi::IPA_CONFIG_SENSOR) {
@@ -1198,6 +1185,19 @@ int RPiCameraData::configureIPA(const CameraConfiguration *config)
 		dropFrameCount_ = result.data[resultIdx++];
 	}
 
+	/*
+	 * Configure the H/V flip controls based on the combination of
+	 * the sensor and user transform.
+	 */
+	if (supportsFlips_) {
+		ControlList ctrls(unicam_[Unicam::Image].dev()->controls());
+		ctrls.set(V4L2_CID_HFLIP,
+			  static_cast<int32_t>(!!(rpiConfig->combinedTransform_ & Transform::HFlip)));
+		ctrls.set(V4L2_CID_VFLIP,
+			  static_cast<int32_t>(!!(rpiConfig->combinedTransform_ & Transform::VFlip)));
+		unicam_[Unicam::Image].dev()->setControls(&ctrls);
+	}
+
 	return 0;
 }
 
-- 
2.25.1



More information about the libcamera-devel mailing list