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]); } /* Print the HWI, SWI and all tasks load */ /* Reset the accumulated timer ticks */ MultiCh_prfLoadCalcEnable(FALSE, TRUE, FALSE); #if (TILER_ENABLE == FALSE) { /* Disable tiler allocator for this usecase * for that tiler memory can be reused for * non-tiled allocation */ SystemTiler_enableAllocator(); } #endif }