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 30f360ca3..9e5b7ca90 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c @@ -1314,10 +1314,23 @@ static void MovieFast_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT3 #if 0 case MOVIE_USER_CB_EVENT_REC_ONE_SECOND: { u32Cnt++; - //DBG_DUMP("%s: u32Cnt=%d\r\n", __func__, u32Cnt); - if (u32Cnt == 10) { - u32Cnt = 0; - vos_flag_set(MOVIEFAST_FLG_ID, FLGMOVIEFAST_SHUTDOWN); + DBG_DUMP("%s: u32Cnt=%d\r\n", __func__, u32Cnt); + if (u32Cnt == 4) { + //u32Cnt = 0; + //vos_flag_set(MOVIEFAST_FLG_ID, FLGMOVIEFAST_SHUTDOWN); + sf_ir_led_set(((2 == puiPara->NightMode) ? 2 : 1),puiPara->FlashLed, puiPara->NightMode,0); + } + if (u32Cnt == 2) { + sf_ir_led_set(0, 0, 0, 0); + } + if (u32Cnt == 6) { + sf_ir_led_set(0, 0, 0, 0); + } + + if (u32Cnt == 8) { + //u32Cnt = 0; + //vos_flag_set(MOVIEFAST_FLG_ID, FLGMOVIEFAST_SHUTDOWN); + sf_ir_led_set(((2 == puiPara->NightMode) ? 2 : 1),puiPara->FlashLed, puiPara->NightMode,0); } } break; @@ -2082,7 +2095,7 @@ DBG_WRN(">>>>>>>>>>>>>>> movie thread <<<<<<<<<<\r\n"); vos_perf_mark(&g_alg_start_time); do { - if(vcap_frm_cnt > 2 && ae_preset_flag == FALSE){ + if(vcap_frm_cnt > 5 && ae_preset_flag == FALSE){ extern AET_STATUS_INFO ae_status; memset(&ae_status, 0, sizeof(AET_STATUS_INFO)); vendor_isp_get_ae(AET_ITEM_STATUS, &ae_status); @@ -2157,7 +2170,7 @@ DBG_WRN(">>>>>>>>>>>>>>> movie thread <<<<<<<<<<\r\n"); // nvt_cmdsys_runcmd("awb dbg 0 0"); vos_perf_mark(&g_alg_end_time); } - vos_util_delay_ms(100); + //vos_util_delay_ms(33); // if ((g_moviefast_power_off_tsk_id = vos_task_create(MovieFast_PowerOffTsk, 0, "MovieFastPwrTsk", PRI_MOVIEFAST_CMDTSK, STKSIZE_MOVIEFAST_CMDTSK)) == 0) { // DBG_ERR("MovieFast_PowerOffTsk create failed.\r\n"); @@ -2231,11 +2244,11 @@ DBG_WRN(">>>>>>>>>>>>>>> movie thread <<<<<<<<<<\r\n"); DBG_DUMP("tmp_buf = %lx , frame.phy_addr[0] = %lx , copy size = %lx\n", tmp_buf, frame_capture.phy_addr[0], yuv_size); - +/* memcpy((void*)(tmp_buf), (void*)frame_capture.phy_addr[0], yuv_size); tmp_buf += yuv_size; - +*/ hd_videoproc_release_out_buf(alg_path, &frame_capture); #if HUNTING_CAMERA_MCU == ENABLE sf_set_date_time_make_ymdhms(); @@ -2246,8 +2259,8 @@ DBG_WRN(">>>>>>>>>>>>>>> movie thread <<<<<<<<<<\r\n"); sf_ir_led_set(0, 0, 0, 0); } #endif - if(++cnt >= max_cnt) - break; + //if(++cnt >= max_cnt) + // break; vos_perf_mark(&t2); if((vos_perf_duration(t1, t2) / 1000) > (20*1000)) { @@ -2292,7 +2305,34 @@ DBG_WRN(">>>>>>>>>>>>>>> movie thread <<<<<<<<<<\r\n"); } } #endif - +#if 1 + if((tmp_buf + yuv_size) > (tmp_buf + tmp_buf_size)){ + DBG_ERR("tmp buffer overflow!!\n"); + goto EXIT; + } + + if(cnt == 0){ + g_vprc_trigger_frm_time = frame_capture.timestamp; + g_vprc_trigger_frm_count = frame_capture.count; + DBG_DUMP("Trigger speed = %lu\n", g_vprc_trigger_frm_time / 1000); + } + else{ + hd_videoproc_pull_out_buf(alg_path, &frame_capture, -1); + } + + DBG_DUMP("tmp_buf = %lx , frame.phy_addr[0] = %lx , copy size = %lx\n", + tmp_buf, frame_capture.phy_addr[0], yuv_size); + if(cnt>0) + { + memcpy((void*)(tmp_buf), (void*)frame_capture.phy_addr[0], yuv_size); + + tmp_buf += yuv_size; + } + hd_videoproc_release_out_buf(alg_path, &frame_capture); + cnt++; + if(cnt > max_cnt) + break; +#endif } while(TRUE != flow_preview_get_stop_flag()); #endif @@ -2300,9 +2340,10 @@ DBG_WRN(">>>>>>>>>>>>>>> movie thread <<<<<<<<<<\r\n"); #if HUNTING_CAMERA_MCU == ENABLE if(sf_is_night_mode(0) ==TRUE) { - if((SF_MULTISHOT_INTEVEL_0S == puiPara->MultiShotIntevel)){ + DBG_ERR(">>>>>>>>>>>>>>>>>>>>>night mode<<<<<<<<<<<<<\r\n"); + /*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