[PATCH 10/11] ipa: rpi: controller: Replace Pwl::readYaml() with YamlObject::get()

Laurent Pinchart laurent.pinchart at ideasonboard.com
Thu Jun 13 03:39:43 CEST 2024


Now that deserializing a Pwl object from YAML data is possible using the
YamlObject::get() function, replace all usage of Pwl::readYaml() to
prepare for its removal.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 src/ipa/rpi/controller/rpi/af.cpp          | 2 +-
 src/ipa/rpi/controller/rpi/agc_channel.cpp | 9 +++++----
 src/ipa/rpi/controller/rpi/awb.cpp         | 3 ++-
 src/ipa/rpi/controller/rpi/ccm.cpp         | 6 +++---
 src/ipa/rpi/controller/rpi/contrast.cpp    | 4 +++-
 src/ipa/rpi/controller/rpi/geq.cpp         | 6 +++---
 src/ipa/rpi/controller/rpi/hdr.cpp         | 4 ++--
 src/ipa/rpi/controller/rpi/tonemap.cpp     | 2 +-
 8 files changed, 20 insertions(+), 16 deletions(-)

diff --git a/src/ipa/rpi/controller/rpi/af.cpp b/src/ipa/rpi/controller/rpi/af.cpp
index 304629d6d4e5..5ca76dd98b4b 100644
--- a/src/ipa/rpi/controller/rpi/af.cpp
+++ b/src/ipa/rpi/controller/rpi/af.cpp
@@ -139,7 +139,7 @@ int Af::CfgParams::read(const libcamera::YamlObject &params)
 	readNumber<uint32_t>(skipFrames, params, "skip_frames");
 
 	if (params.contains("map"))
-		map.readYaml(params["map"]);
+		map = params["map"].get<ipa::Pwl>(ipa::Pwl{});
 	else
 		LOG(RPiAf, Warning) << "No map defined";
 
diff --git a/src/ipa/rpi/controller/rpi/agc_channel.cpp b/src/ipa/rpi/controller/rpi/agc_channel.cpp
index a381dd972215..cf2565a83836 100644
--- a/src/ipa/rpi/controller/rpi/agc_channel.cpp
+++ b/src/ipa/rpi/controller/rpi/agc_channel.cpp
@@ -130,7 +130,8 @@ int AgcConstraint::read(const libcamera::YamlObject &params)
 		return -EINVAL;
 	qHi = *value;
 
-	return yTarget.readYaml(params["y_target"]);
+	yTarget = params["y_target"].get<ipa::Pwl>(ipa::Pwl{});
+	return yTarget.empty() ? -EINVAL : 0;
 }
 
 static std::tuple<int, AgcConstraintMode>
@@ -237,9 +238,9 @@ int AgcConfig::read(const libcamera::YamlObject &params)
 			return ret;
 	}
 
-	ret = yTarget.readYaml(params["y_target"]);
-	if (ret)
-		return ret;
+	yTarget = params["y_target"].get<ipa::Pwl>(ipa::Pwl{});
+	if (yTarget.empty())
+		return -EINVAL;
 
 	speed = params["speed"].get<double>(0.2);
 	startupFrames = params["startup_frames"].get<uint16_t>(10);
diff --git a/src/ipa/rpi/controller/rpi/awb.cpp b/src/ipa/rpi/controller/rpi/awb.cpp
index 603953d7d863..003c8fa137f3 100644
--- a/src/ipa/rpi/controller/rpi/awb.cpp
+++ b/src/ipa/rpi/controller/rpi/awb.cpp
@@ -49,7 +49,8 @@ int AwbPrior::read(const libcamera::YamlObject &params)
 		return -EINVAL;
 	lux = *value;
 
-	return prior.readYaml(params["prior"]);
+	prior = params["prior"].get<ipa::Pwl>(ipa::Pwl{});
+	return prior.empty() ? -EINVAL : 0;
 }
 
 static int readCtCurve(ipa::Pwl &ctR, ipa::Pwl &ctB, const libcamera::YamlObject &params)
