Skip to content
Snippets Groups Projects
Commit fda3fbf9 authored by Alexandre Savard's avatar Alexandre Savard
Browse files

[#3124] Delete audio codec when stopping RTP session

parent 58a8163a
Branches
Tags
No related merge requests found
...@@ -267,6 +267,10 @@ namespace sfl { ...@@ -267,6 +267,10 @@ namespace sfl {
delete [] _spkrDataConverted; delete [] _spkrDataConverted;
delete _time; delete _time;
delete _converter; delete _converter;
if (_audiocodec) {
delete _audiocodec; _audiocodec = NULL;
}
} }
template <typename D> template <typename D>
......
...@@ -221,8 +221,6 @@ AudioCodec* CodecDescriptor::loadCodec (std::string path) { ...@@ -221,8 +221,6 @@ AudioCodec* CodecDescriptor::loadCodec (std::string path) {
void CodecDescriptor::unloadCodec (CodecHandlePointer p) { void CodecDescriptor::unloadCodec (CodecHandlePointer p) {
_debug("CodecDescriptor: Unload codec");
using std::cerr; using std::cerr;
destroy_t* destroyCodec = (destroy_t*) dlsym (p.second , "destroy"); destroy_t* destroyCodec = (destroy_t*) dlsym (p.second , "destroy");
...@@ -250,15 +248,15 @@ AudioCodec* CodecDescriptor::instantiateCodec (AudioCodecType payload) { ...@@ -250,15 +248,15 @@ AudioCodec* CodecDescriptor::instantiateCodec (AudioCodecType payload) {
AudioCodec* a = createCodec(); AudioCodec* a = createCodec();
return a; return a;
} }
iter++; iter++;
} }
return NULL; return NULL;
} }
AudioCodec* CodecDescriptor::getFirstCodecAvailable (void) { AudioCodec* CodecDescriptor::getFirstCodecAvailable (void) {
CodecsMap::iterator iter = _CodecsMap.begin(); CodecsMap::iterator iter = _CodecsMap.begin();
......
...@@ -3276,14 +3276,14 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status) ...@@ -3276,14 +3276,14 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
AudioCodec* audiocodec = Manager::instance().getCodecDescriptorMap().instantiateCodec(pl); AudioCodec* audiocodec = Manager::instance().getCodecDescriptorMap().instantiateCodec(pl);
if (audiocodec == NULL) if (audiocodec == NULL)
_error ("SIP: No audiocodec found"); _error ("UserAgent: No audiocodec found");
try { try {
call->setAudioStart (true); call->setAudioStart (true);
call->getAudioRtp()->start(audiocodec); call->getAudioRtp()->start(audiocodec);
} catch (exception& rtpException) { } catch (exception& rtpException) {
_debug ("%s", rtpException.what()); _error ("UserAgent: Error: %s", rtpException.what());
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment