From: Michael Jerris Date: Tue, 21 Apr 2015 16:06:46 +0000 (-0500) Subject: FS-7456: also more complete fix for FS-7440, handle sdp with m lines in any order X-Git-Tag: v1.4.19~6^2~49 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9d68cab2ac2cc86b800521c812628bfcc90499f1;p=thirdparty%2Ffreeswitch.git FS-7456: also more complete fix for FS-7440, handle sdp with m lines in any order --- diff --git a/src/switch_core_media.c b/src/switch_core_media.c index 466180d42f..5ac1b60eeb 100644 --- a/src/switch_core_media.c +++ b/src/switch_core_media.c @@ -3404,6 +3404,11 @@ SWITCH_DECLARE(uint8_t) switch_core_media_negotiate_sdp(switch_core_session_t *s sdp_rtpmap_t *map; int ice = 0; + nm_idx = 0; + m_idx = 0; + memset(matches, 0, sizeof(matches[0]) * MAX_MATCHES); + memset(near_matches, 0, sizeof(near_matches[0]) * MAX_MATCHES); + if (!sendonly && (m->m_mode == sdp_sendonly || m->m_mode == sdp_inactive)) { sendonly = 1; } @@ -3797,12 +3802,7 @@ SWITCH_DECLARE(uint8_t) switch_core_media_negotiate_sdp(switch_core_session_t *s smh->num_negotiated_codecs = 0; for(j = 0; j < m_idx; j++) { - payload_map_t *pmap; - if (matches[j].imp->codec_type != SWITCH_CODEC_TYPE_AUDIO) { - continue; - } - - pmap = switch_core_media_add_payload_map(session, + payload_map_t *pmap = switch_core_media_add_payload_map(session, SWITCH_MEDIA_TYPE_AUDIO, matches[j].map->rm_encoding, matches[j].map->rm_fmtp,