[libcamera-devel] [PATCH] libcamera: camera_sensor: Do not initialise unsupported test patterns

Kieran Bingham kieran.bingham at ideasonboard.com
Sun Feb 13 00:34:07 CET 2022


After the CameraSensor class has initialised properties, a default
setting is applied to ensure that test pattern modes are disabled unless
explicitly requested.

This does not currently check to see if test patterns are supported on
the CameraSensor and the applyTestPatternMode call will report a failure
if it attempts to set a mode when not supported.

Move the initialisation of the test pattern mode to the implementation
of the control mappings to ensure that it is correctly reset at start
up, while the code path will have already completed early if not
supported.

Bug: https://github.com/raspberrypi/libcamera-apps/issues/249
Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
---
 src/libcamera/camera_sensor.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
index 345b4a170d47..3a6a1a6bca77 100644
--- a/src/libcamera/camera_sensor.cpp
+++ b/src/libcamera/camera_sensor.cpp
@@ -172,7 +172,7 @@ int CameraSensor::init()
 	if (ret)
 		return ret;
 
-	return applyTestPatternMode(controls::draft::TestPatternModeEnum::TestPatternModeOff);
+	return 0;
 }
 
 int CameraSensor::validateSensorDriver()
@@ -372,6 +372,9 @@ void CameraSensor::initTestPatternModes()
 
 		testPatternModes_.push_back(it->second);
 	}
+
+	/* Initialise the sensor with test patterns disabled. */
+	applyTestPatternMode(controls::draft::TestPatternModeEnum::TestPatternModeOff);
 }
 
 int CameraSensor::initProperties()
-- 
2.32.0



More information about the libcamera-devel mailing list