Web Audio's AnalyserNode.fftSize cannot be greater than 2048 in Safari; spec says...
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 28 Nov 2017 18:50:59 +0000 (18:50 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 28 Nov 2017 18:50:59 +0000 (18:50 +0000)
https://bugs.webkit.org/show_bug.cgi?id=180040

Patch by Noah Chase <nchase@gmail.com> on 2017-11-28
Reviewed by Alex Christensen.

Source/WebCore:

I fixed up the existing test/output for realtimeanalyser-fft-sizing.
one thing that I'm a bit unsure of here is whether or not there are other
places in WebKit's Web Audio implementation that use fftSize and
should have the wider range available (instead of capping out at
2048). based on a quick naive scan I think that there are.

* Modules/webaudio/RealtimeAnalyser.cpp:

LayoutTests:

* webaudio/realtimeanalyser-fft-sizing-expected.txt:
* webaudio/realtimeanalyser-fft-sizing.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@225226 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/webaudio/realtimeanalyser-fft-sizing-expected.txt
LayoutTests/webaudio/realtimeanalyser-fft-sizing.html
Source/WebCore/ChangeLog
Source/WebCore/Modules/webaudio/RealtimeAnalyser.cpp

index 21117bd..3a74918 100644 (file)
@@ -1,3 +1,13 @@
+2017-11-28  Noah Chase  <nchase@gmail.com>
+
+        Web Audio's AnalyserNode.fftSize cannot be greater than 2048 in Safari; spec says it can be up to 32768
+        https://bugs.webkit.org/show_bug.cgi?id=180040
+
+        Reviewed by Alex Christensen.
+
+        * webaudio/realtimeanalyser-fft-sizing-expected.txt:
+        * webaudio/realtimeanalyser-fft-sizing.html:
+
 2017-11-28  Ms2ger  <Ms2ger@igalia.com>
 
         [WPE] Enable the wpt top-level directory.
index 3f40ff9..b1eecf3 100644 (file)
@@ -27,13 +27,13 @@ PASS Successfully set legal fftSize 1024.
 PASS Exception thrown for illegal fftSize 1025.
 PASS Successfully set legal fftSize 2048.
 PASS Exception thrown for illegal fftSize 2049.
-PASS Exception thrown for illegal fftSize 4096.
+PASS Successfully set legal fftSize 4096.
 PASS Exception thrown for illegal fftSize 4097.
-PASS Exception thrown for illegal fftSize 8192.
+PASS Successfully set legal fftSize 8192.
 PASS Exception thrown for illegal fftSize 8193.
-PASS Exception thrown for illegal fftSize 16384.
+PASS Successfully set legal fftSize 16384.
 PASS Exception thrown for illegal fftSize 16385.
-PASS Exception thrown for illegal fftSize 32768.
+PASS Successfully set legal fftSize 32768.
 PASS Exception thrown for illegal fftSize 32769.
 PASS Exception thrown for illegal fftSize 65536.
 PASS Exception thrown for illegal fftSize 65537.
index 83a8dfd..767cb17 100644 (file)
@@ -36,7 +36,7 @@ doTest(-1, true);
 doTest(0, true);
 doTest(1, true);
 for (var i = 2; i <= 0x20000; i *= 2) {
-       if (i >= 32 && i <= 2048)
+       if (i >= 32 && i <= 32768)
         doTest(i, false);
     else
         doTest(i, true);
index 1afa1f5..2d12a7e 100644 (file)
@@ -1,3 +1,18 @@
+2017-11-28  Noah Chase  <nchase@gmail.com>
+
+        Web Audio's AnalyserNode.fftSize cannot be greater than 2048 in Safari; spec says it can be up to 32768
+        https://bugs.webkit.org/show_bug.cgi?id=180040
+
+        Reviewed by Alex Christensen.
+
+        I fixed up the existing test/output for realtimeanalyser-fft-sizing.
+        one thing that I'm a bit unsure of here is whether or not there are other
+        places in WebKit's Web Audio implementation that use fftSize and
+        should have the wider range available (instead of capping out at
+        2048). based on a quick naive scan I think that there are.
+
+        * Modules/webaudio/RealtimeAnalyser.cpp:
+
 2017-11-28  Daniel Bates  <dabates@apple.com>
 
         Add WebKitAdditions extension point to add user-agent stylesheet
index d265739..6564855 100644 (file)
@@ -47,7 +47,7 @@ const double RealtimeAnalyser::DefaultMaxDecibels = -30;
 const unsigned RealtimeAnalyser::DefaultFFTSize = 2048;
 // All FFT implementations are expected to handle power-of-two sizes MinFFTSize <= size <= MaxFFTSize.
 const unsigned RealtimeAnalyser::MinFFTSize = 32;
-const unsigned RealtimeAnalyser::MaxFFTSize = 2048;
+const unsigned RealtimeAnalyser::MaxFFTSize = 32768;
 const unsigned RealtimeAnalyser::InputBufferSize = RealtimeAnalyser::MaxFFTSize * 2;
 
 RealtimeAnalyser::RealtimeAnalyser()