diff options
Diffstat (limited to 'src/ipa/rkisp1/algorithms/gsl.cpp')
-rw-r--r-- | src/ipa/rkisp1/algorithms/gsl.cpp | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/ipa/rkisp1/algorithms/gsl.cpp b/src/ipa/rkisp1/algorithms/gsl.cpp index 9b056c6e..169fada2 100644 --- a/src/ipa/rkisp1/algorithms/gsl.cpp +++ b/src/ipa/rkisp1/algorithms/gsl.cpp @@ -119,24 +119,25 @@ int GammaSensorLinearization::init([[maybe_unused]] IPAContext &context, void GammaSensorLinearization::prepare([[maybe_unused]] IPAContext &context, const uint32_t frame, [[maybe_unused]] IPAFrameContext &frameContext, - rkisp1_params_cfg *params) + rkisp1_ext_params_block_header *hdr) { if (frame > 0) return; - params->others.sdg_config.xa_pnts.gamma_dx0 = gammaDx_[0]; - params->others.sdg_config.xa_pnts.gamma_dx1 = gammaDx_[1]; + struct rkisp1_ext_params_sdg_config *sdg = + reinterpret_cast<rkisp1_ext_params_sdg_config *>(hdr); - std::copy(curveYr_.begin(), curveYr_.end(), - params->others.sdg_config.curve_r.gamma_y); - std::copy(curveYg_.begin(), curveYg_.end(), - params->others.sdg_config.curve_g.gamma_y); - std::copy(curveYb_.begin(), curveYb_.end(), - params->others.sdg_config.curve_b.gamma_y); + sdg->header.type = RKISP1_EXT_PARAMS_BLOCK_TYPE_SDG; + sdg->header.enable = RKISP1_EXT_PARAMS_BLOCK_ENABLE; + sdg->header.size = sizeof(rkisp1_ext_params_sdg_config); - params->module_en_update |= RKISP1_CIF_ISP_MODULE_SDG; - params->module_ens |= RKISP1_CIF_ISP_MODULE_SDG; - params->module_cfg_update |= RKISP1_CIF_ISP_MODULE_SDG; + struct rkisp1_cif_isp_sdg_config &sdg_config = sdg->sdg_config; + sdg_config.xa_pnts.gamma_dx0 = gammaDx_[0]; + sdg_config.xa_pnts.gamma_dx1 = gammaDx_[1]; + + std::copy(curveYr_.begin(), curveYr_.end(), sdg_config.curve_r.gamma_y); + std::copy(curveYg_.begin(), curveYg_.end(), sdg_config.curve_g.gamma_y); + std::copy(curveYb_.begin(), curveYb_.end(), sdg_config.curve_b.gamma_y); } REGISTER_IPA_ALGORITHM(GammaSensorLinearization, "GammaSensorLinearization") |