From 3be486b2580503b23b4ca82d874dbb3c21d3a8b1 Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 15 Jan 2024 17:30:03 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9p+v=20pwm=E5=88=86=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cardv/SrcCode/UIApp/MovieFast/MovieFast.c | 80 +++++++++++++++++-- 1 file changed, 72 insertions(+), 8 deletions(-) diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c index cd9c1df6d..1b8fa5b39 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c @@ -1929,8 +1929,6 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) vos_task_resume(g_moviefast_raw_tsk_id); } - vos_flag_set(MOVIEFAST_FLG_ID, FLGMOVIEFAST_RECSTART); - vos_perf_mark(&t1); #if 1 @@ -1942,7 +1940,15 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) UINT32 yuv_size = 0; HD_PATH_ID alg_path = ImageApp_MovieMulti_GetAlgDataPort(_CFG_REC_ID_1, _CFG_ALG_PATH3); UINT32 max_cnt , duration; - + vos_perf_mark(&t2); + #if HUNTING_CAMERA_MCU == ENABLE + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + UINT32 led_delay = 170; + BOOL led_flag = FALSE; + BOOL ViewPullFlag = TRUE; + UINT32 period = 0; + VOS_TICK t3, t4; + #endif MovieFast_fdt_get_info(&fdt_info); if(MovieFast_fdt_get_tmp_buf(&fdt_info, &tmp_buf, &tmp_buf_size) != E_OK){ @@ -1958,6 +1964,8 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) yuv_size = VDO_YUV_BUFSIZE(sensor_info->sSize.w, sensor_info->sSize.h , HD_VIDEO_PXLFMT_YUV420); do { + vos_perf_mark(&t3); + if((tmp_buf + yuv_size) > (tmp_buf + tmp_buf_size)){ DBG_ERR("tmp buffer overflow!!\n"); goto EXIT; @@ -1980,7 +1988,15 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) tmp_buf += yuv_size; hd_videoproc_release_out_buf(alg_path, &frame_capture); + #if HUNTING_CAMERA_MCU == ENABLE sf_set_date_time_make_ymdhms(); + + led_flag = FALSE; + ViewPullFlag = TRUE; + if((SF_MULTISHOT_INTEVEL_0S != puiPara->MultiShotIntevel) && (sf_is_night_mode(0) ==TRUE)){ + sf_ir_led_set(0, 0, 0, 0); + } + #endif if(++cnt >= max_cnt) break; vos_perf_mark(&t2); @@ -1990,20 +2006,68 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) DBG_ERR("failed timeout\n"); goto EXIT; } - vos_util_delay_ms(duration); - } while(1); +#if HUNTING_CAMERA_MCU == ENABLE + while(ViewPullFlag) { + + if(TRUE == flow_preview_get_stop_flag()){ + DBG_WRN("detected stop signal, power off ...\n"); + goto EXIT; + } + vos_perf_mark(&t4); + + period = vos_perf_duration(t3, t4) / 1000; + + /************************************************** + * IR LED , 60 fps, 16.66 = 17 + **************************************************/ + + if((period >= duration) ||((duration - period) <= (led_delay + 17)) + ){ + if((SF_MULTISHOT_INTEVEL_0S != puiPara->MultiShotIntevel) && (FALSE == led_flag) && (sf_is_night_mode(0) ==TRUE)){ + led_flag = TRUE; + sf_ir_led_set(((2 == puiPara->NightMode) ? 2 : 1),puiPara->FlashLed, puiPara->NightMode,0); + } + + } + + if(period >= (duration - 17)) + { + ViewPullFlag = FALSE; + break; + } + else + { + vos_util_delay_ms(5); + continue; + } + } +#endif + + } while(TRUE != flow_preview_get_stop_flag()); #endif vos_perf_mark(&t2); + #if HUNTING_CAMERA_MCU == ENABLE + if(sf_is_night_mode(0) ==TRUE) + { + if((SF_MULTISHOT_INTEVEL_0S == puiPara->MultiShotIntevel)){ + sf_ir_led_set(0, 0, 0, 0); + } + sf_ir_led_set(((2 == puiPara->NightMode) ? 2 : 1),puiPara->FlashLed, puiPara->NightMode, 1); + } + #endif + + vos_flag_set(MOVIEFAST_FLG_ID, FLGMOVIEFAST_RECSTART); #if FIX_RECORD_NOISE == ENABLE - UINT32 elapse_time_ms = ((t2 - t1) / 1000); + // UINT32 elapse_time_ms = ((t2 - t1) / 1000); CHKPNT; - if(elapse_time_ms < 300) - vos_util_delay_ms(300 - elapse_time_ms); + vos_util_delay_ms(300); + // if(elapse_time_ms < 300) + // vos_util_delay_ms(300 - elapse_time_ms); ImageApp_MovieMulti_SetParam(0, MOVIEMULTI_PARAM_AUD_MUTE_ENC, FALSE); #endif