/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* * Copyright (C) 2025 Vasiliy Doylov * * Debayer statistic controls */ #include "stat.h" #include #include #include "control_ids.h" namespace libcamera { LOG_DEFINE_CATEGORY(IPASoftStatistic) namespace ipa::soft::algorithms { Stat::Stat() { } int Stat::init(IPAContext &context, [[maybe_unused]] const YamlObject &tuningData) { context.ctrlMap[&controls::DebugMetadataEnable] = ControlInfo(false, true, true); return 0; } int Stat::configure(IPAContext &context, [[maybe_unused]] const IPAConfigInfo &configInfo) { context.activeState.knobs.stats_enabled = std::optional(); return 0; } void Stat::queueRequest([[maybe_unused]] typename Module::Context &context, [[maybe_unused]] const uint32_t frame, [[maybe_unused]] typename Module::FrameContext &frameContext, const ControlList &controls) { const auto &stats_enabled = controls.get(controls::DebugMetadataEnable); if (stats_enabled.has_value()) { context.activeState.knobs.stats_enabled = stats_enabled; LOG(IPASoftStatistic, Debug) << "Setting debayer enabled to " << stats_enabled.value(); } } void Stat::prepare([[maybe_unused]]IPAContext &context, [[maybe_unused]] const uint32_t frame, [[maybe_unused]]IPAFrameContext &frameContext, [[maybe_unused]] DebayerParams *params) { params->collect_stats = context.activeState.knobs.stats_enabled.value_or(true); } REGISTER_IPA_ALGORITHM(Stat, "Stat") } /* namespace ipa::soft::algorithms */ } /* namespace libcamera */