From patchwork Thu Jun 11 01:17:20 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 26869 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 4F41DC328C for ; Thu, 11 Jun 2026 01:17:32 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id A713C61F24; Thu, 11 Jun 2026 03:17:31 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="nxSMBp+H"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 3E85E61F24 for ; Thu, 11 Jun 2026 03:17:29 +0200 (CEST) Received: from killaraus.ideasonboard.com (2001-14ba-70f3-e800--a06.rev.dnainternet.fi [IPv6:2001:14ba:70f3:e800::a06]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id B66AAE0D for ; Thu, 11 Jun 2026 03:16:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1781140619; bh=4ocK9YLw/uTYdkEUDDUQUAH4g1hJR4wMtb5grIb5FIs=; h=From:To:Subject:Date:In-Reply-To:References:From; b=nxSMBp+HUrFCznxn69C7bakyNe7IfbumVJr5O5MsQ3/ObrL1KElhiuU7P1+WBl8ek Pl/N0yb42f7DUDMKiyXFRh3a+dIzsldb4XjAsmbLQGRWlAG6x9/zOTD4IAI+l5Twz5 iEpRboHJ35izYQx8RoNDqQuijNZJJ/GadM8vn9ps= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Subject: [PATCH 4/6] libcamera: Drop 'yaml' prefix from ValueNode variables Date: Thu, 11 Jun 2026 04:17:20 +0300 Message-ID: <20260611011722.1767689-5-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260611011722.1767689-1-laurent.pinchart@ideasonboard.com> References: <20260611011722.1767689-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Many ValueNode variables use a 'yaml' prefix in their name. This is a leftover from when the ValueNode class was named YamlObject, and is now confusing. Remove the prefix by either simply dropping it, renaming the variable when its name would clash, or removing temporary variables altogether. Signed-off-by: Laurent Pinchart --- src/android/camera_hal_config.cpp | 6 +-- src/ipa/libipa/agc_mean_luminance.cpp | 12 ++--- src/ipa/libipa/awb.cpp | 6 +-- src/ipa/mali-c55/algorithms/lsc.cpp | 15 +++---- src/ipa/rkisp1/algorithms/agc.cpp | 4 +- src/ipa/rkisp1/algorithms/lsc.cpp | 51 ++++++++++------------ src/ipa/rpi/controller/rpi/agc_channel.cpp | 4 +- 7 files changed, 46 insertions(+), 52 deletions(-) diff --git a/src/android/camera_hal_config.cpp b/src/android/camera_hal_config.cpp index 4a9c0577a0be..3631cb7ad9f2 100644 --- a/src/android/camera_hal_config.cpp +++ b/src/android/camera_hal_config.cpp @@ -76,12 +76,12 @@ int CameraHalConfig::Private::parseConfigFile(File &file, if (!root->contains("cameras")) return -EINVAL; - const ValueNode &yamlObjectCameras = (*root)["cameras"]; + const ValueNode &camerasNode = (*root)["cameras"]; - if (!yamlObjectCameras.isDictionary()) + if (!camerasNode.isDictionary()) return -EINVAL; - for (const auto &[cameraId, configData] : yamlObjectCameras.asDict()) { + for (const auto &[cameraId, configData] : camerasNode.asDict()) { if (parseCameraConfigData(cameraId, configData)) return -EINVAL; } diff --git a/src/ipa/libipa/agc_mean_luminance.cpp b/src/ipa/libipa/agc_mean_luminance.cpp index c226dd23552c..2d3bc709f3c1 100644 --- a/src/ipa/libipa/agc_mean_luminance.cpp +++ b/src/ipa/libipa/agc_mean_luminance.cpp @@ -218,9 +218,9 @@ int AgcMeanLuminance::parseConstraintModes(const ValueNode &tuningData) { std::vector availableConstraintModes; - const ValueNode &yamlConstraintModes = tuningData[controls::AeConstraintMode.name()]; - if (yamlConstraintModes.isDictionary()) { - for (const auto &[modeName, modeDict] : yamlConstraintModes.asDict()) { + const ValueNode &constraintModes = tuningData[controls::AeConstraintMode.name()]; + if (constraintModes.isDictionary()) { + for (const auto &[modeName, modeDict] : constraintModes.asDict()) { if (AeConstraintModeNameValueMap.find(modeName) == AeConstraintModeNameValueMap.end()) { LOG(AgcMeanLuminance, Warning) @@ -273,9 +273,9 @@ int AgcMeanLuminance::parseExposureModes(const ValueNode &tuningData) { std::vector availableExposureModes; - const ValueNode &yamlExposureModes = tuningData[controls::AeExposureMode.name()]; - if (yamlExposureModes.isDictionary()) { - for (const auto &[modeName, modeValues] : yamlExposureModes.asDict()) { + const ValueNode &exposureModes = tuningData[controls::AeExposureMode.name()]; + if (exposureModes.isDictionary()) { + for (const auto &[modeName, modeValues] : exposureModes.asDict()) { if (AeExposureModeNameValueMap.find(modeName) == AeExposureModeNameValueMap.end()) { LOG(AgcMeanLuminance, Warning) diff --git a/src/ipa/libipa/awb.cpp b/src/ipa/libipa/awb.cpp index af966f1e007c..29a78069c52c 100644 --- a/src/ipa/libipa/awb.cpp +++ b/src/ipa/libipa/awb.cpp @@ -167,14 +167,14 @@ int AwbAlgorithm::parseModeConfigs(const ValueNode &tuningData, { std::vector availableModes; - const ValueNode &yamlModes = tuningData[controls::AwbMode.name()]; - if (!yamlModes.isDictionary()) { + const ValueNode &modes = tuningData[controls::AwbMode.name()]; + if (!modes.isDictionary()) { LOG(Awb, Error) << "AwbModes must be a dictionary."; return -EINVAL; } - for (const auto &[modeName, modeDict] : yamlModes.asDict()) { + for (const auto &[modeName, modeDict] : modes.asDict()) { if (controls::AwbModeNameValueMap.find(modeName) == controls::AwbModeNameValueMap.end()) { LOG(Awb, Warning) diff --git a/src/ipa/mali-c55/algorithms/lsc.cpp b/src/ipa/mali-c55/algorithms/lsc.cpp index 36e50163aecc..097239dcef3e 100644 --- a/src/ipa/mali-c55/algorithms/lsc.cpp +++ b/src/ipa/mali-c55/algorithms/lsc.cpp @@ -26,16 +26,15 @@ int Lsc::init([[maybe_unused]] IPAContext &context, const ValueNode &tuningData) meshScale_ = tuningData["meshScale"].get(0); - const ValueNode &yamlSets = tuningData["sets"]; - if (!yamlSets.isList()) { + const ValueNode &sets = tuningData["sets"]; + if (!sets.isList()) { LOG(MaliC55Lsc, Error) << "LSC tables missing or invalid"; return -EINVAL; } size_t tableSize = 0; - const auto &sets = yamlSets.asList(); - for (const auto &yamlSet : sets) { - uint32_t ct = yamlSet["ct"].get(0); + for (const auto &set : sets.asList()) { + uint32_t ct = set["ct"].get(0); if (!ct) { LOG(MaliC55Lsc, Error) << "Invalid colour temperature"; @@ -50,11 +49,11 @@ int Lsc::init([[maybe_unused]] IPAContext &context, const ValueNode &tuningData) } std::vector rTable = - yamlSet["r"].get>().value_or(utils::defopt); + set["r"].get>().value_or(utils::defopt); std::vector gTable = - yamlSet["g"].get>().value_or(utils::defopt); + set["g"].get>().value_or(utils::defopt); std::vector bTable = - yamlSet["b"].get>().value_or(utils::defopt); + set["b"].get>().value_or(utils::defopt); /* * Some validation to do; only 16x16 and 32x32 tables of diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp index 9bb9d943163f..aace46a8d094 100644 --- a/src/ipa/rkisp1/algorithms/agc.cpp +++ b/src/ipa/rkisp1/algorithms/agc.cpp @@ -142,8 +142,8 @@ int Agc::init(IPAContext &context, const ValueNode &tuningData) if (ret) return ret; - const ValueNode &yamlMeteringModes = tuningData["AeMeteringMode"]; - ret = parseMeteringModes(context, yamlMeteringModes); + const ValueNode &meteringModes = tuningData["AeMeteringMode"]; + ret = parseMeteringModes(context, meteringModes); if (ret) return ret; diff --git a/src/ipa/rkisp1/algorithms/lsc.cpp b/src/ipa/rkisp1/algorithms/lsc.cpp index 25f7c512b35c..a7e3ef8b2eb9 100644 --- a/src/ipa/rkisp1/algorithms/lsc.cpp +++ b/src/ipa/rkisp1/algorithms/lsc.cpp @@ -184,20 +184,19 @@ public: { } - int parseLscData(const ValueNode &yamlSets, + int parseLscData(const ValueNode &sets, LensShadingCorrection::ShadingDescriptorMap &lscData); private: Size sensorSize_; }; -int LscPolynomialLoader::parseLscData(const ValueNode &yamlSets, +int LscPolynomialLoader::parseLscData(const ValueNode &sets, LensShadingCorrection::ShadingDescriptorMap &lscData) { - const auto &sets = yamlSets.asList(); - for (const auto &yamlSet : sets) { + for (const auto &set : sets.asList()) { std::optional pr, pgr, pgb, pb; - uint32_t ct = yamlSet["ct"].get(0); + uint32_t ct = set["ct"].get(0); if (lscData.count(ct)) { LOG(RkISP1Lsc, Error) @@ -206,10 +205,10 @@ int LscPolynomialLoader::parseLscData(const ValueNode &yamlSets, return -EINVAL; } - pr = yamlSet["r"].get(); - pgr = yamlSet["gr"].get(); - pgb = yamlSet["gb"].get(); - pb = yamlSet["b"].get(); + pr = set["r"].get(); + pgr = set["gr"].get(); + pgb = set["gb"].get(); + pb = set["b"].get(); if (!(pr || pgr || pgb || pb)) { LOG(RkISP1Lsc, Error) @@ -261,7 +260,7 @@ private: class LscTableLoader { public: - int parseLscData(const ValueNode &yamlSets, + int parseLscData(const ValueNode &sets, LensShadingCorrection::ShadingDescriptorMap &lscData); private: @@ -269,13 +268,11 @@ private: const char *prop); }; -int LscTableLoader::parseLscData(const ValueNode &yamlSets, +int LscTableLoader::parseLscData(const ValueNode &sets, LensShadingCorrection::ShadingDescriptorMap &lscData) { - const auto &sets = yamlSets.asList(); - - for (const auto &yamlSet : sets) { - uint32_t ct = yamlSet["ct"].get(0); + for (const auto &set : sets.asList()) { + uint32_t ct = set["ct"].get(0); if (lscData.count(ct)) { LOG(RkISP1Lsc, Error) @@ -284,14 +281,14 @@ int LscTableLoader::parseLscData(const ValueNode &yamlSets, return -EINVAL; } - LensShadingCorrection::Components set; - set.r = parseTable(yamlSet, "r"); - set.gr = parseTable(yamlSet, "gr"); - set.gb = parseTable(yamlSet, "gb"); - set.b = parseTable(yamlSet, "b"); + LensShadingCorrection::Components components; + components.r = parseTable(set, "r"); + components.gr = parseTable(set, "gr"); + components.gb = parseTable(set, "gb"); + components.b = parseTable(set, "b"); - if (set.r.empty() || set.gr.empty() || - set.gb.empty() || set.b.empty()) { + if (components.r.empty() || components.gr.empty() || + components.gb.empty() || components.b.empty()) { LOG(RkISP1Lsc, Error) << "Set for color temperature " << ct << " is missing tables"; @@ -299,7 +296,7 @@ int LscTableLoader::parseLscData(const ValueNode &yamlSets, } lscData.emplace( - ct, std::make_unique(std::move(set))); + ct, std::make_unique(std::move(components))); } if (lscData.empty()) { @@ -384,8 +381,8 @@ int LensShadingCorrection::init([[maybe_unused]] IPAContext &context, return -EINVAL; /* Get all defined sets to apply. */ - const ValueNode &yamlSets = tuningData["sets"]; - if (!yamlSets.isList()) { + const ValueNode &sets = tuningData["sets"]; + if (!sets.isList()) { LOG(RkISP1Lsc, Error) << "'sets' parameter not found in tuning file"; return -EINVAL; @@ -398,7 +395,7 @@ int LensShadingCorrection::init([[maybe_unused]] IPAContext &context, if (type == "table") { LOG(RkISP1Lsc, Debug) << "Loading tabular LSC data."; auto loader = LscTableLoader(); - ret = loader.parseLscData(yamlSets, lscData); + ret = loader.parseLscData(sets, lscData); } else if (type == "polynomial") { LOG(RkISP1Lsc, Debug) << "Loading polynomial LSC data."; /* @@ -406,7 +403,7 @@ int LensShadingCorrection::init([[maybe_unused]] IPAContext &context, * Let's wait how the internal discussions progress. */ auto loader = LscPolynomialLoader(context.sensorInfo.activeAreaSize); - ret = loader.parseLscData(yamlSets, lscData); + ret = loader.parseLscData(sets, lscData); } else { LOG(RkISP1Lsc, Error) << "Unsupported LSC data type '" << type << "'"; diff --git a/src/ipa/rpi/controller/rpi/agc_channel.cpp b/src/ipa/rpi/controller/rpi/agc_channel.cpp index c9462eed850e..1f7cd0842321 100644 --- a/src/ipa/rpi/controller/rpi/agc_channel.cpp +++ b/src/ipa/rpi/controller/rpi/agc_channel.cpp @@ -31,9 +31,7 @@ LOG_DECLARE_CATEGORY(RPiAgc) int AgcMeteringMode::read(const libcamera::ValueNode ¶ms) { - const ValueNode &yamlWeights = params["weights"]; - - for (const auto &p : yamlWeights.asList()) { + for (const auto &p : params["weights"].asList()) { auto value = p.get(); if (!value) return -EINVAL;