summaryrefslogtreecommitdiff
path: root/src/ipa/libipa/ipa_interface_wrapper.cpp
diff options
context:
space:
mode:
authorNiklas Söderlund <niklas.soderlund@ragnatech.se>2020-08-06 14:36:23 +0200
committerNiklas Söderlund <niklas.soderlund@ragnatech.se>2020-08-16 13:50:03 +0200
commit0b9d8eb265a16a0dda650700759066b714f8fd0c (patch)
tree16ef4c028aa85cfbebeac4f8964e9f631293e4cb /src/ipa/libipa/ipa_interface_wrapper.cpp
parentef5f5c4db05e5d88d58b0d565f7716c59751b991 (diff)
libcamera: pipeline_handler: Mark controls() and properties() as const operations
Reading the controls and properties does not modify the pipeline's state and can be marked as const operations. Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/ipa/libipa/ipa_interface_wrapper.cpp')
0 files changed, 0 insertions, 0 deletions
namespace libcamera { namespace ipa::rkisp1::algorithms { /** * \class BlackLevelCorrection * \brief RkISP1 Black Level Correction control * * The pixels output by the camera normally include a black level, because * sensors do not always report a signal level of '0' for black. Pixels at or * below this level should be considered black. To achieve that, the RkISP BLC * algorithm subtracts a configurable offset from all pixels. * * The black level can be measured at runtime from an optical dark region of the * camera sensor, or measured during the camera tuning process. The first option * isn't currently supported. */ LOG_DEFINE_CATEGORY(RkISP1Blc) BlackLevelCorrection::BlackLevelCorrection() : tuningParameters_(false) { } /** * \copydoc libcamera::ipa::Algorithm::init */ int BlackLevelCorrection::init([[maybe_unused]] IPAContext &context, const YamlObject &tuningData) { blackLevelRed_ = tuningData["R"].get<int16_t>(256); blackLevelGreenR_ = tuningData["Gr"].get<int16_t>(256); blackLevelGreenB_ = tuningData["Gb"].get<int16_t>(256); blackLevelBlue_ = tuningData["B"].get<int16_t>(256); tuningParameters_ = true; LOG(RkISP1Blc, Debug) << "Black levels: red " << blackLevelRed_ << ", green (red) " << blackLevelGreenR_ << ", green (blue) " << blackLevelGreenB_ << ", blue " << blackLevelBlue_; return 0; } /** * \copydoc libcamera::ipa::Algorithm::prepare */ void BlackLevelCorrection::prepare(IPAContext &context, rkisp1_params_cfg *params) { if (context.frameContext.frameCount > 0) return; if (!tuningParameters_) return; params->others.bls_config.enable_auto = 0; params->others.bls_config.fixed_val.r = blackLevelRed_; params->others.bls_config.fixed_val.gr = blackLevelGreenR_; params->others.bls_config.fixed_val.gb = blackLevelGreenB_; params->others.bls_config.fixed_val.b = blackLevelBlue_; params->module_en_update |= RKISP1_CIF_ISP_MODULE_BLS; params->module_ens |= RKISP1_CIF_ISP_MODULE_BLS; params->module_cfg_update |= RKISP1_CIF_ISP_MODULE_BLS; } REGISTER_IPA_ALGORITHM(BlackLevelCorrection, "BlackLevelCorrection") } /* namespace ipa::rkisp1::algorithms */ } /* namespace libcamera */