diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2010-09-22 08:39:03 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2010-09-22 08:39:03 +0000 |
commit | 4403b5a47952bba812334611972469737c8635d5 (patch) | |
tree | 7e49eba911a493ae50fd1261ee3bc1fa1291085d /pjmedia/src | |
parent | a15ddb0c409317ffdfd4c6b764398719a4d222e2 (diff) |
Close #1133: added processing to remote SDP attribute "ptime".
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3315 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/src')
-rw-r--r-- | pjmedia/src/pjmedia/session.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/pjmedia/src/pjmedia/session.c b/pjmedia/src/pjmedia/session.c index 409d1e69..5ae2183b 100644 --- a/pjmedia/src/pjmedia/session.c +++ b/pjmedia/src/pjmedia/session.c @@ -526,6 +526,23 @@ PJ_DEF(pj_status_t) pjmedia_stream_info_from_sdp( /* Get local fmtp for our decoder. */ parse_fmtp(pool, local_m, si->fmt.pt, &si->param->setting.dec_fmtp); + /* Get the remote ptime for our encoder. */ + attr = pjmedia_sdp_attr_find2(rem_m->attr_count, rem_m->attr, + "ptime", NULL); + if (attr) { + pj_str_t tmp_val = attr->value; + unsigned frm_per_pkt; + + pj_strltrim(&tmp_val); + + /* Round up ptime when the specified is not multiple of frm_ptime */ + frm_per_pkt = (pj_strtoul(&tmp_val) + si->param->info.frm_ptime/2) / + si->param->info.frm_ptime; + if (frm_per_pkt != 0) { + si->param->setting.frm_per_pkt = (pj_uint8_t)frm_per_pkt; + } + } + /* Get remote maxptime for our encoder. */ attr = pjmedia_sdp_attr_find2(rem_m->attr_count, rem_m->attr, "maxptime", NULL); |