From d9927380ed7c8366f762049be9f3fee225860833 Mon Sep 17 00:00:00 2001 From: liyujie <2352380935@qq.com> Date: Thu, 28 Aug 2025 12:04:16 +0000 Subject: [PATCH] [2/4]解决USB摄像头打开相机预览界面绿屏 --- android/hardware/aw/camera/3_4/allwinnertech/libAWIspApi/libisp_new/isp_manage/isp_manage.c | 59 +++++++++++++++++++++++++++-------------------------------- 1 files changed, 27 insertions(+), 32 deletions(-) diff --git a/android/hardware/aw/camera/3_4/allwinnertech/libAWIspApi/libisp_new/isp_manage/isp_manage.c b/android/hardware/aw/camera/3_4/allwinnertech/libAWIspApi/libisp_new/isp_manage/isp_manage.c index 41d040e..b8b8449 100755 --- a/android/hardware/aw/camera/3_4/allwinnertech/libAWIspApi/libisp_new/isp_manage/isp_manage.c +++ b/android/hardware/aw/camera/3_4/allwinnertech/libAWIspApi/libisp_new/isp_manage/isp_manage.c @@ -23,7 +23,8 @@ #include "isp_otp_golden.h" -unsigned int isp_lib_log_param = 0;//0xffffffff; +unsigned int isp_manage_lib_log_param = 0;//0xffffffff; +unsigned int msc_update_sel; void isp_get_saved_regs(struct isp_lib_context *isp_gen) { @@ -137,8 +138,7 @@ isp_gen->rolloff_entity_ctx.rolloff_param->rolloff_frame_id = isp_gen->af_frame_cnt; //rolloff_sensor_info. isp_gen->rolloff_entity_ctx.rolloff_param->rolloff_sensor_info = isp_gen->sensor_info; - //rolloff lsc_cfg. - isp_gen->rolloff_entity_ctx.rolloff_param->lsc_cfg = isp_gen->module_cfg.lens_cfg.lsc_cfg; + isp_gen->rolloff_entity_ctx.rolloff_param->rolloff_ctrl = isp_gen->alsc_settings; } void __isp_rolloff_run(struct isp_lib_context *isp_gen) @@ -149,22 +149,6 @@ isp_rolloff_cxt->ops->isp_rolloff_run(isp_rolloff_cxt->rolloff_entity, &isp_rolloff_cxt->rolloff_stats, &isp_rolloff_cxt->rolloff_result); - - if (!isp_gen->isp_ini_cfg.isp_test_settings.wdr_en) { - for (i = 0; i < 256; i++) - { - lens_tbl[4*i + 0] = isp_rolloff_cxt->rolloff_result.lens_table_output[i + 0]; - lens_tbl[4*i + 1] = isp_rolloff_cxt->rolloff_result.lens_table_output[i + 256]; - lens_tbl[4*i + 2] = isp_rolloff_cxt->rolloff_result.lens_table_output[i + 512]; - } - } else { - for (i = 0; i < 256; i++) - { - lens_tbl[4*i + 0] = (unsigned short)sqrt((double)isp_rolloff_cxt->rolloff_result.lens_table_output[i + 0] * 1024); - lens_tbl[4*i + 1] = (unsigned short)sqrt((double)isp_rolloff_cxt->rolloff_result.lens_table_output[i + 256] * 1024); - lens_tbl[4*i + 2] = (unsigned short)sqrt((double)isp_rolloff_cxt->rolloff_result.lens_table_output[i + 512] * 1024); - } - } } void __isp_afs_set_params(struct isp_lib_context *isp_gen) @@ -237,6 +221,7 @@ { isp_gen->awb_entity_ctx.awb_param->awb_frame_id = isp_gen->awb_frame_cnt; isp_gen->awb_entity_ctx.awb_param->awb_ctrl = isp_gen->awb_settings; + isp_gen->awb_entity_ctx.awb_param->awb_isp_id = isp_gen->isp_id; //sensor info. isp_gen->awb_entity_ctx.awb_param->awb_sensor_info = isp_gen->sensor_info; } @@ -458,6 +443,16 @@ isp_gen->stats_ctx.wb_gain_saved.gb_gain = 256; isp_gen->stats_ctx.wb_gain_saved.b_gain = 256; + //alsc settings + isp_gen->alsc_settings.frequency = 6; + isp_gen->alsc_settings.start = isp_gen->alsc_settings.frequency * 5; + isp_gen->alsc_settings.smooth_pool_size = 16; + isp_gen->alsc_settings.th_tableSwitch = 2; + isp_gen->alsc_settings.th_lowLight = 35; + isp_gen->alsc_settings.th_complex = 563; + isp_gen->alsc_settings.th_highSat = 645; + isp_gen->alsc_settings.th_semiFlat = 46; + //dynamic judge dynamic_stats->enable = 0; @@ -564,7 +559,7 @@ mod_cfg->module_enable_flag |= ISP_FEATURES_MODE; - isp_lib_log_param = param->isp_test_settings.isp_log_param; + isp_manage_lib_log_param = param->isp_test_settings.isp_log_param; return 0; } @@ -1537,20 +1532,21 @@ HW_S32 __isp_ctx_update_rolloff_cfg(struct isp_lib_context *isp_gen) { + int m; + if (!isp_gen->rolloff_entity_ctx.rolloff_param) { return -1; } //rolloff_sensor_info. isp_gen->rolloff_entity_ctx.rolloff_param->rolloff_sensor_info = isp_gen->sensor_info; - //rolloff_ini_cfg. - memcpy(&isp_gen->rolloff_entity_ctx.rolloff_param->rolloff_ini.lens_table_ini[0], - &isp_gen->isp_ini_cfg.isp_tunning_settings.lsc_tbl[0][3], 768*sizeof(unsigned short)); - isp_gen->rolloff_entity_ctx.rolloff_param->rolloff_ini.rolloff_ratio = isp_gen->isp_ini_cfg.isp_tunning_settings.rolloff_ratio; - isp_rolloff_set_params_helper(&isp_gen->rolloff_entity_ctx, ISP_ROLLOFF_INI_DATA); - //rolloff lsc_cfg. - isp_gen->rolloff_entity_ctx.rolloff_param->lsc_cfg = isp_gen->module_cfg.lens_cfg.lsc_cfg; + for (m = 0; m < 11 * ROLLOFF_WIN_SIZE; m++) { + isp_gen->rolloff_entity_ctx.rolloff_param->rolloff_ini.Rgain[m] + = isp_gen->isp_ini_cfg.isp_tunning_settings.msc_tbl[(m / ROLLOFF_WIN_SIZE) + 1][m % ROLLOFF_WIN_SIZE]; + } + + isp_rolloff_set_params_helper(&isp_gen->rolloff_entity_ctx, ISP_ROLLOFF_INI_DATA); return 0; } @@ -1809,16 +1805,15 @@ __isp_awb_run(isp_gen); if (isp_gen->isp_ini_cfg.isp_test_settings.lsc_en) { -#if ISP_LIB_USE_ROLLOFF - __isp_rolloff_set_params(isp_gen); - __isp_rolloff_run(isp_gen); -#else config_lens_table(isp_gen, isp_gen->af_entity_ctx.af_result.std_code_output); -#endif } #if (ISP_VERSION >= 521) if (isp_gen->isp_ini_cfg.isp_test_settings.msc_en) { + if (isp_gen->isp_ini_cfg.isp_tunning_settings.mff_mod >= 3) { + __isp_rolloff_set_params(isp_gen); + __isp_rolloff_run(isp_gen); + } config_msc_table(isp_gen, isp_gen->af_entity_ctx.af_result.std_code_output); } #endif -- Gitblit v1.6.2