summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pjmedia/src/pjmedia/stream.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/pjmedia/src/pjmedia/stream.c b/pjmedia/src/pjmedia/stream.c
index 4022c36a..45a3830e 100644
--- a/pjmedia/src/pjmedia/stream.c
+++ b/pjmedia/src/pjmedia/stream.c
@@ -2822,12 +2822,23 @@ static pj_status_t get_audio_codec_info_param(pjmedia_stream_info *si,
/* Find the first codec which is not telephone-event */
for ( fmti = 0; fmti < local_m->desc.fmt_count; ++fmti ) {
+ pjmedia_sdp_rtpmap r;
+
if ( !pj_isdigit(*local_m->desc.fmt[fmti].ptr) )
return PJMEDIA_EINVALIDPT;
pt = pj_strtoul(&local_m->desc.fmt[fmti]);
- if ( PJMEDIA_RTP_PT_TELEPHONE_EVENTS == 0 ||
- pt != PJMEDIA_RTP_PT_TELEPHONE_EVENTS )
- break;
+
+ attr = pjmedia_sdp_media_find_attr(local_m, &ID_RTPMAP,
+ &local_m->desc.fmt[fmti]);
+ if (attr == NULL)
+ continue;
+
+ status = pjmedia_sdp_attr_get_rtpmap(attr, &r);
+ if (status != PJ_SUCCESS)
+ continue;
+
+ if (pj_strcmp(&r.enc_name, &ID_TELEPHONE_EVENT) != 0)
+ break;
}
if ( fmti >= local_m->desc.fmt_count )
return PJMEDIA_EINVALIDPT;