1.修改p+v pwm分离

This commit is contained in:
payton 2024-01-15 17:30:03 +08:00
parent b556a492c5
commit 3be486b258

View File

@ -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