Merge branch 'Branch_S550_Fast' of gitlab.sifar.tech:linux-em-group/s530-ntk into branch_s550_fast
This commit is contained in:
commit
a4267d55f2
|
@ -922,7 +922,7 @@
|
||||||
#define HUNTING_MCU_UART ENABLE
|
#define HUNTING_MCU_UART ENABLE
|
||||||
#define HUNTING_IR_LED_940 ENABLE
|
#define HUNTING_IR_LED_940 ENABLE
|
||||||
#define SF_EXIF_MN_BUF_SIZE 256
|
#define SF_EXIF_MN_BUF_SIZE 256
|
||||||
#define SF_BASE_VERSION "7MR5RCwDB01"
|
#define SF_BASE_VERSION "7MR5RCwDB04"
|
||||||
#define HW_S530 DISABLE
|
#define HW_S530 DISABLE
|
||||||
#define DCF_DIR_NAME "MEDIA" /* 100MEDIA */
|
#define DCF_DIR_NAME "MEDIA" /* 100MEDIA */
|
||||||
#define DCF_FILE_NAME "SYGW" /* SYFW0001.JPG */
|
#define DCF_FILE_NAME "SYGW" /* SYFW0001.JPG */
|
||||||
|
@ -974,7 +974,7 @@
|
||||||
#ifndef ANR_FUNC
|
#ifndef ANR_FUNC
|
||||||
#define ANR_FUNC ENABLE
|
#define ANR_FUNC ENABLE
|
||||||
#endif
|
#endif
|
||||||
#define SF_NO_SD_SEND DISABLE
|
#define SF_NO_SD_SEND ENABLE
|
||||||
//////////////////////sf end///////////////////////////////
|
//////////////////////sf end///////////////////////////////
|
||||||
|
|
||||||
/*******************************************************************************************
|
/*******************************************************************************************
|
||||||
|
|
|
@ -1455,7 +1455,7 @@ static void MovieExe_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT32
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
DBG_IND(" ===== MOVIE_USER_CB_EVENT_CLOSE_FILE_COMPLETED ===== id:%d \r\n", id);
|
DBG_IND(" ===== MOVIE_USER_CB_EVENT_CLOSE_FILE_COMPLETED ===== id:%d \r\n", id);
|
||||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||||
if((SF_CAM_MODE_PHOTO_VIDEO == puiPara->CamMode) && (id == _CFG_REC_ID_1))
|
if(((SF_CAM_MODE_VIDEO2 == puiPara->CamMode) || (SF_CAM_MODE_PHOTO_VIDEO == puiPara->CamMode)) && (id == _CFG_REC_ID_1))
|
||||||
{
|
{
|
||||||
if(SUCCESS == sf_share_mem_file_down(0, 0)){
|
if(SUCCESS == sf_share_mem_file_down(0, 0)){
|
||||||
sf_set_send_statu(TRUE);
|
sf_set_send_statu(TRUE);
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -104,7 +104,7 @@ int General_MenuCallback(UINT32 uiMessage, UINT32 uiParam)
|
||||||
{
|
{
|
||||||
case IDM_CAMERA_MODE:
|
case IDM_CAMERA_MODE:
|
||||||
{
|
{
|
||||||
puiPara->CamMode = uwOption == 0 ? 0 : 2;
|
puiPara->CamMode = uwOption == 0 ? 0 : 3;
|
||||||
printf("\033[33m[General_MenuCallback]set CamMode:%d\033[0m\n", uwOption);
|
printf("\033[33m[General_MenuCallback]set CamMode:%d\033[0m\n", uwOption);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ static void load_info_from_sf(void)
|
||||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||||
SysSetFlag(IDF_PASSWORD, puiPara->PwdSwitch);
|
SysSetFlag(IDF_PASSWORD, puiPara->PwdSwitch);
|
||||||
SysSetFlag(IDF_CAMERA_NAME, puiPara->CamNameSwitch == SF_CAMID_OFF ? OPTION_0 : OPTION_1);
|
SysSetFlag(IDF_CAMERA_NAME, puiPara->CamNameSwitch == SF_CAMID_OFF ? OPTION_0 : OPTION_1);
|
||||||
SysSetFlag(IDF_CAMERA_MODE, puiPara->CamMode == 2 ? OPTION_1 : OPTION_0);
|
SysSetFlag(IDF_CAMERA_MODE, puiPara->CamMode == 3 ? OPTION_1 : OPTION_0);
|
||||||
if (PHOTO_SIZE_40M == puiPara->ImgSize)
|
if (PHOTO_SIZE_40M == puiPara->ImgSize)
|
||||||
{
|
{
|
||||||
SysSetFlag(IDF_IMAGE_SIZE, 0);
|
SysSetFlag(IDF_IMAGE_SIZE, 0);
|
||||||
|
|
|
@ -567,7 +567,7 @@ static void update_camera_mode(void)
|
||||||
{
|
{
|
||||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||||
#define CAMERA_MODE_PHOTO 0
|
#define CAMERA_MODE_PHOTO 0
|
||||||
#define CAMERA_MODE_PHOTO_AND_VIDEO 2
|
#define CAMERA_MODE_PHOTO_AND_VIDEO 3
|
||||||
if (CAMERA_MODE_PHOTO == puiPara->CamMode)
|
if (CAMERA_MODE_PHOTO == puiPara->CamMode)
|
||||||
{
|
{
|
||||||
lv_plugin_img_set_src(image_mode_photo_scr_uiflowphoto, LV_PLUGIN_IMG_ID_SF_CAMERA);
|
lv_plugin_img_set_src(image_mode_photo_scr_uiflowphoto, LV_PLUGIN_IMG_ID_SF_CAMERA);
|
||||||
|
|
|
@ -30,7 +30,7 @@ INT32 gUITimeHour = 0;
|
||||||
INT32 gUITimeMinute = 0;
|
INT32 gUITimeMinute = 0;
|
||||||
INT32 gUITimeSecond = 0;
|
INT32 gUITimeSecond = 0;
|
||||||
|
|
||||||
INT32 gUIDateSetFmt = DATEFMT_YMD;
|
INT32 gUIDateSetFmt = DATEFMT_MDY;
|
||||||
INT32 gUITimeSetFmt = TIMEFMT_24HR;
|
INT32 gUITimeSetFmt = TIMEFMT_24HR;
|
||||||
|
|
||||||
void Validate_Date(INT32 *pYear, INT32 *pMonth, INT32 *pDay,
|
void Validate_Date(INT32 *pYear, INT32 *pMonth, INT32 *pDay,
|
||||||
|
@ -44,7 +44,7 @@ void DateTime_Init(void)
|
||||||
gUIDateMonth = DEF_MONTH;
|
gUIDateMonth = DEF_MONTH;
|
||||||
gUIDateDay = DEF_DAY;
|
gUIDateDay = DEF_DAY;
|
||||||
gUITimeHour = gUITimeMinute = gUITimeSecond = 0;
|
gUITimeHour = gUITimeMinute = gUITimeSecond = 0;
|
||||||
gUIDateSetFmt = DATEFMT_YMD;
|
gUIDateSetFmt = DATEFMT_MDY;
|
||||||
gUITimeSetFmt = TIMEFMT_24HR;
|
gUITimeSetFmt = TIMEFMT_24HR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -142,7 +142,7 @@
|
||||||
#define DEFAULT_HDMI_MODE VIDEOOUT2_AUTO
|
#define DEFAULT_HDMI_MODE VIDEOOUT2_AUTO
|
||||||
#define DEFAULT_DUALDISP DUALDISP_OFF
|
#define DEFAULT_DUALDISP DUALDISP_OFF
|
||||||
#define DEFAULT_SENSOR_ROTATE SEN_ROTATE_OFF
|
#define DEFAULT_SENSOR_ROTATE SEN_ROTATE_OFF
|
||||||
#define DEFAULT_DATE_FORMAT DATE_FORMAT_YMD
|
#define DEFAULT_DATE_FORMAT DATE_FORMAT_MDY
|
||||||
#define DEFAULT_OPENING_LOGO OPENING_LOGO_ON
|
#define DEFAULT_OPENING_LOGO OPENING_LOGO_ON
|
||||||
#define DEFAULT_LCD_DISPLAY DISPOUT_NORMAL
|
#define DEFAULT_LCD_DISPLAY DISPOUT_NORMAL
|
||||||
#define DEFAULT_LCD_BRIGHTNESS LCDBRT_LVL_05
|
#define DEFAULT_LCD_BRIGHTNESS LCDBRT_LVL_05
|
||||||
|
|
|
@ -2368,6 +2368,7 @@ void sf_power_on_para_check_init(void)
|
||||||
if(puiPara->DateStyle != SysGetFlag(FL_DateFormatIndex))
|
if(puiPara->DateStyle != SysGetFlag(FL_DateFormatIndex))
|
||||||
{
|
{
|
||||||
SysSetFlag(FL_DateFormatIndex, puiPara->DateStyle);
|
SysSetFlag(FL_DateFormatIndex, puiPara->DateStyle);
|
||||||
|
SysSetFlag(FL_DATE_FORMAT, puiPara->DateStyle);
|
||||||
}
|
}
|
||||||
if(puiPara->Language != SysGetFlag(FL_LANGUAGE))
|
if(puiPara->Language != SysGetFlag(FL_LANGUAGE))
|
||||||
{
|
{
|
||||||
|
|
|
@ -745,9 +745,10 @@ signed int sf_battery_value_fast_get(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
cTemper = sf_adc2Temperature((UINT16)TemperAdc, 1);
|
// cTemper = sf_adc2Temperature((UINT16)TemperAdc, 1);
|
||||||
fTemper = sf_celsius_change_to_fahrenheit(cTemper);
|
// fTemper = sf_celsius_change_to_fahrenheit(cTemper);
|
||||||
|
sf_battery_level_update();
|
||||||
|
sf_temper_update();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -329,6 +329,7 @@ void sf_app_power_on_para_check_init(void)
|
||||||
if(puiPara->DateStyle != sf_sys_get_flag(FL_DateFormatIndex))
|
if(puiPara->DateStyle != sf_sys_get_flag(FL_DateFormatIndex))
|
||||||
{
|
{
|
||||||
sf_sys_set_flag(FL_DateFormatIndex, puiPara->DateStyle);
|
sf_sys_set_flag(FL_DateFormatIndex, puiPara->DateStyle);
|
||||||
|
sf_sys_set_flag(FL_DATE_FORMAT, puiPara->DateStyle);
|
||||||
}
|
}
|
||||||
if(puiPara->Language != sf_sys_get_flag(FL_LANGUAGE))
|
if(puiPara->Language != sf_sys_get_flag(FL_LANGUAGE))
|
||||||
{
|
{
|
||||||
|
|
|
@ -177,7 +177,7 @@ static void sf_blue_command_get_camera_para(MSG_DEV_BLE_Param_Get_Rsp_T *CamPara
|
||||||
|
|
||||||
CamPara->zoom = puiPara->Zoom + 1;
|
CamPara->zoom = puiPara->Zoom + 1;
|
||||||
|
|
||||||
CamPara->cameraMode = (puiPara->CamMode==2)?1:0;
|
CamPara->cameraMode = (puiPara->CamMode==3)?1:0;
|
||||||
|
|
||||||
printf("Camera Mode:%d\n", CamPara->cameraMode);
|
printf("Camera Mode:%d\n", CamPara->cameraMode);
|
||||||
|
|
||||||
|
@ -463,7 +463,7 @@ static signed int sf_blue_command_request_process(U8 *val, unsigned int nval, U8
|
||||||
{
|
{
|
||||||
saveMode = 2;
|
saveMode = 2;
|
||||||
}
|
}
|
||||||
else if (saveMode == 2)
|
else if ((saveMode == 3) || (saveMode == 2))
|
||||||
{
|
{
|
||||||
saveMode = 1;
|
saveMode = 1;
|
||||||
}
|
}
|
||||||
|
@ -480,8 +480,8 @@ static signed int sf_blue_command_request_process(U8 *val, unsigned int nval, U8
|
||||||
}
|
}
|
||||||
else if (tmpMode == 1)
|
else if (tmpMode == 1)
|
||||||
{
|
{
|
||||||
puiPara->CamMode = SF_CAM_MODE_PHOTO_VIDEO;
|
//puiPara->CamMode = SF_CAM_MODE_PHOTO_VIDEO;
|
||||||
//puiPara->CamMode = SF_CAM_MODE_VIDEO2;
|
puiPara->CamMode = SF_CAM_MODE_VIDEO2;
|
||||||
}
|
}
|
||||||
else if (tmpMode == 2)
|
else if (tmpMode == 2)
|
||||||
{
|
{
|
||||||
|
|
|
@ -669,6 +669,34 @@ static void trave_file(char* path)
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
int sf_is_directory_empty(const char *path)
|
||||||
|
{
|
||||||
|
DIR *dir = opendir(path);
|
||||||
|
|
||||||
|
if (dir == NULL) {
|
||||||
|
MLOGE("Error opening directory");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct dirent *entry;
|
||||||
|
int count = 0;
|
||||||
|
|
||||||
|
while ((entry = readdir(dir)) != NULL) {
|
||||||
|
|
||||||
|
if (strcmp(entry->d_name, ".") != 0 && strcmp(entry->d_name, "..") != 0) {
|
||||||
|
count++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
closedir(dir);
|
||||||
|
|
||||||
|
if (count == 0) {
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int sf_dcf_resort_min(void)
|
int sf_dcf_resort_min(void)
|
||||||
{
|
{
|
||||||
|
@ -706,6 +734,13 @@ int sf_dcf_resort_min(void)
|
||||||
MLOGD("DirKey:%d,FileKey:%d\n", gLastDirKey, gLastFileKey);
|
MLOGD("DirKey:%d,FileKey:%d\n", gLastDirKey, gLastFileKey);
|
||||||
if(gLastFileKey <= MAX_DCF_FILE_NUM)
|
if(gLastFileKey <= MAX_DCF_FILE_NUM)
|
||||||
{
|
{
|
||||||
|
sprintf(sTmp,"%s/%d%s",sRootPath,gLastDirKey,DCF_DIR_NAME);
|
||||||
|
if(sf_is_directory_empty(sTmp))
|
||||||
|
{
|
||||||
|
MLOGD("Will Delete Dir:%s\n", sTmp);
|
||||||
|
remove(sTmp);
|
||||||
|
system("sync");
|
||||||
|
}
|
||||||
gLastDirKey = i;
|
gLastDirKey = i;
|
||||||
MLOGD("DirKey:%d,FileKey:%d\n", gLastDirKey, gLastFileKey);
|
MLOGD("DirKey:%d,FileKey:%d\n", gLastDirKey, gLastFileKey);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -881,7 +881,7 @@ void sf_app_Get_Camera_Para(MSG_DEV_Param_Get_Rsp_T *CamPara)
|
||||||
|
|
||||||
CamPara->zoom = DigitalZoom + 1;//puiPara->Zoom+1;
|
CamPara->zoom = DigitalZoom + 1;//puiPara->Zoom+1;
|
||||||
|
|
||||||
CamPara->cameraMode = (puiPara->CamMode==2)?1:0;
|
CamPara->cameraMode = (puiPara->CamMode==3)?1:0;
|
||||||
|
|
||||||
MLOGI("Camera Mode:%d\n", CamPara->cameraMode);
|
MLOGI("Camera Mode:%d\n", CamPara->cameraMode);
|
||||||
|
|
||||||
|
@ -1340,7 +1340,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
|
||||||
{
|
{
|
||||||
saveMode = 2;
|
saveMode = 2;
|
||||||
}
|
}
|
||||||
else if (saveMode == 2)
|
else if ((saveMode == 3) || (saveMode == 2))
|
||||||
{
|
{
|
||||||
saveMode = 1;
|
saveMode = 1;
|
||||||
}
|
}
|
||||||
|
@ -1357,8 +1357,8 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
|
||||||
}
|
}
|
||||||
else if (tmpMode == 1)
|
else if (tmpMode == 1)
|
||||||
{
|
{
|
||||||
puiPara->CamMode = SF_CAM_MODE_PHOTO_VIDEO;
|
//puiPara->CamMode = SF_CAM_MODE_PHOTO_VIDEO;
|
||||||
//puiPara->CamMode = SF_CAM_MODE_VIDEO2;
|
puiPara->CamMode = SF_CAM_MODE_VIDEO2;
|
||||||
}
|
}
|
||||||
else if (tmpMode == 2)
|
else if (tmpMode == 2)
|
||||||
{
|
{
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
linuxtmp{ reg = <0x02800000 0x04000000>; }; /* recycled after rtos started */
|
linuxtmp{ reg = <0x02800000 0x04000000>; }; /* recycled after rtos started */
|
||||||
uboot{ reg = <0x06800000 0x01640000>; }; /* recycled after rtos started */
|
uboot{ reg = <0x06800000 0x01640000>; }; /* recycled after rtos started */
|
||||||
logo-fb{ reg = <0x07E40000 0x001C0000>; }; /* recycled after rtos started */
|
logo-fb{ reg = <0x07E40000 0x001C0000>; }; /* recycled after rtos started */
|
||||||
|
usrmem{ reg = <0x07A00000 0x00600000>; };
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Linux system memory region*/
|
/* Linux system memory region*/
|
||||||
|
|
|
@ -945,7 +945,7 @@
|
||||||
#define HUNTING_MCU_UART ENABLE
|
#define HUNTING_MCU_UART ENABLE
|
||||||
#define HUNTING_IR_LED_940 ENABLE
|
#define HUNTING_IR_LED_940 ENABLE
|
||||||
#define SF_EXIF_MN_BUF_SIZE 256
|
#define SF_EXIF_MN_BUF_SIZE 256
|
||||||
#define SF_BASE_VERSION "7MR5RCwDB01"
|
#define SF_BASE_VERSION "7MR5RCwDB04"
|
||||||
#define DCF_DIR_NAME "MEDIA" /* 100MEDIA */
|
#define DCF_DIR_NAME "MEDIA" /* 100MEDIA */
|
||||||
#define DCF_FILE_NAME "SYGW" /* SYFW0001.JPG */
|
#define DCF_FILE_NAME "SYGW" /* SYFW0001.JPG */
|
||||||
#define PHOTO_THUMB_PATH "A:\\THUMB\\"
|
#define PHOTO_THUMB_PATH "A:\\THUMB\\"
|
||||||
|
@ -985,7 +985,7 @@
|
||||||
#ifndef ANR_FUNC
|
#ifndef ANR_FUNC
|
||||||
#define ANR_FUNC ENABLE
|
#define ANR_FUNC ENABLE
|
||||||
#endif
|
#endif
|
||||||
#define SF_NO_SD_SEND DISABLE
|
#define SF_NO_SD_SEND ENABLE
|
||||||
////////////////////sf end////////////////////////////////
|
////////////////////sf end////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
5
rtos/code/application/source/cardv/SrcCode/System/rtos-main.c
Executable file → Normal file
5
rtos/code/application/source/cardv/SrcCode/System/rtos-main.c
Executable file → Normal file
|
@ -1075,6 +1075,11 @@ static void fastboot(void)
|
||||||
vos_task_resume(handle_usb_uvacmode);
|
vos_task_resume(handle_usb_uvacmode);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
default:
|
||||||
|
printf("default\n");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
1
rtos/code/application/source/cardv/SrcCode/System/sys_fastboot.h
Executable file → Normal file
1
rtos/code/application/source/cardv/SrcCode/System/sys_fastboot.h
Executable file → Normal file
|
@ -14,6 +14,7 @@ typedef enum _BOOT_INIT_ {
|
||||||
BOOT_INIT_BOOTLOGO,
|
BOOT_INIT_BOOTLOGO,
|
||||||
BOOT_INIT_OTHERS,
|
BOOT_INIT_OTHERS,
|
||||||
BOOT_FLOW_BOOT,
|
BOOT_FLOW_BOOT,
|
||||||
|
BOOT_FLOW_MOVIE2,
|
||||||
BOOT_INIT_MAX_CNT = 32, //flag max bit cnt is 32
|
BOOT_INIT_MAX_CNT = 32, //flag max bit cnt is 32
|
||||||
ENUM_DUMMY4WORD(BOOT_INIT),
|
ENUM_DUMMY4WORD(BOOT_INIT),
|
||||||
} BOOT_INIT;
|
} BOOT_INIT;
|
||||||
|
|
18
rtos/code/application/source/cardv/SrcCode/System/sys_linuxboot.c
Executable file → Normal file
18
rtos/code/application/source/cardv/SrcCode/System/sys_linuxboot.c
Executable file → Normal file
|
@ -22,6 +22,7 @@
|
||||||
#include <FileSysTsk.h>
|
#include <FileSysTsk.h>
|
||||||
#include <shm_info.h>
|
#include <shm_info.h>
|
||||||
#include "DxHunting.h"
|
#include "DxHunting.h"
|
||||||
|
#include "sys_fastboot.h"
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
#include "sf_mcu.h"
|
#include "sf_mcu.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -1034,12 +1035,17 @@ static int load_linux_from_nvtpack(LINUXTMP_PARTITION *p_linuxtmp, FDT_INFO *p_f
|
||||||
|
|
||||||
static int load_linux(LINUXTMP_PARTITION *p_linuxtmp, FDT_INFO *p_fdt_info)
|
static int load_linux(LINUXTMP_PARTITION *p_linuxtmp, FDT_INFO *p_fdt_info)
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
SHMINFO *p_shm = (SHMINFO *)p_fdt_info->shmem_addr;
|
SHMINFO *p_shm = (SHMINFO *)p_fdt_info->shmem_addr;
|
||||||
if ((p_shm->boot.LdCtrl2 & LDCF_BOOT_CARD) == 0) {
|
if ((p_shm->boot.LdCtrl2 & LDCF_BOOT_CARD) == 0) {
|
||||||
return load_linux_from_flash(p_linuxtmp, p_fdt_info);
|
return load_linux_from_flash(p_linuxtmp, p_fdt_info);
|
||||||
} else {
|
} else {
|
||||||
return load_linux_from_nvtpack(p_linuxtmp, p_fdt_info);
|
return load_linux_from_nvtpack(p_linuxtmp, p_fdt_info);
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
return load_linux_from_flash(p_linuxtmp, p_fdt_info);
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int check_mem_overlap(FDT_INFO *p_fdt_info)
|
static int check_mem_overlap(FDT_INFO *p_fdt_info)
|
||||||
|
@ -1153,6 +1159,8 @@ int linuxboot_setup(LINUXBOOT_INFO *p_info)
|
||||||
p_linuxtmp->tmp2_end = p_fdt_info->fdt_addr;
|
p_linuxtmp->tmp2_end = p_fdt_info->fdt_addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if 0
|
||||||
SHMINFO *p_shm = (SHMINFO *)p_fdt_info->shmem_addr;
|
SHMINFO *p_shm = (SHMINFO *)p_fdt_info->shmem_addr;
|
||||||
if (p_shm->boot.LdCtrl2 & LDCF_BOOT_CARD) {
|
if (p_shm->boot.LdCtrl2 & LDCF_BOOT_CARD) {
|
||||||
#if (_PACKAGE_FILESYS_ && _PACKAGE_SDCARD_)
|
#if (_PACKAGE_FILESYS_ && _PACKAGE_SDCARD_)
|
||||||
|
@ -1169,12 +1177,22 @@ int linuxboot_setup(LINUXBOOT_INFO *p_info)
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
(void) load_linux_from_nvtpack;
|
||||||
|
(void) load_nvtpack;
|
||||||
|
#endif
|
||||||
|
|
||||||
// create new fdt for nodes of bootargs and ramdisk
|
// create new fdt for nodes of bootargs and ramdisk
|
||||||
if ((er=create_new_fdt(p_linuxtmp)) != 0) {
|
if ((er=create_new_fdt(p_linuxtmp)) != 0) {
|
||||||
return er;
|
return er;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(DrvGPIO_GetPhotoMovieModeFromMonitor() == DX_HUNTING_MODE_MOVIE2){
|
||||||
|
DBG_DUMP("fastboot wait BOOT_FLOW_MOVIE2...\n");
|
||||||
|
fastboot_wait_done(BOOT_FLOW_MOVIE2);
|
||||||
|
DBG_DUMP("fastboot wait BOOT_FLOW_MOVIE2 ok\n");
|
||||||
|
}
|
||||||
|
|
||||||
#if (CFG_INDEP_RAMDISK)
|
#if (CFG_INDEP_RAMDISK)
|
||||||
// load ramdisk into memory and reserved memory
|
// load ramdisk into memory and reserved memory
|
||||||
if ((er=load_ramdisk(p_linuxtmp)) != 0) {
|
if ((er=load_ramdisk(p_linuxtmp)) != 0) {
|
||||||
|
|
178
rtos/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_CommPoolInit.c
Executable file → Normal file
178
rtos/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_CommPoolInit.c
Executable file → Normal file
|
@ -12,62 +12,6 @@
|
||||||
#include <sf_mcu.h>
|
#include <sf_mcu.h>
|
||||||
#endif
|
#endif
|
||||||
#include "DxHunting.h"
|
#include "DxHunting.h"
|
||||||
//#define ENABLE 1
|
|
||||||
//#define DISABLE 0
|
|
||||||
|
|
||||||
#if (defined(_MODEL_565_CARDV_HS880C_)||defined(_MODEL_565_CARDV_HS880CC_) || defined(_MODEL_565_CARDV_HY5137_) || \
|
|
||||||
defined(_MODEL_565_CARDV_Y817_) || defined(_MODEL_565_CARDV_RD6000_) || defined(_MODEL_565_CARDV_EVB_) || \
|
|
||||||
defined(_MODEL_560_CARDV_EVB_)||defined(_MODEL_565_CARDV_WH565_) ||defined(_MODEL_565_CARDV_EVA51_))
|
|
||||||
#if 1
|
|
||||||
#define VDO_SIZE_W 2560
|
|
||||||
#define VDO_SIZE_H 1440
|
|
||||||
|
|
||||||
#define VDO_MAIN_SIZE_W 2560
|
|
||||||
#define VDO_MAIN_SIZE_H 1440
|
|
||||||
#else
|
|
||||||
#define VDO_SIZE_W 1920
|
|
||||||
#define VDO_SIZE_H 1080
|
|
||||||
|
|
||||||
#define VDO_MAIN_SIZE_W 1920
|
|
||||||
#define VDO_MAIN_SIZE_H 1080
|
|
||||||
#endif
|
|
||||||
#define VDO_CLONE_SIZE_W 848
|
|
||||||
#define VDO_CLONE_SIZE_H 480
|
|
||||||
|
|
||||||
#else
|
|
||||||
#define VDO_SIZE_W 2560
|
|
||||||
#define VDO_SIZE_H 1440
|
|
||||||
|
|
||||||
#define VDO_MAIN_SIZE_W 2560
|
|
||||||
#define VDO_MAIN_SIZE_H 1440
|
|
||||||
|
|
||||||
#define VDO_CLONE_SIZE_W 1920
|
|
||||||
#define VDO_CLONE_SIZE_H 1080
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if (defined(_disp_ifdsi_lcd1_s3003l0_st7701s_))
|
|
||||||
#define VDO_DISP_SIZE_W 480//1280//1280//480
|
|
||||||
#define VDO_DISP_SIZE_H 864//854//320//320
|
|
||||||
#else
|
|
||||||
#define VDO_DISP_SIZE_W 960
|
|
||||||
#define VDO_DISP_SIZE_H 180
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if (_BOARD_DRAM_SIZE_ == 0x04000000)
|
|
||||||
#define VDO_WIFI_SIZE_W 640
|
|
||||||
#define VDO_WIFI_SIZE_H 360
|
|
||||||
#else
|
|
||||||
#define VDO_WIFI_SIZE_W 848
|
|
||||||
#define VDO_WIFI_SIZE_H 480
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define VDO2_SIZE_W 1920 //second sensor.
|
|
||||||
#define VDO2_SIZE_H 1080 //second sensor.
|
|
||||||
|
|
||||||
#define VDO2_MAIN_SIZE_W 1920
|
|
||||||
#define VDO2_MAIN_SIZE_H 1080
|
|
||||||
|
|
||||||
#define VDO2_CLONE_SIZE_W 848
|
|
||||||
|
|
||||||
#define DBGINFO_BUFSIZE() (0x200)
|
#define DBGINFO_BUFSIZE() (0x200)
|
||||||
#define CA_WIN_NUM_W 32
|
#define CA_WIN_NUM_W 32
|
||||||
|
@ -126,107 +70,55 @@ void Movie_CommPoolInit(void)
|
||||||
|
|
||||||
static void Movie_CommPoolInit_Mode1(void)
|
static void Movie_CommPoolInit_Mode1(void)
|
||||||
{
|
{
|
||||||
UINT32 id=0;
|
UINT32 id = 0;
|
||||||
UINT32 vcap_buf_size = 0;
|
UINT32 vcap_buf_size = 0;
|
||||||
HD_VIDEO_PXLFMT vcap_fmt = HD_VIDEO_PXLFMT_RAW12;
|
HD_VIDEO_PXLFMT vcap_fmt = HD_VIDEO_PXLFMT_RAW12;
|
||||||
|
|
||||||
|
|
||||||
#if (_PACKAGE_DISPLAY_)
|
const UINT32 vdo_size_w = 2560;
|
||||||
USIZE DispDevSize = {0};
|
const UINT32 vdo_size_h = 1440;
|
||||||
|
|
||||||
hd_ret = hd_videoout_get(video_out_ctrl, HD_VIDEOOUT_PARAM_SYSCAPS, p_video_out_syscaps);
|
const UINT32 clone_size_w = 1920;
|
||||||
if (hd_ret != HD_OK) {
|
const UINT32 clone_size_h = 1080;
|
||||||
DBG_ERR("get video_out_syscaps failed\r\n");
|
|
||||||
DispDevSize.w = VDO_DISP_SIZE_W;
|
/*******************************************************************
|
||||||
DispDevSize.h = VDO_DISP_SIZE_H;
|
* VCap + Main
|
||||||
} else {
|
*******************************************************************/
|
||||||
DispDevSize.w = p_video_out_syscaps->output_dim.w;
|
|
||||||
DispDevSize.h = p_video_out_syscaps->output_dim.h;
|
System_GetSensorInfo(id, SENSOR_CAPOUT_FMT, &vcap_fmt);
|
||||||
|
|
||||||
|
/* yuv */
|
||||||
|
if (HD_VIDEO_PXLFMT_CLASS(vcap_fmt) == HD_VIDEO_PXLFMT_CLASS_YUV) {
|
||||||
|
vcap_buf_size = VDO_YUV_BUFSIZE(vdo_size_w, vdo_size_h, vcap_fmt);
|
||||||
}
|
}
|
||||||
#endif
|
/* raw */
|
||||||
|
else {
|
||||||
// config common pool (cap)
|
vcap_buf_size = VDO_RAW_BUFSIZE(vdo_size_w, vdo_size_h, vcap_fmt);
|
||||||
for (id = 0; id < SENSOR_CAPS_COUNT; id++) {
|
|
||||||
System_GetSensorInfo(id, SENSOR_CAPOUT_FMT, &vcap_fmt);
|
|
||||||
if (HD_VIDEO_PXLFMT_CLASS(vcap_fmt) == HD_VIDEO_PXLFMT_CLASS_YUV) { // YUV
|
|
||||||
switch (id) {
|
|
||||||
case 0: //single sensor
|
|
||||||
vcap_buf_size = VDO_YUV_BUFSIZE(VDO_SIZE_W, VDO_SIZE_H, vcap_fmt);
|
|
||||||
break;
|
|
||||||
case 1: // dual sensor
|
|
||||||
vcap_buf_size = VDO_YUV_BUFSIZE(VDO2_SIZE_W, VDO2_SIZE_H, vcap_fmt);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else { // RAW
|
|
||||||
switch (id) {
|
|
||||||
case 0:
|
|
||||||
vcap_buf_size = VDO_RAW_BUFSIZE(VDO_SIZE_W, VDO_SIZE_H, vcap_fmt);
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
vcap_buf_size = VDO_RAW_BUFSIZE(VDO2_SIZE_W, VDO2_SIZE_H, vcap_fmt);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#if (MOVIE_DIRECT_FUNC == ENABLE)
|
|
||||||
if (id == 0) {
|
|
||||||
vcap_buf_size = 0;
|
|
||||||
}
|
|
||||||
#endif // (MOVIE_DIRECT_FUNC == ENABLE)
|
|
||||||
mem_cfg.pool_info[id].type = HD_COMMON_MEM_COMMON_POOL;
|
|
||||||
mem_cfg.pool_info[id].blk_size = DBGINFO_BUFSIZE() +
|
|
||||||
vcap_buf_size +
|
|
||||||
VDO_CA_BUF_SIZE(CA_WIN_NUM_W, CA_WIN_NUM_H) +
|
|
||||||
VDO_LA_BUF_SIZE(LA_WIN_NUM_W, LA_WIN_NUM_H);
|
|
||||||
mem_cfg.pool_info[id].blk_cnt = 7;
|
|
||||||
mem_cfg.pool_info[id].ddr_id = DDR_ID0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// // config common pool (main)
|
#if (MOVIE_DIRECT_FUNC == ENABLE)
|
||||||
// //id ++;
|
if (id == 0) {
|
||||||
// mem_cfg.pool_info[id].type = HD_COMMON_MEM_COMMON_POOL;
|
vcap_buf_size = 0;
|
||||||
//#if (MOVIE_DIS == DISABLE)
|
}
|
||||||
// #if (MOVIE_YUV_COMPRESS == ENABLE)
|
#endif
|
||||||
// mem_cfg.pool_info[id].blk_size = DBGINFO_BUFSIZE() + VDO_NVX_BUFSIZE(VDO_MAIN_SIZE_W, VDO_MAIN_SIZE_H, HD_VIDEO_PXLFMT_YUV420);
|
|
||||||
// #else
|
mem_cfg.pool_info[id].type = HD_COMMON_MEM_COMMON_POOL;
|
||||||
// mem_cfg.pool_info[id].blk_size = DBGINFO_BUFSIZE() + VDO_YUV_BUFSIZE(VDO_MAIN_SIZE_W, VDO_MAIN_SIZE_H, HD_VIDEO_PXLFMT_YUV420);
|
mem_cfg.pool_info[id].blk_size = DBGINFO_BUFSIZE() +
|
||||||
// #endif
|
vcap_buf_size +
|
||||||
//#else // (MOVIE_DIS == DISABLE)
|
VDO_CA_BUF_SIZE(CA_WIN_NUM_W, CA_WIN_NUM_H) +
|
||||||
// mem_cfg.pool_info[id].blk_size = DBGINFO_BUFSIZE() + VDO_DIS_BUFSIZE(VDO_MAIN_SIZE_W, VDO_MAIN_SIZE_H, HD_VIDEO_PXLFMT_YUV420);
|
VDO_LA_BUF_SIZE(LA_WIN_NUM_W, LA_WIN_NUM_H);
|
||||||
//#endif // (MOVIE_DIS == DISABLE)
|
mem_cfg.pool_info[id].blk_cnt = 7;
|
||||||
// #if (defined(_MODEL_565_CARDV_HS880C_)||defined(_MODEL_565_CARDV_HS880CC_)||defined(_MODEL_565_CARDV_WH565_)||defined(_MODEL_565_CARDV_EVA51_))
|
mem_cfg.pool_info[id].ddr_id = DDR_ID0;
|
||||||
// mem_cfg.pool_info[id].blk_cnt = 4;//6; //3 for 3dnr-off, 4 for 3dnr-on
|
|
||||||
// #else // (defined(_MODEL_565_CARDV_HS880C_)||defined(_MODEL_565_CARDV_HS880CC_)||defined(_MODEL_565_CARDV_WH565_))
|
|
||||||
// #if (_BOARD_DRAM_SIZE_ == 0x04000000)
|
|
||||||
// mem_cfg.pool_info[id].blk_cnt = 4; //3 for 3dnr-off, 4 for 3dnr-on
|
|
||||||
// #else // (_BOARD_DRAM_SIZE_ == 0x04000000)
|
|
||||||
// mem_cfg.pool_info[id].blk_cnt = 4; //3 for 3dnr-off, 4 for 3dnr-on
|
|
||||||
// #endif // (_BOARD_DRAM_SIZE_ == 0x04000000)
|
|
||||||
// #endif // (defined(_MODEL_565_CARDV_HS880C_)||defined(_MODEL_565_CARDV_HS880CC_)||defined(_MODEL_565_CARDV_WH565_))
|
|
||||||
// mem_cfg.pool_info[id].ddr_id = DDR_ID0;
|
|
||||||
|
|
||||||
|
|
||||||
#if (_BOARD_DRAM_SIZE_ > 0x04000000)
|
/*******************************************************************
|
||||||
#if (SENSOR_CAPS_COUNT == 1)
|
* Clone
|
||||||
// config common pool (clone)
|
*******************************************************************/
|
||||||
id ++;
|
id ++;
|
||||||
mem_cfg.pool_info[id].type = HD_COMMON_MEM_COMMON_POOL;
|
mem_cfg.pool_info[id].type = HD_COMMON_MEM_COMMON_POOL;
|
||||||
#if (MOVIE_DIS == DISABLE)
|
mem_cfg.pool_info[id].blk_size = DBGINFO_BUFSIZE() + VDO_YUV_BUFSIZE(clone_size_w, clone_size_h, HD_VIDEO_PXLFMT_YUV420);
|
||||||
mem_cfg.pool_info[id].blk_size = DBGINFO_BUFSIZE()+VDO_YUV_BUFSIZE(VDO_CLONE_SIZE_W, VDO_CLONE_SIZE_H, HD_VIDEO_PXLFMT_YUV420);
|
|
||||||
#else // (MOVIE_DIS == DISABLE)
|
|
||||||
mem_cfg.pool_info[id].blk_size = DBGINFO_BUFSIZE()+VDO_DIS_BUFSIZE(VDO_CLONE_SIZE_W, VDO_CLONE_SIZE_H, HD_VIDEO_PXLFMT_YUV420);
|
|
||||||
#endif // (MOVIE_DIS == DISABLE)
|
|
||||||
#if (defined(_MODEL_565_CARDV_HS880C_)||defined(_MODEL_565_CARDV_HS880CC_)||defined(_MODEL_565_CARDV_WH565_)||defined(_MODEL_565_CARDV_EVA51_))
|
|
||||||
#if (MOVIE_DIRECT_FUNC == ENABLE)
|
|
||||||
mem_cfg.pool_info[id].blk_cnt = 2;
|
|
||||||
#else // (MOVIE_DIRECT_FUNC == ENABLE)
|
|
||||||
mem_cfg.pool_info[id].blk_cnt = 4;
|
|
||||||
#endif // (MOVIE_DIRECT_FUNC == ENABLE)
|
|
||||||
#else // (defined(_MODEL_565_CARDV_HS880C_)||defined(_MODEL_565_CARDV_HS880CC_)||defined(_MODEL_565_CARDV_WH565_))
|
|
||||||
mem_cfg.pool_info[id].blk_cnt = 4;
|
mem_cfg.pool_info[id].blk_cnt = 4;
|
||||||
#endif // (defined(_MODEL_565_CARDV_HS880C_)||defined(_MODEL_565_CARDV_HS880CC_)||defined(_MODEL_565_CARDV_WH565_))
|
|
||||||
mem_cfg.pool_info[id].ddr_id = DDR_ID0;
|
mem_cfg.pool_info[id].ddr_id = DDR_ID0;
|
||||||
#endif // (SENSOR_CAPS_COUNT == 1)
|
|
||||||
#endif // (_BOARD_DRAM_SIZE_ > 0x04000000)
|
|
||||||
|
|
||||||
#if (_PACKAGE_BOOTLOGO_)
|
#if (_PACKAGE_BOOTLOGO_)
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
|
|
|
@ -38,6 +38,14 @@
|
||||||
#include "UIAppPhoto_Param.h"
|
#include "UIAppPhoto_Param.h"
|
||||||
#include "sys_fwload.h"
|
#include "sys_fwload.h"
|
||||||
#include "../lfqueue/lfqueue.h"
|
#include "../lfqueue/lfqueue.h"
|
||||||
|
|
||||||
|
|
||||||
|
#include <sys_linuxboot.h>
|
||||||
|
#include <libfdt.h>
|
||||||
|
#include <rtosfdt.h>
|
||||||
|
#include <compiler.h>
|
||||||
|
#define MEM_PATH_LINUX "/memory"
|
||||||
|
|
||||||
#if defined(_UI_STYLE_LVGL_)
|
#if defined(_UI_STYLE_LVGL_)
|
||||||
#include "flow_lvgl.h"
|
#include "flow_lvgl.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -84,8 +92,6 @@ static char thumb_current_path_main[256] = {'\0'};
|
||||||
static char thumb_current_path_clone[256] = {'\0'};
|
static char thumb_current_path_clone[256] = {'\0'};
|
||||||
static lfqueue_t write_queue = {0};
|
static lfqueue_t write_queue = {0};
|
||||||
|
|
||||||
#define MOVIE_ROOT_PATH "A:\\Novatek\\"
|
|
||||||
#define MOIVE2_YUV_PATH "A:\\MOVIE2.yuv420"
|
|
||||||
#define FILE_SN_MAX 99999
|
#define FILE_SN_MAX 99999
|
||||||
#define FILEDB_MAX_NUM 5000
|
#define FILEDB_MAX_NUM 5000
|
||||||
#define MOVIE_THUMB_WIDTH 640
|
#define MOVIE_THUMB_WIDTH 640
|
||||||
|
@ -98,9 +104,12 @@ static ID MOVIEFAST_FLG_ID = 0;
|
||||||
static UINT32 g_moviefast_tsk_run = 1;
|
static UINT32 g_moviefast_tsk_run = 1;
|
||||||
static UINT32 g_moviefast_poweroff_tsk_run = 1;
|
static UINT32 g_moviefast_poweroff_tsk_run = 1;
|
||||||
static THREAD_HANDLE g_moviefast_tsk_id = 0;
|
static THREAD_HANDLE g_moviefast_tsk_id = 0;
|
||||||
|
static THREAD_HANDLE g_moviefast_raw_tsk_id = 0;
|
||||||
static THREAD_HANDLE g_moviefast_power_off_tsk_id = 0;
|
static THREAD_HANDLE g_moviefast_power_off_tsk_id = 0;
|
||||||
static THREAD_HANDLE g_moviefast_write_tsk_id = 0;
|
static THREAD_HANDLE g_moviefast_write_tsk_id = 0;
|
||||||
static BOOL g_bIsRecStatus = FALSE;
|
static BOOL g_bIsRecStatus = FALSE;
|
||||||
|
static BOOL g_manual_raw_tsk_running = FALSE;
|
||||||
|
static BOOL g_is_manual_raw_tsk_running = FALSE;
|
||||||
static VOS_TICK g_rec_start_tick = 0;
|
static VOS_TICK g_rec_start_tick = 0;
|
||||||
static VOS_TICK g_alg_start_time= 0;
|
static VOS_TICK g_alg_start_time= 0;
|
||||||
static VOS_TICK g_alg_end_time= 0;
|
static VOS_TICK g_alg_end_time= 0;
|
||||||
|
@ -865,6 +874,66 @@ static void MovieFast_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void MovieFast_Manual_Raw_Task(void* arg)
|
||||||
|
{
|
||||||
|
HD_PATH_ID vcap_path = ImageApp_MovieMulti_GetVcapPort(_CFG_REC_ID_1);
|
||||||
|
HD_PATH_ID vprc_path = ImageApp_MovieMulti_GetVprcInPort(_CFG_REC_ID_1);
|
||||||
|
HD_RESULT ret;
|
||||||
|
HD_VIDEO_FRAME frame;
|
||||||
|
|
||||||
|
g_is_manual_raw_tsk_running = TRUE;
|
||||||
|
|
||||||
|
while(g_manual_raw_tsk_running)
|
||||||
|
{
|
||||||
|
ret = hd_videocap_pull_out_buf(vcap_path, &frame, PHOTOFAST_HD_PUSH_PULL_TIMEOUT_MS);
|
||||||
|
if(ret != HD_OK){
|
||||||
|
DBG_ERR("hd_videocap_pull_out_buf failed!(%d)\n", ret);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = hd_videoproc_push_in_buf(vprc_path, &frame, NULL, PHOTOFAST_HD_PUSH_PULL_TIMEOUT_MS);
|
||||||
|
if(ret != HD_OK){
|
||||||
|
DBG_ERR("hd_videoproc_push_in_buf failed!(%d)\n", ret);
|
||||||
|
hd_videocap_release_out_buf(vcap_path, &frame);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = hd_videocap_release_out_buf(vcap_path, &frame);
|
||||||
|
if(ret != HD_OK){
|
||||||
|
DBG_ERR("hd_videocap_release_out_buf failed!(%d)\n", ret);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
ret = hd_videocap_pull_out_buf(vcap_path, &frame, 33);
|
||||||
|
if(ret != HD_OK){
|
||||||
|
DBG_ERR("hd_videocap_pull_out_buf failed!(%d)\n", ret);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = hd_videoproc_push_in_buf(vprc_path, &frame, NULL, 33);
|
||||||
|
if(ret != HD_OK){
|
||||||
|
DBG_ERR("hd_videoproc_push_in_buf failed!(%d)\n", ret);
|
||||||
|
hd_videocap_release_out_buf(vcap_path, &frame);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = hd_videocap_release_out_buf(vcap_path, &frame);
|
||||||
|
if(ret != HD_OK){
|
||||||
|
DBG_ERR("hd_videocap_release_out_buf failed!(%d)\n", ret);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DBG_DUMP("MovieFast_Manual_Raw_Task finished\n");
|
||||||
|
|
||||||
|
g_is_manual_raw_tsk_running = FALSE;
|
||||||
|
|
||||||
|
THREAD_RETURN(0);
|
||||||
|
}
|
||||||
|
|
||||||
static void MovieFast_WriteFile_Task(void* arg)
|
static void MovieFast_WriteFile_Task(void* arg)
|
||||||
{
|
{
|
||||||
lfqueue_t* queue = (lfqueue_t*)arg;
|
lfqueue_t* queue = (lfqueue_t*)arg;
|
||||||
|
@ -907,6 +976,8 @@ static void MovieFast_WriteFile_Task(void* arg)
|
||||||
free(param);
|
free(param);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DBG_DUMP("MovieFast_WriteFile_Task finished\n");
|
||||||
}
|
}
|
||||||
static void MovieFast_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT32 value)
|
static void MovieFast_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT32 value)
|
||||||
{
|
{
|
||||||
|
@ -1115,13 +1186,126 @@ static void MovieFast_Load_Sen_Cfg(MOVIEFAST_IQ_CFG cfg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int MovieFast_fdt_read_mem_node(const char *path, unsigned int *p_addr, unsigned int *p_size)
|
||||||
|
{
|
||||||
|
unsigned char *p_fdt = (unsigned char *)fdt_get_base();
|
||||||
|
|
||||||
|
if (p_fdt == NULL) {
|
||||||
|
DBG_ERR("p_fdt is NULL.\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int len;
|
||||||
|
int nodeoffset;
|
||||||
|
const void *nodep; /* property node pointer */
|
||||||
|
|
||||||
|
// get linux space
|
||||||
|
nodeoffset = fdt_path_offset(p_fdt, path);
|
||||||
|
if (nodeoffset < 0) {
|
||||||
|
DBG_ERR("failed to offset for %s = %d \n", path, nodeoffset);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
nodep = fdt_getprop(p_fdt, nodeoffset, "reg", &len);
|
||||||
|
if (len == 0 || nodep == NULL) {
|
||||||
|
DBG_ERR("failed to access reg.\n");
|
||||||
|
return -1;
|
||||||
|
} else {
|
||||||
|
unsigned int *p_data = (unsigned int *)nodep;
|
||||||
|
*p_addr = be32_to_cpu(p_data[0]);
|
||||||
|
*p_size = be32_to_cpu(p_data[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int MovieFast_fdt_get_info(FDT_INFO *p_info)
|
||||||
|
{
|
||||||
|
int er;
|
||||||
|
if ((er = MovieFast_fdt_read_mem_node(MEM_PATH_LINUX, &p_info->linux_addr, &p_info->linux_size)) != 0) {
|
||||||
|
return er;
|
||||||
|
}
|
||||||
|
|
||||||
|
DBG_DUMP("linux addr:%lx size:%lx\n", p_info->linux_addr, p_info->linux_size);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int MovieFast_fdt_get_tmp_buf(FDT_INFO *p_info, UINT32* addr, UINT32* size)
|
||||||
|
{
|
||||||
|
|
||||||
|
if(p_info && addr && size){
|
||||||
|
*addr = (UINT32)(p_info->linux_addr + 0x1000); /* linux kernel is start from 0x0, add offset to avoid null check */
|
||||||
|
*size = (UINT32)(p_info->linux_size - 0x1000);
|
||||||
|
return E_OK;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
DBG_ERR("p_inf or addr or size is null\n");
|
||||||
|
return E_SYS;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static INT32 MovieFast_Mode2_Get_Cont_Shot(UINT32* max_cnt, UINT32* duration)
|
||||||
|
{
|
||||||
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
|
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if(max_cnt == NULL || duration == NULL){
|
||||||
|
DBG_ERR("max_cnt & max_cnt can't be null!\n");
|
||||||
|
return E_SYS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
switch (UI_GetData(FL_CONTINUE_SHOT))//puiPara->Multishot
|
||||||
|
{
|
||||||
|
case CONTINUE_SHOT_BURST_5:
|
||||||
|
case CONTINUE_SHOT_BURST_4:
|
||||||
|
{
|
||||||
|
DBG_WRN("MovieFast mode2 only support CONTINUE_SHOT_BURST_3\n");
|
||||||
|
*max_cnt = 3;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case CONTINUE_SHOT_BURST_3:
|
||||||
|
*max_cnt = 3;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CONTINUE_SHOT_BURST_2:
|
||||||
|
*max_cnt = 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CONTINUE_SHOT_OFF:
|
||||||
|
default:
|
||||||
|
*max_cnt = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
|
if(SF_MULTISHOT_INTEVEL_1S == puiPara->MultiShotIntevel)
|
||||||
|
{
|
||||||
|
*duration = 1000;//The interval between consecutive shots of each photo is 1 second
|
||||||
|
}
|
||||||
|
else if(SF_MULTISHOT_INTEVEL_2S == puiPara->MultiShotIntevel) {
|
||||||
|
*duration = 2000;//The interval between consecutive shots of each photo is 2 second
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
*duration = 1000 / *max_cnt;//SF_MULTISHOT_INTEVEL_0S
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
*duration = 1000 / *max_cnt;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return E_OK;
|
||||||
|
}
|
||||||
|
|
||||||
THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
||||||
{
|
{
|
||||||
UINT32 i;
|
UINT32 i;
|
||||||
MOVIEMULTI_MAX_LINK_INFO MaxLinkInfo = {1, 0, 0, 1, 0}; //Img, Disp, Wifi, AudCap, EthCam
|
MOVIEMULTI_MAX_LINK_INFO MaxLinkInfo = {1, 0, 0, 1, 0}; //Img, Disp, Wifi, AudCap, EthCam
|
||||||
|
|
||||||
DBG_FUNC("\r\n");
|
DBG_FUNC("\r\n");
|
||||||
UINT32 rec_type = MovieMapping_GetRecType(UI_GetData(FL_MOVIE_SIZE));
|
// UINT32 rec_type = MovieMapping_GetRecType(UI_GetData(FL_MOVIE_SIZE));
|
||||||
|
|
||||||
Movie_CommPoolInit();
|
Movie_CommPoolInit();
|
||||||
|
|
||||||
|
@ -1129,6 +1313,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 700 700 100 ");
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
Set_NIGHTMODE(0, 1);
|
Set_NIGHTMODE(0, 1);
|
||||||
|
@ -1177,36 +1362,66 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
||||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_VCAP_OUTFUNC, HD_VIDEOCAP_OUTFUNC_DIRECT);
|
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_VCAP_OUTFUNC, HD_VIDEOCAP_OUTFUNC_DIRECT);
|
||||||
#endif
|
#endif
|
||||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PRARM_FILEDB_MAX_MUM, 5000);
|
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PRARM_FILEDB_MAX_MUM, 5000);
|
||||||
|
ImageApp_MovieMulti_SetParam(_CFG_CTRL_ID, MOVIEMULTI_PARAM_FILE_UTC_AUTO_EN, TRUE);
|
||||||
|
|
||||||
|
if(DrvGPIO_GetPhotoMovieModeFromMonitor() != DX_HUNTING_MODE_MOVIE2){
|
||||||
|
MOVIEMULTI_IPL_SIZE_INFO ipl_size={{2560,1440}, 30};
|
||||||
|
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_IPL_USER_IMG_SIZE, (UINT32)&ipl_size);
|
||||||
|
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_IPL_FORCED_IMG_SIZE, MOVIE_IPL_SIZE_USER);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
|
||||||
|
UIAPP_PHOTO_SENSOR_INFO *sensor_info = UIAppPhoto_get_SensorInfo(0);
|
||||||
|
MOVIEMULTI_IPL_SIZE_INFO ipl_size={{sensor_info->sSize.w, sensor_info->sSize.h}, 60};
|
||||||
|
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_IPL_USER_IMG_SIZE, (UINT32)&ipl_size);
|
||||||
|
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_IPL_FORCED_IMG_SIZE, MOVIE_IPL_SIZE_USER);
|
||||||
|
|
||||||
|
|
||||||
if(DrvGPIO_GetPhotoMovieModeFromMonitor() != DX_HUNTING_MODE_MOVIE2){
|
MOVIEMULTI_IME_CROP_INFO crop_info = {0};
|
||||||
MOVIEMULTI_IPL_SIZE_INFO ipl_size={{2560,1440}, 30};
|
|
||||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_IPL_USER_IMG_SIZE, (UINT32)&ipl_size);
|
|
||||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_IPL_FORCED_IMG_SIZE, MOVIE_IPL_SIZE_USER);
|
|
||||||
ImageApp_MovieMulti_SetParam(_CFG_CTRL_ID, MOVIEMULTI_PARAM_FILE_UTC_AUTO_EN, TRUE);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
UIAPP_PHOTO_SENSOR_INFO *sensor_info = UIAppPhoto_get_SensorInfo(0);
|
|
||||||
MOVIEMULTI_IPL_SIZE_INFO ipl_size={{sensor_info->sSize.w, sensor_info->sSize.h}, 60};
|
|
||||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_IPL_USER_IMG_SIZE, (UINT32)&ipl_size);
|
|
||||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_IPL_FORCED_IMG_SIZE, MOVIE_IPL_SIZE_USER);
|
|
||||||
|
|
||||||
|
UINT32 movie_size_idx;
|
||||||
|
|
||||||
MOVIEMULTI_IME_CROP_INFO crop_info = {0};
|
UINT32 rec_type;
|
||||||
|
|
||||||
/* 4:3 -> 16:9 */
|
movie_size_idx = UI_GetData(FL_MOVIE_SIZE);
|
||||||
crop_info.IMESize = (USIZE){1920, 1440};
|
|
||||||
crop_info.IMEWin = (URECT){0, 180, 1920, 1080};
|
rec_type = MovieMapping_GetRecType(movie_size_idx);
|
||||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_MAIN_IME_CROP, (UINT32)&crop_info);
|
if (rec_type == MOVIE_REC_TYPE_FRONT || rec_type == MOVIE_REC_TYPE_CLONE) { // single recording
|
||||||
if(MOVIE_REC_TYPE_CLONE == rec_type)
|
|
||||||
{
|
|
||||||
/* 4:3 -> 16:9 */
|
/* 4:3 -> 16:9 */
|
||||||
crop_info.IMESize = (USIZE){640, 480};
|
// crop_info.IMESize = (USIZE){1920, 1440};
|
||||||
crop_info.IMEWin = (URECT){0, 60, 640, 360};
|
// crop_info.IMEWin = (URECT){0, 180, 1920, 1080};
|
||||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_CLONE_IME_CROP, (UINT32)&crop_info);
|
crop_info.IMESize = (USIZE){
|
||||||
|
gMovie_Rec_Info[0].size.w,
|
||||||
|
(gMovie_Rec_Info[0].size.w * 3) / 4};
|
||||||
|
|
||||||
|
crop_info.IMEWin = (URECT){
|
||||||
|
|
||||||
|
0,
|
||||||
|
(crop_info.IMESize.h - gMovie_Rec_Info[0].size.h) / 2,
|
||||||
|
gMovie_Rec_Info[0].size.w,
|
||||||
|
gMovie_Rec_Info[0].size.h};
|
||||||
|
|
||||||
|
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_MAIN_IME_CROP, (UINT32)&crop_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
if (rec_type == MOVIE_REC_TYPE_CLONE) {
|
||||||
|
/* 4:3 -> 16:9 */
|
||||||
|
// crop_info.IMESize = (USIZE){640, 480};
|
||||||
|
// crop_info.IMEWin = (URECT){0, 60, 640, 360};
|
||||||
|
|
||||||
|
crop_info.IMESize = (USIZE){
|
||||||
|
gMovie_Clone_Info[0].size.w,
|
||||||
|
(gMovie_Clone_Info[0].size.w * 3) / 4};
|
||||||
|
|
||||||
|
crop_info.IMEWin = (URECT){
|
||||||
|
0,
|
||||||
|
(crop_info.IMESize.h - gMovie_Clone_Info[0].size.h) / 2,
|
||||||
|
gMovie_Clone_Info[0].size.w,
|
||||||
|
gMovie_Clone_Info[0].size.h};
|
||||||
|
|
||||||
|
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_CLONE_IME_CROP, (UINT32)&crop_info);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#if (ANR_FUNC == ENABLE)
|
#if (ANR_FUNC == ENABLE)
|
||||||
HD_AUDIOCAP_ANR audio_cfg_param = {0};
|
HD_AUDIOCAP_ANR audio_cfg_param = {0};
|
||||||
|
@ -1224,10 +1439,14 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
#if FIX_RECORD_NOISE == ENABLE
|
#if FIX_RECORD_NOISE == ENABLE
|
||||||
ImageApp_MovieMulti_SetParam(0, MOVIEMULTI_PARAM_AUD_MUTE_ENC_FUNC_EN, TRUE);
|
ImageApp_MovieMulti_SetParam(0, MOVIEMULTI_PARAM_AUD_MUTE_ENC_FUNC_EN, TRUE);
|
||||||
ImageApp_MovieMulti_SetParam(0, MOVIEMULTI_PARAM_AUD_MUTE_ENC, TRUE);
|
ImageApp_MovieMulti_SetParam(0, MOVIEMULTI_PARAM_AUD_MUTE_ENC, TRUE);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_MANUAL_PUSH_RAW_FRAME, TRUE);
|
||||||
|
|
||||||
ImageApp_MovieMulti_Open();
|
ImageApp_MovieMulti_Open();
|
||||||
|
|
||||||
for (i = 0; i < SENSOR_CAPS_COUNT; i++) {
|
for (i = 0; i < SENSOR_CAPS_COUNT; i++) {
|
||||||
|
@ -1246,7 +1465,7 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
||||||
HD_VIDEOPROC_IN vprc_in = {0};
|
HD_VIDEOPROC_IN vprc_in = {0};
|
||||||
|
|
||||||
hd_videoproc_get(vprc_in_id, HD_VIDEOPROC_PARAM_IN, &vprc_in);
|
hd_videoproc_get(vprc_in_id, HD_VIDEOPROC_PARAM_IN, &vprc_in);
|
||||||
vprc_in.frc = HD_VIDEO_FRC_RATIO(30, 60);
|
vprc_in.frc = HD_VIDEO_FRC_RATIO(1, 1);
|
||||||
hd_videoproc_set(vprc_in_id, HD_VIDEOPROC_PARAM_IN, &vprc_in);
|
hd_videoproc_set(vprc_in_id, HD_VIDEOPROC_PARAM_IN, &vprc_in);
|
||||||
|
|
||||||
/* alg */
|
/* alg */
|
||||||
|
@ -1259,14 +1478,12 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
||||||
vprc_out.frc = HD_VIDEO_FRC_RATIO(1, 1);
|
vprc_out.frc = HD_VIDEO_FRC_RATIO(1, 1);
|
||||||
// vprc_out.depth = 0; /* raw encode */
|
// vprc_out.depth = 0; /* raw encode */
|
||||||
hd_videoproc_set(vprc_main_id, HD_VIDEOPROC_PARAM_OUT_EX, &vprc_out);
|
hd_videoproc_set(vprc_main_id, HD_VIDEOPROC_PARAM_OUT_EX, &vprc_out);
|
||||||
if(MOVIE_REC_TYPE_CLONE == rec_type)
|
|
||||||
{
|
/* clone */
|
||||||
/* clone */
|
hd_videoproc_get(vprc_clone_id, HD_VIDEOPROC_PARAM_OUT_EX, &vprc_out);
|
||||||
hd_videoproc_get(vprc_clone_id, HD_VIDEOPROC_PARAM_OUT_EX, &vprc_out);
|
vprc_out.frc = HD_VIDEO_FRC_RATIO(1, 1);
|
||||||
vprc_out.frc = HD_VIDEO_FRC_RATIO(1, 1);
|
// vprc_out.depth = 0;
|
||||||
// vprc_out.depth = 0;
|
hd_videoproc_set(vprc_clone_id, HD_VIDEOPROC_PARAM_OUT_EX, &vprc_out);
|
||||||
hd_videoproc_set(vprc_clone_id, HD_VIDEOPROC_PARAM_OUT_EX, &vprc_out);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (1){//gMovie_Alg_Info[_CFG_REC_ID_1 + i].path13.ImgSize.w && gMovie_Alg_Info[_CFG_REC_ID_1 + i].path13.ImgSize.h) {
|
if (1){//gMovie_Alg_Info[_CFG_REC_ID_1 + i].path13.ImgSize.w && gMovie_Alg_Info[_CFG_REC_ID_1 + i].path13.ImgSize.h) {
|
||||||
|
@ -1300,10 +1517,12 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
||||||
{
|
{
|
||||||
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;
|
||||||
BOOL stop = FALSE;
|
BOOL stop = FALSE;
|
||||||
UINT32 ae_cnt = 0;
|
UINT32 ae_cnt = 0;
|
||||||
UINT32 stop_cnt = 0;
|
UINT32 stop_cnt = 0;
|
||||||
BOOL ae_locked = FALSE;
|
BOOL ae_locked = FALSE;
|
||||||
|
HD_RESULT ret;
|
||||||
|
|
||||||
if(DrvGPIO_GetPhotoMovieModeFromMonitor() == DX_HUNTING_MODE_MOVIE2){
|
if(DrvGPIO_GetPhotoMovieModeFromMonitor() == DX_HUNTING_MODE_MOVIE2){
|
||||||
ae_cnt = 6;
|
ae_cnt = 6;
|
||||||
|
@ -1315,60 +1534,63 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
||||||
|
vprc_path = ImageApp_MovieMulti_GetVprcInPort(_CFG_REC_ID_1);
|
||||||
|
|
||||||
vos_perf_mark(&g_alg_start_time);
|
vos_perf_mark(&g_alg_start_time);
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
ret = hd_videocap_pull_out_buf(vcap_path, &frame, PHOTOFAST_HD_PUSH_PULL_TIMEOUT_MS);
|
||||||
|
if(ret != HD_OK){
|
||||||
|
DBG_ERR("hd_videocap_pull_out_buf failed!(%d)\n", ret);
|
||||||
|
}
|
||||||
|
|
||||||
hd_videoproc_pull_out_buf(alg_path, &frame, 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){
|
||||||
|
DBG_ERR("hd_videoproc_push_in_buf failed!(%d)\n", ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = hd_videocap_release_out_buf(vcap_path, &frame);
|
||||||
|
if(ret != HD_OK){
|
||||||
|
DBG_ERR("hd_videocap_release_out_buf failed!(%d)\n", ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = hd_videoproc_pull_out_buf(alg_path, &frame, PHOTOFAST_HD_PUSH_PULL_TIMEOUT_MS);
|
||||||
|
if(ret != HD_OK){
|
||||||
|
DBG_ERR("hd_videoproc_pull_out_buf failed!(%d)\n", ret);
|
||||||
|
}
|
||||||
|
|
||||||
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(frame.count >= ae_cnt && ae_locked == FALSE){
|
||||||
|
|
||||||
DBG_DUMP("timestamp = %llu count = %llu\n", frame.timestamp, frame.count);
|
DBG_DUMP("timestamp = %llu count = %llu\n", frame.timestamp, frame.count);
|
||||||
|
|
||||||
|
if(DrvGPIO_GetPhotoMovieModeFromMonitor() == DX_HUNTING_MODE_MOVIE2){
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
HD_PATH_ID vprc_in_id = ImageApp_MovieMulti_GetVprc3DNRPort(_CFG_REC_ID_1);
|
||||||
|
HD_VIDEOPROC_IN vprc_in = {0};
|
||||||
|
|
||||||
|
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);
|
Set_AEMODE(1);
|
||||||
setet_preset_param();
|
setet_preset_param();
|
||||||
|
|
||||||
ae_locked = TRUE;
|
ae_locked = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(frame.count >= stop_cnt){
|
if(frame.count >= stop_cnt){
|
||||||
|
|
||||||
UIAPP_PHOTO_SENSOR_INFO *sensor_info = UIAppPhoto_get_SensorInfo(0);
|
|
||||||
UINT32 buf_size = 0;
|
|
||||||
|
|
||||||
buf_size = VDO_YUV_BUFSIZE(sensor_info->sSize.w, sensor_info->sSize.h , HD_VIDEO_PXLFMT_YUV420);
|
|
||||||
#if 0
|
|
||||||
VOS_TICK t1, t2;
|
|
||||||
vos_perf_mark(&t1);
|
|
||||||
FST_FILE fp = FileSys_OpenFile(MOIVE2_YUV_PATH, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
|
|
||||||
FileSys_WriteFile(fp, (UINT8*)frame.phy_addr[0], &buf_size, 0, NULL);
|
|
||||||
FileSys_CloseFile(fp);
|
|
||||||
vos_perf_mark(&t2);
|
|
||||||
DBG_DUMP("write = %lu us\n", vos_perf_duration(t1, t2));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
MOVIEFAST_WRITE_QUEUE_PARAM* param = (MOVIEFAST_WRITE_QUEUE_PARAM*) malloc(sizeof(MOVIEFAST_WRITE_QUEUE_PARAM));
|
|
||||||
if(param){
|
|
||||||
memcpy((void*)¶m->frame, (void*)&frame, sizeof(HD_VIDEO_FRAME));
|
|
||||||
param->va = NULL;
|
|
||||||
param->vprc_path_id = alg_path;
|
|
||||||
param->size = buf_size;
|
|
||||||
sprintf(param->path, MOIVE2_YUV_PATH);
|
|
||||||
}
|
|
||||||
|
|
||||||
g_vprc_trigger_frm_time = (VOS_TICK)frame.timestamp;
|
|
||||||
g_vprc_trigger_frm_count = (UINT32)frame.count;
|
|
||||||
|
|
||||||
while (lfqueue_enq(&write_queue, (void*) param) == -1)
|
|
||||||
{
|
|
||||||
DBG_ERR("ENQ Full ?\r\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
stop = TRUE;
|
stop = TRUE;
|
||||||
}
|
}
|
||||||
else{
|
|
||||||
hd_videoproc_release_out_buf(alg_path, &frame);
|
hd_videoproc_release_out_buf(alg_path, &frame);
|
||||||
}
|
|
||||||
} while(stop == FALSE);
|
} while(stop == FALSE);
|
||||||
|
|
||||||
vos_perf_mark(&g_alg_end_time);
|
vos_perf_mark(&g_alg_end_time);
|
||||||
|
@ -1386,16 +1608,118 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
||||||
vos_task_resume(g_moviefast_tsk_id);
|
vos_task_resume(g_moviefast_tsk_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((g_moviefast_raw_tsk_id = vos_task_create(MovieFast_Manual_Raw_Task, 0, "MovieFastRawTsk", PRI_MOVIEFAST_CMDTSK, STKSIZE_MOVIEFAST_CMDTSK)) == 0) {
|
||||||
|
DBG_ERR("MovieFast_Manual_Raw_Task create failed.\r\n");
|
||||||
|
} else {
|
||||||
|
g_manual_raw_tsk_running = TRUE;
|
||||||
|
vos_task_resume(g_moviefast_raw_tsk_id);
|
||||||
|
}
|
||||||
|
|
||||||
vos_flag_set(MOVIEFAST_FLG_ID, FLGMOVIEFAST_RECSTART);
|
vos_flag_set(MOVIEFAST_FLG_ID, FLGMOVIEFAST_RECSTART);
|
||||||
|
|
||||||
|
VOS_TICK t1, t2;
|
||||||
|
|
||||||
|
vos_perf_mark(&t1);
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
|
||||||
|
FDT_INFO fdt_info;
|
||||||
|
UINT32 tmp_buf, tmp_buf_size;
|
||||||
|
UINT32 cnt = 0;
|
||||||
|
UIAPP_PHOTO_SENSOR_INFO *sensor_info = UIAppPhoto_get_SensorInfo(0);
|
||||||
|
UINT32 yuv_size = 0;
|
||||||
|
HD_PATH_ID alg_path = ImageApp_MovieMulti_GetAlgDataPort(_CFG_REC_ID_1, _CFG_ALG_PATH3);
|
||||||
|
UINT32 max_cnt , duration;
|
||||||
|
|
||||||
|
|
||||||
|
CHKPNT;
|
||||||
|
|
||||||
|
MovieFast_fdt_get_info(&fdt_info);
|
||||||
|
|
||||||
|
if(MovieFast_fdt_get_tmp_buf(&fdt_info, &tmp_buf, &tmp_buf_size) != E_OK){
|
||||||
|
DBG_ERR("get tmp buffer failed\n");
|
||||||
|
goto EXIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(MovieFast_Mode2_Get_Cont_Shot(&max_cnt, &duration) != E_OK){
|
||||||
|
DBG_ERR("get cont shut failed\n");
|
||||||
|
goto EXIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
CHKPNT;
|
||||||
|
|
||||||
|
yuv_size = VDO_YUV_BUFSIZE(sensor_info->sSize.w, sensor_info->sSize.h , HD_VIDEO_PXLFMT_YUV420);
|
||||||
|
|
||||||
|
|
||||||
|
CHKPNT;
|
||||||
|
|
||||||
|
do {
|
||||||
|
HD_VIDEO_FRAME frame = {0};
|
||||||
|
|
||||||
|
if((tmp_buf + yuv_size) > (tmp_buf + tmp_buf_size)){
|
||||||
|
DBG_ERR("tmp buffer overflow!!\n");
|
||||||
|
goto EXIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
hd_videoproc_pull_out_buf(alg_path, &frame, -1);
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
hd_videoproc_release_out_buf(alg_path, &frame);
|
||||||
|
if(++cnt >= max_cnt)
|
||||||
|
break;
|
||||||
|
|
||||||
|
vos_util_delay_ms(duration);
|
||||||
|
|
||||||
|
} while(1);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vos_perf_mark(&t2);
|
||||||
|
|
||||||
#if FIX_RECORD_NOISE == ENABLE
|
#if FIX_RECORD_NOISE == ENABLE
|
||||||
vos_util_delay_ms(300);
|
|
||||||
|
UINT32 elapse_time_ms = ((t2 - t1) / 1000);
|
||||||
|
|
||||||
|
CHKPNT;
|
||||||
|
if(elapse_time_ms < 300)
|
||||||
|
vos_util_delay_ms(300 - elapse_time_ms);
|
||||||
|
|
||||||
ImageApp_MovieMulti_SetParam(0, MOVIEMULTI_PARAM_AUD_MUTE_ENC, FALSE);
|
ImageApp_MovieMulti_SetParam(0, MOVIEMULTI_PARAM_AUD_MUTE_ENC, FALSE);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
EXIT:
|
||||||
|
|
||||||
THREAD_RETURN(0);
|
THREAD_RETURN(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void MovieFast_Close(void)
|
static void MovieFast_Close(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
if(g_moviefast_raw_tsk_id){
|
||||||
|
|
||||||
|
UINT32 delay_cnt;
|
||||||
|
|
||||||
|
delay_cnt = 10;
|
||||||
|
g_manual_raw_tsk_running = FALSE;
|
||||||
|
|
||||||
|
while (g_is_manual_raw_tsk_running && delay_cnt) {
|
||||||
|
vos_util_delay_us(10000);
|
||||||
|
delay_cnt --;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(g_is_manual_raw_tsk_running){
|
||||||
|
vos_task_destroy(g_moviefast_raw_tsk_id);
|
||||||
|
g_is_manual_raw_tsk_running = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_moviefast_raw_tsk_id = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
MovieFast_OnRecStop();
|
MovieFast_OnRecStop();
|
||||||
|
|
||||||
MovieStamp_Disable();
|
MovieStamp_Disable();
|
||||||
|
@ -1412,59 +1736,86 @@ static void MovieFast_Close(void)
|
||||||
UIAPP_PHOTO_SENSOR_INFO *sensor_info = UIAppPhoto_get_SensorInfo(0);
|
UIAPP_PHOTO_SENSOR_INFO *sensor_info = UIAppPhoto_get_SensorInfo(0);
|
||||||
UINT32 buf_pa = 0;
|
UINT32 buf_pa = 0;
|
||||||
void* buf_va = 0;
|
void* buf_va = 0;
|
||||||
|
UINT32 max_cnt , duration;
|
||||||
|
UINT32 tmp_buf, tmp_buf_size;
|
||||||
|
FDT_INFO fdt_info;
|
||||||
|
UINT32 yuv_size = 0;
|
||||||
|
|
||||||
|
MovieFast_fdt_get_info(&fdt_info);
|
||||||
|
|
||||||
|
if(MovieFast_fdt_get_tmp_buf(&fdt_info, &tmp_buf, &tmp_buf_size) != E_OK){
|
||||||
|
DBG_ERR("get tmp buffer failed\n");
|
||||||
|
goto EXIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(MovieFast_Mode2_Get_Cont_Shot(&max_cnt, &duration) != E_OK){
|
||||||
|
DBG_ERR("get cont shut failed\n");
|
||||||
|
goto EXIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
yuv_size = VDO_YUV_BUFSIZE(sensor_info->sSize.w, sensor_info->sSize.h , HD_VIDEO_PXLFMT_YUV420);
|
||||||
|
|
||||||
PhotoFast_Movie_Init();
|
PhotoFast_Movie_Init();
|
||||||
|
|
||||||
PhotoFast_SliceEncode_Open(alg_path);
|
PhotoFast_SliceEncode_Open(alg_path);
|
||||||
PhotoFast_SliceEncode2_Open(alg_path, 1);
|
PhotoFast_SliceEncode2_Open(alg_path, max_cnt);
|
||||||
|
|
||||||
HD_VIDEO_FRAME frame = {0};
|
for(UINT32 i = 0 ; i < max_cnt ; i++)
|
||||||
UINT32 addr_dst[HD_VIDEO_MAX_PLANE] = {0};
|
{
|
||||||
UINT32 loff_dst[HD_VIDEO_MAX_PLANE] = {0};
|
HD_VIDEO_FRAME frame = {0};
|
||||||
UINT32 buf_size = 0;
|
UINT32 addr_dst[HD_VIDEO_MAX_PLANE] = {0};
|
||||||
|
UINT32 loff_dst[HD_VIDEO_MAX_PLANE] = {0};
|
||||||
|
HD_COMMON_MEM_VB_BLK blk = 0;
|
||||||
|
|
||||||
HD_COMMON_MEM_VB_BLK blk = 0;
|
blk = hd_common_mem_get_block(HD_COMMON_MEM_COMMON_POOL, yuv_size, DDR_ID0); // Get block from mem pool
|
||||||
buf_size = VDO_YUV_BUFSIZE(sensor_info->sSize.w, sensor_info->sSize.h , HD_VIDEO_PXLFMT_YUV420);
|
if (blk == HD_COMMON_MEM_VB_INVALID_BLK) {
|
||||||
blk = hd_common_mem_get_block(HD_COMMON_MEM_COMMON_POOL, buf_size, DDR_ID0); // Get block from mem pool
|
DBG_ERR("hd_common_mem_get_block failed!(size=%lx)\n", yuv_size);
|
||||||
if (blk == HD_COMMON_MEM_VB_INVALID_BLK) {
|
}
|
||||||
DBG_ERR("hd_common_mem_get_block failed!(size=%lx)\n", buf_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
buf_pa = hd_common_mem_blk2pa(blk);
|
buf_pa = hd_common_mem_blk2pa(blk);
|
||||||
if (buf_pa == 0) {
|
if (buf_pa == 0) {
|
||||||
DBG_ERR("hd_common_mem_blk2pa failed!(blk=0x%x)\n", blk);
|
DBG_ERR("hd_common_mem_blk2pa failed!(blk=0x%x)\n", blk);
|
||||||
}
|
}
|
||||||
|
|
||||||
buf_va = (void*)hd_common_mem_mmap(HD_COMMON_MEM_MEM_TYPE_CACHE, buf_pa, buf_size);
|
buf_va = (void*)hd_common_mem_mmap(HD_COMMON_MEM_MEM_TYPE_CACHE, buf_pa, yuv_size);
|
||||||
if (buf_va == 0) {
|
if (buf_va == 0) {
|
||||||
DBG_ERR("hd_common_mem_mmap failed!\r\n");
|
DBG_ERR("hd_common_mem_mmap failed!\r\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(buf_pa){
|
if(buf_pa){
|
||||||
/* dst img */
|
/* dst img */
|
||||||
addr_dst[0] = buf_pa;
|
addr_dst[0] = buf_pa;
|
||||||
loff_dst[0] = sensor_info->sSize.w;
|
loff_dst[0] = sensor_info->sSize.w;
|
||||||
addr_dst[1] = addr_dst[0] + loff_dst[0] * sensor_info->sSize.h;
|
addr_dst[1] = addr_dst[0] + loff_dst[0] * sensor_info->sSize.h;
|
||||||
loff_dst[1] = sensor_info->sSize.w;
|
loff_dst[1] = sensor_info->sSize.w;
|
||||||
vf_init_ex(&frame, sensor_info->sSize.w, sensor_info->sSize.h, HD_VIDEO_PXLFMT_YUV420, loff_dst, addr_dst);
|
vf_init_ex(&frame, sensor_info->sSize.w, sensor_info->sSize.h, HD_VIDEO_PXLFMT_YUV420, loff_dst, addr_dst);
|
||||||
|
|
||||||
FST_FILE fp = FileSys_OpenFile(MOIVE2_YUV_PATH, FST_OPEN_READ);
|
memcpy((void*)buf_pa, (void*)(tmp_buf), yuv_size);
|
||||||
if(fp){
|
tmp_buf += yuv_size;
|
||||||
FileSys_ReadFile(fp, (UINT8*)buf_va, &buf_size, 0, NULL);
|
|
||||||
FileSys_CloseFile(fp);
|
DBG_DUMP("enq %lu\n", i);
|
||||||
|
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
if(PhotoFast_Sliceencode2_Enq_Frame(&frame) == E_OK){
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
vos_util_delay_ms(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
PhotoFast_Sliceencode2_Enq_Frame(&frame);
|
|
||||||
PhotoFast_SliceEncode2_Close();
|
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
DBG_ERR("%s not found!\n", MOIVE2_YUV_PATH);
|
DBG_ERR("allocate %lx failed!\n", yuv_size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
|
||||||
DBG_ERR("allocate %lx failed!\n", buf_size);
|
fastboot_set_done(BOOT_FLOW_MOVIE2);
|
||||||
}
|
PhotoFast_SliceEncode2_Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EXIT:
|
||||||
|
|
||||||
DCF_Close(g_dcf_hdl);
|
DCF_Close(g_dcf_hdl);
|
||||||
DCF_UnInstallID();
|
DCF_UnInstallID();
|
||||||
|
|
||||||
|
|
35
rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c
Executable file → Normal file
35
rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c
Executable file → Normal file
|
@ -1184,9 +1184,9 @@ static INT32 PhotoFast_CaptureStart(HD_VIDEO_FRAME *p_video_frame)
|
||||||
}
|
}
|
||||||
|
|
||||||
#if POWERON_FAST_SLICE_ENC_VER2 == ENABLE
|
#if POWERON_FAST_SLICE_ENC_VER2 == ENABLE
|
||||||
return PhotoFast_Sliceencode2_Enq_Frame(p_video_frame);
|
return PhotoFast_Sliceencode2_Enq_Frame(p_video_frame);
|
||||||
#else
|
#else
|
||||||
PhotoFast_SliceEncode(vprc_path, p_video_frame);
|
return PhotoFast_SliceEncode(vprc_path, p_video_frame);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1427,6 +1427,7 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg)
|
||||||
UINT32 max_cnt = 0;
|
UINT32 max_cnt = 0;
|
||||||
BOOL start_cap = FALSE;
|
BOOL start_cap = FALSE;
|
||||||
BOOL stop_flag = FALSE;
|
BOOL stop_flag = FALSE;
|
||||||
|
BOOL led_flag = FALSE;
|
||||||
|
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||||
|
@ -1485,9 +1486,10 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg)
|
||||||
period = 1000 / max_cnt;
|
period = 1000 / max_cnt;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
DBG_DUMP("period = %lu ms\n", period);
|
|
||||||
|
|
||||||
|
|
||||||
|
DBG_DUMP("period = %lu ms, max_cnt = %lu\n", period, max_cnt);
|
||||||
|
|
||||||
PhotoFast_SliceEncode2_Open(vprc_path, max_cnt);
|
PhotoFast_SliceEncode2_Open(vprc_path, max_cnt);
|
||||||
nvt_cmdsys_runcmd("ae set_speed 0 128 700 700 100 ");
|
nvt_cmdsys_runcmd("ae set_speed 0 128 700 700 100 ");
|
||||||
|
|
||||||
|
@ -1546,7 +1548,7 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg)
|
||||||
VOS_TICK t1, t2;
|
VOS_TICK t1, t2;
|
||||||
UINT32 duration;
|
UINT32 duration;
|
||||||
UINT32 led_delay = 170;
|
UINT32 led_delay = 170;
|
||||||
|
led_flag = FALSE;
|
||||||
vos_perf_mark(&t1);
|
vos_perf_mark(&t1);
|
||||||
|
|
||||||
/**************************************************
|
/**************************************************
|
||||||
|
@ -1565,7 +1567,8 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg)
|
||||||
if((duration >= period) ||((period - duration) <= (led_delay + 17))
|
if((duration >= period) ||((period - duration) <= (led_delay + 17))
|
||||||
|
|
||||||
){
|
){
|
||||||
if(sf_is_night_mode(0) ==TRUE){
|
if((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);
|
sf_ir_led_set(((2 == puiPara->NightMode) ? 2 : 1),puiPara->FlashLed, puiPara->NightMode,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1719,7 +1722,7 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg)
|
||||||
case DX_HUNTING_MODE_PHOTO_MOVIE:
|
case DX_HUNTING_MODE_PHOTO_MOVIE:
|
||||||
|
|
||||||
if (start_cap == TRUE) {
|
if (start_cap == TRUE) {
|
||||||
// g_u32PrvCapCnt++;
|
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
if(sf_is_night_mode(0) ==TRUE){
|
if(sf_is_night_mode(0) ==TRUE){
|
||||||
//DrvGPIO_IRLed_Turn_Onoff(0);
|
//DrvGPIO_IRLed_Turn_Onoff(0);
|
||||||
|
@ -1732,11 +1735,12 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg)
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
DBG_WRN("enq frame failed...\n");
|
DBG_WRN("enq frame failed...\n");
|
||||||
/* release */
|
|
||||||
if ((hd_ret = hd_videoproc_release_out_buf(vprc_path, &video_frame))!= HD_OK) {
|
/* release */
|
||||||
DBG_ERR("failed to hd_videoproc_release_out_buf, er=%d\n", (int)hd_ret);
|
if ((hd_ret = hd_videoproc_release_out_buf(vprc_path, &video_frame))!= HD_OK) {
|
||||||
goto exit;
|
DBG_ERR("failed to hd_videoproc_release_out_buf, er=%d\n", (int)hd_ret);
|
||||||
}
|
goto exit;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_u32PrvCapCnt >= max_cnt) {
|
if (g_u32PrvCapCnt >= max_cnt) {
|
||||||
|
@ -2086,7 +2090,12 @@ void Set_AEMODE(UINT32 id)
|
||||||
if (id == 1){
|
if (id == 1){
|
||||||
ae_manual.manual.mode = 1;
|
ae_manual.manual.mode = 1;
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
if (puiPara->NightMode == 0) {
|
if(puiPara->CamMode == SF_CAM_MODE_VIDEO2)
|
||||||
|
{
|
||||||
|
ae_manual.manual.expotime = 33333;
|
||||||
|
ae_manual.manual.iso_gain = ae_status.status_info.iso_gain[0]*ae_status.status_info.expotime[0]/33333;
|
||||||
|
}
|
||||||
|
else if (puiPara->NightMode == 0) {
|
||||||
ae_manual.manual.expotime = 125000;//ae_status.status_info.expotime[0];
|
ae_manual.manual.expotime = 125000;//ae_status.status_info.expotime[0];
|
||||||
ae_manual.manual.iso_gain = ae_status.status_info.iso_gain[0]*ae_status.status_info.expotime[0]/125000;
|
ae_manual.manual.iso_gain = ae_status.status_info.iso_gain[0]*ae_status.status_info.expotime[0]/125000;
|
||||||
}
|
}
|
||||||
|
@ -2266,7 +2275,7 @@ ER PhotoFast_Movie_Init(void)
|
||||||
id++;
|
id++;
|
||||||
mem_cfg.pool_info[id].type = HD_COMMON_MEM_COMMON_POOL;
|
mem_cfg.pool_info[id].type = HD_COMMON_MEM_COMMON_POOL;
|
||||||
mem_cfg.pool_info[id].blk_size = DBGINFO_BUFSIZE()+VDO_YUV_BUFSIZE(sensor_info->sSize.w, sensor_info->sSize.h , HD_VIDEO_PXLFMT_YUV420);
|
mem_cfg.pool_info[id].blk_size = DBGINFO_BUFSIZE()+VDO_YUV_BUFSIZE(sensor_info->sSize.w, sensor_info->sSize.h , HD_VIDEO_PXLFMT_YUV420);
|
||||||
mem_cfg.pool_info[id].blk_cnt = 1;
|
mem_cfg.pool_info[id].blk_cnt = 3; /* depending on cont shot */
|
||||||
mem_cfg.pool_info[id].ddr_id = DDR_ID0;
|
mem_cfg.pool_info[id].ddr_id = DDR_ID0;
|
||||||
|
|
||||||
vendor_common_mem_relayout(&mem_cfg);
|
vendor_common_mem_relayout(&mem_cfg);
|
||||||
|
|
|
@ -639,7 +639,7 @@ static INT32 PhotoFast_SliceEncode_Alloc_Buffer(PhotoFast_MEM_Info* info, char*
|
||||||
#else
|
#else
|
||||||
if ((ret = hd_common_mem_alloc(name, &info->pa, (void **)&va_ptr, info->blk_size, ddr_id)) != HD_OK) {
|
if ((ret = hd_common_mem_alloc(name, &info->pa, (void **)&va_ptr, info->blk_size, ddr_id)) != HD_OK) {
|
||||||
#endif
|
#endif
|
||||||
DBG_ERR("hd_common_mem_alloc failed(%d)\r\n", ret);
|
DBG_ERR("hd_common_mem_alloc failed(size:%d name:%s)\r\n", ret, name);
|
||||||
return E_SYS;
|
return E_SYS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2085,7 +2085,7 @@ INT32 PhotoFast_SliceEncode_CB2(void* user_data)
|
||||||
if(PhotoFast_SliceEncode_Alloc_Buffer_Retry(
|
if(PhotoFast_SliceEncode_Alloc_Buffer_Retry(
|
||||||
&slice_encode_screennail_info->bs_buf_mem_info,
|
&slice_encode_screennail_info->bs_buf_mem_info,
|
||||||
"slice_enc_screennail",
|
"slice_enc_screennail",
|
||||||
10,
|
50,
|
||||||
100
|
100
|
||||||
) != E_OK){
|
) != E_OK){
|
||||||
goto EXIT;
|
goto EXIT;
|
||||||
|
@ -2246,9 +2246,11 @@ INT32 PhotoFast_SliceEncode_CB2(void* user_data)
|
||||||
param->cnt++;
|
param->cnt++;
|
||||||
if(param->cnt >= param->max_cnt)
|
if(param->cnt >= param->max_cnt)
|
||||||
break;
|
break;
|
||||||
|
#if SF_NO_SD_SEND == ENABLE
|
||||||
if(fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, 1) != E_OK){
|
if(fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, 1) != E_OK){
|
||||||
goto EXIT;
|
goto EXIT;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
} while(1);
|
} while(1);
|
||||||
|
|
||||||
EXIT:
|
EXIT:
|
||||||
|
|
|
@ -30,7 +30,7 @@ INT32 gUITimeHour = 0;
|
||||||
INT32 gUITimeMinute = 0;
|
INT32 gUITimeMinute = 0;
|
||||||
INT32 gUITimeSecond = 0;
|
INT32 gUITimeSecond = 0;
|
||||||
|
|
||||||
INT32 gUIDateSetFmt = DATEFMT_YMD;
|
INT32 gUIDateSetFmt = DATEFMT_MDY;
|
||||||
INT32 gUITimeSetFmt = TIMEFMT_24HR;
|
INT32 gUITimeSetFmt = TIMEFMT_24HR;
|
||||||
|
|
||||||
void Validate_Date(INT32 *pYear, INT32 *pMonth, INT32 *pDay,
|
void Validate_Date(INT32 *pYear, INT32 *pMonth, INT32 *pDay,
|
||||||
|
@ -44,7 +44,7 @@ void DateTime_Init(void)
|
||||||
gUIDateMonth = DEF_MONTH;
|
gUIDateMonth = DEF_MONTH;
|
||||||
gUIDateDay = DEF_DAY;
|
gUIDateDay = DEF_DAY;
|
||||||
gUITimeHour = gUITimeMinute = gUITimeSecond = 0;
|
gUITimeHour = gUITimeMinute = gUITimeSecond = 0;
|
||||||
gUIDateSetFmt = DATEFMT_YMD;
|
gUIDateSetFmt = DATEFMT_MDY;
|
||||||
gUITimeSetFmt = TIMEFMT_24HR;
|
gUITimeSetFmt = TIMEFMT_24HR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1761,6 +1761,7 @@ void sf_power_on_para_check_init(void)
|
||||||
if(puiPara->DateStyle != SysGetFlag(FL_DateFormatIndex))
|
if(puiPara->DateStyle != SysGetFlag(FL_DateFormatIndex))
|
||||||
{
|
{
|
||||||
SysSetFlag(FL_DateFormatIndex, puiPara->DateStyle);
|
SysSetFlag(FL_DateFormatIndex, puiPara->DateStyle);
|
||||||
|
SysSetFlag(FL_DATE_FORMAT, puiPara->DateStyle);
|
||||||
}
|
}
|
||||||
if(puiPara->Language != SysGetFlag(FL_LANGUAGE))
|
if(puiPara->Language != SysGetFlag(FL_LANGUAGE))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user