Commit c1f9a37a authored by luo's avatar luo

[UPDATE]SDK 2.5.0.5.1.1

parent f69b600b
......@@ -25,7 +25,7 @@
};
chosen {
bootargs = "console=ttyS1,115200 mem=96M quiet";
bootargs = "console=ttyS1,115200 mem=64M quiet";
stdout-path = "serial1:115200n8";
};
......
......@@ -58,6 +58,10 @@ static const struct flash_info gigadevice_parts[] = {
SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
SPI_NOR_4B_OPCODES | SPI_NOR_HAS_LOCK |
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,
SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
SPI_NOR_4B_OPCODES | SPI_NOR_HAS_LOCK |
......
......@@ -72,6 +72,7 @@ typedef enum{
E_CUR_SYS_MODE_AOR = 0x1,
E_CUR_SYS_MODE_DEEPSLEEP = 0x2,
E_CUR_SYS_MODE_RESET = 0x3,
E_CUR_SYS_MODE_RESET_KEY_RELEASE = 0x4,
E_CUR_SYS_MODE_INVALID = 0xF,
}E_CUR_WORK_MODE;
......@@ -80,6 +81,7 @@ typedef enum{
E_WAKEUP_SRC_WIFI = 0x21,
E_WAKEUP_SRC_LOW_BAT = 0x22,// Low battery alarm
E_WAKEUP_SRC_RESET_KEY = 0x23,
E_WAKEUP_SRC_RESET_KEY_RELEASE = 0x24,
E_WAKEUP_SRC_INVALID = 0xFF,
}E_WAKEUP_SRC;
......@@ -159,6 +161,8 @@ static int feed_dog_thread_fn(void *data) {
case CMD_TYPE_GET_WORK_MODE_INFO_ACK: {
if (cmd_data.flag == E_WAKEUP_SRC_RESET_KEY) {
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 {
g_cur_work_mode = E_CUR_SYS_MODE_NORMAL;
}
......
......@@ -19,12 +19,29 @@
#include "rpmsg_rpc_app.h"
#define BUTTON_PIN GPIO_PORT_A_PIN_4 // GPIO_A4 引脚
#define LONG_PRESS_TIME 3000 // 长按时间阈值,单位为毫秒
#define LONG_PRESS_TIME 1000 // 长按时间阈值,单位为毫秒
#define DEBOUNCE_TIME 20 // 消抖时间,单位为毫秒
static struct rt_timer debounce_timer;
static struct rt_timer long_press_timer;
static rt_uint32_t press_start_time;
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)
{
......@@ -34,8 +51,7 @@ static void debounce_timer_timeout(void *param)
// rt_kprintf("%s %d, level = %d\r\n",__func__,__LINE__, level);
if (!level && !key_pressed) {
key_pressed = RT_TRUE;
press_start_time = rt_tick_get();
rt_kprintf("%s %d, key_pressed = %d\r\n",__func__,__LINE__, key_pressed);
rt_timer_start(&long_press_timer);
}
}
......@@ -49,19 +65,9 @@ static void button_irq_handler(void *args)
rt_timer_start(&debounce_timer);
} else if (level && key_pressed) {
key_pressed = RT_FALSE;
rt_uint32_t press_duration = rt_tick_get() - press_start_time;
if (press_duration >= rt_tick_from_millisecond(LONG_PRESS_TIME))
{
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__);
}
rt_timer_stop(&debounce_timer);
rt_timer_stop(&long_press_timer);
rpmsg_rpc_app_send_button_event(E_RPC_EVENT_SRC_RESET_KEY_RELEASE);
}
}
......@@ -74,6 +80,13 @@ int button_init(void)
DEBOUNCE_TIME,
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_PULLUP);
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)
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;
}
......@@ -175,7 +175,10 @@ static void process_command(command_t *cmd) {
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;
reset_key_flag = 0;
}
......
......@@ -6,6 +6,7 @@ typedef enum{
E_CUR_SYS_MODE_AOR = 0x1,
E_CUR_SYS_MODE_DEEPSLEEP = 0x2,
E_CUR_SYS_MODE_RESET = 0x3,
E_CUR_SYS_MODE_RESET_KEY_RELEASE = 0x4,
E_CUR_SYS_MODE_INVALID = 0xF,
}E_CUR_WORK_MODE;
......@@ -14,6 +15,7 @@ typedef enum{
E_WAKEUP_SRC_WIFI = 0x21,
E_WAKEUP_SRC_LOW_BAT = 0x22,// Low battery alarm
E_WAKEUP_SRC_RESET_KEY = 0x23,
E_WAKEUP_SRC_RESET_KEY_RELEASE = 0x24,
E_WAKEUP_SRC_INVALID = 0xFF,
}E_WAKEUP_SRC;
......@@ -21,6 +23,7 @@ typedef enum{
E_RPC_EVENT_SRC_HEAD = 0x0,
E_RPC_EVENT_SRC_REBOOT,
E_RPC_EVENT_SRC_RESET,
E_RPC_EVENT_SRC_RESET_KEY_RELEASE,
}E_RPC_EVENT_SRC;
void rpmsg_rpc_app_reboot(void);
......
This diff is collapsed.
This diff is collapsed.
......@@ -3,7 +3,7 @@
# Function to handle copying based on the input parameter
copy_files() {
local type=$1
if [ "$type" == "emmc" ] || [ -z "$type" ]; then
if [ "$type" == "emmc" ] || [ "$type" == "qa" ] || [ -z "$type" ]; then
echo "Copying EMMC files..."
mkdir -p 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() {
cp common/bin/lite_imx681* system_temp/bin/
cp common/script/load_glasses_all.sh system_temp/scripts/
cp sdk/lib/modules/isp_all.ko system_temp/lib/modules/
cp sdk/bin/sample_hapi_media system_temp/bin/
fi
if [ "$type" == "emmc" ];then
mkdir system_temp/conf/681/ -p
cp common/conf/681/* system_temp/conf/681/
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
}
......@@ -256,6 +296,7 @@ copy_files "$1"
# cp sdk/bin/streamerlite 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/transfer system_temp/bin/
# Get new streamerlite
cd sdk/sample/source/
......@@ -266,8 +307,13 @@ copy_files "$1"
make clean
make
cd -
cd sdk/sample/source/sample_hapi_media/
make clean
make
cd -
git checkout sdk/sample/source/mkconfig
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/usr/* system_temp/usr/ -rf
......@@ -332,7 +378,7 @@ if [ "$1" != "emmc" ] || [ -z "$1" ]; then
fi
# 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
old_ld_library_path=$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=./third_party/common/lib:$LD_LIBRARY_PATH
......
......@@ -120,6 +120,7 @@ typedef enum {
SA_MEDIA_SD_WDR_OUTDOOR,
SA_MEDIA_SD_WDR_INDOOR,
SA_MEDIA_SD_WDR_NIGHT,
SA_MEDIA_SD_BACKLIGHT,
SA_MEDIA_SD_TYPE_NUM,
} SA_MEDIA_SD_TYPE_E;
......@@ -182,15 +183,16 @@ typedef struct {
} SA_MEDIA_SD_CONFIG_S;
typedef enum {
SA_MEDIA_ISP_BIN_PATH_BASE = 0,
SA_MEDIA_ISP_BIN_PATH_COLOR_OUTDOOR = 1,
SA_MEDIA_ISP_BIN_PATH_COLOR_INDOOR = 2,
SA_MEDIA_ISP_BIN_PATH_COLOR_AISP = 3,
SA_MEDIA_ISP_BIN_PATH_DN_NIGHT = 4,
SA_MEDIA_ISP_BIN_PATH_COLOR_LAMP = 5,
SA_MEDIA_ISP_BIN_PATH_WDR_OUTDOOR = 6,
SA_MEDIA_ISP_BIN_PATH_WDR_INDOOR = 7,
SA_MEDIA_ISP_BIN_PATH_WDR_NIGHT = 8,
SA_MEDIA_ISP_BIN_PATH_BASE = 0,
SA_MEDIA_ISP_BIN_PATH_COLOR_OUTDOOR = 1,
SA_MEDIA_ISP_BIN_PATH_COLOR_INDOOR = 2,
SA_MEDIA_ISP_BIN_PATH_COLOR_AISP = 3,
SA_MEDIA_ISP_BIN_PATH_DN_NIGHT = 4,
SA_MEDIA_ISP_BIN_PATH_COLOR_LAMP = 5,
SA_MEDIA_ISP_BIN_PATH_WDR_OUTDOOR = 6,
SA_MEDIA_ISP_BIN_PATH_WDR_INDOOR = 7,
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_E;
......@@ -451,6 +453,7 @@ typedef struct {
SA_S32 s32IndoorMaxCloudyThresh;
SA_S32 s32B2dLowThresh;
SA_U16 u16TFrame;
SA_U8 u8InitCount;
SA_U8 u8InitScene;
SA_F32 f32InitSceneBlend;
SA_U8 u8InitSceneCoarse;
......@@ -462,7 +465,11 @@ typedef struct {
SA_U32 u32EvDiffThr;
SA_U32 u32DrDiffThr;
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;
typedef struct {
......@@ -557,16 +564,6 @@ typedef struct {
};
} 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
{
SA_U8 *pucData;
......@@ -581,7 +578,6 @@ typedef struct saHEIF_FRAME_INFO_S
SA_U32 u32DataLen;
} 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_Start(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,
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_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__
#define HAPI_MEDIA_MALLOC malloc
......
......@@ -120,6 +120,7 @@ typedef enum {
SA_MEDIA_SD_WDR_OUTDOOR,
SA_MEDIA_SD_WDR_INDOOR,
SA_MEDIA_SD_WDR_NIGHT,
SA_MEDIA_SD_BACKLIGHT,
SA_MEDIA_SD_TYPE_NUM,
} SA_MEDIA_SD_TYPE_E;
......@@ -182,15 +183,16 @@ typedef struct {
} SA_MEDIA_SD_CONFIG_S;
typedef enum {
SA_MEDIA_ISP_BIN_PATH_BASE = 0,
SA_MEDIA_ISP_BIN_PATH_COLOR_OUTDOOR = 1,
SA_MEDIA_ISP_BIN_PATH_COLOR_INDOOR = 2,
SA_MEDIA_ISP_BIN_PATH_COLOR_AISP = 3,
SA_MEDIA_ISP_BIN_PATH_DN_NIGHT = 4,
SA_MEDIA_ISP_BIN_PATH_COLOR_LAMP = 5,
SA_MEDIA_ISP_BIN_PATH_WDR_OUTDOOR = 6,
SA_MEDIA_ISP_BIN_PATH_WDR_INDOOR = 7,
SA_MEDIA_ISP_BIN_PATH_WDR_NIGHT = 8,
SA_MEDIA_ISP_BIN_PATH_BASE = 0,
SA_MEDIA_ISP_BIN_PATH_COLOR_OUTDOOR = 1,
SA_MEDIA_ISP_BIN_PATH_COLOR_INDOOR = 2,
SA_MEDIA_ISP_BIN_PATH_COLOR_AISP = 3,
SA_MEDIA_ISP_BIN_PATH_DN_NIGHT = 4,
SA_MEDIA_ISP_BIN_PATH_COLOR_LAMP = 5,
SA_MEDIA_ISP_BIN_PATH_WDR_OUTDOOR = 6,
SA_MEDIA_ISP_BIN_PATH_WDR_INDOOR = 7,
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_E;
......@@ -451,6 +453,7 @@ typedef struct {
SA_S32 s32IndoorMaxCloudyThresh;
SA_S32 s32B2dLowThresh;
SA_U16 u16TFrame;
SA_U8 u8InitCount;
SA_U8 u8InitScene;
SA_F32 f32InitSceneBlend;
SA_U8 u8InitSceneCoarse;
......@@ -462,7 +465,11 @@ typedef struct {
SA_U32 u32EvDiffThr;
SA_U32 u32DrDiffThr;
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;
typedef struct {
......@@ -557,16 +564,6 @@ typedef struct {
};
} 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
{
SA_U8 *pucData;
......@@ -581,7 +578,6 @@ typedef struct saHEIF_FRAME_INFO_S
SA_U32 u32DataLen;
} 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_Start(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,
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_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__
#define HAPI_MEDIA_MALLOC malloc
......
......@@ -507,8 +507,8 @@ static SA_S32 INNER_MEDIA_GetExpStatus(SA_BOOL *pbStable)
// static SA_U16 u16LastEV = 1;
SA_U16 u16CurrEV = stExpInfo.s32CurrEffY;
SA_U16 u16TargetEV = stExpInfo.u16CurrAeTarget;
SA_S32 s32ToleranceLower = stExpInfo.as32CurrAeTolerance[AE_TOLERANCE_LOWER]*2;
SA_S32 s32ToleranceUpper = stExpInfo.as32CurrAeTolerance[AE_TOLERANCE_UPPER]*2;
SA_S32 s32ToleranceLower = stExpInfo.as32CurrAeTolerance[AE_TOLERANCE_LOWER]*3;
SA_S32 s32ToleranceUpper = stExpInfo.as32CurrAeTolerance[AE_TOLERANCE_UPPER]*3;
SA_BOOL bExposureIsMax = stExpInfo.u8ExposureIsMax;
if (u16CurrEV - u16TargetEV > 1) {
......@@ -1002,20 +1002,6 @@ SA_S32 SA_HAPI_MEDIA_ReleaseAudioStream(SA_MEDIA_AUDIO_STREAM_S *pstStream)
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
#if __cplusplus
}
......
......@@ -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_FaceDetected(SA_U32 u32IspPipe, SA_U32 u32Detected);
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
\ No newline at end of file
......@@ -76,6 +76,15 @@ typedef enum saISP_SWITCH_STATE_E
ISP_SWITCH_STATE_NUM
}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;
SNS_ISPEXT_OBJ g_stIcrIspExtObj[ISP_DEV_MAX] = {0};
......@@ -2265,6 +2274,10 @@ int Inner_Hapi_IcrInit(int isp_pipe)
g_stSdSave[isp_pipe].eIcrModeSave = ICR_DAY_COLOR;
g_stSdSave[isp_pipe].u16LampStrength[LAMP_IR] = 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;
}
......@@ -2743,6 +2756,126 @@ int Inner_Hapi_ICRDbgLog(int isp_pipe, SA_BOOL enable)
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)
{
SA_U32 i = 0;
......@@ -2817,6 +2950,14 @@ SA_S32 SA_INNER_HAPI_SD_HoldThread(SA_U32 u32IspPipe, SA_BOOL bHold)
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)
{
s_dev[isp_pipe] = isp_pipe;
......@@ -3052,6 +3193,7 @@ SA_S32 SA_HAPI_VIDEO_IspSceneStop(SA_U32 u32IspPipe)
{
HAPI_ISPSCENE_CHECK_ISPPIPE(u32IspPipe);
Inner_Hapi_ISPScene_DestroyThread(u32IspPipe);
Inner_Hapi_CloseLamp(u32IspPipe);
return SA_SUCCESS;
}
......
......@@ -1106,8 +1106,13 @@ SA_S32 SA_INNER_HAPI_VIN_Create(SA_VIDEO_VIN_ATTR_S *pstVinAttr)
if (SA_SUCCESS != s32Ret) {
HAPI_LOG_E("SA_INNER_HAPI_SD_HoldThread failed with %#x!\n", 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.
s32Ret = SA_INNER_HAPI_SD_ProcInit(pstVinChnAttr->stIspAttr.u32IspDevId);
if (SA_SUCCESS != s32Ret) {
......
......@@ -34,6 +34,7 @@ SNS_SUPPORT_OS04L10_SOC := y
SNS_SUPPORT_IMX681_SOC := y
SNS_SUPPORT_OS08D10_SOC := y
SNS_SUPPORT_SC465SL_SOC := y
SNS_SUPPORT_OS05L10_SOC := y
LDFLAGS := -shared -fpic
ARFLAGS := -rc
......@@ -297,6 +298,20 @@ LIB_SC465SL_SOC_CLEAN:
@rm -rf $(OBJ_SC465SL_SOC) $(DIR_LIB)/libsns_sc465sl_soc.so
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)
ifneq ($(MAPI_OPEN_MODULE_CONF_DIR), $(wildcard $(MAPI_OPEN_MODULE_CONF_DIR)))
mkdir -p $(MAPI_OPEN_MODULE_CONF_DIR)
......
......@@ -178,11 +178,12 @@ static SA_MEDIA_CONFIG_S g_stMediaCfg = {
},
},
.astrIspFile = {
"/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"
"/acme/conf/681/imx681_video_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_Outdoor_diff.bin",
"","","","","",
"/acme/conf/681/imx681_video_Color_Blc_diff.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