v_engine = &smh->engines[SWITCH_MEDIA_TYPE_VIDEO];
t_engine = &smh->engines[SWITCH_MEDIA_TYPE_TEXT];
+ smh->mparams->num_codecs = 0;
+ smh->num_negotiated_codecs = 0;
+ switch_core_media_prepare_codecs(session, SWITCH_TRUE);
codec_array = smh->codecs;
total_codecs = smh->mparams->num_codecs;
}
- smh->mparams->num_codecs = 0;
- smh->num_negotiated_codecs = 0;
- switch_core_media_prepare_codecs(session, SWITCH_TRUE);
- codec_array = smh->codecs;
- total_codecs = smh->mparams->num_codecs;
-
-
if (switch_rtp_has_dtls() && dtls_ok(session)) {
for (attr = m->m_attributes; attr; attr = attr->a_next) {
match = 1;
a_engine->codec_negotiated = 1;
- for(j = 0; j < m_idx; j++) {
+ for(j = 0; j < m_idx && smh->num_negotiated_codecs < SWITCH_MAX_CODECS; j++) {
payload_map_t *pmap = switch_core_media_add_payload_map(session,
SWITCH_MEDIA_TYPE_AUDIO,
matches[j].map->rm_encoding,
vmatch = 1;
v_engine->codec_negotiated = 1;
- for(j = 0; j < m_idx; j++) {
+ for(j = 0; j < m_idx && smh->num_negotiated_codecs < SWITCH_MAX_CODECS; j++) {
payload_map_t *pmap = switch_core_media_add_payload_map(session,
SWITCH_MEDIA_TYPE_VIDEO,
matches[j].map->rm_encoding,