/***************************************************************************** * function : star vi dev (cfg vi_dev_attr; set_dev_cfg; enable dev) *****************************************************************************/ HI_S32 SAMPLE_COMM_VI_StartDev(VI_DEV ViDev, SAMPLE_VI_MODE_E enViMode) { HI_S32 s32Ret; VI_DEV_ATTR_S stViDevAttr; memset(&stViDevAttr, 0, sizeof(stViDevAttr)); switch (enViMode) { case SAMPLE_VI_MODE_1_D1: memcpy(&stViDevAttr, &DEV_ATTR_BT656D1_1MUX, sizeof(stViDevAttr)); break; case APTINA_AR0130_DC_720P_30FPS: case SONY_ICX692_DC_720P_30FPS: case SONY_IMX104_DC_720P_30FPS: case APTINA_9M034_DC_720P_30FPS: memcpy(&stViDevAttr, &DEV_ATTR_AR0130_DC_720P, sizeof(stViDevAttr)); break; case OMNI_OV9712_DC_720P_30FPS: memcpy(&stViDevAttr, &DEV_ATTR_OV9712_DC_720P, sizeof(stViDevAttr)); break; case SONY_IMX122_DC_1080P_30FPS: memcpy(&stViDevAttr, &DEV_ATTR_IMX122_DC_1080P, sizeof(stViDevAttr)); break; default: memcpy(&stViDevAttr, &DEV_ATTR_AR0130_DC_720P, sizeof(stViDevAttr)); } s32Ret = HI_MPI_VI_SetDevAttr(ViDev, &stViDevAttr); if (s32Ret != HI_SUCCESS) { SAMPLE_PRT("HI_MPI_VI_SetDevAttr failed with %#x!\n", s32Ret); return HI_FAILURE; } s32Ret = HI_MPI_VI_EnableDev(ViDev); if (s32Ret != HI_SUCCESS) { SAMPLE_PRT("HI_MPI_VI_EnableDev failed with %#x!\n", s32Ret); return HI_FAILURE; } return HI_SUCCESS; }
/***************************************************************************** * function : star vi dev *****************************************************************************/ static HI_S32 s32ViStartDev(VI_ATTR_S * pstViAttr) { HI_S32 s32Ret; VI_DEV ViDev; VI_DEV_ATTR_S * pstViDevAttr; if (NULL == pstViAttr) { printf("Func %s() Line[%d], parament is null\n", __FUNCTION__, __LINE__); return HI_FAILURE; } ViDev = pstViAttr->ViDev; pstViDevAttr = pstViAttr->pstViDevAttr; s32Ret = HI_MPI_VI_SetDevAttr(ViDev, pstViDevAttr); if (s32Ret != HI_SUCCESS) { printf("HI_MPI_VI_SetDevAttr failed with %#x!\n", s32Ret); return HI_FAILURE; } VI_WDR_ATTR_S stWdrAttr; stWdrAttr.enWDRMode = pstViAttr ->enWDRMode; stWdrAttr.bCompress = HI_FALSE; s32Ret = HI_MPI_VI_SetWDRAttr(ViDev, &stWdrAttr); if (s32Ret) { printf("HI_MPI_VI_SetWDRAttr failed with %#x!\n", s32Ret); return HI_FAILURE; } s32Ret = HI_MPI_VI_EnableDev(ViDev); if (s32Ret != HI_SUCCESS) { printf("HI_MPI_VI_EnableDev failed with %#x!\n", s32Ret); return HI_FAILURE; } return HI_SUCCESS; }
/***************************************************************************** * function : star vi dev (cfg vi_dev_attr; set_dev_cfg; enable dev) *****************************************************************************/ HI_S32 SAMPLE_COMM_VI_StartDev(VI_DEV ViDev, SAMPLE_VI_MODE_E enViMode) { HI_S32 s32Ret; VI_DEV_ATTR_S stViDevAttr; memset(&stViDevAttr,0,sizeof(stViDevAttr)); switch (enViMode) { case SAMPLE_VI_MODE_1_D1: case SAMPLE_VI_MODE_1_D1Cif: memcpy(&stViDevAttr,&DEV_ATTR_BT656D1_4MUX,sizeof(stViDevAttr)); SAMPLE_COMM_VI_SetMask(ViDev,&stViDevAttr); break; case SAMPLE_VI_MODE_16_D1: case SAMPLE_VI_MODE_8_D1: case SAMPLE_VI_MODE_4_D1: case SAMPLE_VI_MODE_16_Cif: case SAMPLE_VI_MODE_16_2Cif: case SAMPLE_VI_MODE_8_2Cif: case SAMPLE_VI_MODE_8_D1Cif: case SAMPLE_VI_MODE_16_D1Cif: memcpy(&stViDevAttr,&DEV_ATTR_BT656D1_4MUX,sizeof(stViDevAttr)); SAMPLE_COMM_VI_SetMask(ViDev,&stViDevAttr); break; case SAMPLE_VI_MODE_16_960H: memcpy(&stViDevAttr,&DEV_ATTR_BT656D1_4MUX,sizeof(stViDevAttr)); SAMPLE_COMM_VI_SetMask(ViDev,&stViDevAttr); break; case SAMPLE_VI_MODE_4_720P: case SAMPLE_VI_MODE_1_720P: memcpy(&stViDevAttr,&DEV_ATTR_7441_BT1120_720P,sizeof(stViDevAttr)); SAMPLE_COMM_VI_SetMask(ViDev,&stViDevAttr); break; case SAMPLE_VI_MODE_4_1080P: case SAMPLE_VI_MODE_1_1080P: memcpy(&stViDevAttr,&DEV_ATTR_7441_BT1120_1080P,sizeof(stViDevAttr)); SAMPLE_COMM_VI_SetMask(ViDev,&stViDevAttr); break; default: SAMPLE_PRT("vi input type[%d] is invalid!\n", enViMode); return HI_FAILURE; } #ifdef DEMO stViDevAttr.bDataRev = HI_TRUE; #else stViDevAttr.bDataRev = HI_FALSE; #endif s32Ret = HI_MPI_VI_SetDevAttr(ViDev, &stViDevAttr); if (s32Ret != HI_SUCCESS) { SAMPLE_PRT("HI_MPI_VI_SetDevAttr failed with %#x!\n", s32Ret); return HI_FAILURE; } s32Ret = HI_MPI_VI_EnableDev(ViDev); if (s32Ret != HI_SUCCESS) { SAMPLE_PRT("HI_MPI_VI_EnableDev failed with %#x!\n", s32Ret); return HI_FAILURE; } return HI_SUCCESS; }