ipa: rpi: controller: Replace Pwl::readYaml() with YamlObject::get()

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@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: David Plowman <david.plowman@raspberrypi.com>
Tested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> # On Raspberry Pi 4
This commit is contained in:
Laurent Pinchart 2024-06-13 03:45:32 +03:00
parent 13a8fbeb5c
commit b781955c6a
8 changed files with 20 additions and 16 deletions

View file

@ -139,7 +139,7 @@ int Af::CfgParams::read(const libcamera::YamlObject &params)
readNumber<uint32_t>(skipFrames, params, "skip_frames"); readNumber<uint32_t>(skipFrames, params, "skip_frames");
if (params.contains("map")) if (params.contains("map"))
map.readYaml(params["map"]); map = params["map"].get<ipa::Pwl>(ipa::Pwl{});
else else
LOG(RPiAf, Warning) << "No map defined"; LOG(RPiAf, Warning) << "No map defined";

View file

@ -130,7 +130,8 @@ int AgcConstraint::read(const libcamera::YamlObject &params)
return -EINVAL; return -EINVAL;
qHi = *value; 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> static std::tuple<int, AgcConstraintMode>
@ -237,9 +238,9 @@ int AgcConfig::read(const libcamera::YamlObject &params)
return ret; return ret;
} }
ret = yTarget.readYaml(params["y_target"]); yTarget = params["y_target"].get<ipa::Pwl>(ipa::Pwl{});
if (ret) if (yTarget.empty())
return ret; return -EINVAL;
speed = params["speed"].get<double>(0.2); speed = params["speed"].get<double>(0.2);
startupFrames = params["startup_frames"].get<uint16_t>(10); startupFrames = params["startup_frames"].get<uint16_t>(10);

View file

@ -49,7 +49,8 @@ int AwbPrior::read(const libcamera::YamlObject &params)
return -EINVAL; return -EINVAL;
lux = *value; 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) static int readCtCurve(ipa::Pwl &ctR, ipa::Pwl &ctB, const libcamera::YamlObject &params)

View file

@ -71,9 +71,9 @@ int Ccm::read(const libcamera::YamlObject &params)
int ret; int ret;
if (params.contains("saturation")) { if (params.contains("saturation")) {
ret = config_.saturation.readYaml(params["saturation"]); config_.saturation = params["saturation"].get<ipa::Pwl>(ipa::Pwl{});
if (ret) if (config_.saturation.empty())
return ret; return -EINVAL;
} }
for (auto &p : params["ccms"].asList()) { for (auto &p : params["ccms"].asList()) {

View file

@ -53,7 +53,9 @@ int Contrast::read(const libcamera::YamlObject &params)
config_.hiHistogram = params["hi_histogram"].get<double>(0.95); config_.hiHistogram = params["hi_histogram"].get<double>(0.95);
config_.hiLevel = params["hi_level"].get<double>(0.95); config_.hiLevel = params["hi_level"].get<double>(0.95);
config_.hiMax = params["hi_max"].get<double>(2000); 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) void Contrast::setBrightness(double brightness)

View file

@ -44,9 +44,9 @@ int Geq::read(const libcamera::YamlObject &params)
} }
if (params.contains("strength")) { if (params.contains("strength")) {
int ret = config_.strength.readYaml(params["strength"]); config_.strength = params["strength"].get<ipa::Pwl>(ipa::Pwl{});
if (ret) if (config_.strength.empty())
return ret; return -EINVAL;
} }
return 0; return 0;

View file

@ -42,7 +42,7 @@ void HdrConfig::read(const libcamera::YamlObject &params, const std::string &mod
/* Lens shading related parameters. */ /* Lens shading related parameters. */
if (params.contains("spatial_gain_curve")) { 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")) { } else if (params.contains("spatial_gain")) {
double spatialGain = params["spatial_gain"].get<double>(2.0); double spatialGain = params["spatial_gain"].get<double>(2.0);
spatialGainCurve.append(0.0, spatialGain); 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); iirStrength = params["iir_strength"].get<double>(8.0);
strength = params["strength"].get<double>(1.5); strength = params["strength"].get<double>(1.5);
if (tonemapEnable) if (tonemapEnable)
tonemap.readYaml(params["tonemap"]); tonemap = params["tonemap"].get<ipa::Pwl>(ipa::Pwl{});
speed = params["speed"].get<double>(1.0); speed = params["speed"].get<double>(1.0);
if (params.contains("hi_quantile_targets")) { if (params.contains("hi_quantile_targets")) {
hiQuantileTargets = params["hi_quantile_targets"].getList<double>().value(); hiQuantileTargets = params["hi_quantile_targets"].getList<double>().value();

View file

@ -33,7 +33,7 @@ int Tonemap::read(const libcamera::YamlObject &params)
config_.detailSlope = params["detail_slope"].get<double>(0.1); config_.detailSlope = params["detail_slope"].get<double>(0.1);
config_.iirStrength = params["iir_strength"].get<double>(1.0); config_.iirStrength = params["iir_strength"].get<double>(1.0);
config_.strength = params["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; return 0;
} }