summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2010-09-22 08:39:03 +0000
committerNanang Izzuddin <nanang@teluu.com>2010-09-22 08:39:03 +0000
commit4403b5a47952bba812334611972469737c8635d5 (patch)
tree7e49eba911a493ae50fd1261ee3bc1fa1291085d
parenta15ddb0c409317ffdfd4c6b764398719a4d222e2 (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
-rw-r--r--pjmedia/src/pjmedia/session.c17
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);