OsStatus mpStopTasks(void) { mpShutdown(); shutdownNetInTask(); dmaShutdown(); return OS_SUCCESS; }
OsStatus mpShutdown() { if (shutdownNetInTask() != OS_SUCCESS) { return OS_FAILED; } if (MpMediaTask::getMediaTask(FALSE)) { // This will MpMediaTask::spInstance to NULL delete MpMediaTask::getMediaTask(FALSE); } #ifndef DISABLE_LOCAL_AUDIO MpAudioDriverManager* pAudioManager = MpAudioDriverManager::getInstance(FALSE); if (pAudioManager) { pAudioManager->release(); } #endif if (MpMisc.m_pEchoQ) { delete MpMisc.m_pEchoQ; MpMisc.m_pEchoQ = NULL; } MpMisc.m_fgSilence.release(); if (MpMisc.m_pUdpHeadersPool) { delete MpMisc.m_pUdpHeadersPool; MpMisc.m_pUdpHeadersPool = NULL; MpUdpBuf::smpDefaultPool = NULL; } if (MpMisc.m_pUdpPool) { delete MpMisc.m_pUdpPool; MpMisc.m_pUdpPool = NULL; } if (MpMisc.m_pRtpHeadersPool) { delete MpMisc.m_pRtpHeadersPool; MpMisc.m_pRtpHeadersPool = NULL; MpRtpBuf::smpDefaultPool = NULL; } if (MpMisc.m_pRtpPool) { delete MpMisc.m_pRtpPool; MpMisc.m_pRtpPool = NULL; } if (MpMisc.m_pRtcpPool) { delete MpMisc.m_pRtcpPool; MpMisc.m_pRtcpPool = NULL; } if (MpMisc.m_pAudioHeadersPool) { delete MpMisc.m_pAudioHeadersPool; MpMisc.m_pAudioHeadersPool = NULL; MpAudioBuf::smpDefaultPool = NULL; } if (MpMisc.m_pRawAudioPool) { delete MpMisc.m_pRawAudioPool; MpMisc.m_pRawAudioPool = NULL; } return OS_SUCCESS; }