summaryrefslogtreecommitdiff
path: root/pjmedia
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2013-01-18 08:47:39 +0000
committerBenny Prijono <bennylp@teluu.com>2013-01-18 08:47:39 +0000
commit0f0b0a1493ad245b6a6e985f0ad1ca65081bf3fe (patch)
tree33bfbd9b328fdbfac64f6c599eb52d57b0d83e47 /pjmedia
parent639c558cc97a4bb9a92c8460f237e8dcf40cc1b1 (diff)
Fixed #1612: problems with jitter buffer fixed mode operation (prefetch may go lower than configured minimum prefetch, and the discard needs to be disabled too)
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4325 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia')
-rw-r--r--pjmedia/src/pjmedia/jbuf.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/pjmedia/src/pjmedia/jbuf.c b/pjmedia/src/pjmedia/jbuf.c
index 94a88c15..96f5dfe3 100644
--- a/pjmedia/src/pjmedia/jbuf.c
+++ b/pjmedia/src/pjmedia/jbuf.c
@@ -599,6 +599,7 @@ PJ_DEF(pj_status_t) pjmedia_jbuf_set_fixed( pjmedia_jbuf *jb,
jb->jb_min_prefetch = jb->jb_max_prefetch =
jb->jb_prefetch = jb->jb_init_prefetch = prefetch;
+ pjmedia_jbuf_set_discard(jb, PJMEDIA_JB_DISCARD_NONE);
return PJ_SUCCESS;
}
@@ -724,6 +725,8 @@ static void jbuf_calculate_jitter(pjmedia_jbuf *jb)
jb->jb_prefetch = jb->jb_eff_level;
if (jb->jb_prefetch < jb->jb_min_prefetch)
jb->jb_prefetch = jb->jb_min_prefetch;
+ if (jb->jb_prefetch > jb->jb_max_prefetch)
+ jb->jb_prefetch = jb->jb_max_prefetch;
}
/* Reset history */
@@ -747,6 +750,8 @@ static void jbuf_calculate_jitter(pjmedia_jbuf *jb)
jb->jb_prefetch = jb->jb_eff_level;
if (jb->jb_prefetch > jb->jb_max_prefetch)
jb->jb_prefetch = jb->jb_max_prefetch;
+ if (jb->jb_prefetch < jb->jb_min_prefetch)
+ jb->jb_prefetch = jb->jb_min_prefetch;
}
jb->jb_stable_hist = 0;