Skip to content
  • commit-queue@webkit.org's avatar
    DelayNode doesn't work if delayTime.value == delayTime.maxValue · 0d8251e1
    commit-queue@webkit.org authored
    https://bugs.webkit.org/show_bug.cgi?id=90357
    
    Patch by Raymond Toy <rtoy@google.com> on 2012-07-13
    Reviewed by Kenneth Russell.
    
    Source/WebCore:
    
    Increase delay buffer size slightly so that the read and write
    pointers don't become equal when the delay and the max delay are
    the same.
    
    Tests: webaudio/delaynode-max-default-delay.html
           webaudio/delaynode-max-nondefault-delay.html
    
    * Modules/webaudio/DelayDSPKernel.cpp:
    (WebCore): Moved SmoothingTimeConstant to WebCore namespace.
    (WebCore::DelayDSPKernel::DelayDSPKernel): Add some additional checks to prevent crashes; use bufferLengthForDelay to compute buffer length.
    (WebCore::DelayDSPKernel::bufferLengthForDelay): New function to compute buffer length.
    * Modules/webaudio/DelayDSPKernel.h:
    (DelayDSPKernel): Declare bufferLengthForDelay.
    
    LayoutTests:
    
    New tests to test the case when the delay node delay equals the
    maximum allowed delay. Add one test for the default maximum delay
    and a second test with a user-set maximum delay.
    
    * webaudio/delaynode-max-default-delay-expected.txt: Added.
    * webaudio/delaynode-max-default-delay.html: Added.
    * webaudio/delaynode-max-nondefault-delay-expected.txt: Added.
    * webaudio/delaynode-max-nondefault-delay.html: Added.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122630 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    0d8251e1