diff --git a/cplusplus/level1_single_api/6_media/1_camera/camera_sample/sensor_sample/sensor_management.c b/cplusplus/level1_single_api/6_media/1_camera/camera_sample/sensor_sample/sensor_management.c index 959d80cc64d49c35aedf1e5d6e8b2474ead85474..a0a4df25636af0b223288199a46b552ff51818c2 100644 --- a/cplusplus/level1_single_api/6_media/1_camera/camera_sample/sensor_sample/sensor_management.c +++ b/cplusplus/level1_single_api/6_media/1_camera/camera_sample/sensor_sample/sensor_management.c @@ -47,6 +47,10 @@ hi_s32 Sample_Comm_Vi_GetComboAttrBySns(SAMPLE_SNS_TYPE_E enSnsType, combo_dev_t pstComboAttr->devno = MipiDev; ret = Sample_Set_Mipi_2lane(MipiDev, pstComboAttr); break; + case SONY_IMX477_MIPI_1920x1080_10BIT_DOL4_15FPS: + memcpy(pstComboAttr, &MIPI_4lane_CHN0_SENSOR_IMX477_12BIT_1920x1080_NOWDR_ATTR, sizeof(combo_dev_attr_t)); + ret = HI_SUCCESS; + break; default: printf("Function %s() Error. Undefined sensor type: %#x\n", __FUNCTION__, enSnsType); return HI_FAILURE; @@ -61,6 +65,7 @@ hi_s32 Sample_Comm_Vi_GetSnsRstSourceBySns(SAMPLE_SNS_TYPE_E enSnsType, combo_de case SONY_IMX219_MIPI_1920x1080_10BIT_NORMAL: case SONY_IMX219_MIPI_1920x1080_10BIT_30FPS_NORMAL: case SONY_IMX477_MIPI_1920x1080_10BIT_DOL2_15FPS: + case SONY_IMX477_MIPI_1920x1080_10BIT_DOL4_15FPS: if (MipiDev == 0 || MipiDev == 1) { *sns_reset_port = 0; } @@ -82,6 +87,7 @@ hi_s32 Sample_Comm_Vi_GetSnsClkCfgBySns(SAMPLE_SNS_TYPE_E enSnsType, combo_dev_t case SONY_IMX219_MIPI_1920x1080_10BIT_NORMAL: case SONY_IMX219_MIPI_1920x1080_10BIT_30FPS_NORMAL: case SONY_IMX477_MIPI_1920x1080_10BIT_DOL2_15FPS: + case SONY_IMX477_MIPI_1920x1080_10BIT_DOL4_15FPS: memcpy(sns_clk_cfg, &g_mipi_sns_clk_cfg_attr, sizeof(sns_clk_cfg_t)); break; default: @@ -105,6 +111,7 @@ hi_s32 Sample_Comm_Isp_GetIspAttrBySns(SAMPLE_SNS_TYPE_E enSnsType, hi_isp_pub_a memcpy(pstPubAttr, &ISP_PUB_ATTR_IMX219_1920x1080_30FPS_raw10, sizeof(hi_isp_pub_attr)); break; case SONY_IMX477_MIPI_1920x1080_10BIT_DOL2_15FPS: + case SONY_IMX477_MIPI_1920x1080_10BIT_DOL4_15FPS: memcpy(pstPubAttr, &ISP_PUB_ATTR_IMX477_1920x1080_10FPS_DOL2_RAW10, sizeof(hi_isp_pub_attr)); break; @@ -128,6 +135,7 @@ hi_s32 Sample_Comm_Vi_GetDevAttrBySns(SAMPLE_SNS_TYPE_E enSnsType, hi_vi_dev_att memcpy(pstViDevAttr, &DEV_ATTR_IMX219_1920x1080, sizeof(hi_vi_dev_attr)); break; case SONY_IMX477_MIPI_1920x1080_10BIT_DOL2_15FPS: + case SONY_IMX477_MIPI_1920x1080_10BIT_DOL4_15FPS: memcpy(pstViDevAttr, &DEV_ATTR_IMX477_1920x1080_DOL2, sizeof(hi_vi_dev_attr)); break; @@ -151,6 +159,7 @@ hi_s32 Sample_Comm_Vi_GetPipeAttrBySns(SAMPLE_SNS_TYPE_E enSnsType, hi_vi_pipe_a memcpy(pstPipeAttr, &IMX219_PIPE_ATTR_1920x1080_RAW10_420_3DNR_RFR, sizeof(hi_vi_pipe_attr)); break; case SONY_IMX477_MIPI_1920x1080_10BIT_DOL2_15FPS: + case SONY_IMX477_MIPI_1920x1080_10BIT_DOL4_15FPS: memcpy(pstPipeAttr, &IMX477_PIPE_ATTR_1920x1080_RAW10_420_3DNR_RFR, sizeof(hi_vi_pipe_attr)); break; @@ -173,6 +182,7 @@ hi_s32 Sample_Comm_Vi_GetChnAttrBySns(SAMPLE_SNS_TYPE_E enSnsType, hi_vi_chn_att memcpy(pstChnAttr, &IMX219_CHN_ATTR_1920x1080_420_SDR8_LINEAR, sizeof(hi_vi_chn_attr)); break; case SONY_IMX477_MIPI_1920x1080_10BIT_DOL2_15FPS: + case SONY_IMX477_MIPI_1920x1080_10BIT_DOL4_15FPS: memcpy(pstChnAttr, &IMX477_CHN_ATTR_1920x1080_420_SDR8_LINEAR, sizeof(hi_vi_chn_attr)); break; diff --git a/cplusplus/level1_single_api/6_media/1_camera/camera_sample/sensor_sample/sensor_management.h b/cplusplus/level1_single_api/6_media/1_camera/camera_sample/sensor_sample/sensor_management.h index 1dd0404fdbc95b9cd365b3748d9991b1198fc338..703ffa4ffefad41f420c28f183878713424b3748 100644 --- a/cplusplus/level1_single_api/6_media/1_camera/camera_sample/sensor_sample/sensor_management.h +++ b/cplusplus/level1_single_api/6_media/1_camera/camera_sample/sensor_sample/sensor_management.h @@ -18,6 +18,7 @@ typedef enum HISAMPLE_SNS_TYPE_E SONY_IMX219_MIPI_1920x1080_10BIT_NORMAL = 0x62, SONY_IMX219_MIPI_1920x1080_10BIT_30FPS_NORMAL = 0x64, SONY_IMX477_MIPI_1920x1080_10BIT_DOL2_15FPS = 0x71, + SONY_IMX477_MIPI_1920x1080_10BIT_DOL4_15FPS = 0x73, SAMPLE_SNS_TYPE_BUTT, } SAMPLE_SNS_TYPE_E; diff --git a/cplusplus/level1_single_api/6_media/1_camera/camera_sample/vi_with_sensor.c b/cplusplus/level1_single_api/6_media/1_camera/camera_sample/vi_with_sensor.c index 33a4d7be0c81d6c2fd3fe6a81e94d7ff51345098..f785d059e637b381f67f70866c27cac1e893685c 100644 --- a/cplusplus/level1_single_api/6_media/1_camera/camera_sample/vi_with_sensor.c +++ b/cplusplus/level1_single_api/6_media/1_camera/camera_sample/vi_with_sensor.c @@ -205,7 +205,7 @@ hi_s32 start_camera(hi_u32 index, case_info sensor_info) if (sensor_info.sensor_type == 1) { sensor_type = SONY_IMX219_MIPI_1920x1080_10BIT_30FPS_NORMAL; } else if (sensor_info.sensor_type == 2) { - sensor_type = SONY_IMX477_MIPI_1920x1080_10BIT_DOL2_15FPS; + sensor_type = SONY_IMX477_MIPI_1920x1080_10BIT_DOL4_15FPS; } else { goto sys_init_failed; } @@ -272,6 +272,7 @@ hi_s32 get_sample_vi_info_by_sensorType(const SAMPLE_SNS_TYPE_E sensor_type, pipe_mult_sensor[dev_id] = dev_id; break; case SONY_IMX477_MIPI_1920x1080_10BIT_DOL2_15FPS: + case SONY_IMX477_MIPI_1920x1080_10BIT_DOL4_15FPS: memcpy(sample_vi_info, &sample_vi_info_linear, sizeof(SAMPLE_VI_INFO_S)); sample_vi_info->stSnsInfo.enSnsType = sensor_type; sample_vi_info->stSnsInfo.s32BusId = 0 + dev_id * 2;