HI_S32 SAMPLE_COMM_VO_StopChn(VO_LAYER VoLayer, SAMPLE_VO_MODE_E enMode) { HI_S32 i; HI_S32 s32Ret = HI_SUCCESS; HI_U32 u32WndNum = 0; switch (enMode) { case VO_MODE_1MUX: { u32WndNum = 1; break; } case VO_MODE_2MUX: { u32WndNum = 2; break; } default: SAMPLE_PRT("failed with %#x!\n", s32Ret); return HI_FAILURE; } for (i=0; i<u32WndNum; i++) { s32Ret = HI_MPI_VO_DisableChn(VoLayer, i); if (s32Ret != HI_SUCCESS) { SAMPLE_PRT("failed with %#x!\n", s32Ret); return HI_FAILURE; } } return s32Ret; }
HI_S32 PCIV_Slave_StopVo(PCIV_MSGHEAD_S *pMsg) { HI_S32 s32Ret, s32CurPos; VO_CHN voChn = -1; PCIV_VOCMD_DESTROY_S *pCmd = (PCIV_VOCMD_DESTROY_S *)pMsg->cMsgBody; PCIV_VOCMD_ECHO_S *pCmdEcho = (PCIV_VOCMD_ECHO_S *)pMsg->cMsgBody; s32CurPos = 0; while(s32CurPos < pMsg->u32MsgLen) { voChn = pCmd->voChn; s32Ret = HI_MPI_VO_DisableChn(voChn); HI_ASSERT(HI_SUCCESS == s32Ret); pCmd++; s32CurPos += sizeof(*pCmd); } /* Echo the cmd */ pMsg->enMsgType = PCIV_MSGTYPE_CMDECHO; pMsg->enDevType = PCIV_DEVTYPE_VOCHN; pMsg->u32Target = 0; pMsg->u32MsgLen = sizeof(PCIV_VICMD_ECHO_S); pCmdEcho->voChn = voChn; pCmdEcho->s32Echo = HI_SUCCESS; s32Ret = PCIV_SendMsg(0, PCIV_MSGPORT_USERCMD, pMsg); HI_ASSERT((HI_FAILURE != s32Ret)); return HI_SUCCESS; }
HI_S32 SampleVoExitChn(VO_CHN VoChn) { if(HI_SUCCESS!=HI_MPI_VO_DisableChn(VoChn)) { Printf("diaable vo channel failed !\n"); return HI_FAILURE; } return HI_SUCCESS; }
HI_S32 SampleDisableVo(HI_U32 ScreenCnt) { HI_U32 i; for (i = 0; i < ScreenCnt; i++) { CHECK(HI_MPI_VO_DisableChn(i), "HI_MPI_VO_DisableChn"); } CHECK(HI_MPI_VO_Disable(), "HI_MPI_VO_Disable"); return HI_SUCCESS; }
static void video_OutputDestroy() { int i = 0, ii = 0; for(i = 0; i < sizeof(VO_DEV_ID) / sizeof(VO_DEV_ID[0]); ++i){ // enable vo channel for(ii = 0; ii < VIDEO_GetMaxDiv(); ++ii){ DVR_ASSERT(HI_MPI_VO_DisableChn(VO_DEV_ID[i], ii)); } // disable video layer DVR_ASSERT(HI_MPI_VO_DisableVideoLayer(VO_DEV_ID[i])); } video_ScreenExit(); s_stVideo.bOutput = FALSE; }
static void video_OutputDestroy() { int i = 0, ii = 0; for(i = 0; i < sizeof(VO_DEV_ID) / sizeof(VO_DEV_ID[0]); ++i){ // enable vo channel for(ii = MAX_CAM_CH; ii >= 0; --ii){ video_BindOutput(VO_DEV_ID[i], ii, FALSE); DVR_ASSERT(HI_MPI_VO_DisableChn(VO_DEV_ID[i], ii)); } // disable video layer DVR_ASSERT(HI_MPI_VO_DisableVideoLayer(VO_DEV_ID[i])); } video_ScreenExit(); s_stVideo.bOutput = FALSE; }
HI_S32 SampleDisableVo(VO_CHN VoChn) { HI_S32 s32Ret; s32Ret = HI_MPI_VO_DisableChn(VoChn); if(HI_SUCCESS != s32Ret) { printf("HI_MPI_VO_DisableChn failed 0x%x!\n",s32Ret); return HI_FAILURE; } s32Ret = HI_MPI_VO_Disable(); if(HI_SUCCESS != s32Ret) { printf("HI_MPI_VO_Disable failed 0x%x!\n",s32Ret); return HI_FAILURE; } return HI_SUCCESS; }