diff --git a/sflphone-common/src/audio/audiortp/AudioRtpSession.h b/sflphone-common/src/audio/audiortp/AudioRtpSession.h index d2497d5a4386b02df54792fe718cdc8c8edbb538..bfb5a72c22d12b08c04e4ec292704504bb047ca5 100644 --- a/sflphone-common/src/audio/audiortp/AudioRtpSession.h +++ b/sflphone-common/src/audio/audiortp/AudioRtpSession.h @@ -267,6 +267,10 @@ namespace sfl { delete [] _spkrDataConverted; delete _time; delete _converter; + + if (_audiocodec) { + delete _audiocodec; _audiocodec = NULL; + } } template <typename D> @@ -615,7 +619,7 @@ namespace sfl { _debug("RTP: Starting main thread"); setSessionTimeouts(); setSessionMedia(audiocodec); - initBuffers(); + initBuffers(); return start(_mainloopSemaphore); } diff --git a/sflphone-common/src/audio/codecs/codecDescriptor.cpp b/sflphone-common/src/audio/codecs/codecDescriptor.cpp index 8ea6fab920b4a260b03e7021bd004bab71f690a9..c13c907279ed271ece70faf30dcdc6d59f6bf78e 100644 --- a/sflphone-common/src/audio/codecs/codecDescriptor.cpp +++ b/sflphone-common/src/audio/codecs/codecDescriptor.cpp @@ -221,8 +221,6 @@ AudioCodec* CodecDescriptor::loadCodec (std::string path) { void CodecDescriptor::unloadCodec (CodecHandlePointer p) { - _debug("CodecDescriptor: Unload codec"); - using std::cerr; destroy_t* destroyCodec = (destroy_t*) dlsym (p.second , "destroy"); @@ -250,15 +248,15 @@ AudioCodec* CodecDescriptor::instantiateCodec (AudioCodecType payload) { AudioCodec* a = createCodec(); return a; - } - iter++; } return NULL; } + + AudioCodec* CodecDescriptor::getFirstCodecAvailable (void) { CodecsMap::iterator iter = _CodecsMap.begin(); diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp index 01c7d21854fc7616f91f327dcff0e2db352e3838..9895d84a572fb9a6812f44f0dc6bdc6203e9aa2e 100644 --- a/sflphone-common/src/sip/sipvoiplink.cpp +++ b/sflphone-common/src/sip/sipvoiplink.cpp @@ -3276,14 +3276,14 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status) AudioCodec* audiocodec = Manager::instance().getCodecDescriptorMap().instantiateCodec(pl); if (audiocodec == NULL) - _error ("SIP: No audiocodec found"); + _error ("UserAgent: No audiocodec found"); try { call->setAudioStart (true); call->getAudioRtp()->start(audiocodec); } catch (exception& rtpException) { - _debug ("%s", rtpException.what()); + _error ("UserAgent: Error: %s", rtpException.what()); } }