]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Initialize offset for adaptive jitter buffer
authorTerry Wilson <twilson@digium.com>
Thu, 2 Dec 2010 18:00:27 +0000 (18:00 +0000)
committerTerry Wilson <twilson@digium.com>
Thu, 2 Dec 2010 18:00:27 +0000 (18:00 +0000)
When the adaptive jitter buffer is enabled in sip.conf, the first frame placed
in the jitter buffer fails with something like:

jb_warning_output: Resyncing the jb. last_delay 0, this delay -215886466,
threshold 1000, new offset 215886466

This happens because the offset is not initialized before calling jb_put(). This
patch modifies jb_put_first_adaptive() to set the offset to the frame's
timestamp.

Review: https://reviewboard.asterisk.org/r/1041/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@297310 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/abstract_jb.c

index ecc5e8cde44f200ea8b9ce5c6848a28aee9144ce..c4f7aeefcd1bdea45eb2b99982ae7dfa4bcaf1d0 100644 (file)
@@ -752,6 +752,11 @@ static void jb_destroy_adaptive(void *jb)
 
 static int jb_put_first_adaptive(void *jb, struct ast_frame *fin, long now)
 {
+       jitterbuf *adaptivejb = (jitterbuf *) jb;
+
+       /* Initialize the offset to that of the first frame's timestamp */
+       adaptivejb->info.resync_offset = fin->ts;
+
        return jb_put_adaptive(jb, fin, now);
 }