/** * \brief: * Finalize Vsys instance * \input: * NA * \output: * NA * \return * ERROR_NOERROR -- while success * ERROR_CODE -- refer for err defination */ Int32 Vsys_exit() { if(gVsysModuleContext.enableFastUsecaseSwitch==FALSE) { if(gVsysModuleContext.initDone == TRUE) { gVsysModuleContext.initDone = FALSE; System_deInit(); } } return 0; }
Void MultiCh_delete_8CifProgressiveVcapVencVdecVdis() { UInt32 dup1Id,merge1Id; UInt32 ipcOutVpssId, ipcInVpssId; UInt32 ipcOutVideoId, ipcInVideoId; int i; dup1Id = SYSTEM_VPSS_LINK_ID_DUP_0; merge1Id = SYSTEM_VPSS_LINK_ID_MERGE_0; ipcOutVpssId = SYSTEM_VPSS_LINK_ID_IPC_OUT_M3_0; ipcInVideoId = SYSTEM_VIDEO_LINK_ID_IPC_IN_M3_0; ipcOutVideoId= SYSTEM_VIDEO_LINK_ID_IPC_OUT_M3_0; ipcInVpssId = SYSTEM_VPSS_LINK_ID_IPC_IN_M3_0; System_linkDelete(gVcapModuleContext.captureId); System_linkDelete(gVcapModuleContext.deiId[0] ); System_linkDelete(gVcapModuleContext.nsfId[0]); System_linkDelete(ipcOutVpssId ); System_linkDelete(ipcInVideoId ); System_linkDelete(gVencModuleContext.encId); System_linkDelete(gVencModuleContext.ipcBitsOutRTOSId); System_linkDelete(gVencModuleContext.ipcBitsInHLOSId); System_linkDelete(gVdecModuleContext.ipcBitsOutHLOSId); System_linkDelete(gVdecModuleContext.ipcBitsInRTOSId); System_linkDelete(gVdecModuleContext.decId); System_linkDelete(ipcOutVideoId); System_linkDelete(ipcInVpssId ); System_linkDelete(merge1Id); System_linkDelete(dup1Id); for(i=0; i<2; i++) System_linkDelete(gVdisModuleContext.swMsId[i] ); for(i=0; i<3; i++) System_linkDelete(gVdisModuleContext.displayId[i]); MultiCh_displayCtrlDeInit(&gVdisModuleContext.vdisConfig); /* Print the HWI, SWI and all tasks load */ /* Reset the accumulated timer ticks */ MultiCh_prfLoadCalcEnable(FALSE, TRUE, FALSE); //Utils_encdecHdvicpPrfPrint(); System_deInit(); }
Void MultiCh_deleteVdecVdis() { /* delete can be done in any order */ MultiCh_displayCtrlDeInit(&gVdisModuleContext.vdisConfig); Vdec_delete(); Vdis_delete(); if (gMultiCh_VdecVdisObj.enableVideoFrameExport) { System_linkDelete(gMultiCh_VdecVdisObj.mergeId); } System_linkDelete(gMultiCh_VdecVdisObj.dupId); System_linkDelete(gMultiCh_VdecVdisObj.ipcOutVideoId ); System_linkDelete(gMultiCh_VdecVdisObj.ipcInVpssId ); /* Print the HWI, SWI and all tasks load */ /* Reset the accumulated timer ticks */ MultiCh_prfLoadCalcEnable(FALSE, TRUE, FALSE); #if AVSYNC_COMP_ENABLE if (gVsysModuleContext.vsysConfig.enableAVsync == TRUE) { printf("AVSYNC_DeInit start\n"); AVSYNC_DeInit(); printf("AVSYNC_DeInit done\n"); } #endif #if (tilerEnable == FALSE) { /* Disable tiler allocator for this usecase * for that tiler memory can be reused for * non-tiled allocation */ SystemTiler_enableAllocator(); } #endif System_deInit(); }
Void MultiCh_deleteProgressive8D1VcapVencVdecVdis() { UInt32 i; Bool enableOsdAlgLink = gVsysModuleContext.vsysConfig.enableOsd; Bool enableScdAlgLink = gVsysModuleContext.vsysConfig.enableScd; UInt32 mergeId[NUM_MERGE_LINK]; UInt32 dupId[NUM_DUP_LINK]; UInt32 ipcOutVpssId, ipcInVpssId; UInt32 ipcOutVideoId, ipcInVideoId; UInt32 ipcBitsOutDSPId; mergeId[LIVE_DECODE_MERGE_LINK_IDX] = SYSTEM_VPSS_LINK_ID_MERGE_0; mergeId[D1_CIF_MERGE_LINK_IDX] = SYSTEM_VPSS_LINK_ID_MERGE_1; dupId[CAP_DUP_LINK_IDX] = SYSTEM_VPSS_LINK_ID_DUP_0; dupId[LIVE_DECODE_DUP_LINK_IDX] = SYSTEM_VPSS_LINK_ID_DUP_1; ipcOutVpssId = SYSTEM_VPSS_LINK_ID_IPC_OUT_M3_0; ipcInVideoId = SYSTEM_VIDEO_LINK_ID_IPC_IN_M3_0; ipcOutVideoId= SYSTEM_VIDEO_LINK_ID_IPC_OUT_M3_0; ipcInVpssId = SYSTEM_VPSS_LINK_ID_IPC_IN_M3_0; ipcBitsOutDSPId = SYSTEM_DSP_LINK_ID_IPC_BITS_OUT_0; gVdecModuleContext.ipcBitsOutHLOSId = SYSTEM_HOST_LINK_ID_IPC_BITS_OUT_0; gVdecModuleContext.ipcBitsInRTOSId = SYSTEM_VIDEO_LINK_ID_IPC_BITS_IN_0; System_linkDelete(gVcapModuleContext.captureId); System_linkDelete(gVcapModuleContext.sclrId[0]); System_linkDelete(gVcapModuleContext.deiId[0]); System_linkDelete(gVcapModuleContext.nsfId[0]); if(enableOsdAlgLink || enableScdAlgLink) { System_linkDelete(gVcapModuleContext.ipcFramesOutVpssId[0]); System_linkDelete(gVcapModuleContext.ipcFramesInDspId[0]); System_linkDelete(gVcapModuleContext.dspAlgId[0]); if(enableScdAlgLink) { System_linkDelete(ipcBitsOutDSPId); System_linkDelete(gVcapModuleContext.ipcBitsInHLOSId); } } System_linkDelete(ipcOutVpssId ); System_linkDelete(ipcInVideoId ); System_linkDelete(gVencModuleContext.encId); System_linkDelete(gVencModuleContext.ipcBitsOutRTOSId); System_linkDelete(gVencModuleContext.ipcBitsInHLOSId); System_linkDelete(gVdecModuleContext.ipcBitsOutHLOSId); System_linkDelete(gVdecModuleContext.ipcBitsInRTOSId); System_linkDelete(gVdecModuleContext.decId); System_linkDelete(ipcOutVideoId); System_linkDelete(ipcInVpssId ); for(i=0; i<2; i++) System_linkDelete(gVdisModuleContext.swMsId[i] ); for(i=0; i<2; i++) System_linkDelete(gVdisModuleContext.displayId[i]); for(i=0; i<NUM_DUP_LINK; i++) System_linkDelete(dupId[i]); for(i=0; i<NUM_MERGE_LINK; i++) { if (mergeId[i] != SYSTEM_LINK_ID_INVALID ) System_linkDelete(mergeId[i]); } MultiCh_displayCtrlDeInit(&gVdisModuleContext.vdisConfig); /* Print the HWI, SWI and all tasks load */ /* Reset the accumulated timer ticks */ MultiCh_prfLoadCalcEnable(FALSE, TRUE, FALSE); if (gVsysModuleContext.vsysConfig.enableAVsync) AVSYNC_DeInit(); #if (TILER_ENABLE == FALSE) { /* Disable tiler allocator for this usecase * for that tiler memory can be reused for * non-tiled allocation */ SystemTiler_enableAllocator(); } #endif System_deInit(); }
Void MultiCh_deleteProgressive4D1VcapVencVdecVdis() { UInt32 i; Bool enableOsdAlgLink = gVsysModuleContext.vsysConfig.enableOsd; Bool enableScdAlgLink = gVsysModuleContext.vsysConfig.enableScd; UInt32 mergeId[NUM_MERGE_LINK]; UInt32 dupId[NUM_DUP_LINK]; UInt32 ipcOutVpssId, ipcInVpssId; UInt32 ipcOutVideoId, ipcInVideoId; UInt32 ipcBitsOutDSPId; mergeId[LIVE_DECODE_MERGE_LINK_IDX] = SYSTEM_VPSS_LINK_ID_MERGE_0; mergeId[D1_CIF_MERGE_LINK_IDX] = SYSTEM_VPSS_LINK_ID_MERGE_1; dupId[D1_DUP_LINK_IDX] = SYSTEM_VPSS_LINK_ID_DUP_0; dupId[LIVE_DECODE_DUP_LINK_IDX] = SYSTEM_VPSS_LINK_ID_DUP_1; ipcOutVpssId = SYSTEM_VPSS_LINK_ID_IPC_OUT_M3_0; ipcInVideoId = SYSTEM_VIDEO_LINK_ID_IPC_IN_M3_0; ipcOutVideoId= SYSTEM_VIDEO_LINK_ID_IPC_OUT_M3_0; ipcInVpssId = SYSTEM_VPSS_LINK_ID_IPC_IN_M3_0; ipcBitsOutDSPId = SYSTEM_DSP_LINK_ID_IPC_BITS_OUT_0; gVdecModuleContext.ipcBitsOutHLOSId = SYSTEM_HOST_LINK_ID_IPC_BITS_OUT_0; gVdecModuleContext.ipcBitsInRTOSId = SYSTEM_VIDEO_LINK_ID_IPC_BITS_IN_0; System_linkDelete(gVcapModuleContext.captureId); #ifdef ADD_NSF_AFTER_CAPTURE System_linkDelete(gVcapModuleContext.nsfId[1]); #endif System_linkDelete(gVcapModuleContext.deiId[0]); System_linkDelete(gVcapModuleContext.nsfId[0]); if(enableOsdAlgLink || enableScdAlgLink) { System_linkDelete(gVcapModuleContext.ipcFramesOutVpssId[0]); System_linkDelete(gVcapModuleContext.ipcFramesInDspId[0]); System_linkDelete(gVcapModuleContext.dspAlgId[0]); if(enableScdAlgLink) { System_linkDelete(ipcBitsOutDSPId); System_linkDelete(gVcapModuleContext.ipcBitsInHLOSId); } } System_linkDelete(ipcOutVpssId ); System_linkDelete(ipcInVideoId ); System_linkDelete(gVencModuleContext.encId); System_linkDelete(gVencModuleContext.ipcBitsOutRTOSId); System_linkDelete(gVencModuleContext.ipcBitsInHLOSId); System_linkDelete(gVdecModuleContext.ipcBitsOutHLOSId); System_linkDelete(gVdecModuleContext.ipcBitsInRTOSId); System_linkDelete(gVdecModuleContext.decId); System_linkDelete(ipcOutVideoId); System_linkDelete(ipcInVpssId ); for(i=0; i<2; i++) System_linkDelete(gVdisModuleContext.swMsId[i] ); for(i=0; i<2; i++) System_linkDelete(gVdisModuleContext.displayId[i]); for(i=0; i<NUM_DUP_LINK; i++) System_linkDelete(dupId[i]); for(i=0; i<NUM_MERGE_LINK; i++) { if (mergeId[i] != SYSTEM_LINK_ID_INVALID ) System_linkDelete(mergeId[i]); } MultiCh_displayCtrlDeInit(&gVdisModuleContext.vdisConfig); /* Print the HWI, SWI and all tasks load */ /* Reset the accumulated timer ticks */ MultiCh_prfLoadCalcEnable(FALSE, TRUE, FALSE); #if AVSYNC_COMP_ENABLE if (gVsysModuleContext.vsysConfig.enableAVsync == TRUE) { printf("AVSYNC_DeInit start\n"); AVSYNC_DeInit(); printf("AVSYNC_DeInit done\n"); } #endif System_deInit(); }
Void MultiCh_deleteVcapVdis() { UInt32 grpxId[VDIS_DEV_MAX]; UInt32 nullId; UInt32 mergeId, dupId; UInt32 i; UInt32 numSubChains; UInt32 enableSdtv = FALSE; numSubChains = 2; gVcapModuleContext.captureId = SYSTEM_LINK_ID_CAPTURE; gVcapModuleContext.nsfId[0] = SYSTEM_LINK_ID_NSF_0; gVcapModuleContext.deiId[0] = SYSTEM_LINK_ID_DEI_HQ_0; gVcapModuleContext.deiId[1] = SYSTEM_LINK_ID_DEI_0; gVcapModuleContext.nullSrcId = SYSTEM_VPSS_LINK_ID_NULL_SRC_0; mergeId = SYSTEM_VPSS_LINK_ID_MERGE_0; dupId = SYSTEM_VPSS_LINK_ID_DUP_0; gVdisModuleContext.swMsId[0] = SYSTEM_LINK_ID_SW_MS_MULTI_INST_0; gVdisModuleContext.swMsId[1] = SYSTEM_LINK_ID_SW_MS_MULTI_INST_1; gVdisModuleContext.displayId[0] = SYSTEM_LINK_ID_DISPLAY_0; // ON CHIP HDMI gVdisModuleContext.displayId[1] = SYSTEM_LINK_ID_DISPLAY_1; // OFF CHIP HDMI gVdisModuleContext.displayId[2] = SYSTEM_LINK_ID_DISPLAY_2; // OFF CHIP HDMI grpxId[0] = SYSTEM_LINK_ID_GRPX_0; grpxId[1] = SYSTEM_LINK_ID_GRPX_1; #if 0 /* Enabling graphics only for ON CHIP HDMI an OFF CHIP HDMI*/ grpxId[2] = SYSTEM_LINK_ID_GRPX_2; #endif nullId = SYSTEM_VPSS_LINK_ID_NULL_0; MultiCh_displayCtrlDeInit(&gVdisModuleContext.vdisConfig); System_linkDelete(gVcapModuleContext.captureId); System_linkDelete(gVcapModuleContext.nsfId[0]); for(i=0; i<numSubChains; i++) System_linkDelete(gVcapModuleContext.deiId[i] ); System_linkDelete(gVcapModuleContext.nullSrcId); System_linkDelete(mergeId); System_linkDelete(dupId); for(i=0; i<numSubChains; i++) System_linkDelete(gVdisModuleContext.swMsId[i] ); for(i=0; i<numSubChains; i++) System_linkDelete(gVdisModuleContext.displayId[i]); if(enableSdtv) { System_linkDelete(gVdisModuleContext.displayId[2]); } /* Print the HWI, SWI and all tasks load */ /* Reset the accumulated timer ticks */ MultiCh_prfLoadCalcEnable(FALSE, TRUE, FALSE); System_deInit(); }