[libcamera-devel] [RFC PATCH v2 09/12] pipeline: ipu3: Add controls for FULL compliance

Paul Elder paul.elder at ideasonboard.com
Thu Apr 22 11:40:59 CEST 2021


Add controls to IPU3Controls that are necessary for FULL compliance.

Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
---
 src/libcamera/pipeline/ipu3/ipu3.cpp | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 28e849a4..70a5e9ce 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -48,8 +48,27 @@ static constexpr unsigned int IMGU_OUTPUT_WIDTH_MARGIN = 64;
 static constexpr unsigned int IMGU_OUTPUT_HEIGHT_MARGIN = 32;
 static constexpr Size IPU3ViewfinderSize(1280, 720);
 
+const std::array<const ControlValue, 3> IPU3NoiseReductionModeValues = {
+	static_cast<int32_t>(controls::draft::NoiseReductionModeOff),
+	static_cast<int32_t>(controls::draft::NoiseReductionModeFast),
+	static_cast<int32_t>(controls::draft::NoiseReductionModeHighQuality),
+};
+
 static const ControlInfoMap::Map IPU3Controls = {
 	{ &controls::draft::PipelineDepth, ControlInfo(2, 3) },
+	{ &controls::draft::BlackLevelLocked, ControlInfo(false, true) },
+	{ &controls::AeLocked, ControlInfo(false, true) },
+	{ &controls::draft::AePrecaptureTrigger,
+		ControlInfo(controls::draft::AePrecaptureTriggerValues) },
+	{ &controls::AwbMode, ControlInfo(controls::AwbModeValues) },
+	{ &controls::AwbLocked, ControlInfo(false, true) },
+	{ &controls::draft::EdgeMode,
+		ControlInfo(controls::draft::EdgeModeValues) },
+	{ &controls::draft::NoiseReductionMode,
+		ControlInfo(IPU3NoiseReductionModeValues) },
+	{ &controls::draft::SensorSensitivity, ControlInfo(32, 2400) },
+	{ &controls::draft::TonemapMode,
+		ControlInfo(controls::draft::TonemapModeValues) },
 };
 
 class IPU3CameraData : public CameraData
-- 
2.27.0



More information about the libcamera-devel mailing list