Asterisk
  1. Asterisk
  2. ASTERISK-13188

[patch] Jitterbuffer stops accepting new frames until it is empty after maxjitterbuffer is exceeded.

    Details

    • Type: Bug Bug
    • Status: Closed
    • Severity: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Target Release Version/s: None
    • Component/s: Core/Jitterbuffer
    • Labels:
      None
    • SVN Revision Number:
      162139
    • Mantis ID:
      14044
    • Regression:
      No

      Description

      Once the jitterbuffer exceeds maxjitterbuffer it stops accepting new frames until the buffer is emptied. This can cause large audio dropouts.

                • ADDITIONAL INFORMATION ******

      Please test the attached patch and see if it fixes the issue.

        Activity

        Hide
        Anton Vazir added a comment -

        I confirm this behavior in 1.4.21.2

        Show
        Anton Vazir added a comment - I confirm this behavior in 1.4.21.2
        Hide
        Matthew Nicholson added a comment -

        vazir,

        Can you test the attached patch and see if it fixes the issue?

        Show
        Matthew Nicholson added a comment - vazir, Can you test the attached patch and see if it fixes the issue?
        Hide
        Digium Subversion added a comment -

        Repository: asterisk
        Revision: 174583

        U branches/1.4/main/jitterbuf.c

        ------------------------------------------------------------------------
        r174583 | mnicholson | 2009-02-10 11:52:42 -0600 (Tue, 10 Feb 2009) | 18 lines

        Improve behavior of jitterbuffer when maxjitterbuffer is set.

        This change improves the way the jitterbuffer handles maxjitterbuffer and
        dramatically reduces the number of frames dropped when maxjitterbuffer is
        exceeded. In the previous jitterbuffer, when maxjitterbuffer was exceeded, all
        new frames were dropped until the jitterbuffer is empty. This change modifies
        the code to only drop frames until maxjitterbuffer is no longer exceeded.

        Also, previously when maxjitterbuffer was exceeded, dropped frames were not
        tracked causing stats for dropped frames to be incorrect, this change also
        addresses that problem.

        (closes issue ASTERISK-13188)
        Patches:
        bug14044-1.diff uploaded by mnicholson (license 96)
        Tested by: mnicholson
        Review: http://reviewboard.digium.com/r/144/

        ------------------------------------------------------------------------

        http://svn.digium.com/view/asterisk?view=rev&revision=174583

        Show
        Digium Subversion added a comment - Repository: asterisk Revision: 174583 U branches/1.4/main/jitterbuf.c ------------------------------------------------------------------------ r174583 | mnicholson | 2009-02-10 11:52:42 -0600 (Tue, 10 Feb 2009) | 18 lines Improve behavior of jitterbuffer when maxjitterbuffer is set. This change improves the way the jitterbuffer handles maxjitterbuffer and dramatically reduces the number of frames dropped when maxjitterbuffer is exceeded. In the previous jitterbuffer, when maxjitterbuffer was exceeded, all new frames were dropped until the jitterbuffer is empty. This change modifies the code to only drop frames until maxjitterbuffer is no longer exceeded. Also, previously when maxjitterbuffer was exceeded, dropped frames were not tracked causing stats for dropped frames to be incorrect, this change also addresses that problem. (closes issue ASTERISK-13188 ) Patches: bug14044-1.diff uploaded by mnicholson (license 96) Tested by: mnicholson Review: http://reviewboard.digium.com/r/144/ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=174583
        Hide
        Digium Subversion added a comment -

        Repository: asterisk
        Revision: 174584

        _U trunk/
        U trunk/main/jitterbuf.c

        ------------------------------------------------------------------------
        r174584 | mnicholson | 2009-02-10 12:16:31 -0600 (Tue, 10 Feb 2009) | 25 lines

        Merged revisions 174583 via svnmerge from
        https://origsvn.digium.com/svn/asterisk/branches/1.4

        ........
        r174583 | mnicholson | 2009-02-10 11:52:42 -0600 (Tue, 10 Feb 2009) | 18 lines

        Improve behavior of jitterbuffer when maxjitterbuffer is set.

        This change improves the way the jitterbuffer handles maxjitterbuffer and
        dramatically reduces the number of frames dropped when maxjitterbuffer is
        exceeded. In the previous jitterbuffer, when maxjitterbuffer was exceeded, all
        new frames were dropped until the jitterbuffer is empty. This change modifies
        the code to only drop frames until maxjitterbuffer is no longer exceeded.

        Also, previously when maxjitterbuffer was exceeded, dropped frames were not
        tracked causing stats for dropped frames to be incorrect, this change also
        addresses that problem.

        (closes issue ASTERISK-13188)
        Patches:
        bug14044-1.diff uploaded by mnicholson (license 96)
        Tested by: mnicholson
        Review: http://reviewboard.digium.com/r/144/
        ........

        ------------------------------------------------------------------------

        http://svn.digium.com/view/asterisk?view=rev&revision=174584

        Show
        Digium Subversion added a comment - Repository: asterisk Revision: 174584 _U trunk/ U trunk/main/jitterbuf.c ------------------------------------------------------------------------ r174584 | mnicholson | 2009-02-10 12:16:31 -0600 (Tue, 10 Feb 2009) | 25 lines Merged revisions 174583 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r174583 | mnicholson | 2009-02-10 11:52:42 -0600 (Tue, 10 Feb 2009) | 18 lines Improve behavior of jitterbuffer when maxjitterbuffer is set. This change improves the way the jitterbuffer handles maxjitterbuffer and dramatically reduces the number of frames dropped when maxjitterbuffer is exceeded. In the previous jitterbuffer, when maxjitterbuffer was exceeded, all new frames were dropped until the jitterbuffer is empty. This change modifies the code to only drop frames until maxjitterbuffer is no longer exceeded. Also, previously when maxjitterbuffer was exceeded, dropped frames were not tracked causing stats for dropped frames to be incorrect, this change also addresses that problem. (closes issue ASTERISK-13188 ) Patches: bug14044-1.diff uploaded by mnicholson (license 96) Tested by: mnicholson Review: http://reviewboard.digium.com/r/144/ ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=174584
        Hide
        Digium Subversion added a comment -

        Repository: asterisk
        Revision: 174590

        _U branches/1.6.1/
        U branches/1.6.1/main/jitterbuf.c

        ------------------------------------------------------------------------
        r174590 | mnicholson | 2009-02-10 12:18:30 -0600 (Tue, 10 Feb 2009) | 32 lines

        Merged revisions 174584 via svnmerge from
        https://origsvn.digium.com/svn/asterisk/trunk

        ................
        r174584 | mnicholson | 2009-02-10 12:16:31 -0600 (Tue, 10 Feb 2009) | 25 lines

        Merged revisions 174583 via svnmerge from
        https://origsvn.digium.com/svn/asterisk/branches/1.4

        ........
        r174583 | mnicholson | 2009-02-10 11:52:42 -0600 (Tue, 10 Feb 2009) | 18 lines

        Improve behavior of jitterbuffer when maxjitterbuffer is set.

        This change improves the way the jitterbuffer handles maxjitterbuffer and
        dramatically reduces the number of frames dropped when maxjitterbuffer is
        exceeded. In the previous jitterbuffer, when maxjitterbuffer was exceeded, all
        new frames were dropped until the jitterbuffer is empty. This change modifies
        the code to only drop frames until maxjitterbuffer is no longer exceeded.

        Also, previously when maxjitterbuffer was exceeded, dropped frames were not
        tracked causing stats for dropped frames to be incorrect, this change also
        addresses that problem.

        (closes issue ASTERISK-13188)
        Patches:
        bug14044-1.diff uploaded by mnicholson (license 96)
        Tested by: mnicholson
        Review: http://reviewboard.digium.com/r/144/
        ........
        ................

        ------------------------------------------------------------------------

        http://svn.digium.com/view/asterisk?view=rev&revision=174590

        Show
        Digium Subversion added a comment - Repository: asterisk Revision: 174590 _U branches/1.6.1/ U branches/1.6.1/main/jitterbuf.c ------------------------------------------------------------------------ r174590 | mnicholson | 2009-02-10 12:18:30 -0600 (Tue, 10 Feb 2009) | 32 lines Merged revisions 174584 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ................ r174584 | mnicholson | 2009-02-10 12:16:31 -0600 (Tue, 10 Feb 2009) | 25 lines Merged revisions 174583 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r174583 | mnicholson | 2009-02-10 11:52:42 -0600 (Tue, 10 Feb 2009) | 18 lines Improve behavior of jitterbuffer when maxjitterbuffer is set. This change improves the way the jitterbuffer handles maxjitterbuffer and dramatically reduces the number of frames dropped when maxjitterbuffer is exceeded. In the previous jitterbuffer, when maxjitterbuffer was exceeded, all new frames were dropped until the jitterbuffer is empty. This change modifies the code to only drop frames until maxjitterbuffer is no longer exceeded. Also, previously when maxjitterbuffer was exceeded, dropped frames were not tracked causing stats for dropped frames to be incorrect, this change also addresses that problem. (closes issue ASTERISK-13188 ) Patches: bug14044-1.diff uploaded by mnicholson (license 96) Tested by: mnicholson Review: http://reviewboard.digium.com/r/144/ ........ ................ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=174590
        Hide
        Digium Subversion added a comment -

        Repository: asterisk
        Revision: 174596

        _U branches/1.6.0/
        U branches/1.6.0/main/jitterbuf.c

        ------------------------------------------------------------------------
        r174596 | mnicholson | 2009-02-10 12:19:51 -0600 (Tue, 10 Feb 2009) | 32 lines

        Merged revisions 174584 via svnmerge from
        https://origsvn.digium.com/svn/asterisk/trunk

        ................
        r174584 | mnicholson | 2009-02-10 12:16:31 -0600 (Tue, 10 Feb 2009) | 25 lines

        Merged revisions 174583 via svnmerge from
        https://origsvn.digium.com/svn/asterisk/branches/1.4

        ........
        r174583 | mnicholson | 2009-02-10 11:52:42 -0600 (Tue, 10 Feb 2009) | 18 lines

        Improve behavior of jitterbuffer when maxjitterbuffer is set.

        This change improves the way the jitterbuffer handles maxjitterbuffer and
        dramatically reduces the number of frames dropped when maxjitterbuffer is
        exceeded. In the previous jitterbuffer, when maxjitterbuffer was exceeded, all
        new frames were dropped until the jitterbuffer is empty. This change modifies
        the code to only drop frames until maxjitterbuffer is no longer exceeded.

        Also, previously when maxjitterbuffer was exceeded, dropped frames were not
        tracked causing stats for dropped frames to be incorrect, this change also
        addresses that problem.

        (closes issue ASTERISK-13188)
        Patches:
        bug14044-1.diff uploaded by mnicholson (license 96)
        Tested by: mnicholson
        Review: http://reviewboard.digium.com/r/144/
        ........
        ................

        ------------------------------------------------------------------------

        http://svn.digium.com/view/asterisk?view=rev&revision=174596

        Show
        Digium Subversion added a comment - Repository: asterisk Revision: 174596 _U branches/1.6.0/ U branches/1.6.0/main/jitterbuf.c ------------------------------------------------------------------------ r174596 | mnicholson | 2009-02-10 12:19:51 -0600 (Tue, 10 Feb 2009) | 32 lines Merged revisions 174584 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ................ r174584 | mnicholson | 2009-02-10 12:16:31 -0600 (Tue, 10 Feb 2009) | 25 lines Merged revisions 174583 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r174583 | mnicholson | 2009-02-10 11:52:42 -0600 (Tue, 10 Feb 2009) | 18 lines Improve behavior of jitterbuffer when maxjitterbuffer is set. This change improves the way the jitterbuffer handles maxjitterbuffer and dramatically reduces the number of frames dropped when maxjitterbuffer is exceeded. In the previous jitterbuffer, when maxjitterbuffer was exceeded, all new frames were dropped until the jitterbuffer is empty. This change modifies the code to only drop frames until maxjitterbuffer is no longer exceeded. Also, previously when maxjitterbuffer was exceeded, dropped frames were not tracked causing stats for dropped frames to be incorrect, this change also addresses that problem. (closes issue ASTERISK-13188 ) Patches: bug14044-1.diff uploaded by mnicholson (license 96) Tested by: mnicholson Review: http://reviewboard.digium.com/r/144/ ........ ................ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=174596

          People

          • Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development