Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(320)

Unified Diff: third_party/WebKit/LayoutTests/webaudio/realtimeanalyser-fftsize-reset.html

Issue 2581463002: Refactor WebAudio test directory (Closed)
Patch Set: Use correct path for wav result files Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/webaudio/realtimeanalyser-fftsize-reset.html
diff --git a/third_party/WebKit/LayoutTests/webaudio/realtimeanalyser-fftsize-reset.html b/third_party/WebKit/LayoutTests/webaudio/realtimeanalyser-fftsize-reset.html
deleted file mode 100644
index 3fa69ea2cadaca41d83905e8ccf9519996d0aaca..0000000000000000000000000000000000000000
--- a/third_party/WebKit/LayoutTests/webaudio/realtimeanalyser-fftsize-reset.html
+++ /dev/null
@@ -1,133 +0,0 @@
-<!doctype html>
-<html>
- <head>
- <title>Test fftSize Changes Resetting AnalyserNode State </title>
- <script src="../resources/testharness.js"></script>
- <script src="../resources/testharnessreport.js"></script>
- <script src="resources/audit-util.js"></script>
- <script src="resources/audio-testing.js"></script>
- </head>
-
- <body>
- <script>
- // Fairly arbitrary sample rate.
- var sampleRate = 24000;
-
- var audit = Audit.createTaskRunner();
-
- // Verify that setting the fftSize resets the memory for the FFT smoothing
- // operation. Only a few of the possible variations are tested.
-
- audit.defineTask("128->1024", function (taskDone) {
- testFFTSize({
- initialFFTSize: 128,
- finalFFTSize: 1024,
- errorThreshold: {
- relativeThreshold: 1.9095e-6
- }
- }).then(taskDone);
- });
-
- audit.defineTask("512->256", function (taskDone) {
- testFFTSize({
- initialFFTSize: 512,
- finalFFTSize: 256,
- errorThreshold: {
- relativeThreshold: 1.8166e-6
- }
- }).then(taskDone);
- });
-
- function testFFTSize(options) {
- var {
- initialFFTSize, finalFFTSize, errorThreshold
- } = options;
-
- // The duration is fairly arbitrary as long as it's long enough for the
- // FFT test.
- var context = new OfflineAudioContext(1, sampleRate, sampleRate);
-
- // Actual source doesn't matter but a sawtooth is a nice waveform with
- // lots of harmonic content.
- var osc = context.createOscillator();
- osc.type = "sawtooth";
-
- // The analyser under test.
- var testAnalyser = context.createAnalyser();
- testAnalyser.fftSize = initialFFTSize;
-
- // The reference analyser. The fftSize is fixed to the desired value,
- // and we turn off smoothing so that we get the FFT of the current time
- // data.
- var refAnalyser = context.createAnalyser();
- refAnalyser.fftSize = finalFFTSize;
- refAnalyser.smoothingTimeConstant = 0;
-
- // Setup the graph and start the oscillator.
- osc.connect(testAnalyser)
- .connect(context.destination);
- osc.connect(refAnalyser)
- .connect(context.destination);
-
- osc.start();
-
- // Let the analyser smooth a few FFTs (rather arbitrary, but should be
- // more than one), then switch the size.
-
- var suspendFrame = 4 * initialFFTSize;
- context.suspend(suspendFrame / context.sampleRate)
- .then(function () {
- testAnalyser.fftSize = finalFFTSize;
- })
- .then(context.resume.bind(context));
-
- // Wait some frames and grab the FFT data. This is fairly arbitrary
- // too, and can be independent of the FFT sizes.
- suspendFrame += 1024;
- context.suspend(suspendFrame / context.sampleRate)
- .then(function () {
- var testFFT = new Float32Array(testAnalyser.frequencyBinCount);
- var refFFT = new Float32Array(refAnalyser.frequencyBinCount)
- var testSignal = new Float32Array(testAnalyser.fftSize);
- var refSignal = new Float32Array(refAnalyser.fftSize);
-
- testAnalyser.getFloatTimeDomainData(testSignal);
- refAnalyser.getFloatTimeDomainData(refSignal);
-
- testAnalyser.getFloatFrequencyData(testFFT);
- refAnalyser.getFloatFrequencyData(refFFT);
-
- // Convert the FFT data from dB to linear
- testFFT = testFFT.map(x => Math.pow(10, x / 20));
- refFFT = refFFT.map(x => Math.pow(10, x / 20));
-
- // The test data has smoothing applied, but the reference doesn't.
- // Apply the smoothing factor to the reference data.
- var smoothing = 1 - testAnalyser.smoothingTimeConstant;
- refFFT = refFFT.map(x => x * smoothing);
-
- var success = true;
-
- // First a basic sanity check that the time domain signals are
- // exactly the same for both analysers.
- success = Should("Time data", testSignal)
- .beCloseToArray(refSignal, 0) && success;
-
- success = Should("Linear FFT data after setting fftSize = " + testAnalyser.fftSize,
- testFFT)
- .beCloseToArray(refFFT, errorThreshold) && success;
-
- Should("*** Changing fftSize from " + initialFFTSize + " to " + finalFFTSize, success)
- .summarize(
- "correctly reset the smoothing state",
- "did not correctly reset the smoothing state");
- })
- .then(context.resume.bind(context));
-
- return context.startRendering();
- }
-
- audit.runTasks();
- </script>
- </body>
-</html>

Powered by Google App Engine
This is Rietveld 408576698