1.同步P+V IQ和修改卡机问题
This commit is contained in:
parent
2ecffd7895
commit
8ef3f67b2b
|
@ -98,6 +98,7 @@ static lfqueue_t write_queue = {0};
|
||||||
#define MOVIE_THUMB_WIDTH 640
|
#define MOVIE_THUMB_WIDTH 640
|
||||||
#define PRI_MOVIEFAST_CMDTSK 11
|
#define PRI_MOVIEFAST_CMDTSK 11
|
||||||
#define STKSIZE_MOVIEFAST_CMDTSK 8192
|
#define STKSIZE_MOVIEFAST_CMDTSK 8192
|
||||||
|
#define MOVIEFAST_REC_SEC 10
|
||||||
|
|
||||||
//local variable
|
//local variable
|
||||||
static DCF_HANDLE g_dcf_hdl = 0;
|
static DCF_HANDLE g_dcf_hdl = 0;
|
||||||
|
@ -285,20 +286,19 @@ static void MovieFast_ShutDown(void)
|
||||||
#if POWERON_BOOT_REPORT == ENABLE
|
#if POWERON_BOOT_REPORT == ENABLE
|
||||||
|
|
||||||
DBG_DUMP("PhotoMovie mode = %u\n", mode);
|
DBG_DUMP("PhotoMovie mode = %u\n", mode);
|
||||||
VOS_TICK tick;
|
|
||||||
|
|
||||||
PhotoFast_GetTick(g_vprc_trigger_frm_count, &tick);
|
|
||||||
|
|
||||||
DBG_DUMP("\n\n**********************************************************\n"
|
|
||||||
" Trigger Speed(vcap frame count = %lu) : %lu us alg_start_time = %lu g_alg_end_time = %lu, perf tick = %lu us\n"
|
|
||||||
"**********************************************************\n",
|
|
||||||
g_vprc_trigger_frm_count, g_vprc_trigger_frm_time, g_alg_start_time, g_alg_end_time, tick);
|
|
||||||
|
|
||||||
vos_perf_list_dump();
|
|
||||||
|
|
||||||
if(mode == DX_HUNTING_MODE_PHOTO_MOVIE){
|
if(mode == DX_HUNTING_MODE_PHOTO_MOVIE){
|
||||||
MovieFast_PV_Info_Dump();
|
MovieFast_PV_Info_Dump();
|
||||||
}
|
}
|
||||||
|
else if(mode == DX_HUNTING_MODE_MOVIE2){
|
||||||
|
|
||||||
|
DBG_DUMP("\n\n**********************************************************\n"
|
||||||
|
" Trigger Speed(vcap frame count = %lu) : %lu us alg_start_time = %lu us g_alg_end_time = %lu us\n"
|
||||||
|
"**********************************************************\n",
|
||||||
|
g_vprc_trigger_frm_count, g_vprc_trigger_frm_time, g_alg_start_time, g_alg_end_time);
|
||||||
|
}
|
||||||
|
|
||||||
|
vos_perf_list_dump();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -308,7 +308,16 @@ static void MovieFast_ShutDown(void)
|
||||||
#endif
|
#endif
|
||||||
sf_file_thumb_cfg_sava();
|
sf_file_thumb_cfg_sava();
|
||||||
sf_para_print();
|
sf_para_print();
|
||||||
DBG_DUMP("wait filesys close ...\n");
|
#if (LOGFILE_FUNC==ENABLE)
|
||||||
|
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||||
|
if(puiPara->DebugMode)
|
||||||
|
{
|
||||||
|
DBG_DUMP("LogFile_Close ...\n");
|
||||||
|
LogFile_Suspend();
|
||||||
|
LogFile_Close();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
//DBG_DUMP("wait filesys close ...\n");
|
||||||
FileSys_Close(FST_TIME_INFINITE);
|
FileSys_Close(FST_TIME_INFINITE);
|
||||||
#if SF_IQ_TEST != ENABLE
|
#if SF_IQ_TEST != ENABLE
|
||||||
if(sf_get_power_off_flag()){
|
if(sf_get_power_off_flag()){
|
||||||
|
@ -332,19 +341,18 @@ static void MovieFast_ShutDown(void)
|
||||||
|
|
||||||
#if POWERON_BOOT_REPORT == ENABLE
|
#if POWERON_BOOT_REPORT == ENABLE
|
||||||
|
|
||||||
VOS_TICK tick;
|
|
||||||
|
|
||||||
PhotoFast_GetTick(g_vprc_trigger_frm_count, &tick);
|
|
||||||
|
|
||||||
DBG_DUMP("\n\n**********************************************************\n"
|
|
||||||
" Trigger Speed(vcap frame count = %lu) : %lu us alg_start_time = %lu g_alg_end_time = %lu, perf tick = %lu us\n"
|
|
||||||
"**********************************************************\n",
|
|
||||||
g_vprc_trigger_frm_count, g_vprc_trigger_frm_time, g_alg_start_time, g_alg_end_time, tick);
|
|
||||||
|
|
||||||
vos_perf_list_dump();
|
|
||||||
if(mode == DX_HUNTING_MODE_PHOTO_MOVIE){
|
if(mode == DX_HUNTING_MODE_PHOTO_MOVIE){
|
||||||
MovieFast_PV_Info_Dump();
|
MovieFast_PV_Info_Dump();
|
||||||
}
|
}
|
||||||
|
else if(mode == DX_HUNTING_MODE_MOVIE2){
|
||||||
|
|
||||||
|
DBG_DUMP("\n\n**********************************************************\n"
|
||||||
|
" Trigger Speed(vcap frame count = %lu) : %lu us alg_start_time = %lu us g_alg_end_time = %lu us\n"
|
||||||
|
"**********************************************************\n",
|
||||||
|
g_vprc_trigger_frm_count, g_vprc_trigger_frm_time, g_alg_start_time, g_alg_end_time);
|
||||||
|
}
|
||||||
|
|
||||||
|
vos_perf_list_dump();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -772,11 +780,11 @@ static void MovieFast_OnRecStart(void)
|
||||||
//ImageApp_MovieMulti_RecStart(gMovie_Clone_Info[i].rec_id);
|
//ImageApp_MovieMulti_RecStart(gMovie_Clone_Info[i].rec_id);
|
||||||
|
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
ImageApp_MovieMulti_SetParam(gMovie_Clone_Info[i].rec_id, MOVIEMULTI_PARAM_FILE_SEAMLESSSEC, puiPara->VideoLenth);
|
ImageApp_MovieMulti_SetParam(gMovie_Clone_Info[i].rec_id, MOVIEMULTI_PARAM_FILE_SEAMLESSSEC, puiPara->VideoLenth + 1);
|
||||||
ImageApp_MovieMulti_TrigOnce(gMovie_Clone_Info[i].rec_id, puiPara->VideoLenth);
|
ImageApp_MovieMulti_TrigOnce(gMovie_Clone_Info[i].rec_id, puiPara->VideoLenth);
|
||||||
#else
|
#else
|
||||||
ImageApp_MovieMulti_SetParam(gMovie_Clone_Info[i].rec_id, MOVIEMULTI_PARAM_FILE_SEAMLESSSEC, 10);
|
ImageApp_MovieMulti_SetParam(gMovie_Clone_Info[i].rec_id, MOVIEMULTI_PARAM_FILE_SEAMLESSSEC, MOVIEFAST_REC_SEC + 1);
|
||||||
ImageApp_MovieMulti_TrigOnce(gMovie_Clone_Info[i].rec_id, 10);
|
ImageApp_MovieMulti_TrigOnce(gMovie_Clone_Info[i].rec_id, MOVIEFAST_REC_SEC);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -786,12 +794,13 @@ static void MovieFast_OnRecStart(void)
|
||||||
ImageApp_MovieMulti_SetParam(gMovie_Rec_Info[i].rec_id, MOVIEMULTI_PARAM_FILE_BUFRESSEC, uifile_buffer_reserved_sec);
|
ImageApp_MovieMulti_SetParam(gMovie_Rec_Info[i].rec_id, MOVIEMULTI_PARAM_FILE_BUFRESSEC, uifile_buffer_reserved_sec);
|
||||||
//ImageApp_MovieMulti_RecStart(gMovie_Rec_Info[i].rec_id);
|
//ImageApp_MovieMulti_RecStart(gMovie_Rec_Info[i].rec_id);
|
||||||
|
|
||||||
|
vos_perf_list_mark("trig once", __LINE__, 0);
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
ImageApp_MovieMulti_SetParam(gMovie_Rec_Info[i].rec_id, MOVIEMULTI_PARAM_FILE_SEAMLESSSEC, puiPara->VideoLenth);
|
ImageApp_MovieMulti_SetParam(gMovie_Rec_Info[i].rec_id, MOVIEMULTI_PARAM_FILE_SEAMLESSSEC, puiPara->VideoLenth + 1);
|
||||||
ImageApp_MovieMulti_TrigOnce(gMovie_Rec_Info[i].rec_id, puiPara->VideoLenth);
|
ImageApp_MovieMulti_TrigOnce(gMovie_Rec_Info[i].rec_id, puiPara->VideoLenth);
|
||||||
#else
|
#else
|
||||||
ImageApp_MovieMulti_SetParam(gMovie_Rec_Info[i].rec_id, MOVIEMULTI_PARAM_FILE_SEAMLESSSEC, 10);
|
ImageApp_MovieMulti_SetParam(gMovie_Rec_Info[i].rec_id, MOVIEMULTI_PARAM_FILE_SEAMLESSSEC, MOVIEFAST_REC_SEC + 1);
|
||||||
ImageApp_MovieMulti_TrigOnce(gMovie_Rec_Info[i].rec_id, 10);
|
ImageApp_MovieMulti_TrigOnce(gMovie_Rec_Info[i].rec_id, MOVIEFAST_REC_SEC);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -897,10 +906,11 @@ static void MovieFast_Manual_Raw_Task(void* arg)
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = hd_videoproc_push_in_buf(vprc_path, &frame, NULL, PHOTOFAST_HD_PUSH_PULL_TIMEOUT_MS);
|
ret = hd_videoproc_push_in_buf(vprc_path, &frame, NULL, PHOTOFAST_HD_PUSH_PULL_TIMEOUT_MS);
|
||||||
if(ret != HD_OK){
|
/* exposure time might quicker than ipp capability , ignore overrun err */
|
||||||
|
if(ret != HD_OK && ret != HD_ERR_OVERRUN){
|
||||||
DBG_ERR("hd_videoproc_push_in_buf failed!(%d)\n", ret);
|
DBG_ERR("hd_videoproc_push_in_buf failed!(%d)\n", ret);
|
||||||
hd_videocap_release_out_buf(vcap_path, &frame);
|
hd_videocap_release_out_buf(vcap_path, &frame);
|
||||||
continue;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = hd_videocap_release_out_buf(vcap_path, &frame);
|
ret = hd_videocap_release_out_buf(vcap_path, &frame);
|
||||||
|
@ -912,14 +922,16 @@ static void MovieFast_Manual_Raw_Task(void* arg)
|
||||||
|
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
ret = hd_videocap_pull_out_buf(vcap_path, &frame, 33);
|
ret = hd_videocap_pull_out_buf(vcap_path, &frame, PHOTOFAST_HD_PUSH_PULL_TIMEOUT_MS);
|
||||||
if(ret != HD_OK){
|
if(ret != HD_OK){
|
||||||
DBG_ERR("hd_videocap_pull_out_buf failed!(%d)\n", ret);
|
DBG_ERR("hd_videocap_pull_out_buf failed!(%d)\n", ret);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = hd_videoproc_push_in_buf(vprc_path, &frame, NULL, 33);
|
ret = hd_videoproc_push_in_buf(vprc_path, &frame, NULL, PHOTOFAST_HD_PUSH_PULL_TIMEOUT_MS);
|
||||||
if(ret != HD_OK){
|
|
||||||
|
/* exposure time might quicker than ipp capability , ignore overrun err */
|
||||||
|
if(ret != HD_OK && ret != HD_ERR_OVERRUN){
|
||||||
DBG_ERR("hd_videoproc_push_in_buf failed!(%d)\n", ret);
|
DBG_ERR("hd_videoproc_push_in_buf failed!(%d)\n", ret);
|
||||||
hd_videocap_release_out_buf(vcap_path, &frame);
|
hd_videocap_release_out_buf(vcap_path, &frame);
|
||||||
break;
|
break;
|
||||||
|
@ -1336,7 +1348,7 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
||||||
|
|
||||||
//UI_SetData(FL_MOVIE_SIZE, MOVIE_SIZE_CLONE_1920x1080P30_1280x720P30);
|
//UI_SetData(FL_MOVIE_SIZE, MOVIE_SIZE_CLONE_1920x1080P30_1280x720P30);
|
||||||
Set_NIGHTMODE(0, 0);
|
Set_NIGHTMODE(0, 0);
|
||||||
nvt_cmdsys_runcmd("ae set_speed 0 128 200 200 100");
|
nvt_cmdsys_runcmd("ae set_speed 0 128 700 700 100 ");
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
Set_NIGHTMODE(0, 1);
|
Set_NIGHTMODE(0, 1);
|
||||||
|
@ -1362,11 +1374,12 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
||||||
ImageApp_MovieMulti_Config(MOVIE_CONFIG_ALG_INFO, (UINT32)&gMovie_Alg_Info[0]);
|
ImageApp_MovieMulti_Config(MOVIE_CONFIG_ALG_INFO, (UINT32)&gMovie_Alg_Info[0]);
|
||||||
|
|
||||||
if(DrvGPIO_GetPhotoMovieModeFromMonitor() != DX_HUNTING_MODE_MOVIE2){
|
if(DrvGPIO_GetPhotoMovieModeFromMonitor() != DX_HUNTING_MODE_MOVIE2){
|
||||||
MovieFast_Load_Sen_Cfg(MOVIEFAST_IQ_VIDEO);
|
MovieFast_Load_Sen_Cfg(MOVIEFAST_IQ_PHOTO);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
MovieFast_Load_Sen_Cfg(MOVIEFAST_IQ_PHOTO);
|
MovieFast_Load_Sen_Cfg(MOVIEFAST_IQ_PHOTO);
|
||||||
}
|
}
|
||||||
|
|
||||||
MovieMapping_GetStreamInfo(UI_GetData(FL_MOVIE_SIZE), (UINT32)&gMovie_Strm_Info);
|
MovieMapping_GetStreamInfo(UI_GetData(FL_MOVIE_SIZE), (UINT32)&gMovie_Strm_Info);
|
||||||
ImageApp_MovieMulti_Config(MOVIE_CONFIG_STREAM_INFO, (UINT32)&gMovie_Strm_Info);
|
ImageApp_MovieMulti_Config(MOVIE_CONFIG_STREAM_INFO, (UINT32)&gMovie_Strm_Info);
|
||||||
ImageApp_MovieMulti_Config(MOVIE_CONFIG_AUDIO_INFO, (UINT32)&gMovie_Audio_Info);
|
ImageApp_MovieMulti_Config(MOVIE_CONFIG_AUDIO_INFO, (UINT32)&gMovie_Audio_Info);
|
||||||
|
@ -1458,7 +1471,7 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
||||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_AUD_ACAP_ANR, (UINT32)&audio_cfg_param);
|
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_AUD_ACAP_ANR, (UINT32)&audio_cfg_param);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
setet_preset_param();
|
// setet_preset_param();
|
||||||
|
|
||||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_FILE_USE_FILEDB, FALSE);
|
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_FILE_USE_FILEDB, FALSE);
|
||||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_FILE_CB_CLOSED_FILE_INFO, TRUE);
|
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_FILE_CB_CLOSED_FILE_INFO, TRUE);
|
||||||
|
@ -1537,24 +1550,17 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
||||||
|
|
||||||
MovieFast_InstallID();
|
MovieFast_InstallID();
|
||||||
|
|
||||||
|
HD_VIDEO_FRAME frame_capture = {0};
|
||||||
|
|
||||||
{
|
{
|
||||||
HD_VIDEO_FRAME frame;
|
HD_VIDEO_FRAME frame;
|
||||||
HD_PATH_ID alg_path;
|
HD_PATH_ID alg_path;
|
||||||
HD_PATH_ID vcap_path, vprc_path;
|
HD_PATH_ID vcap_path, vprc_path;
|
||||||
BOOL stop = FALSE;
|
|
||||||
UINT32 ae_cnt = 0;
|
|
||||||
UINT32 stop_cnt = 0;
|
|
||||||
BOOL ae_locked = FALSE;
|
|
||||||
HD_RESULT ret;
|
HD_RESULT ret;
|
||||||
|
UINT32 vcap_frm_cnt = 0; /* start from 1 */
|
||||||
if(DrvGPIO_GetPhotoMovieModeFromMonitor() == DX_HUNTING_MODE_MOVIE2){
|
UINT32 vprc_frm_cnt = 0;
|
||||||
ae_cnt = 6;
|
UINT32 vprc_frm_cnt_ae_preset = 9999;
|
||||||
stop_cnt = 12;
|
BOOL ae_preset_flag = FALSE;
|
||||||
}
|
|
||||||
else{
|
|
||||||
ae_cnt = 9999;
|
|
||||||
stop_cnt = 12;
|
|
||||||
}
|
|
||||||
|
|
||||||
alg_path = ImageApp_MovieMulti_GetAlgDataPort(_CFG_REC_ID_1, _CFG_ALG_PATH3);
|
alg_path = ImageApp_MovieMulti_GetAlgDataPort(_CFG_REC_ID_1, _CFG_ALG_PATH3);
|
||||||
vcap_path = ImageApp_MovieMulti_GetVcapPort(_CFG_REC_ID_1);
|
vcap_path = ImageApp_MovieMulti_GetVcapPort(_CFG_REC_ID_1);
|
||||||
|
@ -1563,11 +1569,26 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
||||||
vos_perf_mark(&g_alg_start_time);
|
vos_perf_mark(&g_alg_start_time);
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
if(vcap_frm_cnt > 2 && 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);
|
||||||
|
if ((ae_status.status_info.state_adj == 0) || (vcap_frm_cnt >= PHOTOFAST_AE_PRESET_FRAME_CNT)){
|
||||||
|
ae_preset_flag = TRUE;
|
||||||
|
vprc_frm_cnt_ae_preset = vprc_frm_cnt;
|
||||||
|
DBG_DUMP("ae preset vprc frame cnt = %lu\n", vprc_frm_cnt_ae_preset);
|
||||||
|
Set_AEMODE(1);
|
||||||
|
setet_preset_param();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ret = hd_videocap_pull_out_buf(vcap_path, &frame, PHOTOFAST_HD_PUSH_PULL_TIMEOUT_MS);
|
ret = hd_videocap_pull_out_buf(vcap_path, &frame, PHOTOFAST_HD_PUSH_PULL_TIMEOUT_MS);
|
||||||
if(ret != HD_OK){
|
if(ret != HD_OK){
|
||||||
DBG_ERR("hd_videocap_pull_out_buf failed!(%d)\n", ret);
|
DBG_ERR("hd_videocap_pull_out_buf failed!(%d)\n", ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vcap_frm_cnt = frame.count;
|
||||||
|
|
||||||
ret = hd_videoproc_push_in_buf(vprc_path, &frame, NULL, PHOTOFAST_HD_PUSH_PULL_TIMEOUT_MS);
|
ret = hd_videoproc_push_in_buf(vprc_path, &frame, NULL, PHOTOFAST_HD_PUSH_PULL_TIMEOUT_MS);
|
||||||
if(ret != HD_OK){
|
if(ret != HD_OK){
|
||||||
DBG_ERR("hd_videoproc_push_in_buf failed!(%d)\n", ret);
|
DBG_ERR("hd_videoproc_push_in_buf failed!(%d)\n", ret);
|
||||||
|
@ -1582,39 +1603,31 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
||||||
if(ret != HD_OK){
|
if(ret != HD_OK){
|
||||||
DBG_ERR("hd_videoproc_pull_out_buf failed!(%d)\n", ret);
|
DBG_ERR("hd_videoproc_pull_out_buf failed!(%d)\n", ret);
|
||||||
}
|
}
|
||||||
|
++vprc_frm_cnt;
|
||||||
|
|
||||||
DBG_DUMP("count = %llu, timestamp = %llu\n", frame.count, frame.timestamp);
|
DBG_DUMP("count = %llu, timestamp = %llu\n", frame.count, frame.timestamp);
|
||||||
|
|
||||||
if(frame.count >= ae_cnt && ae_locked == FALSE){
|
if( vcap_frm_cnt >= PHOTOFAST_START_CAP_FRAME_CNT ||
|
||||||
|
(ae_preset_flag == TRUE && vprc_frm_cnt >= (vprc_frm_cnt_ae_preset + 3))){
|
||||||
|
|
||||||
DBG_DUMP("timestamp = %llu count = %llu\n", frame.timestamp, frame.count);
|
|
||||||
|
|
||||||
if(DrvGPIO_GetPhotoMovieModeFromMonitor() == DX_HUNTING_MODE_MOVIE2){
|
if(vcap_frm_cnt >= PHOTOFAST_START_CAP_FRAME_CNT){
|
||||||
|
DBG_DUMP("triggered by PHOTOFAST_START_CAP_FRAME_CNT\n");
|
||||||
#if 0
|
}
|
||||||
HD_PATH_ID vprc_in_id = ImageApp_MovieMulti_GetVprc3DNRPort(_CFG_REC_ID_1);
|
else if(ae_preset_flag == TRUE && vprc_frm_cnt >= (vprc_frm_cnt_ae_preset + 3)){
|
||||||
HD_VIDEOPROC_IN vprc_in = {0};
|
DBG_DUMP("triggered by AE preset\n");
|
||||||
|
|
||||||
hd_videoproc_get(vprc_in_id, HD_VIDEOPROC_PARAM_IN, &vprc_in);
|
|
||||||
vprc_in.frc = HD_VIDEO_FRC_RATIO(1, 1);
|
|
||||||
hd_videoproc_set(vprc_in_id, HD_VIDEOPROC_PARAM_IN, &vprc_in);
|
|
||||||
hd_videoproc_start(vprc_in_id);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Set_AEMODE(1);
|
|
||||||
setet_preset_param();
|
|
||||||
|
|
||||||
ae_locked = TRUE;
|
memcpy((void*)&frame_capture, (void*)&frame, sizeof(HD_VIDEO_FRAME));
|
||||||
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
if(frame.count >= stop_cnt){
|
|
||||||
stop = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
hd_videoproc_release_out_buf(alg_path, &frame);
|
hd_videoproc_release_out_buf(alg_path, &frame);
|
||||||
|
}
|
||||||
|
|
||||||
} while(stop == FALSE);
|
} while(1);
|
||||||
|
|
||||||
vos_perf_mark(&g_alg_end_time);
|
vos_perf_mark(&g_alg_end_time);
|
||||||
}
|
}
|
||||||
|
@ -1654,9 +1667,6 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
||||||
HD_PATH_ID alg_path = ImageApp_MovieMulti_GetAlgDataPort(_CFG_REC_ID_1, _CFG_ALG_PATH3);
|
HD_PATH_ID alg_path = ImageApp_MovieMulti_GetAlgDataPort(_CFG_REC_ID_1, _CFG_ALG_PATH3);
|
||||||
UINT32 max_cnt , duration;
|
UINT32 max_cnt , duration;
|
||||||
|
|
||||||
|
|
||||||
CHKPNT;
|
|
||||||
|
|
||||||
MovieFast_fdt_get_info(&fdt_info);
|
MovieFast_fdt_get_info(&fdt_info);
|
||||||
|
|
||||||
if(MovieFast_fdt_get_tmp_buf(&fdt_info, &tmp_buf, &tmp_buf_size) != E_OK){
|
if(MovieFast_fdt_get_tmp_buf(&fdt_info, &tmp_buf, &tmp_buf_size) != E_OK){
|
||||||
|
@ -1669,28 +1679,32 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
||||||
goto EXIT;
|
goto EXIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
CHKPNT;
|
|
||||||
|
|
||||||
yuv_size = VDO_YUV_BUFSIZE(sensor_info->sSize.w, sensor_info->sSize.h , HD_VIDEO_PXLFMT_YUV420);
|
yuv_size = VDO_YUV_BUFSIZE(sensor_info->sSize.w, sensor_info->sSize.h , HD_VIDEO_PXLFMT_YUV420);
|
||||||
|
|
||||||
|
|
||||||
CHKPNT;
|
|
||||||
|
|
||||||
do {
|
do {
|
||||||
HD_VIDEO_FRAME frame = {0};
|
|
||||||
|
|
||||||
if((tmp_buf + yuv_size) > (tmp_buf + tmp_buf_size)){
|
if((tmp_buf + yuv_size) > (tmp_buf + tmp_buf_size)){
|
||||||
DBG_ERR("tmp buffer overflow!!\n");
|
DBG_ERR("tmp buffer overflow!!\n");
|
||||||
goto EXIT;
|
goto EXIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
hd_videoproc_pull_out_buf(alg_path, &frame, -1);
|
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);
|
||||||
|
|
||||||
|
memcpy((void*)(tmp_buf), (void*)frame_capture.phy_addr[0], yuv_size);
|
||||||
|
|
||||||
DBG_DUMP("tmp_buf = %lx , frame.phy_addr[0] = %lx , copy size = %lx\n", tmp_buf, frame.phy_addr[0], yuv_size);
|
|
||||||
memcpy((void*)(tmp_buf), (void*)frame.phy_addr[0], yuv_size);
|
|
||||||
tmp_buf += yuv_size;
|
tmp_buf += yuv_size;
|
||||||
|
|
||||||
hd_videoproc_release_out_buf(alg_path, &frame);
|
hd_videoproc_release_out_buf(alg_path, &frame_capture);
|
||||||
|
|
||||||
if(++cnt >= max_cnt)
|
if(++cnt >= max_cnt)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user