diff --git a/src/ipa/rpi/controller/rpi/ccm.cpp b/src/ipa/rpi/controller/rpi/ccm.cpp
index 3272a1416ffa..e673964c1856 100644
--- a/src/ipa/rpi/controller/rpi/ccm.cpp
+++ b/src/ipa/rpi/controller/rpi/ccm.cpp
@@ -71,9 +71,9 @@ int Ccm::read(const libcamera::YamlObject &params)
 	int ret;
 
 	if (params.contains("saturation")) {
-		ret = config_.saturation.readYaml(params["saturation"]);
-		if (ret)
-			return ret;
+		config_.saturation = params["saturation"].get<ipa::Pwl>(ipa::Pwl{});
+		if (config_.saturation.empty())
+			return -EINVAL;
 	}
 
 	for (auto &p : params["ccms"].asList()) {
diff --git a/src/ipa/rpi/controller/rpi/contrast.cpp b/src/ipa/rpi/controller/rpi/contrast.cpp
index 66871a61ed28..9b37943ae9c9 100644
--- a/src/ipa/rpi/controller/rpi/contrast.cpp
+++ b/src/ipa/rpi/controller/rpi/contrast.cpp
@@ -53,7 +53,9 @@ int Contrast::read(const libcamera::YamlObject &params)
 	config_.hiHistogram = params["hi_histogram"].get<double>(0.95);
 	config_.hiLevel = params["hi_level"].get<double>(0.95);
 	config_.hiMax = params["hi_max"].get<double>(2000);
-	return config_.gammaCurve.readYaml(params["gamma_curve"]);
+
+	config_.gammaCurve = params["gamma_curve"].get<ipa::Pwl>(ipa::Pwl{});
+	return config_.gammaCurve.empty() ? -EINVAL : 0;
 }
 
 void Contrast::setBrightness(double brightness)
diff --git a/src/ipa/rpi/controller/rpi/geq.cpp b/src/ipa/rpi/controller/rpi/geq.cpp
index c9c38ebff5ba..40e7191ba16a 100644
--- a/src/ipa/rpi/controller/rpi/geq.cpp
+++ b/src/ipa/rpi/controller/rpi/geq.cpp
@@ -44,9 +44,9 @@ int Geq::read(const libcamera::YamlObject &params)
 	}
 
 	if (params.contains("strength")) {
-		int ret = config_.strength.readYaml(params["strength"]);
-		if (ret)
-			return ret;
+		config_.strength = params["strength"].get<ipa::Pwl>(ipa::Pwl{});
+		if (config_.strength.empty())
+			return -EINVAL;
 	}
 
 	return 0;
diff --git a/src/ipa/rpi/controller/rpi/hdr.cpp b/src/ipa/rpi/controller/rpi/hdr.cpp
index d533a4ea4e65..f3da8291bf5d 100644
--- a/src/ipa/rpi/controller/rpi/hdr.cpp
+++ b/src/ipa/rpi/controller/rpi/hdr.cpp
@@ -42,7 +42,7 @@ void HdrConfig::read(const libcamera::YamlObject &params, const std::string &mod
 
 	/* Lens shading related parameters. */
 	if (params.contains("spatial_gain_curve")) {
-		spatialGainCurve.readYaml(params["spatial_gain_curve"]);
+		spatialGainCurve = params["spatial_gain_curve"].get<ipa::Pwl>(ipa::Pwl{});
 	} else if (params.contains("spatial_gain")) {
 		double spatialGain = params["spatial_gain"].get<double>(2.0);
 		spatialGainCurve.append(0.0, spatialGain);
@@ -66,7 +66,7 @@ void HdrConfig::read(const libcamera::YamlObject &params, const std::string &mod
 	iirStrength = params["iir_strength"].get<double>(8.0);
 	strength = params["strength"].get<double>(1.5);
 	if (tonemapEnable)
-		tonemap.readYaml(params["tonemap"]);
+		tonemap = params["tonemap"].get<ipa::Pwl>(ipa::Pwl{});
 	speed = params["speed"].get<double>(1.0);
 	if (params.contains("hi_quantile_targets")) {
 		hiQuantileTargets = params["hi_quantile_targets"].getList<double>().value();
diff --git a/src/ipa/rpi/controller/rpi/tonemap.cpp b/src/ipa/rpi/controller/rpi/tonemap.cpp
index 2dc50dfc8d2d..3422adfe7dee 100644
--- a/src/ipa/rpi/controller/rpi/tonemap.cpp
+++ b/src/ipa/rpi/controller/rpi/tonemap.cpp
@@ -33,7 +33,7 @@ int Tonemap::read(const libcamera::YamlObject &params)
 	config_.detailSlope = params["detail_slope"].get<double>(0.1);
 	config_.iirStrength = params["iir_strength"].get<double>(1.0);
 	config_.strength = params["strength"].get<double>(1.0);
-	config_.tonemap.readYaml(params["tone_curve"]);
+	config_.tonemap = params["tone_curve"].get<ipa::Pwl>(ipa::Pwl{});
 	return 0;
 }
 
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list