diff options
author | Benny Prijono <bennylp@teluu.com> | 2013-01-18 08:47:39 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2013-01-18 08:47:39 +0000 |
commit | 0f0b0a1493ad245b6a6e985f0ad1ca65081bf3fe (patch) | |
tree | 33bfbd9b328fdbfac64f6c599eb52d57b0d83e47 /pjmedia | |
parent | 639c558cc97a4bb9a92c8460f237e8dcf40cc1b1 (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.c | 5 |
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; |