Commit c1f9a37a authored by luo's avatar luo

[UPDATE]SDK 2.5.0.5.1.1

parent f69b600b
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
}; };
chosen { chosen {
bootargs = "console=ttyS1,115200 mem=96M quiet"; bootargs = "console=ttyS1,115200 mem=64M quiet";
stdout-path = "serial1:115200n8"; stdout-path = "serial1:115200n8";
}; };
......
...@@ -58,6 +58,10 @@ static const struct flash_info gigadevice_parts[] = { ...@@ -58,6 +58,10 @@ static const struct flash_info gigadevice_parts[] = {
SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
SPI_NOR_4B_OPCODES | SPI_NOR_HAS_LOCK | SPI_NOR_4B_OPCODES | SPI_NOR_HAS_LOCK |
SPI_NOR_HAS_TB)}, SPI_NOR_HAS_TB)},
{ "gd25le255", INFO(0xc86019, 0, 64 * 1024, 512,
SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
SPI_NOR_4B_OPCODES | SPI_NOR_HAS_LOCK |
SPI_NOR_HAS_TB)},
{ "gd25q256", INFO(0xc84019, 0, 64 * 1024, 512, { "gd25q256", INFO(0xc84019, 0, 64 * 1024, 512,
SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
SPI_NOR_4B_OPCODES | SPI_NOR_HAS_LOCK | SPI_NOR_4B_OPCODES | SPI_NOR_HAS_LOCK |
......
...@@ -72,6 +72,7 @@ typedef enum{ ...@@ -72,6 +72,7 @@ typedef enum{
E_CUR_SYS_MODE_AOR = 0x1, E_CUR_SYS_MODE_AOR = 0x1,
E_CUR_SYS_MODE_DEEPSLEEP = 0x2, E_CUR_SYS_MODE_DEEPSLEEP = 0x2,
E_CUR_SYS_MODE_RESET = 0x3, E_CUR_SYS_MODE_RESET = 0x3,
E_CUR_SYS_MODE_RESET_KEY_RELEASE = 0x4,
E_CUR_SYS_MODE_INVALID = 0xF, E_CUR_SYS_MODE_INVALID = 0xF,
}E_CUR_WORK_MODE; }E_CUR_WORK_MODE;
...@@ -80,6 +81,7 @@ typedef enum{ ...@@ -80,6 +81,7 @@ typedef enum{
E_WAKEUP_SRC_WIFI = 0x21, E_WAKEUP_SRC_WIFI = 0x21,
E_WAKEUP_SRC_LOW_BAT = 0x22,// Low battery alarm E_WAKEUP_SRC_LOW_BAT = 0x22,// Low battery alarm
E_WAKEUP_SRC_RESET_KEY = 0x23, E_WAKEUP_SRC_RESET_KEY = 0x23,
E_WAKEUP_SRC_RESET_KEY_RELEASE = 0x24,
E_WAKEUP_SRC_INVALID = 0xFF, E_WAKEUP_SRC_INVALID = 0xFF,
}E_WAKEUP_SRC; }E_WAKEUP_SRC;
...@@ -159,6 +161,8 @@ static int feed_dog_thread_fn(void *data) { ...@@ -159,6 +161,8 @@ static int feed_dog_thread_fn(void *data) {
case CMD_TYPE_GET_WORK_MODE_INFO_ACK: { case CMD_TYPE_GET_WORK_MODE_INFO_ACK: {
if (cmd_data.flag == E_WAKEUP_SRC_RESET_KEY) { if (cmd_data.flag == E_WAKEUP_SRC_RESET_KEY) {
g_cur_work_mode = E_CUR_SYS_MODE_RESET; g_cur_work_mode = E_CUR_SYS_MODE_RESET;
} else if (cmd_data.flag == E_WAKEUP_SRC_RESET_KEY_RELEASE) {
g_cur_work_mode = E_CUR_SYS_MODE_RESET_KEY_RELEASE;
} else { } else {
g_cur_work_mode = E_CUR_SYS_MODE_NORMAL; g_cur_work_mode = E_CUR_SYS_MODE_NORMAL;
} }
......
...@@ -19,12 +19,29 @@ ...@@ -19,12 +19,29 @@
#include "rpmsg_rpc_app.h" #include "rpmsg_rpc_app.h"
#define BUTTON_PIN GPIO_PORT_A_PIN_4 // GPIO_A4 引脚 #define BUTTON_PIN GPIO_PORT_A_PIN_4 // GPIO_A4 引脚
#define LONG_PRESS_TIME 3000 // 长按时间阈值,单位为毫秒 #define LONG_PRESS_TIME 1000 // 长按时间阈值,单位为毫秒
#define DEBOUNCE_TIME 20 // 消抖时间,单位为毫秒 #define DEBOUNCE_TIME 20 // 消抖时间,单位为毫秒
static struct rt_timer debounce_timer; static struct rt_timer debounce_timer;
static struct rt_timer long_press_timer;
static rt_uint32_t press_start_time; static rt_uint32_t press_start_time;
static rt_bool_t key_pressed = RT_FALSE; static rt_bool_t key_pressed = RT_FALSE;
static rt_bool_t key_long_pressed = RT_FALSE;
static void long_press_timer_timeout(void *param)
{
gpio_level_t level = 0;
sa_gpio_read_pin(BUTTON_PIN, &level);
if (!level && key_pressed) {
key_long_pressed = RT_TRUE;
rt_kprintf("long press detected\n");
rpmsg_rpc_app_send_button_event(E_RPC_EVENT_SRC_RESET);
rt_timer_start(&long_press_timer);
// system_resetall();
}
}
static void debounce_timer_timeout(void *param) static void debounce_timer_timeout(void *param)
{ {
...@@ -34,8 +51,7 @@ static void debounce_timer_timeout(void *param) ...@@ -34,8 +51,7 @@ static void debounce_timer_timeout(void *param)
// rt_kprintf("%s %d, level = %d\r\n",__func__,__LINE__, level); // rt_kprintf("%s %d, level = %d\r\n",__func__,__LINE__, level);
if (!level && !key_pressed) { if (!level && !key_pressed) {
key_pressed = RT_TRUE; key_pressed = RT_TRUE;
press_start_time = rt_tick_get(); rt_timer_start(&long_press_timer);
rt_kprintf("%s %d, key_pressed = %d\r\n",__func__,__LINE__, key_pressed);
} }
} }
...@@ -49,19 +65,9 @@ static void button_irq_handler(void *args) ...@@ -49,19 +65,9 @@ static void button_irq_handler(void *args)
rt_timer_start(&debounce_timer); rt_timer_start(&debounce_timer);
} else if (level && key_pressed) { } else if (level && key_pressed) {
key_pressed = RT_FALSE; key_pressed = RT_FALSE;
rt_timer_stop(&debounce_timer);
rt_uint32_t press_duration = rt_tick_get() - press_start_time; rt_timer_stop(&long_press_timer);
if (press_duration >= rt_tick_from_millisecond(LONG_PRESS_TIME)) rpmsg_rpc_app_send_button_event(E_RPC_EVENT_SRC_RESET_KEY_RELEASE);
{
rt_kprintf("long, press_duration = %d, press_start_time = %d\n", press_duration, press_start_time);
rpmsg_rpc_app_send_button_event(E_RPC_EVENT_SRC_RESET);
}
else
{
// rt_kprintf("short\n");
// system_resetall();
// rpmsg_rpc_app_send_button_event(__LINE__);
}
} }
} }
...@@ -74,6 +80,13 @@ int button_init(void) ...@@ -74,6 +80,13 @@ int button_init(void)
DEBOUNCE_TIME, DEBOUNCE_TIME,
RT_TIMER_FLAG_ONE_SHOT | RT_TIMER_FLAG_SOFT_TIMER); RT_TIMER_FLAG_ONE_SHOT | RT_TIMER_FLAG_SOFT_TIMER);
rt_timer_init(&long_press_timer,
"long_press",
long_press_timer_timeout,
RT_NULL,
LONG_PRESS_TIME,
RT_TIMER_FLAG_ONE_SHOT | RT_TIMER_FLAG_SOFT_TIMER);
// rt_pin_mode(BUTTON_PIN, PIN_MODE_INPUT); // rt_pin_mode(BUTTON_PIN, PIN_MODE_INPUT);
rt_pin_mode(BUTTON_PIN, PIN_MODE_INPUT_PULLUP); rt_pin_mode(BUTTON_PIN, PIN_MODE_INPUT_PULLUP);
rt_pin_irq_enable(BUTTON_PIN, PIN_IRQ_DISABLE); rt_pin_irq_enable(BUTTON_PIN, PIN_IRQ_DISABLE);
......
...@@ -101,7 +101,7 @@ int rpmsg_rpc_app_send_button_event(E_RPC_EVENT_SRC event_src) ...@@ -101,7 +101,7 @@ int rpmsg_rpc_app_send_button_event(E_RPC_EVENT_SRC event_src)
sa_rpmsg_send(RPMSG_RPC_APP_CH_ID, (char *)&cmd_data, sizeof(command_t), 2000); sa_rpmsg_send(RPMSG_RPC_APP_CH_ID, (char *)&cmd_data, sizeof(command_t), 2000);
*/ */
reset_key_flag = 1; reset_key_flag = event_src;
return 0; return 0;
} }
...@@ -175,7 +175,10 @@ static void process_command(command_t *cmd) { ...@@ -175,7 +175,10 @@ static void process_command(command_t *cmd) {
cmd_data.flag = E_WAKEUP_SRC_WIFI; cmd_data.flag = E_WAKEUP_SRC_WIFI;
} }
if (reset_key_flag) { if (reset_key_flag == E_RPC_EVENT_SRC_RESET_KEY_RELEASE) {
cmd_data.flag = E_WAKEUP_SRC_RESET_KEY_RELEASE;
reset_key_flag = 0;
} else if (reset_key_flag == E_RPC_EVENT_SRC_RESET) {
cmd_data.flag = E_WAKEUP_SRC_RESET_KEY; cmd_data.flag = E_WAKEUP_SRC_RESET_KEY;
reset_key_flag = 0; reset_key_flag = 0;
} }
......
...@@ -6,6 +6,7 @@ typedef enum{ ...@@ -6,6 +6,7 @@ typedef enum{
E_CUR_SYS_MODE_AOR = 0x1, E_CUR_SYS_MODE_AOR = 0x1,
E_CUR_SYS_MODE_DEEPSLEEP = 0x2, E_CUR_SYS_MODE_DEEPSLEEP = 0x2,
E_CUR_SYS_MODE_RESET = 0x3, E_CUR_SYS_MODE_RESET = 0x3,
E_CUR_SYS_MODE_RESET_KEY_RELEASE = 0x4,
E_CUR_SYS_MODE_INVALID = 0xF, E_CUR_SYS_MODE_INVALID = 0xF,
}E_CUR_WORK_MODE; }E_CUR_WORK_MODE;
...@@ -14,6 +15,7 @@ typedef enum{ ...@@ -14,6 +15,7 @@ typedef enum{
E_WAKEUP_SRC_WIFI = 0x21, E_WAKEUP_SRC_WIFI = 0x21,
E_WAKEUP_SRC_LOW_BAT = 0x22,// Low battery alarm E_WAKEUP_SRC_LOW_BAT = 0x22,// Low battery alarm
E_WAKEUP_SRC_RESET_KEY = 0x23, E_WAKEUP_SRC_RESET_KEY = 0x23,
E_WAKEUP_SRC_RESET_KEY_RELEASE = 0x24,
E_WAKEUP_SRC_INVALID = 0xFF, E_WAKEUP_SRC_INVALID = 0xFF,
}E_WAKEUP_SRC; }E_WAKEUP_SRC;
...@@ -21,6 +23,7 @@ typedef enum{ ...@@ -21,6 +23,7 @@ typedef enum{
E_RPC_EVENT_SRC_HEAD = 0x0, E_RPC_EVENT_SRC_HEAD = 0x0,
E_RPC_EVENT_SRC_REBOOT, E_RPC_EVENT_SRC_REBOOT,
E_RPC_EVENT_SRC_RESET, E_RPC_EVENT_SRC_RESET,
E_RPC_EVENT_SRC_RESET_KEY_RELEASE,
}E_RPC_EVENT_SRC; }E_RPC_EVENT_SRC;
void rpmsg_rpc_app_reboot(void); void rpmsg_rpc_app_reboot(void);
......
{
"doc": "user",
"version": "2.0.16.0",
"#module": "ENUM: 0 - isp, 1 - filter",
"#alwayson": "ENUM: 0 - disable, 1 - AOR, 2 - DEEP",
"module": 0,
"#top": "BOOL: 0 - OFF, 1 - ON",
"top": {
"hdmi": 0,
"vi": 0,
"ispm": 0,
"ispd": 1,
"savelog": 0,
"savestream": 0,
"alwayson": 0,
"is4K": 1
},
"sensor": {
"#img_mode": "ENUM: 0 - MIPI_LINEAR_MAXRES, 1 - MIPI_HDR_MAXRES, 2 - SPI_MAXRES, 3 - DVP_MAXRES, 4 - MIPI_LINEAR_BINNING, 5 - MODE_EXT1",
"#fps": "NUM: 0 - use default, otherwise - actual fps",
"support": [
{ "lib": "libsns_imx681_soc.so", "device": 0, "img_mode": 0, "fps": 14.29, "mirror": 0,"flip": 0, "obj": "g_stSnsImx681Obj" }
]
},
"config": {
"#ispfile": "0: color_out; 1:color_in_diff; 2:aisp; 3: DN_out; 4:DN_in_diff; 5:DN_night;6:wdr_out; 7:wdr_in_diff;",
"ispfile": [ "/acme/conf/681/imx681_capture_Color_Outdoor.bin","/acme/conf/681/imx681_capture_Color_Outdoor_diff.bin", "/acme/conf/681/imx681_capture_Color_Indoor_diff.bin","/acme/conf/681/imx681_capture_Color_Outdoor_diff.bin","","","","","","/acme/conf/681/imx681_capture_Color_Blc_diff.bin"],
"algfile": "/acme/conf/681/imx681_v01_001_800_rtl.bin"
},
"filter": {
"ispm_fps": 15,
"ispd_fps": 15,
"jpeg_depth": 3,
"vnne_depth": 3,
"crop": { "x": 96, "y": 144, "width": 3840, "height": 2736 },
"binning": { "width": 1920, "height": 1080 },
"scale": { "width": 960, "height": 540 }
},
"vi": {
"src_fps": 15, "dst_fps": 15, "depth": 0, "mdscale": 1, "rotation": 0,
"gating": { "enable": 0, "vi": 1, "isp": 1, "vpu": 1 },
"crop": { "x": 96, "y": 144, "width": 3840, "height": 2736 },
"pipe": { "bayer": "RGGB" },
"tpg": { "enable": 0, "pattern": "V", "bayer": "BGGR", "motion": 0 },
"record": { "enable": 0, "frames": 0, "size": 100, "segment": 0 }
},
"yuv": { "enable": 0, "channel": 0, "mode": 2, "depth": 0, "record": { "enable": 0, "frames": 0, "size": 100, "segment": 0 } },
"svp": [
{
"enable": 0, "channel": 2, "mode": 1, "detect": "trigger",
"confthreshold": [0.6, 0.6, 0.6, 0.6],
"modefile": "/acme/conf/facial_feature_extraction_1M_klasym-a8w8.hir"
},
{
"enable": 0, "channel": 3, "mode": 1, "detect": "npu",
"confthreshold": [0.6, 0.6, 0.6, 0.6],
"lib": "libsvp_yolox.so", "intf": "SA_SVP_Postprocess_YOLOX", "modefile": "/acme/conf/object-detection-nas075_person_face_car.hir"
},
{
"enable": 0, "channel": 3, "mode": 1, "detect": "vnne",
"confthreshold": [0.6, 0.6], "outsel": 0, "filterparams": [0,0,0,0,0,0,0,0,0],
"lib": "libsvp_vnne.so", "intf": "SA_SVP_Postprocess_VNNE", "modefile": "/acme/conf/object-detection_vnne_qat-w6a8-mmdet_superacme_person_pytorch.bin"
},
{
"enable": 0, "channel": 3, "mode": 1, "detect": "md",
"delay": 0,
"roi": [
{ "valid": 1, "sensi": 6, "x0": 0, "y0": 0, "x1": 480, "y1": 0, "x2": 480, "y2": 270, "x3": 0, "y3": 270 }
]
}
],
"osd": {
"#align": "left-top, right-top, right-bottom, left-bottom, center",
"#full": "enable--ENUM:, 1 - vpss, 2 - YUV(only work on manual mode)",
"workmode": "D",
"font": { "family": "/acme/bin/simhei.ttf", "size": 32 },
"logo": [ { "enable": 0,
"channel": 1,
"rect": { "x": 16, "y": 16, "width": 256, "height": 128 },
"point": { "x": 0, "y": 0 },
"align": "left-top",
"file": "/acme/bin/x_venc_logo_256_128.bgra" } ],
"mark": [ { "enable": 0,
"channel": 1,
"rect": { "x": 16, "y": 16, "width": 256, "height": 128 },
"point": { "x": 0, "y": 0 },
"align": "left-top",
"file": "/acme/bin/logo256x128.2bpp" } ],
"text": [ { "enable": 0,
"channel": 1,
"rect": { "x": 16, "y": 16, "width": 600, "height": 64 },
"point": { "x": 0, "y": 0 },
"align": "right-bottom",
"invert": { "enable": 0, "rect": { "x": 0, "y": 0, "width": 600, "height": 64 } } } ],
"full":[ { "enable": 0,
"channel": 1,
"type": 1 } ]
},
"#wakeup/mode": "ENUM: 0 - isplite, 1 - raw",
"wakeup": {
"mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlmit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
},
"#format": "1 - aac(frmlen=1024,bitrate=32000), 2 - g711(frmlen=160,bitrate=8000)",
"audio": {
"devid": 0,
"ai": { "enable": 0, "frmlen": 160, "samplerate": 16000, "bitwidth": 16, "soundmode": 1 },
"ao": { "enable": 0, "frmlen": 160, "samplerate": 16000, "bitwidth": 16, "soundmode": 1 },
"aenc": { "enable": 0, "rtsp": 1, "format": 2, "ps": 0, "samplerate": 16000, "bitwidth": 16, "soundmode": 1, "bitrate": 8000 },
"record": { "enable": 0, "frames": 0, "size": 100 , "segment": 0 }
},
"jpeg": [
{
"enable": 1, "rtsp": 1, "dump": 1,
"source": { "mode": 2, "channel": 2 }, "#source/mode": "0 - online, 1 - manual, 2 - offline",
"encode": { "profile": 0, "qp": 80 }, "#encode/profile": "0 - BaseLine",
"record": { "enable": 0, "frames": 0, "size": 100 , "segment": 0 }
}
],
"h264": [
{
"enable": 0, "rtsp": 0, "sei": 0, "ps": 0,
"source": { "mode": 2, "channel": 1, "sync": 0 }, "#source/mode": "0 - online, 1 - manual, 2 - offline",
"encode": { "profile": 2, "width": 3840, "height": 2736, "skip_enable": 0, "forceIDR": 0 }, "#encode/profile": "0 - BaseLine, 1 - MP, 2 - HP",
"gop": { "mode": 0, "numb": 0, "length": 60, "layer": 2, "drop": 2, "ltrc": 0 }, "#gop/mode": "0 - default, 1 - pyramidal, 2 - lowdelayP, 3 - lowdelayB, 4 - adaptive, 5 - svc-t(effect on layer & drop)",
"#bitrate/mode": "0 - constQP, 1 - CBR, 2 - VBR, 5 - AVBR",
"bitrate": {
"mode": 2, "avg": 2048000, "max": 3072000, "maxframe": 2048000,
"initQP": 30, "minPQP": 10, "maxPQP": 45, "minIQP": 10, "maxIQP": 45,
"maxPicBits": 0, "maxIPicBits": 0, "mvPercent": [ 2, 6, 30 ], "brCoef": [ 50, 70, 100, 120 ]
},
"record": { "enable": 0, "frames": 0, "size": 100, "segment": 0 }
}
],
"h265": [
{
"enable": 0, "rtsp": 1, "sei": 0, "ps": 0,
"source": { "mode": 2, "channel": 1, "sync": 0 }, "#source/mode": "0 - online, 1 - manual, 2 - offline",
"encode": { "profile": 0, "width": 4032, "height": 3024, "skip_enable": 0, "forceIDR": 0 }, "#encode/profile": "0 - MP",
"gop": { "mode": 0, "numb": 0, "length": 60, "layer": 2, "drop": 2, "ltrc": 0 }, "#gop/mode": "0 - default, 1 - pyramidal, 2 - lowdelayP, 3 - lowdelayB, 4 - adaptive, 5 - svc-t(effect on layer & drop)",
"#bitrate/mode": "0 - constQP, 1 - CBR, 2 - VBR, 5 - AVBR",
"bitrate": {
"mode": 2, "avg": 6144000, "max": 9216000, "maxframe": 2048000,
"initQP": 30, "minPQP": 10, "maxPQP": 45, "minIQP": 10, "maxIQP": 45,
"maxPicBits": 0, "maxIPicBits": 0, "mvPercent": [ 2, 6, 30 ], "brCoef": [ 50, 70, 100, 120 ]
},
"record": { "enable": 0, "frames": 0, "size": 100 , "segment": 0 }
}
],
"vpss": [
{ "channel": 0, "src_fps": 15, "dest_fps": 15, "depth": 2, "crop": { "x": 96, "y": 144, "width": 3840, "height": 2736 } },
{ "channel": 1, "src_fps": 15, "dest_fps": 15, "depth": 2, "scale": { "width": 3840, "height": 2736 } },
{ "channel": 2, "src_fps": 15, "dest_fps": 15, "depth": 2, "scale": { "width": 3840, "height": 2736 } },
{ "channel": 3, "src_fps": 15, "dest_fps": 15, "depth": 2, "scale": { "width": 640, "height": 384 } }
],
"app_isp": {
"sysmaxgain": [2457600, 2457600, 2457600, 2457600, 38, 36],
"aetarget": [46, 46, 43, 41, 39, 38, 36, 34, 32, 32, 32, 32, 30, 30, 30, 30],
"aetargetblack": [38, 38, 38, 38, 38, 36, 34, 32, 30, 30, 30, 30, 30, 30, 30, 30],
"aetargetwdr": [53, 53, 51, 49, 46, 44, 42, 40, 38, 38, 38, 38, 35, 35, 35, 35],
"aetargethdr": [42, 42, 40, 39, 38, 36, 34, 32, 30, 30, 30, 30, 28, 28, 28, 28],
"SnsStartRoute":0,
"adjStep":14,
"StartGainNode":1025,
"StartShutMax":1000000,
"maxIntimeEnable":1,
"maxIntimeAo":1000000,
"maxIntimeNor":200000,
"SenceSwitch":1,
"sd": {
"u8LogLevel":0,
"enOpType":0,
"stManual":{
"u8SceneCoarse":1,
"u8Scene":4,
"f32SceneBlend":0
},
"stAuto":{
"s32SundayThresh":10000,
"s32CloudyMinThresh":3432,
"s32CloudyMaxThresh":9000,
"s32IndoorMinThresh":-1568,
"s32IndoorMaxThresh":-568,
"s32IndoorMinCloudyThresh":6600,
"s32IndoorMaxCloudyThresh":7000,
"s32LowLumIndoorThresh":-2100,
"s32LowLumThresh":-2200,
"s32AeShutterLowThresh":2,
"s32AeShutterHighThresh":1,
"s32B2dLowThresh":460,
"s32B2dHighThresh":10000,
"s32FarDistanceThresh":500,
"s32NearDistanceThresh":500,
"s32TempLowThresh":500,
"s32TempHighThresh":500,
"u8BacklightEn":1,
"f32BacklightB2mBvK":-6,
"u32BacklightB2mBvB":25000,
"s32BacklightM2dThd":1500,
"u16TFrame":1,
"u8InitCount":3,
"u8InitScene":4,
"f32InitSceneBlend":0,
"u8InitSceneCoarse":1
},
"enAinrOpType":0,
"stAinrManual":{},
"stAinrAuto":{
"u32AinrOnIsoThr":102400,
"u32AinrOffIsoThr":102400
},
"stWdrAttr":{
"bEnable":0,
"u32WdrToLinearThr":60,
"u32LinearToWdrThr":100,
"u32EvDiffThr":9,
"u32DrDiffThr":4,
"u32WdrEnvLumaThr":11400,
"u32LinearEnvLumaThr":11400
}
} ,
"icr": {
"u16IrRGgain":276,
"u16IrBGgain":266,
"u16MaxGainDistance":350,
"stLumaParam":{
"u16MinVisibleRatio":250,
"astThrParam":[
{
"u32C2bLumaThr":536400,
"u32B2cLumaThr":39000,
"u32B2cNightLumaThr":7,
"u32B2cLumaRatio":1331,
"u32B2cMaxLumaRatio":716,
"u32MaxExpTime":200000
},
{
"u32C2bLumaThr":564000,
"u32B2cLumaThr":39300,
"u32B2cNightLumaThr":5,
"u32B2cLumaRatio":1331,
"u32B2cMaxLumaRatio":716,
"u32MaxExpTime":200000
},
{
"u32C2bLumaThr":591000,
"u32B2cLumaThr":39600,
"u32B2cNightLumaThr":3,
"u32B2cLumaRatio":1331,
"u32B2cMaxLumaRatio":716,
"u32MaxExpTime":200000
}
]
},
"stDebugParam":{
"u16PrintInterval":0
}
},
"lamp": {
"stlampIr":{
"u32DiffTolerance":2,
"u16OffRatio":820,
"astStepLut":[
{
"u32Diff":1,
"s32Step":10
},
{
"u32Diff":20,
"s32Step":50
},
{
"u32Diff":40,
"s32Step":100
},
{
"u32Diff":80,
"s32Step":300
}
],
"astThrParam":[
{
"u32OnISO":29000,
"u32OffISO":6500,
"u32TargetISO":22800,
"u16EVOff":130
},
{
"u32OnISO":30000,
"u32OffISO":6800,
"u32TargetISO":22800,
"u16EVOff":130
},
{
"u32OnISO":31000,
"u32OffISO":7100,
"u32TargetISO":22800,
"u16EVOff":130
}
]
},
"stlampWl":{
"u32DiffTolerance":1,
"u16OffRatio":980,
"astStepLut":[
{
"u32Diff":1,
"s32Step":15
},
{
"u32Diff":10,
"s32Step":100
},
{
"u32Diff":40,
"s32Step":500
},
{
"u32Diff":80,
"s32Step":1000
}
],
"astThrParam":[
{
"u32OnISO":53200,
"u32OffISO":8000,
"u32TargetISO":25600,
"u16EVOff":130
},
{
"u32OnISO":56200,
"u32OffISO":11000,
"u32TargetISO":25600,
"u16EVOff":130
},
{
"u32OnISO":59200,
"u32OffISO":14000,
"u32TargetISO":25600,
"u16EVOff":130
}
]
},
"u8RunInterval":7,
"stEnvCompareParam":{
"bEnvCompare":0,
"u16HistBinRatioOn":1014,
"u16StdRatioOn":973,
"u16HistBinRatioOff":1014,
"u16StdRatioOff":973,
"s32RecordValidPeriod":7200
},
"stDebugParam":{
"u16PrintInterval":0
}
},
"#nightMode": "0 - day, 1 - auto(day/night)",
"#lightOff": "0 - open lamp, 1 - close lamp",
"#lightFrqWl": "wl max [0~100]",
"#lightFrqIR": "ir max [0~100]",
"stLedCtlParam":{
"wdrMode":0,
"wdrSwitchMode":0,
"sensitivity":1,
"nightMode":0,
"lightOff":0,
"lightFrqWl":100,
"lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0,
"icrEn":0,
"lampType":0,
"lampLuma":0
},
"stIspTest":{
"enable":0,
"index":1,
"skipnum":5
}
},
"debug": {
"hdr": 0,
"gdc": 0,
"#iso": "0 - AUTO, otherwise - Manual. Range 100 - 3276800",
"iso": 0,
"#ct": "0 - AUTO, otherwise - Manual. Range 1000 - 10000",
"ct": 0,
"#hdr_gain": "0 - AUTO, otherwise - Manual. Range 32 - 1024",
"hdr_gain": 0,
"#ctrl": "0 -AUTO, 1 - Manual",
"ctrl": 0,
"fe": {
"bypass_crop": 1,
"bypass_rcrop": 1,
"bypass_fpn": 1,
"bypass_linear": 1,
"bypass_blc": 0,
"bypass_dg": 1,
"bypass_raw2l": 1,
"bypass_raw2l_binning": 0,
"bypass_raw2l_bayer2l": 1,
"bypass_binning": 1,
"bypass_lsc": 1
},
"be": {
"bypass_raw2y": 1,
"bypass_hdr": 1,
"bypass_grgb": 0,
"bypass_blc": 0,
"bypass_md": 1,
"bypass_dg": 0,
"bypass_lsc": 0,
"bypass_wb": 0,
"bypass_cfa": 0,
"bypass_pfc": 0,
"bypass_fcs": 0,
"bypass_ccm": 0,
"bypass_gtm": 1,
"bypass_lut2d": 1,
"bypass_de": 0,
"bypass_gamma": 0,
"bypass_rgb2yuv": 0,
"bypass_gme": 1,
"bypass_aiisp_pre": 1,
"bypass_aiisp_post": 1,
"bypass_aiisp": 1,
"bypass_rawnf": 0,
"bypass_dpc0": 0,
"bypass_dpc1": 1,
"bypass_ltm": 1,
"bypass_cds": 1,
"bypass_obc": 1
},
"pe": {
"bypass_preee": 1,
"bypass_tnr": 0,
"bypass_yuvnf": 0,
"bypass_postee": 0,
"bypass_texstat": 1,
"bypass_yuvlut2d": 1,
"bypass_pyrrec": 1,
"bypass_pyrdec": 1,
"bypass_petop": 0
}
}
}
\ No newline at end of file
{
"doc": "user",
"version": "2.0.16.0",
"#module": "ENUM: 0 - isp, 1 - filter",
"#alwayson": "ENUM: 0 - disable, 1 - AOR, 2 - DEEP",
"module": 0,
"#top": "BOOL: 0 - OFF, 1 - ON",
"top": {
"hdmi": 0,
"vi": 0,
"ispm": 0,
"ispd": 1,
"savelog": 0,
"savestream": 0,
"alwayson": 0,
"is4K": 0
},
"sensor": {
"#img_mode": "ENUM: 0 - MIPI_LINEAR_MAXRES, 1 - MIPI_HDR_MAXRES, 2 - SPI_MAXRES, 3 - DVP_MAXRES, 4 - MIPI_LINEAR_BINNING, 5 - MODE_EXT1",
"#fps": "NUM: 0 - use default, otherwise - actual fps",
"support": [
{ "lib": "libsns_imx681_soc.so", "device": 0, "img_mode": 4, "fps": 30.0, "mirror": 0,"flip": 0, "obj": "g_stSnsImx681Obj" }
]
},
"config": {
"#ispfile": "0: color_out; 1:color_in_diff; 2:aisp; 3: DN_out; 4:DN_in_diff; 5:DN_night;6:wdr_out; 7:wdr_in_diff;",
"ispfile": [ "/acme/conf/681/imx681_capture_Color_Outdoor.bin","/acme/conf/681/imx681_video_Color_Outdoor_diff.bin", "/acme/conf/681/imx681_video_Color_Indoor_diff.bin", "/acme/conf/681/imx681_video_Color_Indoor_Aisp_diff.bin","","","","","","/acme/conf/681/imx681_video_Color_Blc_diff.bin"],
"algfile": "/acme/conf/681/imx681_v01_001_800_rtl.bin"
},
"filter": {
"ispm_fps": 15,
"ispd_fps": 15,
"jpeg_depth": 3,
"vnne_depth": 3,
"crop": { "x": 0, "y": 0, "width": 2016, "height": 1512 },
"binning": { "width": 2016, "height": 1512 },
"scale": { "width": 960, "height": 540 }
},
"vi": {
"src_fps": 30, "dst_fps": 30, "depth": 0, "mdscale": 2, "rotation": 1,
"gating": { "enable": 0, "vi": 1, "isp": 1, "vpu": 1 },
"crop": { "x": 0, "y": 0, "width": 2016, "height": 1512 },
"pipe": { "bayer": "RGGB" },
"tpg": { "enable": 0, "pattern": "V", "bayer": "BGGR", "motion": 0 },
"record": { "enable": 0, "frames": 0, "size": 100, "segment": 0 }
},
"yuv": { "enable": 0, "channel": 0, "mode": 2, "depth": 0, "record": { "enable": 0, "frames": 0, "size": 100, "segment": 0 } },
"svp": [
{
"enable": 0, "channel": 2, "mode": 1, "detect": "trigger",
"confthreshold": [0.6, 0.6, 0.6, 0.6],
"modefile": "/acme/conf/facial_feature_extraction_1M_klasym-a8w8.hir"
},
{
"enable": 0, "channel": 3, "mode": 1, "detect": "npu",
"confthreshold": [0.6, 0.6, 0.6, 0.6],
"lib": "libsvp_yolox.so", "intf": "SA_SVP_Postprocess_YOLOX", "modefile": "/acme/conf/object-detection-nas075_person_face_car.hir"
},
{
"enable": 0, "channel": 3, "mode": 1, "detect": "vnne",
"confthreshold": [0.6, 0.6], "outsel": 0, "filterparams": [0,0,0,0,0,0,0,0,0],
"lib": "libsvp_vnne.so", "intf": "SA_SVP_Postprocess_VNNE", "modefile": "/acme/conf/object-detection_vnne_qat-w6a8-mmdet_superacme_person_pytorch.bin"
},
{
"enable": 0, "channel": 3, "mode": 1, "detect": "md",
"delay": 0,
"roi": [
{ "valid": 1, "sensi": 6, "x0": 0, "y0": 0, "x1": 320, "y1": 0, "x2": 320, "y2": 180, "x3": 0, "y3": 180 }
]
}
],
"osd": {
"#align": "left-top, right-top, right-bottom, left-bottom, center",
"#full": "enable--ENUM:, 1 - vpss, 2 - YUV(only work on manual mode)",
"workmode": "D",
"font": { "family": "/acme/bin/simhei.ttf", "size": 32 },
"logo": [ { "enable": 0,
"channel": 1,
"rect": { "x": 16, "y": 16, "width": 256, "height": 128 },
"point": { "x": 0, "y": 0 },
"align": "left-top",
"file": "/acme/bin/x_venc_logo_256_128.bgra" } ],
"mark": [ { "enable": 0,
"channel": 1,
"rect": { "x": 16, "y": 16, "width": 256, "height": 128 },
"point": { "x": 0, "y": 0 },
"align": "left-top",
"file": "/acme/bin/logo256x128.2bpp" } ],
"text": [ { "enable": 0,
"channel": 1,
"rect": { "x": 16, "y": 16, "width": 600, "height": 64 },
"point": { "x": 0, "y": 0 },
"align": "right-bottom",
"invert": { "enable": 0, "rect": { "x": 0, "y": 0, "width": 600, "height": 64 } } } ],
"full":[ { "enable": 0,
"channel": 1,
"type": 1 } ]
},
"#wakeup/mode": "ENUM: 0 - isplite, 1 - raw",
"wakeup": {
"mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlmit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
},
"#format": "1 - aac(frmlen=1024,bitrate=32000), 2 - g711(frmlen=160,bitrate=8000)",
"audio": {
"devid": 0,
"ai": { "enable": 0, "frmlen": 160, "samplerate": 16000, "bitwidth": 16, "soundmode": 1 },
"ao": { "enable": 0, "frmlen": 160, "samplerate": 16000, "bitwidth": 16, "soundmode": 1 },
"aenc": { "enable": 0, "rtsp": 1, "format": 2, "ps": 0, "samplerate": 16000, "bitwidth": 16, "soundmode": 1, "bitrate": 8000 },
"record": { "enable": 0, "frames": 0, "size": 100 , "segment": 0 }
},
"jpeg": [
{
"enable": 0, "rtsp": 0, "dump": 0,
"source": { "mode": 0, "channel": 2 }, "#source/mode": "0 - online, 1 - manual, 2 - offline",
"encode": { "profile": 0, "qp": 80 }, "#encode/profile": "0 - BaseLine",
"record": { "enable": 0, "frames": 0, "size": 100 , "segment": 0 }
}
],
"h264": [
{
"enable": 0, "rtsp": 0, "sei": 0, "ps": 0,
"source": { "mode": 0, "channel": 1, "sync": 0 }, "#source/mode": "0 - online, 1 - manual, 2 - offline",
"encode": { "profile": 2, "width": 1512, "height": 2016, "skip_enable": 0, "forceIDR": 0 }, "#encode/profile": "0 - BaseLine, 1 - MP, 2 - HP",
"gop": { "mode": 0, "numb": 0, "length": 60, "layer": 2, "drop": 2, "ltrc": 0 }, "#gop/mode": "0 - default, 1 - pyramidal, 2 - lowdelayP, 3 - lowdelayB, 4 - adaptive, 5 - svc-t(effect on layer & drop)",
"#bitrate/mode": "0 - constQP, 1 - CBR, 2 - VBR, 5 - AVBR",
"bitrate": {
"mode": 2, "avg": 2048000, "max": 3072000, "maxframe": 2048000,
"initQP": 30, "minPQP": 10, "maxPQP": 45, "minIQP": 10, "maxIQP": 45,
"maxPicBits": 0, "maxIPicBits": 0, "mvPercent": [ 2, 6, 30 ], "brCoef": [ 50, 70, 100, 120 ]
},
"record": { "enable": 0, "frames": 0, "size": 100, "segment": 0 }
}
],
"h265": [
{
"enable": 1, "rtsp": 1, "sei": 0, "ps": 0,
"source": { "mode": 0, "channel": 1, "sync": 0 }, "#source/mode": "0 - online, 1 - manual, 2 - offline",
"encode": { "profile": 0, "width": 1512, "height": 2016, "skip_enable": 0, "forceIDR": 0 }, "#encode/profile": "0 - MP",
"gop": { "mode": 0, "numb": 0, "length": 60, "layer": 2, "drop": 2, "ltrc": 0 }, "#gop/mode": "0 - default, 1 - pyramidal, 2 - lowdelayP, 3 - lowdelayB, 4 - adaptive, 5 - svc-t(effect on layer & drop)",
"#bitrate/mode": "0 - constQP, 1 - CBR, 2 - VBR, 5 - AVBR",
"bitrate": {
"mode": 2, "avg": 15360000, "max": 23040000, "maxframe": 2048000,
"initQP": 30, "minPQP": 10, "maxPQP": 45, "minIQP": 10, "maxIQP": 45,
"maxPicBits": 0, "maxIPicBits": 0, "mvPercent": [ 2, 6, 30 ], "brCoef": [ 50, 70, 100, 120 ]
},
"record": { "enable": 0, "frames": 0, "size": 100 , "segment": 0 }
}
],
"vpss": [
{ "channel": 0, "src_fps": 30, "dest_fps": 30, "depth": 3, "crop": { "x": 0, "y": 0, "width": 1512, "height": 2016 } },
{ "channel": 1, "src_fps": 30, "dest_fps": 30, "depth": 3, "scale": { "width": 1512, "height": 2016 } },
{ "channel": 2, "src_fps": 30, "dest_fps": 30, "depth": 3, "scale": { "width": 1512, "height": 2016 } },
{ "channel": 3, "src_fps": 30, "dest_fps": 30, "depth": 3, "scale": { "width": 416, "height": 416 } }
],
"app_isp": {
"sysmaxgain": [2457600, 2457600, 2457600, 2457600, 38, 36],
"aetarget": [46, 46, 43, 41, 39, 38, 36, 34, 32, 32, 32, 32, 30, 30, 30, 30],
"aetargetblack": [38, 38, 38, 38, 38, 36, 34, 32, 30, 30, 30, 30, 30, 30, 30, 30],
"aetargetwdr": [53, 53, 51, 49, 46, 44, 42, 40, 38, 38, 38, 38, 35, 35, 35, 35],
"aetargethdr": [42, 42, 40, 39, 38, 36, 34, 32, 30, 30, 30, 30, 28, 28, 28, 28],
"SnsStartRoute":0,
"adjStep":14,
"StartGainNode":1025,
"StartShutMax":1000000,
"maxIntimeEnable":1,
"maxIntimeAo":1000000,
"maxIntimeNor":200000,
"SenceSwitch":1,
"sd": {
"u8LogLevel":0,
"enOpType":0,
"stManual":{
"u8SceneCoarse":1,
"u8Scene":4,
"f32SceneBlend":0
},
"stAuto":{
"s32SundayThresh":10000,
"s32CloudyMinThresh":3432,
"s32CloudyMaxThresh":9000,
"s32IndoorMinThresh":-1568,
"s32IndoorMaxThresh":-568,
"s32IndoorMinCloudyThresh":6600,
"s32IndoorMaxCloudyThresh":7000,
"s32LowLumIndoorThresh":-2100,
"s32LowLumThresh":-2200,
"s32AeShutterLowThresh":2,
"s32AeShutterHighThresh":1,
"s32B2dLowThresh":460,
"s32B2dHighThresh":10000,
"s32FarDistanceThresh":500,
"s32NearDistanceThresh":500,
"s32TempLowThresh":500,
"s32TempHighThresh":500,
"u8BacklightEn":1,
"f32BacklightB2mBvK":-6,
"u32BacklightB2mBvB":25000,
"s32BacklightM2dThd":1500,
"u16TFrame":1,
"u8InitCount":3,
"u8InitScene":4,
"f32InitSceneBlend":0,
"u8InitSceneCoarse":1
},
"enAinrOpType":0,
"stAinrManual":{},
"stAinrAuto":{
"u32AinrOnIsoThr":102400,
"u32AinrOffIsoThr":102400
},
"stWdrAttr":{
"bEnable":0,
"u32WdrToLinearThr":60,
"u32LinearToWdrThr":100,
"u32EvDiffThr":9,
"u32DrDiffThr":4,
"u32WdrEnvLumaThr":11400,
"u32LinearEnvLumaThr":11400
}
} ,
"icr": {
"u16IrRGgain":276,
"u16IrBGgain":266,
"u16MaxGainDistance":350,
"stLumaParam":{
"u16MinVisibleRatio":250,
"astThrParam":[
{
"u32C2bLumaThr":536400,
"u32B2cLumaThr":39000,
"u32B2cNightLumaThr":7,
"u32B2cLumaRatio":1331,
"u32B2cMaxLumaRatio":716,
"u32MaxExpTime":200000
},
{
"u32C2bLumaThr":564000,
"u32B2cLumaThr":39300,
"u32B2cNightLumaThr":5,
"u32B2cLumaRatio":1331,
"u32B2cMaxLumaRatio":716,
"u32MaxExpTime":200000
},
{
"u32C2bLumaThr":591000,
"u32B2cLumaThr":39600,
"u32B2cNightLumaThr":3,
"u32B2cLumaRatio":1331,
"u32B2cMaxLumaRatio":716,
"u32MaxExpTime":200000
}
]
},
"stDebugParam":{
"u16PrintInterval":0
}
},
"lamp": {
"stlampIr":{
"u32DiffTolerance":2,
"u16OffRatio":820,
"astStepLut":[
{
"u32Diff":1,
"s32Step":10
},
{
"u32Diff":20,
"s32Step":50
},
{
"u32Diff":40,
"s32Step":100
},
{
"u32Diff":80,
"s32Step":300
}
],
"astThrParam":[
{
"u32OnISO":29000,
"u32OffISO":6500,
"u32TargetISO":22800,
"u16EVOff":130
},
{
"u32OnISO":30000,
"u32OffISO":6800,
"u32TargetISO":22800,
"u16EVOff":130
},
{
"u32OnISO":31000,
"u32OffISO":7100,
"u32TargetISO":22800,
"u16EVOff":130
}
]
},
"stlampWl":{
"u32DiffTolerance":1,
"u16OffRatio":980,
"astStepLut":[
{
"u32Diff":1,
"s32Step":15
},
{
"u32Diff":10,
"s32Step":100
},
{
"u32Diff":40,
"s32Step":500
},
{
"u32Diff":80,
"s32Step":1000
}
],
"astThrParam":[
{
"u32OnISO":53200,
"u32OffISO":8000,
"u32TargetISO":25600,
"u16EVOff":130
},
{
"u32OnISO":56200,
"u32OffISO":11000,
"u32TargetISO":25600,
"u16EVOff":130
},
{
"u32OnISO":59200,
"u32OffISO":14000,
"u32TargetISO":25600,
"u16EVOff":130
}
]
},
"u8RunInterval":7,
"stEnvCompareParam":{
"bEnvCompare":0,
"u16HistBinRatioOn":1014,
"u16StdRatioOn":973,
"u16HistBinRatioOff":1014,
"u16StdRatioOff":973,
"s32RecordValidPeriod":7200
},
"stDebugParam":{
"u16PrintInterval":0
}
},
"#nightMode": "0 - day, 1 - auto(day/night)",
"#lightOff": "0 - open lamp, 1 - close lamp",
"#lightFrqWl": "wl max [0~100]",
"#lightFrqIR": "ir max [0~100]",
"stLedCtlParam":{
"wdrMode":0,
"wdrSwitchMode":0,
"sensitivity":1,
"nightMode":0,
"lightOff":0,
"lightFrqWl":100,
"lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0,
"icrEn":0,
"lampType":0,
"lampLuma":0
},
"stIspTest":{
"enable":0,
"index":1,
"skipnum":5
}
},
"debug": {
"hdr": 0,
"gdc": 0,
"#iso": "0 - AUTO, otherwise - Manual. Range 100 - 3276800",
"iso": 0,
"#ct": "0 - AUTO, otherwise - Manual. Range 1000 - 10000",
"ct": 0,
"#hdr_gain": "0 - AUTO, otherwise - Manual. Range 32 - 1024",
"hdr_gain": 0,
"#ctrl": "0 -AUTO, 1 - Manual",
"ctrl": 0,
"fe": {
"bypass_crop": 1,
"bypass_rcrop": 1,
"bypass_fpn": 1,
"bypass_linear": 1,
"bypass_blc": 0,
"bypass_dg": 1,
"bypass_raw2l": 1,
"bypass_raw2l_binning": 0,
"bypass_raw2l_bayer2l": 1,
"bypass_binning": 1,
"bypass_lsc": 1
},
"be": {
"bypass_raw2y": 1,
"bypass_hdr": 1,
"bypass_grgb": 0,
"bypass_blc": 0,
"bypass_md": 1,
"bypass_dg": 0,
"bypass_lsc": 0,
"bypass_wb": 0,
"bypass_cfa": 0,
"bypass_pfc": 0,
"bypass_fcs": 0,
"bypass_ccm": 0,
"bypass_gtm": 1,
"bypass_lut2d": 1,
"bypass_de": 0,
"bypass_gamma": 0,
"bypass_rgb2yuv": 0,
"bypass_gme": 1,
"bypass_aiisp_pre": 1,
"bypass_aiisp_post": 1,
"bypass_aiisp": 1,
"bypass_rawnf": 0,
"bypass_dpc0": 0,
"bypass_dpc1": 1,
"bypass_ltm": 0,
"bypass_cds": 1,
"bypass_obc": 1
},
"pe": {
"bypass_preee": 1,
"bypass_tnr": 0,
"bypass_yuvnf": 0,
"bypass_postee": 0,
"bypass_texstat": 1,
"bypass_yuvlut2d": 1,
"bypass_pyrrec": 0,
"bypass_pyrdec": 0,
"bypass_petop": 0
}
}
}
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# Function to handle copying based on the input parameter # Function to handle copying based on the input parameter
copy_files() { copy_files() {
local type=$1 local type=$1
if [ "$type" == "emmc" ] || [ -z "$type" ]; then if [ "$type" == "emmc" ] || [ "$type" == "qa" ] || [ -z "$type" ]; then
echo "Copying EMMC files..." echo "Copying EMMC files..."
mkdir -p burn_img_emmc mkdir -p burn_img_emmc
cp 6920_bsp_release/out_images/bootimg-BL2-6920E-*-emmc-linux.bin burn_img_emmc/ cp 6920_bsp_release/out_images/bootimg-BL2-6920E-*-emmc-linux.bin burn_img_emmc/
...@@ -48,14 +48,54 @@ rootfs_copy_file() { ...@@ -48,14 +48,54 @@ rootfs_copy_file() {
cp common/bin/lite_imx681* system_temp/bin/ cp common/bin/lite_imx681* system_temp/bin/
cp common/script/load_glasses_all.sh system_temp/scripts/ cp common/script/load_glasses_all.sh system_temp/scripts/
cp sdk/lib/modules/isp_all.ko system_temp/lib/modules/ cp sdk/lib/modules/isp_all.ko system_temp/lib/modules/
cp sdk/bin/sample_hapi_media system_temp/bin/
fi fi
if [ "$type" == "emmc" ];then if [ "$type" == "emmc" ];then
mkdir system_temp/conf/681/ -p mkdir system_temp/conf/681/ -p
cp common/conf/681/* system_temp/conf/681/ cp common/conf/681/* system_temp/conf/681/
cp common/bin/lite_imx681* system_temp/bin/ cp common/bin/lite_imx681* system_temp/bin/
cp sdk/bin/sample_hapi_media system_temp/bin/ fi
if [ "$type" == "qa" ];then
echo *****ONLY TEST****
cp sdk/lib/libsvp_*.so system_temp/lib/
cp sdk/conf system_temp/ -r
cp sdk/opensource/source/sensor/libsns_os04d10_soc30.so system_temp/lib/libsns_os04d10_soc30.so.$(ls sdk/opensource/lib/libsns_os04d10_soc30.so.* | sed -n 's/.*\.so\.\(.*\)/\1/p' | head -n 1)
cp sdk/opensource/source/sensor/libsns_os04d10_soc30.so system_temp/lib/libsns_os04d10_soc30.so
cp sdk/opensource/source/sensor/libsns_imx681_soc.so system_temp/lib/libsns_imx681_soc.so.$(ls sdk/opensource/lib/libsns_imx681_soc.so.* | sed -n 's/.*\.so\.\(.*\)/\1/p' | head -n 1)
cp sdk/opensource/source/sensor/libsns_imx681_soc.so system_temp/lib/libsns_imx681_soc.so
cp sdk/opensource/source/sensor/libsns_gc4103_soc.so system_temp/lib/libsns_gc4103_soc.$(ls sdk/opensource/lib/libsns_gc4103_soc.so.* | sed -n 's/.*\.so\.\(.*\)/\1/p' | head -n 1)
cp sdk/opensource/source/sensor/libsns_gc4103_soc.so system_temp/lib/
cp sdk/opensource/source/sensor/libsns_hm4030_soc.so system_temp/lib/libsns_hm4030_soc.$(ls sdk/opensource/lib/libsns_hm4030_soc.so.* | sed -n 's/.*\.so\.\(.*\)/\1/p' | head -n 1)
cp sdk/opensource/source/sensor/libsns_hm4030_soc.so system_temp/lib/
cp sdk/opensource/source/sensor/libsns_imx327_soc.so system_temp/lib/libsns_imx327_soc.$(ls sdk/opensource/lib/libsns_imx327_soc.so.* | sed -n 's/.*\.so\.\(.*\)/\1/p' | head -n 1)
cp sdk/opensource/source/sensor/libsns_imx327_soc.so system_temp/lib/
# cp sdk/opensource/source/sensor/libsns_jxk351p_soc.so system_temp/lib/libsns_jxk351p_soc.$(ls sdk/opensource/lib/libsns_jxk351p_soc.so.* | sed -n 's/.*\.so\.\(.*\)/\1/p' | head -n 1)
# cp sdk/opensource/source/sensor/libsns_jxk351p_soc.so system_temp/lib/
cp sdk/opensource/source/sensor/libsns_os02n10_soc.so system_temp/lib/libsns_os02n10_soc.$(ls sdk/opensource/lib/libsns_os02n10_soc.so.* | sed -n 's/.*\.so\.\(.*\)/\1/p' | head -n 1)
cp sdk/opensource/source/sensor/libsns_os02n10_soc.so system_temp/lib/
cp sdk/opensource/source/sensor/libsns_os04a10_soc.so system_temp/lib/libsns_os04a10_soc.$(ls sdk/opensource/lib/libsns_os04a10_soc.so.* | sed -n 's/.*\.so\.\(.*\)/\1/p' | head -n 1)
cp sdk/opensource/source/sensor/libsns_os04a10_soc.so system_temp/lib/
cp sdk/opensource/source/sensor/libsns_os04d10_soc.so system_temp/lib/libsns_os04d10_soc.$(ls sdk/opensource/lib/libsns_os04d10_soc.so.* | sed -n 's/.*\.so\.\(.*\)/\1/p' | head -n 1)
cp sdk/opensource/source/sensor/libsns_os04d10_soc.so system_temp/lib/
cp sdk/opensource/source/sensor/libsns_os04j10_soc.so system_temp/lib/libsns_os04j10_soc.$(ls sdk/opensource/lib/libsns_os04j10_soc.so.* | sed -n 's/.*\.so\.\(.*\)/\1/p' | head -n 1)
cp sdk/opensource/source/sensor/libsns_os04j10_soc.so system_temp/lib/
cp sdk/opensource/source/sensor/libsns_os04l10_soc.so system_temp/lib/libsns_os04l10_soc.$(ls sdk/opensource/lib/libsns_os04l10_soc.so.* | sed -n 's/.*\.so\.\(.*\)/\1/p' | head -n 1)
cp sdk/opensource/source/sensor/libsns_os04l10_soc.so system_temp/lib/
cp sdk/opensource/source/sensor/libsns_os08a10_soc.so system_temp/lib/libsns_os08a10_soc.$(ls sdk/opensource/lib/libsns_os08a10_soc.so.* | sed -n 's/.*\.so\.\(.*\)/\1/p' | head -n 1)
cp sdk/opensource/source/sensor/libsns_os08a10_soc.so system_temp/lib/
cp sdk/opensource/source/sensor/libsns_os08d10_soc.so system_temp/lib/libsns_os08d10_soc.$(ls sdk/opensource/lib/libsns_os08d10_soc.so.* | sed -n 's/.*\.so\.\(.*\)/\1/p' | head -n 1)
cp sdk/opensource/source/sensor/libsns_os08d10_soc.so system_temp/lib/
cp sdk/opensource/source/sensor/libsns_sc465sl_soc.so system_temp/lib/libsns_sc465sl_soc.$(ls sdk/opensource/lib/libsns_sc465sl_soc.so.* | sed -n 's/.*\.so\.\(.*\)/\1/p' | head -n 1)
cp sdk/opensource/source/sensor/libsns_sc465sl_soc.so system_temp/lib/
cp sdk/opensource/source/sensor/libsns_sc535_soc.so system_temp/lib/libsns_sc535_soc.$(ls sdk/opensource/lib/libsns_sc535_soc.so.* | sed -n 's/.*\.so\.\(.*\)/\1/p' | head -n 1)
cp sdk/opensource/source/sensor/libsns_sc535_soc.so system_temp/lib/
cp sdk/opensource/source/sensor/libsns_sc8238_soc.so system_temp/lib/libsns_sc8238_soc.$(ls sdk/opensource/lib/libsns_sc8238_soc.so.* | sed -n 's/.*\.so\.\(.*\)/\1/p' | head -n 1)
cp sdk/opensource/source/sensor/libsns_sc8238_soc.so system_temp/lib/
cp sdk/opensource/source/sensor/libsns_os05l10_soc.so system_temp/lib/libsns_os05l10_soc.$(ls sdk/opensource/lib/libsns_os05l10_soc.so.* | sed -n 's/.*\.so\.\(.*\)/\1/p' | head -n 1)
cp sdk/opensource/source/sensor/libsns_os05l10_soc.so system_temp/lib/
fi fi
} }
...@@ -256,6 +296,7 @@ copy_files "$1" ...@@ -256,6 +296,7 @@ copy_files "$1"
# cp sdk/bin/streamerlite system_temp/bin/ # cp sdk/bin/streamerlite system_temp/bin/
cp sdk/bin/vlink_socchannel_main system_temp/bin/ cp sdk/bin/vlink_socchannel_main system_temp/bin/
cp sdk/bin/x_venc_logo_256_128.bgra system_temp/bin/ cp sdk/bin/x_venc_logo_256_128.bgra system_temp/bin/
cp sdk/bin/transfer system_temp/bin/
# Get new streamerlite # Get new streamerlite
cd sdk/sample/source/ cd sdk/sample/source/
...@@ -266,8 +307,13 @@ copy_files "$1" ...@@ -266,8 +307,13 @@ copy_files "$1"
make clean make clean
make make
cd - cd -
cd sdk/sample/source/sample_hapi_media/
make clean
make
cd -
git checkout sdk/sample/source/mkconfig git checkout sdk/sample/source/mkconfig
mv sdk/sample/source/sample_hapi_streamer/sample_hapi_streamer system_temp/bin/streamerlite_sample mv sdk/sample/source/sample_hapi_streamer/sample_hapi_streamer system_temp/bin/streamerlite_sample
cp sdk/sample/source/sample_hapi_media/sample_hapi_media system_temp/bin/
cp system/configs system_temp/ -r cp system/configs system_temp/ -r
cp system/usr/* system_temp/usr/ -rf cp system/usr/* system_temp/usr/ -rf
...@@ -332,7 +378,7 @@ if [ "$1" != "emmc" ] || [ -z "$1" ]; then ...@@ -332,7 +378,7 @@ if [ "$1" != "emmc" ] || [ -z "$1" ]; then
fi fi
# Only run these steps for EMMC # Only run these steps for EMMC
if [ "$1" == "emmc" ] || [ -z "$1" ]; then if [ "$1" == "emmc" ] || [ "$1" == "qa" ] || [ -z "$1" ]; then
# save old LD_LIBRARY_PATH # save old LD_LIBRARY_PATH
old_ld_library_path=$LD_LIBRARY_PATH old_ld_library_path=$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=./third_party/common/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=./third_party/common/lib:$LD_LIBRARY_PATH
......
...@@ -120,6 +120,7 @@ typedef enum { ...@@ -120,6 +120,7 @@ typedef enum {
SA_MEDIA_SD_WDR_OUTDOOR, SA_MEDIA_SD_WDR_OUTDOOR,
SA_MEDIA_SD_WDR_INDOOR, SA_MEDIA_SD_WDR_INDOOR,
SA_MEDIA_SD_WDR_NIGHT, SA_MEDIA_SD_WDR_NIGHT,
SA_MEDIA_SD_BACKLIGHT,
SA_MEDIA_SD_TYPE_NUM, SA_MEDIA_SD_TYPE_NUM,
} SA_MEDIA_SD_TYPE_E; } SA_MEDIA_SD_TYPE_E;
...@@ -182,15 +183,16 @@ typedef struct { ...@@ -182,15 +183,16 @@ typedef struct {
} SA_MEDIA_SD_CONFIG_S; } SA_MEDIA_SD_CONFIG_S;
typedef enum { typedef enum {
SA_MEDIA_ISP_BIN_PATH_BASE = 0, SA_MEDIA_ISP_BIN_PATH_BASE = 0,
SA_MEDIA_ISP_BIN_PATH_COLOR_OUTDOOR = 1, SA_MEDIA_ISP_BIN_PATH_COLOR_OUTDOOR = 1,
SA_MEDIA_ISP_BIN_PATH_COLOR_INDOOR = 2, SA_MEDIA_ISP_BIN_PATH_COLOR_INDOOR = 2,
SA_MEDIA_ISP_BIN_PATH_COLOR_AISP = 3, SA_MEDIA_ISP_BIN_PATH_COLOR_AISP = 3,
SA_MEDIA_ISP_BIN_PATH_DN_NIGHT = 4, SA_MEDIA_ISP_BIN_PATH_DN_NIGHT = 4,
SA_MEDIA_ISP_BIN_PATH_COLOR_LAMP = 5, SA_MEDIA_ISP_BIN_PATH_COLOR_LAMP = 5,
SA_MEDIA_ISP_BIN_PATH_WDR_OUTDOOR = 6, SA_MEDIA_ISP_BIN_PATH_WDR_OUTDOOR = 6,
SA_MEDIA_ISP_BIN_PATH_WDR_INDOOR = 7, SA_MEDIA_ISP_BIN_PATH_WDR_INDOOR = 7,
SA_MEDIA_ISP_BIN_PATH_WDR_NIGHT = 8, SA_MEDIA_ISP_BIN_PATH_WDR_NIGHT = 8,
SA_MEDIA_ISP_BIN_PATH_COLOR_BACKLIGHT = 9,
SA_MEDIA_ISP_BIN_PATH_NUM SA_MEDIA_ISP_BIN_PATH_NUM
} SA_MEDIA_ISP_BIN_PATH_E; } SA_MEDIA_ISP_BIN_PATH_E;
...@@ -451,6 +453,7 @@ typedef struct { ...@@ -451,6 +453,7 @@ typedef struct {
SA_S32 s32IndoorMaxCloudyThresh; SA_S32 s32IndoorMaxCloudyThresh;
SA_S32 s32B2dLowThresh; SA_S32 s32B2dLowThresh;
SA_U16 u16TFrame; SA_U16 u16TFrame;
SA_U8 u8InitCount;
SA_U8 u8InitScene; SA_U8 u8InitScene;
SA_F32 f32InitSceneBlend; SA_F32 f32InitSceneBlend;
SA_U8 u8InitSceneCoarse; SA_U8 u8InitSceneCoarse;
...@@ -462,7 +465,11 @@ typedef struct { ...@@ -462,7 +465,11 @@ typedef struct {
SA_U32 u32EvDiffThr; SA_U32 u32EvDiffThr;
SA_U32 u32DrDiffThr; SA_U32 u32DrDiffThr;
SA_U32 u32WdrEnvLumaThr; SA_U32 u32WdrEnvLumaThr;
SA_U32 u32LinearEnvLumaThr; SA_U32 u32LinearEnvLumaThr;
SA_U8 u8BacklightEn;
SA_F32 f32BacklightB2mBvK;
SA_U32 u32BacklightB2mBvB;
SA_S32 s32BacklightM2dThd;
} SA_MEDIA_SD_LIB_ATTR_S; } SA_MEDIA_SD_LIB_ATTR_S;
typedef struct { typedef struct {
...@@ -557,16 +564,6 @@ typedef struct { ...@@ -557,16 +564,6 @@ typedef struct {
}; };
} SA_MEDIA_AUDIO_STREAM_S; } SA_MEDIA_AUDIO_STREAM_S;
typedef struct {
SA_MEDIA_SD_MODE_E enSdMode;
SA_MEDIA_SD_TYPE_E enSceneType;
SA_MEDIA_COLOR_FILTER_E enFilterColor;
SA_MEDIA_PROFESSIONAL_MODE_S stProAttr;
SA_MEDIA_CAPTURE_CONFIG_S stCaptureConfig;
SA_MEDIA_RECORD_CONFIG_S stRecordConfig;
} SA_MEDIA_DYN_ATTR_S;
typedef struct saHEVC_FRAME_INFO_S typedef struct saHEVC_FRAME_INFO_S
{ {
SA_U8 *pucData; SA_U8 *pucData;
...@@ -581,7 +578,6 @@ typedef struct saHEIF_FRAME_INFO_S ...@@ -581,7 +578,6 @@ typedef struct saHEIF_FRAME_INFO_S
SA_U32 u32DataLen; SA_U32 u32DataLen;
} HEIF_FRAME_INFO_S; } HEIF_FRAME_INFO_S;
SA_S32 SA_HAPI_MEDIA_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_CONFIG_S *pstSceneConfig, SA_MEDIA_ATTR_S *pstMediaAttr); SA_S32 SA_HAPI_MEDIA_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_CONFIG_S *pstSceneConfig, SA_MEDIA_ATTR_S *pstMediaAttr);
SA_S32 SA_HAPI_MEDIA_Start(SA_MEDIA_ATTR_S *pstMediaAttr); SA_S32 SA_HAPI_MEDIA_Start(SA_MEDIA_ATTR_S *pstMediaAttr);
SA_S32 SA_HAPI_MEDIA_Stop(SA_MEDIA_ATTR_S *pstMediaAttr); SA_S32 SA_HAPI_MEDIA_Stop(SA_MEDIA_ATTR_S *pstMediaAttr);
...@@ -591,8 +587,6 @@ SA_S32 SA_HAPI_MEDIA_GetVideoStream(VENC_CHN u32VeChn, VENC_STREAM_S *pstStream, ...@@ -591,8 +587,6 @@ SA_S32 SA_HAPI_MEDIA_GetVideoStream(VENC_CHN u32VeChn, VENC_STREAM_S *pstStream,
SA_S32 SA_HAPI_MEDIA_ReleaseVideoStream(VENC_CHN u32VeChn, VENC_STREAM_S *pstStream); SA_S32 SA_HAPI_MEDIA_ReleaseVideoStream(VENC_CHN u32VeChn, VENC_STREAM_S *pstStream);
SA_S32 SA_HAPI_MEDIA_GetAudioStream(SA_MEDIA_AUDIO_STREAM_S *pstStream, SA_S32 s32MilliSec); SA_S32 SA_HAPI_MEDIA_GetAudioStream(SA_MEDIA_AUDIO_STREAM_S *pstStream, SA_S32 s32MilliSec);
SA_S32 SA_HAPI_MEDIA_ReleaseAudioStream(SA_MEDIA_AUDIO_STREAM_S *pstStream); SA_S32 SA_HAPI_MEDIA_ReleaseAudioStream(SA_MEDIA_AUDIO_STREAM_S *pstStream);
SA_S32 SA_HAPI_MEDIA_SetDynAttr(SA_MEDIA_DYN_ATTR_S *pstDynAttr);
SA_S32 SA_HAPI_MEDIA_GetDynAttr(SA_MEDIA_DYN_ATTR_S *pstDynAttr);
#ifdef __linux__ #ifdef __linux__
#define HAPI_MEDIA_MALLOC malloc #define HAPI_MEDIA_MALLOC malloc
......
...@@ -120,6 +120,7 @@ typedef enum { ...@@ -120,6 +120,7 @@ typedef enum {
SA_MEDIA_SD_WDR_OUTDOOR, SA_MEDIA_SD_WDR_OUTDOOR,
SA_MEDIA_SD_WDR_INDOOR, SA_MEDIA_SD_WDR_INDOOR,
SA_MEDIA_SD_WDR_NIGHT, SA_MEDIA_SD_WDR_NIGHT,
SA_MEDIA_SD_BACKLIGHT,
SA_MEDIA_SD_TYPE_NUM, SA_MEDIA_SD_TYPE_NUM,
} SA_MEDIA_SD_TYPE_E; } SA_MEDIA_SD_TYPE_E;
...@@ -182,15 +183,16 @@ typedef struct { ...@@ -182,15 +183,16 @@ typedef struct {
} SA_MEDIA_SD_CONFIG_S; } SA_MEDIA_SD_CONFIG_S;
typedef enum { typedef enum {
SA_MEDIA_ISP_BIN_PATH_BASE = 0, SA_MEDIA_ISP_BIN_PATH_BASE = 0,
SA_MEDIA_ISP_BIN_PATH_COLOR_OUTDOOR = 1, SA_MEDIA_ISP_BIN_PATH_COLOR_OUTDOOR = 1,
SA_MEDIA_ISP_BIN_PATH_COLOR_INDOOR = 2, SA_MEDIA_ISP_BIN_PATH_COLOR_INDOOR = 2,
SA_MEDIA_ISP_BIN_PATH_COLOR_AISP = 3, SA_MEDIA_ISP_BIN_PATH_COLOR_AISP = 3,
SA_MEDIA_ISP_BIN_PATH_DN_NIGHT = 4, SA_MEDIA_ISP_BIN_PATH_DN_NIGHT = 4,
SA_MEDIA_ISP_BIN_PATH_COLOR_LAMP = 5, SA_MEDIA_ISP_BIN_PATH_COLOR_LAMP = 5,
SA_MEDIA_ISP_BIN_PATH_WDR_OUTDOOR = 6, SA_MEDIA_ISP_BIN_PATH_WDR_OUTDOOR = 6,
SA_MEDIA_ISP_BIN_PATH_WDR_INDOOR = 7, SA_MEDIA_ISP_BIN_PATH_WDR_INDOOR = 7,
SA_MEDIA_ISP_BIN_PATH_WDR_NIGHT = 8, SA_MEDIA_ISP_BIN_PATH_WDR_NIGHT = 8,
SA_MEDIA_ISP_BIN_PATH_COLOR_BACKLIGHT = 9,
SA_MEDIA_ISP_BIN_PATH_NUM SA_MEDIA_ISP_BIN_PATH_NUM
} SA_MEDIA_ISP_BIN_PATH_E; } SA_MEDIA_ISP_BIN_PATH_E;
...@@ -451,6 +453,7 @@ typedef struct { ...@@ -451,6 +453,7 @@ typedef struct {
SA_S32 s32IndoorMaxCloudyThresh; SA_S32 s32IndoorMaxCloudyThresh;
SA_S32 s32B2dLowThresh; SA_S32 s32B2dLowThresh;
SA_U16 u16TFrame; SA_U16 u16TFrame;
SA_U8 u8InitCount;
SA_U8 u8InitScene; SA_U8 u8InitScene;
SA_F32 f32InitSceneBlend; SA_F32 f32InitSceneBlend;
SA_U8 u8InitSceneCoarse; SA_U8 u8InitSceneCoarse;
...@@ -462,7 +465,11 @@ typedef struct { ...@@ -462,7 +465,11 @@ typedef struct {
SA_U32 u32EvDiffThr; SA_U32 u32EvDiffThr;
SA_U32 u32DrDiffThr; SA_U32 u32DrDiffThr;
SA_U32 u32WdrEnvLumaThr; SA_U32 u32WdrEnvLumaThr;
SA_U32 u32LinearEnvLumaThr; SA_U32 u32LinearEnvLumaThr;
SA_U8 u8BacklightEn;
SA_F32 f32BacklightB2mBvK;
SA_U32 u32BacklightB2mBvB;
SA_S32 s32BacklightM2dThd;
} SA_MEDIA_SD_LIB_ATTR_S; } SA_MEDIA_SD_LIB_ATTR_S;
typedef struct { typedef struct {
...@@ -557,16 +564,6 @@ typedef struct { ...@@ -557,16 +564,6 @@ typedef struct {
}; };
} SA_MEDIA_AUDIO_STREAM_S; } SA_MEDIA_AUDIO_STREAM_S;
typedef struct {
SA_MEDIA_SD_MODE_E enSdMode;
SA_MEDIA_SD_TYPE_E enSceneType;
SA_MEDIA_COLOR_FILTER_E enFilterColor;
SA_MEDIA_PROFESSIONAL_MODE_S stProAttr;
SA_MEDIA_CAPTURE_CONFIG_S stCaptureConfig;
SA_MEDIA_RECORD_CONFIG_S stRecordConfig;
} SA_MEDIA_DYN_ATTR_S;
typedef struct saHEVC_FRAME_INFO_S typedef struct saHEVC_FRAME_INFO_S
{ {
SA_U8 *pucData; SA_U8 *pucData;
...@@ -581,7 +578,6 @@ typedef struct saHEIF_FRAME_INFO_S ...@@ -581,7 +578,6 @@ typedef struct saHEIF_FRAME_INFO_S
SA_U32 u32DataLen; SA_U32 u32DataLen;
} HEIF_FRAME_INFO_S; } HEIF_FRAME_INFO_S;
SA_S32 SA_HAPI_MEDIA_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_CONFIG_S *pstSceneConfig, SA_MEDIA_ATTR_S *pstMediaAttr); SA_S32 SA_HAPI_MEDIA_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_CONFIG_S *pstSceneConfig, SA_MEDIA_ATTR_S *pstMediaAttr);
SA_S32 SA_HAPI_MEDIA_Start(SA_MEDIA_ATTR_S *pstMediaAttr); SA_S32 SA_HAPI_MEDIA_Start(SA_MEDIA_ATTR_S *pstMediaAttr);
SA_S32 SA_HAPI_MEDIA_Stop(SA_MEDIA_ATTR_S *pstMediaAttr); SA_S32 SA_HAPI_MEDIA_Stop(SA_MEDIA_ATTR_S *pstMediaAttr);
...@@ -591,8 +587,6 @@ SA_S32 SA_HAPI_MEDIA_GetVideoStream(VENC_CHN u32VeChn, VENC_STREAM_S *pstStream, ...@@ -591,8 +587,6 @@ SA_S32 SA_HAPI_MEDIA_GetVideoStream(VENC_CHN u32VeChn, VENC_STREAM_S *pstStream,
SA_S32 SA_HAPI_MEDIA_ReleaseVideoStream(VENC_CHN u32VeChn, VENC_STREAM_S *pstStream); SA_S32 SA_HAPI_MEDIA_ReleaseVideoStream(VENC_CHN u32VeChn, VENC_STREAM_S *pstStream);
SA_S32 SA_HAPI_MEDIA_GetAudioStream(SA_MEDIA_AUDIO_STREAM_S *pstStream, SA_S32 s32MilliSec); SA_S32 SA_HAPI_MEDIA_GetAudioStream(SA_MEDIA_AUDIO_STREAM_S *pstStream, SA_S32 s32MilliSec);
SA_S32 SA_HAPI_MEDIA_ReleaseAudioStream(SA_MEDIA_AUDIO_STREAM_S *pstStream); SA_S32 SA_HAPI_MEDIA_ReleaseAudioStream(SA_MEDIA_AUDIO_STREAM_S *pstStream);
SA_S32 SA_HAPI_MEDIA_SetDynAttr(SA_MEDIA_DYN_ATTR_S *pstDynAttr);
SA_S32 SA_HAPI_MEDIA_GetDynAttr(SA_MEDIA_DYN_ATTR_S *pstDynAttr);
#ifdef __linux__ #ifdef __linux__
#define HAPI_MEDIA_MALLOC malloc #define HAPI_MEDIA_MALLOC malloc
......
...@@ -507,8 +507,8 @@ static SA_S32 INNER_MEDIA_GetExpStatus(SA_BOOL *pbStable) ...@@ -507,8 +507,8 @@ static SA_S32 INNER_MEDIA_GetExpStatus(SA_BOOL *pbStable)
// static SA_U16 u16LastEV = 1; // static SA_U16 u16LastEV = 1;
SA_U16 u16CurrEV = stExpInfo.s32CurrEffY; SA_U16 u16CurrEV = stExpInfo.s32CurrEffY;
SA_U16 u16TargetEV = stExpInfo.u16CurrAeTarget; SA_U16 u16TargetEV = stExpInfo.u16CurrAeTarget;
SA_S32 s32ToleranceLower = stExpInfo.as32CurrAeTolerance[AE_TOLERANCE_LOWER]*2; SA_S32 s32ToleranceLower = stExpInfo.as32CurrAeTolerance[AE_TOLERANCE_LOWER]*3;
SA_S32 s32ToleranceUpper = stExpInfo.as32CurrAeTolerance[AE_TOLERANCE_UPPER]*2; SA_S32 s32ToleranceUpper = stExpInfo.as32CurrAeTolerance[AE_TOLERANCE_UPPER]*3;
SA_BOOL bExposureIsMax = stExpInfo.u8ExposureIsMax; SA_BOOL bExposureIsMax = stExpInfo.u8ExposureIsMax;
if (u16CurrEV - u16TargetEV > 1) { if (u16CurrEV - u16TargetEV > 1) {
...@@ -1002,20 +1002,6 @@ SA_S32 SA_HAPI_MEDIA_ReleaseAudioStream(SA_MEDIA_AUDIO_STREAM_S *pstStream) ...@@ -1002,20 +1002,6 @@ SA_S32 SA_HAPI_MEDIA_ReleaseAudioStream(SA_MEDIA_AUDIO_STREAM_S *pstStream)
return s32Ret; return s32Ret;
} }
SA_S32 SA_HAPI_MEDIA_SetDynAttr(SA_MEDIA_DYN_ATTR_S *pstDynAttr)
{
SA_S32 s32Ret = SA_SUCCESS;
return s32Ret;
}
SA_S32 SA_HAPI_MEDIA_GetDynAttr(SA_MEDIA_DYN_ATTR_S *pstDynAttr)
{
SA_S32 s32Ret = SA_SUCCESS;
return s32Ret;
}
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
} }
......
...@@ -27,7 +27,8 @@ SA_MEDIA_SD_LIB_ATTR_S g_stSdLibAttr ={ ...@@ -27,7 +27,8 @@ SA_MEDIA_SD_LIB_ATTR_S g_stSdLibAttr ={
.s32IndoorMinCloudyThresh = 10668, .s32IndoorMinCloudyThresh = 10668,
.s32IndoorMaxCloudyThresh = 11069, .s32IndoorMaxCloudyThresh = 11069,
.s32B2dLowThresh = 550, .s32B2dLowThresh = 550,
.u16TFrame = 10, .u16TFrame = 1,
.u8InitCount = 0,
.u8InitScene = 4, .u8InitScene = 4,
.f32InitSceneBlend = 0, .f32InitSceneBlend = 0,
.u8InitSceneCoarse = 1, .u8InitSceneCoarse = 1,
...@@ -39,9 +40,14 @@ SA_MEDIA_SD_LIB_ATTR_S g_stSdLibAttr ={ ...@@ -39,9 +40,14 @@ SA_MEDIA_SD_LIB_ATTR_S g_stSdLibAttr ={
.u32EvDiffThr = 9, .u32EvDiffThr = 9,
.u32DrDiffThr = 4, .u32DrDiffThr = 4,
.u32WdrEnvLumaThr = 11400, .u32WdrEnvLumaThr = 11400,
.u32LinearEnvLumaThr = 11400 .u32LinearEnvLumaThr = 11400,
.u8BacklightEn = SA_TRUE,
.f32BacklightB2mBvK = -6,
.u32BacklightB2mBvB = 25000,
.s32BacklightM2dThd = 1500,
}; };
//默认参数
SD_ATTR_S g_astSdlibAttr[MEDIA_PIPE_MAX] = { SD_ATTR_S g_astSdlibAttr[MEDIA_PIPE_MAX] = {
{ {
.u8LogLevel = 0, .u8LogLevel = 0,
...@@ -66,8 +72,12 @@ SD_ATTR_S g_astSdlibAttr[MEDIA_PIPE_MAX] = { ...@@ -66,8 +72,12 @@ SD_ATTR_S g_astSdlibAttr[MEDIA_PIPE_MAX] = {
.s32NearDistanceThresh = 500, .s32NearDistanceThresh = 500,
.s32TempLowThresh = 500, .s32TempLowThresh = 500,
.s32TempHighThresh = 500, .s32TempHighThresh = 500,
.u16TFrame = 10, .u8BacklightEn = SA_TRUE,
.u8InitCount = 7, .f32BacklightB2mBvK = -6,
.u32BacklightB2mBvB = 25000,
.s32BacklightM2dThd = 1500,
.u16TFrame = 1,
.u8InitCount = 0,
.u8InitScene = 4, .u8InitScene = 4,
.f32InitSceneBlend = 0, .f32InitSceneBlend = 0,
.u8InitSceneCoarse = 1 .u8InitSceneCoarse = 1
...@@ -315,8 +325,7 @@ static SA_S32 INNER_HAPI_SD_LoadIspBin(char *pBinBuff, SA_U32 u32BinSize, SA_MED ...@@ -315,8 +325,7 @@ static SA_S32 INNER_HAPI_SD_LoadIspBin(char *pBinBuff, SA_U32 u32BinSize, SA_MED
if(SA_SUCCESS == iret) { if(SA_SUCCESS == iret) {
iret =INNER_HAPI_SD_LoadIspCfgExt((char*)pBinBuff, u32BinSize, pfile[SA_MEDIA_ISP_BIN_PATH_WDR_OUTDOOR]); iret =INNER_HAPI_SD_LoadIspCfgExt((char*)pBinBuff, u32BinSize, pfile[SA_MEDIA_ISP_BIN_PATH_WDR_OUTDOOR]);
} }
} } else if(SA_MEDIA_ISP_BIN_PATH_WDR_INDOOR == eIspBinPath){
else if(SA_MEDIA_ISP_BIN_PATH_WDR_INDOOR == eIspBinPath){
iret =INNER_HAPI_SD_LoadIspCfgExt((char*)pBinBuff, u32BinSize, pfile[SA_MEDIA_ISP_BIN_PATH_COLOR_OUTDOOR]); iret =INNER_HAPI_SD_LoadIspCfgExt((char*)pBinBuff, u32BinSize, pfile[SA_MEDIA_ISP_BIN_PATH_COLOR_OUTDOOR]);
if(SA_SUCCESS == iret) { if(SA_SUCCESS == iret) {
iret =INNER_HAPI_SD_LoadIspCfgExt((char*)pBinBuff, u32BinSize, pfile[SA_MEDIA_ISP_BIN_PATH_WDR_OUTDOOR]); iret =INNER_HAPI_SD_LoadIspCfgExt((char*)pBinBuff, u32BinSize, pfile[SA_MEDIA_ISP_BIN_PATH_WDR_OUTDOOR]);
...@@ -324,8 +333,15 @@ static SA_S32 INNER_HAPI_SD_LoadIspBin(char *pBinBuff, SA_U32 u32BinSize, SA_MED ...@@ -324,8 +333,15 @@ static SA_S32 INNER_HAPI_SD_LoadIspBin(char *pBinBuff, SA_U32 u32BinSize, SA_MED
iret =INNER_HAPI_SD_LoadIspCfgExt((char*)pBinBuff, u32BinSize, pfile[SA_MEDIA_ISP_BIN_PATH_WDR_INDOOR]); iret =INNER_HAPI_SD_LoadIspCfgExt((char*)pBinBuff, u32BinSize, pfile[SA_MEDIA_ISP_BIN_PATH_WDR_INDOOR]);
} }
} }
} } else if(SA_MEDIA_ISP_BIN_PATH_COLOR_BACKLIGHT == eIspBinPath){
else if( SA_MEDIA_ISP_BIN_PATH_WDR_NIGHT == eIspBinPath ) { iret =INNER_HAPI_SD_LoadIspCfgExt((char*)pBinBuff, u32BinSize, pfile[SA_MEDIA_ISP_BIN_PATH_COLOR_OUTDOOR]);
if(SA_SUCCESS == iret) {
iret =INNER_HAPI_SD_LoadIspCfgExt((char*)pBinBuff, u32BinSize, pfile[SA_MEDIA_ISP_BIN_PATH_COLOR_INDOOR]);
if(SA_SUCCESS == iret) {
iret =INNER_HAPI_SD_LoadIspCfgExt((char*)pBinBuff, u32BinSize, pfile[SA_MEDIA_ISP_BIN_PATH_COLOR_BACKLIGHT]);
}
}
} else if( SA_MEDIA_ISP_BIN_PATH_WDR_NIGHT == eIspBinPath ) {
iret =INNER_HAPI_SD_LoadIspCfgExt((char*)pBinBuff, u32BinSize, pfile[eIspBinPath]); iret =INNER_HAPI_SD_LoadIspCfgExt((char*)pBinBuff, u32BinSize, pfile[eIspBinPath]);
} else { } else {
HAPI_MEDIA_LOG_W("INNER_HAPI_SD_LoadIspBin:Load binpath[%d] fail\n",eIspBinPath); HAPI_MEDIA_LOG_W("INNER_HAPI_SD_LoadIspBin:Load binpath[%d] fail\n",eIspBinPath);
...@@ -492,6 +508,13 @@ static SA_S32 INNER_HAPI_SD_Switch(SA_U32 isp_pipe, char pfile[][128]) ...@@ -492,6 +508,13 @@ static SA_S32 INNER_HAPI_SD_Switch(SA_U32 isp_pipe, char pfile[][128])
g_stSdResult[isp_pipe].enSceneCoarse = SCENE_COARSE_INDOOR; g_stSdResult[isp_pipe].enSceneCoarse = SCENE_COARSE_INDOOR;
} }
//SD_BACKLIGHT
if (SA_MEDIA_SD_BACKLIGHT == enSceneType && SA_MEDIA_SD_MANUAL == enSceneMode) {
g_stSdResult[isp_pipe].enWdrMode = SD_MODE_LINEAR;
g_stSdResult[isp_pipe].bAinrOn = SA_FALSE;
g_stSdResult[isp_pipe].enSceneCoarse = SCENE_COARSE_BACKLIGHT;
}
if (g_stSdResult[isp_pipe].bAinrOn && !bSdPreAinrOn[isp_pipe]) { if (g_stSdResult[isp_pipe].bAinrOn && !bSdPreAinrOn[isp_pipe]) {
HAPI_MEDIA_LOG_I("INNER_HAPI_SD_Switch cfg enable aisp\n"); HAPI_MEDIA_LOG_I("INNER_HAPI_SD_Switch cfg enable aisp\n");
bSdPreAinrOn[isp_pipe] = g_stSdResult[isp_pipe].bAinrOn; bSdPreAinrOn[isp_pipe] = g_stSdResult[isp_pipe].bAinrOn;
...@@ -556,6 +579,8 @@ static SA_S32 INNER_HAPI_SD_Switch(SA_U32 isp_pipe, char pfile[][128]) ...@@ -556,6 +579,8 @@ static SA_S32 INNER_HAPI_SD_Switch(SA_U32 isp_pipe, char pfile[][128])
} else { } else {
if(SCENE_COARSE_OUTDOOR == g_InUseSenceId[isp_pipe]) { if(SCENE_COARSE_OUTDOOR == g_InUseSenceId[isp_pipe]) {
eIspBinPath = SA_MEDIA_ISP_BIN_PATH_COLOR_OUTDOOR; eIspBinPath = SA_MEDIA_ISP_BIN_PATH_COLOR_OUTDOOR;
} else if(SCENE_COARSE_BACKLIGHT == g_InUseSenceId[isp_pipe]) {
eIspBinPath = SA_MEDIA_ISP_BIN_PATH_COLOR_BACKLIGHT;
} else { } else {
eIspBinPath = SA_MEDIA_ISP_BIN_PATH_COLOR_INDOOR; eIspBinPath = SA_MEDIA_ISP_BIN_PATH_COLOR_INDOOR;
} }
...@@ -626,6 +651,8 @@ static SA_S32 INNER_HAPI_SD_Process(SA_U32 isp_pipe, AE_EXP_INFO_S *pstExpInfo) ...@@ -626,6 +651,8 @@ static SA_S32 INNER_HAPI_SD_Process(SA_U32 isp_pipe, AE_EXP_INFO_S *pstExpInfo)
stRunParam.s32NightSceneRealBv = pstExpInfo->s32NightSceneRealBv; stRunParam.s32NightSceneRealBv = pstExpInfo->s32NightSceneRealBv;
stRunParam.s32InvB2d = pstExpInfo->s32InvB2d;; stRunParam.s32InvB2d = pstExpInfo->s32InvB2d;;
stRunParam.s32B2d = pstExpInfo->s32B2d; stRunParam.s32B2d = pstExpInfo->s32B2d;
stRunParam.u32B2m = pstExpInfo->u32B2m;
stRunParam.u32M2d = pstExpInfo->u32M2d;
stRunParam.bDrException = pstExpInfo->bDrException; //DR值是否异常 stRunParam.bDrException = pstExpInfo->bDrException; //DR值是否异常
stRunParam.u32drValue = pstExpInfo->u32drValue; //动态范围值 stRunParam.u32drValue = pstExpInfo->u32drValue; //动态范围值
...@@ -698,10 +725,10 @@ static void INNER_HAPI_SD_Thread(void* arg) ...@@ -698,10 +725,10 @@ static void INNER_HAPI_SD_Thread(void* arg)
SA_MAPI_ISP_GetExposureInfo(isp_pipe, &expInfo); SA_MAPI_ISP_GetExposureInfo(isp_pipe, &expInfo);
if(expInfo.au32ExpTime[0] > 0) { if(expInfo.au32ExpTime[0] > 0) {
SA_MAPI_ISP_QueryWBInfo(isp_pipe, &awbInfo); SA_MAPI_ISP_QueryWBInfo(isp_pipe, &awbInfo);
if(0 == i%5){ //if(0 == i%5){
//sd process //sd process
INNER_HAPI_SD_Process(isp_pipe, &expInfo); INNER_HAPI_SD_Process(isp_pipe, &expInfo);
} //}
if(SA_SUCCESS == s32Ret) { if(SA_SUCCESS == s32Ret) {
INNER_HAPI_SD_Switch(isp_pipe, g_astrIspBinPath[isp_pipe]); INNER_HAPI_SD_Switch(isp_pipe, g_astrIspBinPath[isp_pipe]);
} }
...@@ -748,6 +775,7 @@ static SA_S32 INNER_HAPI_SD_DefaultParInit(SA_U32 u32IspPipe) ...@@ -748,6 +775,7 @@ static SA_S32 INNER_HAPI_SD_DefaultParInit(SA_U32 u32IspPipe)
g_stSdDefault[u32IspPipe].stSdLibAttr.s32IndoorMaxCloudyThresh = g_astSdlibAttr[u32IspPipe].stAuto.s32IndoorMaxCloudyThresh; g_stSdDefault[u32IspPipe].stSdLibAttr.s32IndoorMaxCloudyThresh = g_astSdlibAttr[u32IspPipe].stAuto.s32IndoorMaxCloudyThresh;
g_stSdDefault[u32IspPipe].stSdLibAttr.s32B2dLowThresh = g_astSdlibAttr[u32IspPipe].stAuto.s32B2dLowThresh; g_stSdDefault[u32IspPipe].stSdLibAttr.s32B2dLowThresh = g_astSdlibAttr[u32IspPipe].stAuto.s32B2dLowThresh;
g_stSdDefault[u32IspPipe].stSdLibAttr.u16TFrame = g_astSdlibAttr[u32IspPipe].stAuto.u16TFrame; g_stSdDefault[u32IspPipe].stSdLibAttr.u16TFrame = g_astSdlibAttr[u32IspPipe].stAuto.u16TFrame;
g_stSdDefault[u32IspPipe].stSdLibAttr.u8InitCount = g_astSdlibAttr[u32IspPipe].stAuto.u8InitCount;
g_stSdDefault[u32IspPipe].stSdLibAttr.u8InitScene = g_astSdlibAttr[u32IspPipe].stAuto.u8InitScene; g_stSdDefault[u32IspPipe].stSdLibAttr.u8InitScene = g_astSdlibAttr[u32IspPipe].stAuto.u8InitScene;
g_stSdDefault[u32IspPipe].stSdLibAttr.f32InitSceneBlend = g_astSdlibAttr[u32IspPipe].stAuto.f32InitSceneBlend; g_stSdDefault[u32IspPipe].stSdLibAttr.f32InitSceneBlend = g_astSdlibAttr[u32IspPipe].stAuto.f32InitSceneBlend;
g_stSdDefault[u32IspPipe].stSdLibAttr.u8InitSceneCoarse = g_astSdlibAttr[u32IspPipe].stAuto.u8InitSceneCoarse; g_stSdDefault[u32IspPipe].stSdLibAttr.u8InitSceneCoarse = g_astSdlibAttr[u32IspPipe].stAuto.u8InitSceneCoarse;
...@@ -759,13 +787,18 @@ static SA_S32 INNER_HAPI_SD_DefaultParInit(SA_U32 u32IspPipe) ...@@ -759,13 +787,18 @@ static SA_S32 INNER_HAPI_SD_DefaultParInit(SA_U32 u32IspPipe)
g_stSdDefault[u32IspPipe].stSdLibAttr.u32EvDiffThr = g_astSdlibAttr[u32IspPipe].stWdrAttr.u32EvDiffThr; g_stSdDefault[u32IspPipe].stSdLibAttr.u32EvDiffThr = g_astSdlibAttr[u32IspPipe].stWdrAttr.u32EvDiffThr;
g_stSdDefault[u32IspPipe].stSdLibAttr.u32DrDiffThr = g_astSdlibAttr[u32IspPipe].stWdrAttr.u32DrDiffThr; g_stSdDefault[u32IspPipe].stSdLibAttr.u32DrDiffThr = g_astSdlibAttr[u32IspPipe].stWdrAttr.u32DrDiffThr;
g_stSdDefault[u32IspPipe].stSdLibAttr.u32WdrEnvLumaThr = g_astSdlibAttr[u32IspPipe].stWdrAttr.u32WdrEnvLumaThr; g_stSdDefault[u32IspPipe].stSdLibAttr.u32WdrEnvLumaThr = g_astSdlibAttr[u32IspPipe].stWdrAttr.u32WdrEnvLumaThr;
g_stSdDefault[u32IspPipe].stSdLibAttr.u32LinearEnvLumaThr = g_astSdlibAttr[u32IspPipe].stWdrAttr.u32LinearEnvLumaThr; g_stSdDefault[u32IspPipe].stSdLibAttr.u32LinearEnvLumaThr = g_astSdlibAttr[u32IspPipe].stWdrAttr.u32LinearEnvLumaThr;
g_stSdDefault[u32IspPipe].stSdLibAttr.u8BacklightEn = g_astSdlibAttr[u32IspPipe].stAuto.u8BacklightEn;
g_stSdDefault[u32IspPipe].stSdLibAttr.f32BacklightB2mBvK = g_astSdlibAttr[u32IspPipe].stAuto.f32BacklightB2mBvK;
g_stSdDefault[u32IspPipe].stSdLibAttr.u32BacklightB2mBvB = g_astSdlibAttr[u32IspPipe].stAuto.u32BacklightB2mBvB;
g_stSdDefault[u32IspPipe].stSdLibAttr.s32BacklightM2dThd = g_astSdlibAttr[u32IspPipe].stAuto.s32BacklightM2dThd;
return SA_SUCCESS; return SA_SUCCESS;
} }
static SA_S32 INNER_HAPI_SD_LibParInit(SA_U32 u32IspPipe) static SA_S32 INNER_HAPI_SD_LibParInit(SA_U32 u32IspPipe, SA_MEDIA_SD_ATTR_S *pstSdAttr)
{ {
HAPI_MEDIA_CHECK_PIPE(u32IspPipe); HAPI_MEDIA_CHECK_PIPE(u32IspPipe);
memcpy(&g_stSdDefault[u32IspPipe], pstSdAttr, sizeof(SA_MEDIA_SD_ATTR_S));
g_astSdlibAttr[u32IspPipe].stAuto.s32CloudyMinThresh = g_stSdDefault[u32IspPipe].stSdLibAttr.s32CloudyMinThresh; g_astSdlibAttr[u32IspPipe].stAuto.s32CloudyMinThresh = g_stSdDefault[u32IspPipe].stSdLibAttr.s32CloudyMinThresh;
g_astSdlibAttr[u32IspPipe].stAuto.s32IndoorMinThresh = g_stSdDefault[u32IspPipe].stSdLibAttr.s32IndoorMinThresh; g_astSdlibAttr[u32IspPipe].stAuto.s32IndoorMinThresh = g_stSdDefault[u32IspPipe].stSdLibAttr.s32IndoorMinThresh;
g_astSdlibAttr[u32IspPipe].stAuto.s32IndoorMaxThresh = g_stSdDefault[u32IspPipe].stSdLibAttr.s32IndoorMaxThresh; g_astSdlibAttr[u32IspPipe].stAuto.s32IndoorMaxThresh = g_stSdDefault[u32IspPipe].stSdLibAttr.s32IndoorMaxThresh;
...@@ -773,6 +806,7 @@ static SA_S32 INNER_HAPI_SD_LibParInit(SA_U32 u32IspPipe) ...@@ -773,6 +806,7 @@ static SA_S32 INNER_HAPI_SD_LibParInit(SA_U32 u32IspPipe)
g_astSdlibAttr[u32IspPipe].stAuto.s32IndoorMaxCloudyThresh = g_stSdDefault[u32IspPipe].stSdLibAttr.s32IndoorMaxCloudyThresh; g_astSdlibAttr[u32IspPipe].stAuto.s32IndoorMaxCloudyThresh = g_stSdDefault[u32IspPipe].stSdLibAttr.s32IndoorMaxCloudyThresh;
g_astSdlibAttr[u32IspPipe].stAuto.s32B2dLowThresh = g_stSdDefault[u32IspPipe].stSdLibAttr.s32B2dLowThresh; g_astSdlibAttr[u32IspPipe].stAuto.s32B2dLowThresh = g_stSdDefault[u32IspPipe].stSdLibAttr.s32B2dLowThresh;
g_astSdlibAttr[u32IspPipe].stAuto.u16TFrame = g_stSdDefault[u32IspPipe].stSdLibAttr.u16TFrame; g_astSdlibAttr[u32IspPipe].stAuto.u16TFrame = g_stSdDefault[u32IspPipe].stSdLibAttr.u16TFrame;
g_astSdlibAttr[u32IspPipe].stAuto.u8InitCount = g_stSdDefault[u32IspPipe].stSdLibAttr.u8InitCount;
g_astSdlibAttr[u32IspPipe].stAuto.u8InitScene = g_stSdDefault[u32IspPipe].stSdLibAttr.u8InitScene; g_astSdlibAttr[u32IspPipe].stAuto.u8InitScene = g_stSdDefault[u32IspPipe].stSdLibAttr.u8InitScene;
g_astSdlibAttr[u32IspPipe].stAuto.f32InitSceneBlend = g_stSdDefault[u32IspPipe].stSdLibAttr.f32InitSceneBlend; g_astSdlibAttr[u32IspPipe].stAuto.f32InitSceneBlend = g_stSdDefault[u32IspPipe].stSdLibAttr.f32InitSceneBlend;
g_astSdlibAttr[u32IspPipe].stAuto.u8InitSceneCoarse = g_stSdDefault[u32IspPipe].stSdLibAttr.u8InitSceneCoarse; g_astSdlibAttr[u32IspPipe].stAuto.u8InitSceneCoarse = g_stSdDefault[u32IspPipe].stSdLibAttr.u8InitSceneCoarse;
...@@ -785,7 +819,10 @@ static SA_S32 INNER_HAPI_SD_LibParInit(SA_U32 u32IspPipe) ...@@ -785,7 +819,10 @@ static SA_S32 INNER_HAPI_SD_LibParInit(SA_U32 u32IspPipe)
g_astSdlibAttr[u32IspPipe].stWdrAttr.u32DrDiffThr = g_stSdDefault[u32IspPipe].stSdLibAttr.u32DrDiffThr; g_astSdlibAttr[u32IspPipe].stWdrAttr.u32DrDiffThr = g_stSdDefault[u32IspPipe].stSdLibAttr.u32DrDiffThr;
g_astSdlibAttr[u32IspPipe].stWdrAttr.u32WdrEnvLumaThr = g_stSdDefault[u32IspPipe].stSdLibAttr.u32WdrEnvLumaThr; g_astSdlibAttr[u32IspPipe].stWdrAttr.u32WdrEnvLumaThr = g_stSdDefault[u32IspPipe].stSdLibAttr.u32WdrEnvLumaThr;
g_astSdlibAttr[u32IspPipe].stWdrAttr.u32LinearEnvLumaThr = g_stSdDefault[u32IspPipe].stSdLibAttr.u32LinearEnvLumaThr; g_astSdlibAttr[u32IspPipe].stWdrAttr.u32LinearEnvLumaThr = g_stSdDefault[u32IspPipe].stSdLibAttr.u32LinearEnvLumaThr;
g_astSdlibAttr[u32IspPipe].stAuto.u8BacklightEn = g_stSdDefault[u32IspPipe].stSdLibAttr.u8BacklightEn;
g_astSdlibAttr[u32IspPipe].stAuto.f32BacklightB2mBvK = g_stSdDefault[u32IspPipe].stSdLibAttr.f32BacklightB2mBvK;
g_astSdlibAttr[u32IspPipe].stAuto.u32BacklightB2mBvB = g_stSdDefault[u32IspPipe].stSdLibAttr.u32BacklightB2mBvB;
g_astSdlibAttr[u32IspPipe].stAuto.s32BacklightM2dThd = g_stSdDefault[u32IspPipe].stSdLibAttr.s32BacklightM2dThd;
return SA_SUCCESS; return SA_SUCCESS;
} }
...@@ -811,10 +848,10 @@ static SA_S32 INNER_HAPI_SD_GlobalInit(SA_U32 isp_pipe) ...@@ -811,10 +848,10 @@ static SA_S32 INNER_HAPI_SD_GlobalInit(SA_U32 isp_pipe)
return SA_SUCCESS; return SA_SUCCESS;
} }
static SA_S32 INNER_HAPI_SD_StatParamInit(SA_U32 u32IspPipe) static SA_S32 INNER_HAPI_SD_StatParamInit(SA_U32 u32IspPipe, SA_MEDIA_SD_ATTR_S *pstSdAttr)
{ {
HAPI_MEDIA_CHECK_PIPE(u32IspPipe); HAPI_MEDIA_CHECK_PIPE(u32IspPipe);
INNER_HAPI_SD_LibParInit(u32IspPipe);//alg lib参数初始化 INNER_HAPI_SD_LibParInit(u32IspPipe, pstSdAttr);//alg lib参数初始化
INNER_HAPI_SD_GlobalInit(u32IspPipe);//全局状态参数初始化 INNER_HAPI_SD_GlobalInit(u32IspPipe);//全局状态参数初始化
return SA_SUCCESS; return SA_SUCCESS;
...@@ -841,6 +878,8 @@ SA_S32 SA_INNER_MEDIA_SD_SetInitAttr(SA_U32 u32IspPipe, MEDIA_SD_RESULT_S* pstAt ...@@ -841,6 +878,8 @@ SA_S32 SA_INNER_MEDIA_SD_SetInitAttr(SA_U32 u32IspPipe, MEDIA_SD_RESULT_S* pstAt
} else { } else {
if(SCENE_COARSE_OUTDOOR == g_InUseSenceId[u32IspPipe]) { if(SCENE_COARSE_OUTDOOR == g_InUseSenceId[u32IspPipe]) {
eIspBinPath = SA_MEDIA_ISP_BIN_PATH_COLOR_OUTDOOR; eIspBinPath = SA_MEDIA_ISP_BIN_PATH_COLOR_OUTDOOR;
} else if(SCENE_COARSE_BACKLIGHT == g_InUseSenceId[u32IspPipe]) {
eIspBinPath = SA_MEDIA_ISP_BIN_PATH_COLOR_BACKLIGHT;
} else { } else {
eIspBinPath = SA_MEDIA_ISP_BIN_PATH_COLOR_INDOOR; eIspBinPath = SA_MEDIA_ISP_BIN_PATH_COLOR_INDOOR;
} }
...@@ -872,7 +911,7 @@ SA_S32 SA_INNER_MEDIA_SD_Start(SA_MEDIA_ATTR_S *pstMediaAttr) ...@@ -872,7 +911,7 @@ SA_S32 SA_INNER_MEDIA_SD_Start(SA_MEDIA_ATTR_S *pstMediaAttr)
HAPI_MEDIA_CHECK_PTR(pstMediaAttr); HAPI_MEDIA_CHECK_PTR(pstMediaAttr);
SA_S32 s32Ret = SA_SUCCESS; SA_S32 s32Ret = SA_SUCCESS;
memcpy(g_astrIspBinPath[pstMediaAttr->stSd.s32IspPipeId], pstMediaAttr->stVin.stIspAttr.astrIspFile[0], sizeof( pstMediaAttr->stVin.stIspAttr.astrIspFile[0])); memcpy(g_astrIspBinPath[pstMediaAttr->stSd.s32IspPipeId], pstMediaAttr->stVin.stIspAttr.astrIspFile[0], sizeof( pstMediaAttr->stVin.stIspAttr.astrIspFile[0]));
INNER_HAPI_SD_StatParamInit(pstMediaAttr->stSd.s32IspPipeId); INNER_HAPI_SD_StatParamInit(pstMediaAttr->stSd.s32IspPipeId, &pstMediaAttr->stSd);
INNER_HAPI_SD_ThreadInit(pstMediaAttr->stSd.s32IspPipeId); INNER_HAPI_SD_ThreadInit(pstMediaAttr->stSd.s32IspPipeId);
return s32Ret; return s32Ret;
} }
......
...@@ -36,10 +36,14 @@ extern "C" { ...@@ -36,10 +36,14 @@ extern "C" {
// .f32UndistortCoefs = {-0.064685, 0.003107, 0.000000, 0.000000, -0.000904, 0.0776239, -0.016690, 0.000808}, // .f32UndistortCoefs = {-0.064685, 0.003107, 0.000000, 0.000000, -0.000904, 0.0776239, -0.016690, 0.000808},
// }, // },
// }; // };
#define MEDIA_LTM_SIZE_WIDTH_MAX (3840)
#define MEDIA_LTM_SIZE_HEIGHT_MAX (2736)
#ifndef MEDIA_ALIGN_UP
#define MEDIA_ALIGN_UP(x, a) ((((x) + ((a) - 1)) / a) * a)
#endif
extern SA_SNS_ITEM g_stSnsItem; extern SA_SNS_ITEM g_stSnsItem;
extern SA_MEDIA_STATUS_INFO_S g_stMediaStatus; extern SA_MEDIA_STATUS_INFO_S g_stMediaStatus;
SIZE_S g_stSnsSize = {0}; SIZE_S g_stViPipeSize = {0};
SA_BOOL g_bStartPre = SA_FALSE; SA_BOOL g_bStartPre = SA_FALSE;
extern unsigned char g_isp_def_data[]; extern unsigned char g_isp_def_data[];
extern FILTER2ISP_ATTR_S g_stQuickAttr; extern FILTER2ISP_ATTR_S g_stQuickAttr;
...@@ -177,10 +181,13 @@ static SA_S32 INNER_HAPI_VIN_Resolution(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO ...@@ -177,10 +181,13 @@ static SA_S32 INNER_HAPI_VIN_Resolution(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO
} else if (SA_MEDIA_SCENE_RECORD == enScene) { } else if (SA_MEDIA_SCENE_RECORD == enScene) {
bVencCh[0] = SA_FALSE; bVencCh[0] = SA_FALSE;
bVencCh[1] = SA_TRUE; bVencCh[1] = SA_TRUE;
} else { } else if (SA_MEDIA_SCENE_CAPTURE_RECORD == enScene) {
bVencCh[0] = SA_TRUE;
bVencCh[1] = SA_TRUE;
} else if (SA_MEDIA_SCENE_VISUAL == enScene) {
bVencCh[0] = SA_FALSE; bVencCh[0] = SA_FALSE;
bVencCh[1] = SA_TRUE; bVencCh[1] = SA_TRUE;
} }
//find max venc resolution. //find max venc resolution.
for (VencChn = 0; VencChn < SA_MEDIA_VENC_CHN_MAX; VencChn++) { for (VencChn = 0; VencChn < SA_MEDIA_VENC_CHN_MAX; VencChn++) {
...@@ -226,16 +233,29 @@ static SA_S32 INNER_HAPI_VIN_Resolution(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO ...@@ -226,16 +233,29 @@ static SA_S32 INNER_HAPI_VIN_Resolution(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO
u32DefaultImgMode = u32ImgMode; u32DefaultImgMode = u32ImgMode;
} }
} else { } else {
u32ImgMode = MIPI_LINEAR_MAXRES_DEFAULT; u32ImgMode = MIPI_LINEAR_BINNING_2X2;
s32Ret = pstSnsObj->pfn_sns_get_sns_info(pstSceneConfig->s32ViDev, &stSnsInfo, u32ImgMode); s32Ret = pstSnsObj->pfn_sns_get_sns_info(pstSceneConfig->s32ViDev, &stSnsInfo, u32ImgMode);
if (SA_SUCCESS != s32Ret) { if (SA_SUCCESS != s32Ret) {
HAPI_MEDIA_LOG_E("pfn_sns_get_sns_info(%d) failed with %#x!\n", u32ImgMode, s32Ret); HAPI_MEDIA_LOG_E("pfn_sns_get_sns_info(%d) failed with %#x!\n", u32ImgMode, s32Ret);
INNER_HAPI_SNS_CloseObj(pstSceneConfig->enSensorType); INNER_HAPI_SNS_CloseObj(pstSceneConfig->enSensorType);
return s32Ret; return s32Ret;
} }
if (stSnsInfo.stSizeInfo.stActSize.u32Width >= stMaxSize.u32Width && stSnsInfo.stSizeInfo.stActSize.u32Height >= stMaxSize.u32Height) { if (stSnsInfo.stSizeInfo.stActSize.u32Width >= stMaxSize.u32Width && stSnsInfo.stSizeInfo.stActSize.u32Height >= stMaxSize.u32Height) {
bGotMode = SA_TRUE; bGotMode = SA_TRUE;
} else {
u32ImgMode = MIPI_LINEAR_MAXRES_DEFAULT;
s32Ret = pstSnsObj->pfn_sns_get_sns_info(pstSceneConfig->s32ViDev, &stSnsInfo, u32ImgMode);
if (SA_SUCCESS != s32Ret) {
HAPI_MEDIA_LOG_E("pfn_sns_get_sns_info(%d) failed with %#x!\n", u32ImgMode, s32Ret);
INNER_HAPI_SNS_CloseObj(pstSceneConfig->enSensorType);
return s32Ret;
}
if (stSnsInfo.stSizeInfo.stActSize.u32Width >= stMaxSize.u32Width && stSnsInfo.stSizeInfo.stActSize.u32Height >= stMaxSize.u32Height) {
bGotMode = SA_TRUE;
}
} }
if (stSnsInfo.stSizeInfo.stActSize.u32Width > stSnsMaxSize.u32Width && stSnsInfo.stSizeInfo.stActSize.u32Height > stSnsMaxSize.u32Height) { if (stSnsInfo.stSizeInfo.stActSize.u32Width > stSnsMaxSize.u32Width && stSnsInfo.stSizeInfo.stActSize.u32Height > stSnsMaxSize.u32Height) {
stSnsMaxSize.u32Width = stSnsInfo.stSizeInfo.stActSize.u32Width; stSnsMaxSize.u32Width = stSnsInfo.stSizeInfo.stActSize.u32Width;
stSnsMaxSize.u32Height = stSnsInfo.stSizeInfo.stActSize.u32Height; stSnsMaxSize.u32Height = stSnsInfo.stSizeInfo.stActSize.u32Height;
...@@ -253,6 +273,7 @@ static SA_S32 INNER_HAPI_VIN_Resolution(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO ...@@ -253,6 +273,7 @@ static SA_S32 INNER_HAPI_VIN_Resolution(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO
pstSensorSize->u32Width = stSnsMaxSize.u32Width; pstSensorSize->u32Width = stSnsMaxSize.u32Width;
pstSensorSize->u32Height = stSnsMaxSize.u32Height; pstSensorSize->u32Height = stSnsMaxSize.u32Height;
} }
// if ((pstSceneConfig->enRotation == VI_GDC_ROTATE_90) || (pstSceneConfig->enRotation == VI_GDC_ROTATE_270)) { // if ((pstSceneConfig->enRotation == VI_GDC_ROTATE_90) || (pstSceneConfig->enRotation == VI_GDC_ROTATE_270)) {
// u32SwapWidth = pstSensorSize->u32Width; // u32SwapWidth = pstSensorSize->u32Width;
// pstSensorSize->u32Width = pstSensorSize->u32Height; // pstSensorSize->u32Width = pstSensorSize->u32Height;
...@@ -562,6 +583,24 @@ static SA_S32 INNER_HAPI_VPSS_GetChnConfig(SIZE_S *pstResolution, SA_S32 s32Fps, ...@@ -562,6 +583,24 @@ static SA_S32 INNER_HAPI_VPSS_GetChnConfig(SIZE_S *pstResolution, SA_S32 s32Fps,
return SA_SUCCESS; return SA_SUCCESS;
} }
static SA_S32 INNER_HAPI_CROP_SizeCal(SIZE_S *pstSnsSize, RECT_S *pstCropSize)
{
if ((pstSnsSize->u32Width > MEDIA_LTM_SIZE_WIDTH_MAX) && (pstSnsSize->u32Height > MEDIA_LTM_SIZE_HEIGHT_MAX)) {
pstCropSize->s32X = (pstSnsSize->u32Width - MEDIA_LTM_SIZE_WIDTH_MAX) / 2;
pstCropSize->s32Y = (pstSnsSize->u32Height - MEDIA_LTM_SIZE_HEIGHT_MAX) / 2;
pstCropSize->s32X = MEDIA_ALIGN_UP(pstCropSize->s32X,2);
pstCropSize->s32Y = MEDIA_ALIGN_UP(pstCropSize->s32Y,2);
pstCropSize->u32Width = MEDIA_LTM_SIZE_WIDTH_MAX;
pstCropSize->u32Height = MEDIA_LTM_SIZE_HEIGHT_MAX;
} else {
pstCropSize->s32X = 0;
pstCropSize->s32Y = 0;
pstCropSize->u32Width = pstSnsSize->u32Width;
pstCropSize->u32Height = pstSnsSize->u32Height;
}
return SA_SUCCESS;
}
static SA_S32 INNER_HAPI_VIN_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_CONFIG_S *pstSceneConfig, SA_MEDIA_VIN_ATTR_S *pstMediaAttr) static SA_S32 INNER_HAPI_VIN_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_CONFIG_S *pstSceneConfig, SA_MEDIA_VIN_ATTR_S *pstMediaAttr)
{ {
HAPI_MEDIA_CHECK_PTR(pstSceneConfig); HAPI_MEDIA_CHECK_PTR(pstSceneConfig);
...@@ -583,10 +622,13 @@ static SA_S32 INNER_HAPI_VIN_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_CO ...@@ -583,10 +622,13 @@ static SA_S32 INNER_HAPI_VIN_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_CO
} else if (SA_MEDIA_SCENE_RECORD == enScene) { } else if (SA_MEDIA_SCENE_RECORD == enScene) {
bVencCh[0] = SA_FALSE; bVencCh[0] = SA_FALSE;
bVencCh[1] = SA_TRUE; bVencCh[1] = SA_TRUE;
} else { } else if (SA_MEDIA_SCENE_CAPTURE_RECORD == enScene) {
bVencCh[0] = SA_TRUE;
bVencCh[1] = SA_TRUE;
} else if (SA_MEDIA_SCENE_VISUAL == enScene) {
bVencCh[0] = SA_FALSE; bVencCh[0] = SA_FALSE;
bVencCh[1] = SA_TRUE; bVencCh[1] = SA_TRUE;
} }
s32Ret = INNER_HAPI_VIN_Resolution(enScene, pstSceneConfig, &pstVinAttr->stSensorAttr.enMode, &stSnsRes); s32Ret = INNER_HAPI_VIN_Resolution(enScene, pstSceneConfig, &pstVinAttr->stSensorAttr.enMode, &stSnsRes);
if (SA_SUCCESS != s32Ret) { if (SA_SUCCESS != s32Ret) {
...@@ -595,15 +637,13 @@ static SA_S32 INNER_HAPI_VIN_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_CO ...@@ -595,15 +637,13 @@ static SA_S32 INNER_HAPI_VIN_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_CO
} }
HAPI_MEDIA_LOG_I("get image mode %#x resolution %dx%d.\n", pstVinAttr->stSensorAttr.enMode, stSnsRes.u32Width, stSnsRes.u32Height); HAPI_MEDIA_LOG_I("get image mode %#x resolution %dx%d.\n", pstVinAttr->stSensorAttr.enMode, stSnsRes.u32Width, stSnsRes.u32Height);
g_stSnsSize.u32Width = stSnsRes.u32Width;
g_stSnsSize.u32Height = stSnsRes.u32Height;
pstVinAttr->stSensorAttr.enSnsType = pstSceneConfig->enSensorType; pstVinAttr->stSensorAttr.enSnsType = pstSceneConfig->enSensorType;
// if (((pstVinAttr->stSensorAttr.enMode >> 8) & 0xFF) == SNS_WORK_MODE_SLAVE) // if (((pstVinAttr->stSensorAttr.enMode >> 8) & 0xFF) == SNS_WORK_MODE_SLAVE)
// pstVinAttr->stSensorAttr.u32SensorId = 2; // pstVinAttr->stSensorAttr.u32SensorId = 2;
// else // else
// pstVinAttr->stSensorAttr.u32SensorId = u32SnsId++; // pstVinAttr->stSensorAttr.u32SensorId = u32SnsId++;
pstVinAttr->stSensorAttr.u32SensorId = u32SnsId++; pstVinAttr->stSensorAttr.u32SensorId = u32SnsId++;
pstVinAttr->stSensorAttr.enMode = pstSceneConfig->enSensorMode; // pstVinAttr->stSensorAttr.enMode = pstSceneConfig->enSensorMode;
pstVinAttr->stSensorAttr.f32Fps = pstSceneConfig->f32MaxFps; pstVinAttr->stSensorAttr.f32Fps = pstSceneConfig->f32MaxFps;
pstVinAttr->stSensorAttr.f32MinFps = pstSceneConfig->f32MinFps; pstVinAttr->stSensorAttr.f32MinFps = pstSceneConfig->f32MinFps;
pstVinAttr->stSensorAttr.stSnsPubAttr.bFlip = pstSceneConfig->bFlip; pstVinAttr->stSensorAttr.stSnsPubAttr.bFlip = pstSceneConfig->bFlip;
...@@ -617,10 +657,11 @@ static SA_S32 INNER_HAPI_VIN_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_CO ...@@ -617,10 +657,11 @@ static SA_S32 INNER_HAPI_VIN_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_CO
// pstVinAttr->stViAttr.enEisMode = g_enMediaEisMode; // pstVinAttr->stViAttr.enEisMode = g_enMediaEisMode;
pstVinAttr->stViAttr.stViDevAttr.stFrameRate.s32SrcFrameRate = 30; pstVinAttr->stViAttr.stViDevAttr.stFrameRate.s32SrcFrameRate = 30;
pstVinAttr->stViAttr.stViDevAttr.stFrameRate.s32DstFrameRate = 30; pstVinAttr->stViAttr.stViDevAttr.stFrameRate.s32DstFrameRate = 30;
pstVinAttr->stViAttr.stViDevAttr.stCropAttr.s32X = 0; INNER_HAPI_CROP_SizeCal(&stSnsRes, &pstVinAttr->stViAttr.stViDevAttr.stCropAttr);
pstVinAttr->stViAttr.stViDevAttr.stCropAttr.s32Y = 0; // pstVinAttr->stViAttr.stViDevAttr.stCropAttr.s32X = 0;
pstVinAttr->stViAttr.stViDevAttr.stCropAttr.u32Width = stSnsRes.u32Width; // pstVinAttr->stViAttr.stViDevAttr.stCropAttr.s32Y = 0;
pstVinAttr->stViAttr.stViDevAttr.stCropAttr.u32Height = stSnsRes.u32Height; // pstVinAttr->stViAttr.stViDevAttr.stCropAttr.u32Width = stSnsRes.u32Width;
// pstVinAttr->stViAttr.stViDevAttr.stCropAttr.u32Height = stSnsRes.u32Height;
pstVinAttr->stViAttr.stViDevAttr.stTpgAttr.bIsEnTPG = SA_FALSE; pstVinAttr->stViAttr.stViDevAttr.stTpgAttr.bIsEnTPG = SA_FALSE;
pstVinAttr->stViAttr.stViDevAttr.stTpgAttr.enBayerMode = BAYER_BGGR; pstVinAttr->stViAttr.stViDevAttr.stTpgAttr.enBayerMode = BAYER_BGGR;
pstVinAttr->stViAttr.stViDevAttr.stTpgAttr.stActiveSize.u32Width = stSnsRes.u32Width; pstVinAttr->stViAttr.stViDevAttr.stTpgAttr.stActiveSize.u32Width = stSnsRes.u32Width;
...@@ -637,8 +678,10 @@ static SA_S32 INNER_HAPI_VIN_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_CO ...@@ -637,8 +678,10 @@ static SA_S32 INNER_HAPI_VIN_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_CO
pstVinAttr->stViAttr.stViPipeAttr.enBitWidth = DATA_BITWIDTH_12; pstVinAttr->stViAttr.stViPipeAttr.enBitWidth = DATA_BITWIDTH_12;
pstVinAttr->stViAttr.stViPipeAttr.enBayerMode = pstVinAttr->stViAttr.stViDevAttr.stSnsInfo.enBayerMode; pstVinAttr->stViAttr.stViPipeAttr.enBayerMode = pstVinAttr->stViAttr.stViDevAttr.stSnsInfo.enBayerMode;
pstVinAttr->stViAttr.stViPipeAttr.enPipeSource = VI_PIPE_FRAME_SOURCE_DEV; pstVinAttr->stViAttr.stViPipeAttr.enPipeSource = VI_PIPE_FRAME_SOURCE_DEV;
pstVinAttr->stViAttr.stViPipeAttr.u32Width = stSnsRes.u32Width; pstVinAttr->stViAttr.stViPipeAttr.u32Width = pstVinAttr->stViAttr.stViDevAttr.stCropAttr.u32Width;
pstVinAttr->stViAttr.stViPipeAttr.u32Height = stSnsRes.u32Height; pstVinAttr->stViAttr.stViPipeAttr.u32Height = pstVinAttr->stViAttr.stViDevAttr.stCropAttr.u32Height;
g_stViPipeSize.u32Width = pstVinAttr->stViAttr.stViPipeAttr.u32Width;
g_stViPipeSize.u32Height = pstVinAttr->stViAttr.stViPipeAttr.u32Height;
#ifdef HAPI_SA6920 #ifdef HAPI_SA6920
pstVinAttr->stViAttr.stViPipeAttr.u32BindDepth = 3; pstVinAttr->stViAttr.stViPipeAttr.u32BindDepth = 3;
if (stSnsRes.u32Width > 2592) { if (stSnsRes.u32Width > 2592) {
...@@ -753,11 +796,11 @@ static SA_S32 INNER_HAPI_VPSS_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_C ...@@ -753,11 +796,11 @@ static SA_S32 INNER_HAPI_VPSS_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_C
pstMediaAttr->astGroup[VpssGrp].bEnable = SA_TRUE; pstMediaAttr->astGroup[VpssGrp].bEnable = SA_TRUE;
if ((pstSceneConfig->enRotation == VI_GDC_ROTATE_90) || (pstSceneConfig->enRotation == VI_GDC_ROTATE_270)) { if ((pstSceneConfig->enRotation == VI_GDC_ROTATE_90) || (pstSceneConfig->enRotation == VI_GDC_ROTATE_270)) {
stResolution.u32Width = g_stSnsSize.u32Height; stResolution.u32Width = g_stViPipeSize.u32Height;
stResolution.u32Height = g_stSnsSize.u32Width; stResolution.u32Height = g_stViPipeSize.u32Width;
} else { } else {
stResolution.u32Width = g_stSnsSize.u32Width; stResolution.u32Width = g_stViPipeSize.u32Width;
stResolution.u32Height = g_stSnsSize.u32Height; stResolution.u32Height = g_stViPipeSize.u32Height;
} }
pstMediaAttr->astGroup[VpssGrp].u32GrpId = VpssGrp; pstMediaAttr->astGroup[VpssGrp].u32GrpId = VpssGrp;
...@@ -820,8 +863,10 @@ static SA_S32 INNER_HAPI_VENC_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_C ...@@ -820,8 +863,10 @@ static SA_S32 INNER_HAPI_VENC_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_C
pstVenAttr->astChannel[0].bEnable = SA_TRUE; pstVenAttr->astChannel[0].bEnable = SA_TRUE;
pstVenAttr->astChannel[1].bEnable = SA_TRUE; pstVenAttr->astChannel[1].bEnable = SA_TRUE;
eWorkMode = VENC_WORK_MODE_OFFLINE_SEND; eWorkMode = VENC_WORK_MODE_OFFLINE_SEND;
} else { } else if (SA_MEDIA_SCENE_VISUAL == enScene) {
eWorkMode = VENC_WORK_MODE_OFFLINE_SEND; pstVenAttr->astChannel[0].bEnable = SA_FALSE;
pstVenAttr->astChannel[1].bEnable = SA_TRUE;
eWorkMode = VENC_WORK_MODE_OFFLINE_SEND;
} }
// for (i = 0; i < SA_MEDIA_SCENE_CAPTURE_RECORD; i++) { // for (i = 0; i < SA_MEDIA_SCENE_CAPTURE_RECORD; i++) {
...@@ -836,14 +881,14 @@ static SA_S32 INNER_HAPI_VENC_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_C ...@@ -836,14 +881,14 @@ static SA_S32 INNER_HAPI_VENC_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_C
// } // }
// } // }
if ((pstSceneConfig->enRotation == VI_GDC_ROTATE_90) || (pstSceneConfig->enRotation == VI_GDC_ROTATE_270)) { if ((pstSceneConfig->enRotation == VI_GDC_ROTATE_90) || (pstSceneConfig->enRotation == VI_GDC_ROTATE_270)) {
stVpssOutResolution.u32Width = g_stSnsSize.u32Height; stVpssOutResolution.u32Width = g_stViPipeSize.u32Height;
stVpssOutResolution.u32Height = g_stSnsSize.u32Width; stVpssOutResolution.u32Height = g_stViPipeSize.u32Width;
} else { } else {
stVpssOutResolution.u32Width = g_stSnsSize.u32Width; stVpssOutResolution.u32Width = g_stViPipeSize.u32Width;
stVpssOutResolution.u32Height = g_stSnsSize.u32Height; stVpssOutResolution.u32Height = g_stViPipeSize.u32Height;
} }
// stVpssOutResolution.u32Width = g_stSnsSize.u32Width; // stVpssOutResolution.u32Width = g_stViPipeSize.u32Width;
// stVpssOutResolution.u32Height = g_stSnsSize.u32Height; // stVpssOutResolution.u32Height = g_stViPipeSize.u32Height;
pstVpssChnAttr = &pstMediaAttr->stVpss.astGroup[s32VpssGrp].astChannel[s32VpssChn]; pstVpssChnAttr = &pstMediaAttr->stVpss.astGroup[s32VpssGrp].astChannel[s32VpssChn];
pstVpssChnAttr->bEnable = SA_TRUE; pstVpssChnAttr->bEnable = SA_TRUE;
...@@ -933,7 +978,7 @@ static SA_S32 INNER_HAPI_VENC_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_C ...@@ -933,7 +978,7 @@ static SA_S32 INNER_HAPI_VENC_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_C
pstVencInfo->u8FrameRate = s32Fps; pstVencInfo->u8FrameRate = s32Fps;
pstVencInfo->u32PicWidth = pstVencChnAttr->stChnAttr.stVencAttr.u32PicWidth; pstVencInfo->u32PicWidth = pstVencChnAttr->stChnAttr.stVencAttr.u32PicWidth;
pstVencInfo->u32PicHeight = pstVencChnAttr->stChnAttr.stVencAttr.u32PicHeight; pstVencInfo->u32PicHeight = pstVencChnAttr->stChnAttr.stVencAttr.u32PicHeight;
printf("encType:%d,wh:%d,%d,fps:%d\n",pstVencChnAttr->stChnAttr.stVencAttr.eEncType, HAPI_MEDIA_LOG_I("encType:%d,wh:%d,%d,fps:%d\n",pstVencChnAttr->stChnAttr.stVencAttr.eEncType,
pstVencInfo->u32PicWidth,pstVencInfo->u32PicHeight,s32Fps); pstVencInfo->u32PicWidth,pstVencInfo->u32PicHeight,s32Fps);
} }
} }
...@@ -1206,6 +1251,21 @@ static SA_S32 INNER_HAPI_ISP_Register(SA_MEDIA_VIN_ATTR_S *pstVinChnAttr) ...@@ -1206,6 +1251,21 @@ static SA_S32 INNER_HAPI_ISP_Register(SA_MEDIA_VIN_ATTR_S *pstVinChnAttr)
return s32Ret; return s32Ret;
} }
#endif #endif
} else {
#ifdef HAPI_SA6920
ISP_3A_INIT_VALUE_S stSensorInit = {0};
stSensorInit.u32Iso = 100;
stSensorInit.u32Ct = 5000;
stSensorInit.u32IntTime = pstVinChnAttr->stIspAttr.stAeAttrAll.stExpAttr.stAuto.u32InitInttime;
stSensorInit.u32ExpRatio = 32;
stSensorInit.u32Again = pstVinChnAttr->stIspAttr.stAeAttrAll.stExpAttr.stAuto.u32InitGain;
stSensorInit.u32Dgain = 1024;
s32Ret = SA_MAPI_ISP_SetSnsIspInitValue(pstVinChnAttr->stIspAttr.u32IspPipeId, &stSensorInit);
if (SA_SUCCESS != s32Ret) {
HAPI_MEDIA_LOG_E("SA_MAPI_ISP_SetSnsIspInitValue failed with %#x!\n", s32Ret);
return s32Ret;
}
#endif
} }
return SA_SUCCESS; return SA_SUCCESS;
...@@ -1808,7 +1868,7 @@ SA_S32 SA_INNER_MEDIA_VIDEO_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_CON ...@@ -1808,7 +1868,7 @@ SA_S32 SA_INNER_MEDIA_VIDEO_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_VIDEO_CON
return s32Ret; return s32Ret;
} }
if (g_stSnsSize.u32Width > 2592) { if (g_stViPipeSize.u32Width > 2592) {
if (SA_MEDIA_SNS_MODE_HDR == pstSceneConfig->enSensorMode) { if (SA_MEDIA_SNS_MODE_HDR == pstSceneConfig->enSensorMode) {
enNormalMode = SA_SYS_WORKMODE_NORMAL_4K_HDR; enNormalMode = SA_SYS_WORKMODE_NORMAL_4K_HDR;
} else { } else {
...@@ -1830,11 +1890,7 @@ SA_S32 SA_INNER_MEDIA_VIDEO_Start(SA_MEDIA_ATTR_S *pstMediaAttr) ...@@ -1830,11 +1890,7 @@ SA_S32 SA_INNER_MEDIA_VIDEO_Start(SA_MEDIA_ATTR_S *pstMediaAttr)
HAPI_MEDIA_CHECK_PTR(pstMediaAttr); HAPI_MEDIA_CHECK_PTR(pstMediaAttr);
SA_S32 s32Ret = SA_SUCCESS; SA_S32 s32Ret = SA_SUCCESS;
VENC_WORK_MODE_INFO *pstInfo = &pstMediaAttr->stVenc.stVencInfo; // VENC_WORK_MODE_INFO *pstInfo = &pstMediaAttr->stVenc.stVencInfo;
for (int i = 0; i < 4; i++) {
printf("wh:%d,%d,fps:%d\n",pstInfo->stJpeg[i].u32PicWidth,pstInfo->stJpeg[i].u32PicHeight,pstInfo->stJpeg[i].u8FrameRate);
}
s32Ret = SA_MAPI_VENC_SetWorkMode(&pstMediaAttr->stVenc.stVencInfo); s32Ret = SA_MAPI_VENC_SetWorkMode(&pstMediaAttr->stVenc.stVencInfo);
if (SA_SUCCESS != s32Ret) { if (SA_SUCCESS != s32Ret) {
HAPI_MEDIA_LOG_E("SA_MAPI_VENC_SetWorkMode failed with %#x!\n", s32Ret); HAPI_MEDIA_LOG_E("SA_MAPI_VENC_SetWorkMode failed with %#x!\n", s32Ret);
......
...@@ -110,4 +110,5 @@ SA_S32 SA_INNER_HAPI_SD_ProcInit(SA_U32 u32IspPipe);//debug ...@@ -110,4 +110,5 @@ SA_S32 SA_INNER_HAPI_SD_ProcInit(SA_U32 u32IspPipe);//debug
SA_S32 SA_INNER_HAPI_SD_ProcDeinit(SA_U32 u32IspPipe);//debug SA_S32 SA_INNER_HAPI_SD_ProcDeinit(SA_U32 u32IspPipe);//debug
SA_S32 SA_INNER_HAPI_SD_FaceDetected(SA_U32 u32IspPipe, SA_U32 u32Detected); SA_S32 SA_INNER_HAPI_SD_FaceDetected(SA_U32 u32IspPipe, SA_U32 u32Detected);
SA_S32 SA_INNER_HAPI_IspSceneIntTimeMax(SA_U32 u32IspPipe, SA_U32 u32IntTimeMax); SA_S32 SA_INNER_HAPI_IspSceneIntTimeMax(SA_U32 u32IspPipe, SA_U32 u32IntTimeMax);
SA_S32 SA_INNER_HAPI_SD_GetSnsInfo(SA_U32 u32IspPipe, SA_U32 u32SnsType, SA_U32 u32SnsId);
#endif #endif
\ No newline at end of file
...@@ -76,6 +76,15 @@ typedef enum saISP_SWITCH_STATE_E ...@@ -76,6 +76,15 @@ typedef enum saISP_SWITCH_STATE_E
ISP_SWITCH_STATE_NUM ISP_SWITCH_STATE_NUM
}ISP_SWITCH_STATE_E; }ISP_SWITCH_STATE_E;
typedef struct inLIB_SYM_OBJ_S
{
SA_U32 u32Type;
SA_VOID *pHandle;
SA_VOID *pObj;
} LIB_SYM_OBJ_S;
static LIB_SYM_OBJ_S g_stSnsObj = {0};
static SA_U32 g_u32SdSnsType[ISP_DEV_MAX] = {0};
static SA_U32 g_u32SdSnsId[ISP_DEV_MAX] = {0};
static SA_U32 g_quickStartDelayCnt = 0; static SA_U32 g_quickStartDelayCnt = 0;
SNS_ISPEXT_OBJ g_stIcrIspExtObj[ISP_DEV_MAX] = {0}; SNS_ISPEXT_OBJ g_stIcrIspExtObj[ISP_DEV_MAX] = {0};
...@@ -2265,6 +2274,10 @@ int Inner_Hapi_IcrInit(int isp_pipe) ...@@ -2265,6 +2274,10 @@ int Inner_Hapi_IcrInit(int isp_pipe)
g_stSdSave[isp_pipe].eIcrModeSave = ICR_DAY_COLOR; g_stSdSave[isp_pipe].eIcrModeSave = ICR_DAY_COLOR;
g_stSdSave[isp_pipe].u16LampStrength[LAMP_IR] = 0; g_stSdSave[isp_pipe].u16LampStrength[LAMP_IR] = 0;
g_stSdSave[isp_pipe].u16LampStrength[LAMP_WL] = 0; g_stSdSave[isp_pipe].u16LampStrength[LAMP_WL] = 0;
g_stIcrIspExtObj[isp_pipe].pfn_sns_ispext_sns_rst = SA_NULL;
g_stIcrIspExtObj[isp_pipe].pfn_sns_ispext_seticr = SA_NULL;
g_stIcrIspExtObj[isp_pipe].pfn_sns_ispext_setlamp = SA_NULL;
return 0; return 0;
} }
...@@ -2743,6 +2756,126 @@ int Inner_Hapi_ICRDbgLog(int isp_pipe, SA_BOOL enable) ...@@ -2743,6 +2756,126 @@ int Inner_Hapi_ICRDbgLog(int isp_pipe, SA_BOOL enable)
return 0; return 0;
} }
SA_VOID* Inner_Hapi_SNS_OpenObj(SA_VIDEO_SNS_TYPE_E enSnsType)
{
// SA_U32 u32SnsIdx = 0;
LIB_SYM_OBJ_S *pstSnsObj = SA_NULL;
pstSnsObj = &g_stSnsObj;
//new
if (SA_NULL == pstSnsObj->pHandle) {
pstSnsObj->u32Type = enSnsType;
#ifdef HAPI_SA6920
if (SA_VIDEO_SNS_TYPE_4D10 == enSnsType) {
pstSnsObj->pObj = SA_HAPI_COMM_Load_LibSym("libsns_os04d10_soc30.so", "g_stSnsOs04d10Obj", &pstSnsObj->pHandle);
} else if (SA_VIDEO_SNS_TYPE_4A10 == enSnsType) {
pstSnsObj->pObj = SA_HAPI_COMM_Load_LibSym("libsns_os04a10_soc.so", "g_stSnsOs04a10Obj", &pstSnsObj->pHandle);
} else if (SA_VIDEO_SNS_TYPE_2N10 == enSnsType) {
pstSnsObj->pObj = SA_HAPI_COMM_Load_LibSym("libsns_os02n10_soc.so", "g_stSnsOs02n10Obj", &pstSnsObj->pHandle);
} else if (SA_VIDEO_SNS_TYPE_IMX681_JPEG == enSnsType || SA_VIDEO_SNS_TYPE_IMX681_VIDEO == enSnsType) {
pstSnsObj->pObj = SA_HAPI_COMM_Load_LibSym("libsns_imx681_soc.so", "g_stSnsImx681Obj", &pstSnsObj->pHandle);
} else if (SA_VIDEO_SNS_TYPE_SC535 == enSnsType) {
pstSnsObj->pObj = SA_HAPI_COMM_Load_LibSym("libsns_sc535_soc.so", "g_stSnsSc535Obj", &pstSnsObj->pHandle);
} else if (SA_VIDEO_SNS_TYPE_5L10 == enSnsType) {
pstSnsObj->pObj = SA_HAPI_COMM_Load_LibSym("libsns_os05l10_soc.so", "g_stSnsOs05l10Obj", &pstSnsObj->pHandle);
} else if (SA_VIDEO_SNS_TYPE_4J10 == enSnsType) {
pstSnsObj->pObj = SA_HAPI_COMM_Load_LibSym("libsns_os04j10_soc.so", "g_stSnsOs04j10Obj", &pstSnsObj->pHandle);
} else if (SA_VIDEO_SNS_TYPE_4L10 == enSnsType) {
pstSnsObj->pObj = SA_HAPI_COMM_Load_LibSym("libsns_os04l10_soc.so", "g_stSnsOs04l10Obj", &pstSnsObj->pHandle);
} else {
HAPI_LOG_E("invalid sensor type %d!\n", enSnsType);
return SA_NULL;
}
#else
#if defined(SNS_OS04D10)
extern SA_SNS_OBJ g_stSnsOs04d10Obj;
pstSnsObj->pObj = &g_stSnsOs04d10Obj;
#elif defined(SNS_OS04A10)
extern SA_SNS_OBJ g_stSnsOs04a10Obj;
pstSnsObj->pObj = &g_stSnsOs04a10Obj;
#elif defined(SNS_OS02N10)
extern SA_SNS_OBJ g_stSnsOs02n10Obj;
pstSnsObj->pObj = &g_stSnsOs02n10Obj;
#endif
#endif
return pstSnsObj->pObj;
} else {
//already exists.
if (enSnsType == pstSnsObj->u32Type) {
return pstSnsObj->pObj;
}
}
return SA_NULL;
}
SA_S32 Inner_Hapi_SNS_CloseObj(SA_VIDEO_SNS_TYPE_E enSnsType)
{
#ifdef HAPI_SA6920
// SA_U32 u32SnsIdx = 0;
LIB_SYM_OBJ_S *pstSnsObj = SA_NULL;
pstSnsObj = &g_stSnsObj;
if (SA_NULL != pstSnsObj->pHandle && enSnsType == pstSnsObj->u32Type) {
SA_HAPI_COMM_Close_LibSym(pstSnsObj->pHandle);
pstSnsObj->pHandle = SA_NULL;
pstSnsObj->pObj = SA_NULL;
return SA_SUCCESS;
}
return SA_FAILURE;
#else
(void)enSnsType;
return SA_SUCCESS;
#endif
}
int Inner_Hapi_CloseLamp(int isp_pipe)
{
SA_S32 s32Ret = SA_SUCCESS;
SA_SNS_ITEM SnsItem = {0};
//load sensor lib.
SnsItem.pstSnsObj = (SA_SNS_OBJ *)Inner_Hapi_SNS_OpenObj(g_u32SdSnsType[isp_pipe]);
if (SA_NULL == SnsItem.pstSnsObj) {
HAPI_LOG_E("Inner_Hapi_SNS_OpenObj failed with %#x!\n", s32Ret);
return SA_FAILURE;
}
//create sensor.
s32Ret = SA_MAPI_SNS_Create(g_u32SdSnsId[isp_pipe], &SnsItem);
if (SA_SUCCESS != s32Ret) {
HAPI_LOG_E("SA_MAPI_SNS_Create failed with %#x!\n", s32Ret);
return s32Ret;
}
if(SA_SUCCESS == SA_MAPI_SNS_GetSnsObj(isp_pipe*2, &SnsItem)) {
g_stIcrIspExtObj[isp_pipe].pfn_sns_ispext_setlamp = SnsItem.pstSnsObj->pstIspExtObj->pfn_sns_ispext_setlamp;
}
g_led_frqs[isp_pipe][LAMP_IR] = 1;
g_led_frqs[isp_pipe][LAMP_WL] = 1;
isp_led_ctrl(isp_pipe, LAMP_IR, 0);
isp_led_ctrl(isp_pipe, LAMP_WL, 0);
s32Ret = SA_MAPI_SNS_Destroy(g_u32SdSnsId[isp_pipe]);
if (SA_SUCCESS != s32Ret) {
HAPI_LOG_E("SA_MAPI_SNS_Destroy failed with %#x!\n", s32Ret);
return s32Ret;
}
#ifdef HAPI_SA6920
s32Ret = Inner_Hapi_SNS_CloseObj(g_u32SdSnsType[isp_pipe]);
if (SA_SUCCESS != s32Ret) {
HAPI_LOG_E("Inner_Hapi_SNS_CloseObj failed with %#x!\n", s32Ret);
return s32Ret;
}
#endif
return 0;
}
static void Inner_Hapi_SD_Thread(void* arg) static void Inner_Hapi_SD_Thread(void* arg)
{ {
SA_U32 i = 0; SA_U32 i = 0;
...@@ -2817,6 +2950,14 @@ SA_S32 SA_INNER_HAPI_SD_HoldThread(SA_U32 u32IspPipe, SA_BOOL bHold) ...@@ -2817,6 +2950,14 @@ SA_S32 SA_INNER_HAPI_SD_HoldThread(SA_U32 u32IspPipe, SA_BOOL bHold)
return 0; return 0;
} }
SA_S32 SA_INNER_HAPI_SD_GetSnsInfo(SA_U32 u32IspPipe, SA_U32 u32SnsType, SA_U32 u32SnsId)
{
g_u32SdSnsType[u32IspPipe] = u32SnsType;
g_u32SdSnsId[u32IspPipe] = u32SnsId;
return 0;
}
static void Inner_Hapi_SD_ThreadInit(int isp_pipe) static void Inner_Hapi_SD_ThreadInit(int isp_pipe)
{ {
s_dev[isp_pipe] = isp_pipe; s_dev[isp_pipe] = isp_pipe;
...@@ -3052,6 +3193,7 @@ SA_S32 SA_HAPI_VIDEO_IspSceneStop(SA_U32 u32IspPipe) ...@@ -3052,6 +3193,7 @@ SA_S32 SA_HAPI_VIDEO_IspSceneStop(SA_U32 u32IspPipe)
{ {
HAPI_ISPSCENE_CHECK_ISPPIPE(u32IspPipe); HAPI_ISPSCENE_CHECK_ISPPIPE(u32IspPipe);
Inner_Hapi_ISPScene_DestroyThread(u32IspPipe); Inner_Hapi_ISPScene_DestroyThread(u32IspPipe);
Inner_Hapi_CloseLamp(u32IspPipe);
return SA_SUCCESS; return SA_SUCCESS;
} }
......
...@@ -1106,8 +1106,13 @@ SA_S32 SA_INNER_HAPI_VIN_Create(SA_VIDEO_VIN_ATTR_S *pstVinAttr) ...@@ -1106,8 +1106,13 @@ SA_S32 SA_INNER_HAPI_VIN_Create(SA_VIDEO_VIN_ATTR_S *pstVinAttr)
if (SA_SUCCESS != s32Ret) { if (SA_SUCCESS != s32Ret) {
HAPI_LOG_E("SA_INNER_HAPI_SD_HoldThread failed with %#x!\n", s32Ret); HAPI_LOG_E("SA_INNER_HAPI_SD_HoldThread failed with %#x!\n", s32Ret);
return s32Ret; return s32Ret;
} }
s32Ret = SA_INNER_HAPI_SD_GetSnsInfo(pstVinChnAttr->stIspAttr.u32IspDevId,pstVinChnAttr->stSensorAttr.eSnsType,pstVinChnAttr->stSensorAttr.u32SensorId);
if (SA_SUCCESS != s32Ret) {
HAPI_LOG_E("SA_INNER_HAPI_SD_GetSnsInfo failed with %#x!\n", s32Ret);
return s32Ret;
}
//start Proc Thread. //start Proc Thread.
s32Ret = SA_INNER_HAPI_SD_ProcInit(pstVinChnAttr->stIspAttr.u32IspDevId); s32Ret = SA_INNER_HAPI_SD_ProcInit(pstVinChnAttr->stIspAttr.u32IspDevId);
if (SA_SUCCESS != s32Ret) { if (SA_SUCCESS != s32Ret) {
......
...@@ -34,6 +34,7 @@ SNS_SUPPORT_OS04L10_SOC := y ...@@ -34,6 +34,7 @@ SNS_SUPPORT_OS04L10_SOC := y
SNS_SUPPORT_IMX681_SOC := y SNS_SUPPORT_IMX681_SOC := y
SNS_SUPPORT_OS08D10_SOC := y SNS_SUPPORT_OS08D10_SOC := y
SNS_SUPPORT_SC465SL_SOC := y SNS_SUPPORT_SC465SL_SOC := y
SNS_SUPPORT_OS05L10_SOC := y
LDFLAGS := -shared -fpic LDFLAGS := -shared -fpic
ARFLAGS := -rc ARFLAGS := -rc
...@@ -297,6 +298,20 @@ LIB_SC465SL_SOC_CLEAN: ...@@ -297,6 +298,20 @@ LIB_SC465SL_SOC_CLEAN:
@rm -rf $(OBJ_SC465SL_SOC) $(DIR_LIB)/libsns_sc465sl_soc.so @rm -rf $(OBJ_SC465SL_SOC) $(DIR_LIB)/libsns_sc465sl_soc.so
endif endif
ifeq ("$(SNS_SUPPORT_OS05L10_SOC)","y")
CFLAGS += -DSNS_OS05L10
SRC_OS05L10_SOC := $(wildcard $(src)/os05l10_soc/*.c)
SRC_OS05L10_SOC += $(wildcard $(src)/os05l10_soc/driver/*.c)
JSON_SOC += $(src)/os05l10_soc/user_os05l10.json
TARGET_MAKE += LIB_OS05L10_SOC
TARGET_CLEAN += LIB_OS05L10_SOC_CLEAN
OBJ_OS05L10_SOC := $(patsubst %.c, %.o, ${SRC_OS05L10_SOC})
LIB_OS05L10_SOC:$(OBJ_OS05L10_SOC)
$(LD) $(LDFLAGS) -o $(DIR_LIB)/libsns_os05l10_soc.so $(OBJ_OS05L10_SOC)
LIB_OS05L10_SOC_CLEAN:
@rm -rf $(OBJ_OS05L10_SOC) $(DIR_LIB)/libsns_os05l10_soc.so
endif
all_sensor:$(TARGET_MAKE) all_sensor:$(TARGET_MAKE)
ifneq ($(MAPI_OPEN_MODULE_CONF_DIR), $(wildcard $(MAPI_OPEN_MODULE_CONF_DIR))) ifneq ($(MAPI_OPEN_MODULE_CONF_DIR), $(wildcard $(MAPI_OPEN_MODULE_CONF_DIR)))
mkdir -p $(MAPI_OPEN_MODULE_CONF_DIR) mkdir -p $(MAPI_OPEN_MODULE_CONF_DIR)
......
...@@ -178,11 +178,12 @@ static SA_MEDIA_CONFIG_S g_stMediaCfg = { ...@@ -178,11 +178,12 @@ static SA_MEDIA_CONFIG_S g_stMediaCfg = {
}, },
}, },
.astrIspFile = { .astrIspFile = {
"/acme/conf/681/imx681_capture_Color_Outdoor.bin", "/acme/conf/681/imx681_video_Color_Outdoor.bin",
"/acme/conf/681/imx681_capture_Color_Outdoor_diff.bin", "/acme/conf/681/imx681_video_Color_Outdoor_diff.bin",
"/acme/conf/681/imx681_capture_Color_Indoor_diff.bin", "/acme/conf/681/imx681_video_Color_Indoor_diff.bin",
"/acme/conf/681/imx681_capture_Color_Outdoor_diff.bin", "/acme/conf/681/imx681_video_Color_Outdoor_diff.bin",
"/acme/conf/681/imx681_capture_Color_Blc_diff.bin" "","","","","",
"/acme/conf/681/imx681_video_Color_Blc_diff.bin"
}, },
.astrAinrFile = {"/acme/conf/681/imx681_v01_001_800_rtl.bin",}, .astrAinrFile = {"/acme/conf/681/imx681_v01_001_800_rtl.bin",},
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment