| Index: third_party/WebKit/LayoutTests/webaudio/realtimeanalyser-multiple-calls.html
|
| diff --git a/third_party/WebKit/LayoutTests/webaudio/realtimeanalyser-multiple-calls.html b/third_party/WebKit/LayoutTests/webaudio/realtimeanalyser-multiple-calls.html
|
| deleted file mode 100644
|
| index 50add4f29d36e3b25645e955d8d7e3c4c8489dd2..0000000000000000000000000000000000000000
|
| --- a/third_party/WebKit/LayoutTests/webaudio/realtimeanalyser-multiple-calls.html
|
| +++ /dev/null
|
| @@ -1,128 +0,0 @@
|
| -<!doctype html>
|
| -<html>
|
| - <head>
|
| - <script src="../resources/js-test.js"></script>
|
| - <script src="resources/compatibility.js"></script>
|
| - <script src="resources/audit-util.js"></script>
|
| - <script src="resources/audio-testing.js"></script>
|
| - <title>Test Multiple Calls to getFloatFrequencyData</title>
|
| - </head>
|
| -
|
| - <body>
|
| - <script>
|
| - description("Test AnalyserNode getFloatFrequencyData and getByteFrequencyData");
|
| - window.jsTestIsAsync = true;
|
| -
|
| - var sampleRate = 48000;
|
| - // Render enough data to run the test.
|
| - var renderFrames = 2*1024;
|
| - var renderDuration = renderFrames / sampleRate;
|
| -
|
| - var audit = Audit.createTaskRunner();
|
| -
|
| - audit.defineTask("test", function (done) {
|
| -
|
| - var context = new OfflineAudioContext(1, renderFrames, sampleRate);
|
| -
|
| - // Use sawtooth oscillator as the source because it has quite a bit of harmonic content.
|
| - // Otherwise, the type doesn't really matter.
|
| - var osc = context.createOscillator();
|
| - osc.type = "sawtooth";
|
| -
|
| - // Create an analyser with 256-point FFT. The FFT size doesn't really matter much.
|
| - var analyser = context.createAnalyser();
|
| - analyser.fftSize = 256;
|
| -
|
| - osc.connect(analyser);
|
| - analyser.connect(context.destination);
|
| -
|
| - var success = true;
|
| -
|
| - // Suspend after getting a full analyser frame. (Not really necessary, but it's nice that
|
| - // the frame doesn't include any initial zeroes.
|
| - var suspendFrame = analyser.fftSize;
|
| - context.suspend(suspendFrame / sampleRate).then(function () {
|
| - // Test successive calls to getFloatFrequencyData in the same rendering quantum.
|
| - var f1 = new Float32Array(analyser.frequencyBinCount);
|
| - var f2 = new Float32Array(analyser.frequencyBinCount);
|
| -
|
| - analyser.getFloatFrequencyData(f1);
|
| - analyser.getFloatFrequencyData(f2);
|
| -
|
| - success = Should("Second call to getFloatFrequencyData", f2, {
|
| - precision: 5
|
| - }).beEqualToArray(f1) && success;
|
| - }).then(context.resume.bind(context));
|
| -
|
| - suspendFrame += 128;
|
| - context.suspend(suspendFrame / sampleRate).then(function () {
|
| - // Test successive calls to getByteFrequencyData in the same rendering quantum.
|
| - var f1 = new Uint8Array(analyser.frequencyBinCount);
|
| - var f2 = new Uint8Array(analyser.frequencyBinCount);
|
| -
|
| - analyser.getByteFrequencyData(f1);
|
| - analyser.getByteFrequencyData(f2);
|
| -
|
| - success = Should("Second call to getByteFrequencyData", f2)
|
| - .beEqualToArray(f1) && success;
|
| - }).then(context.resume.bind(context));
|
| -
|
| - suspendFrame += 128;
|
| - context.suspend(suspendFrame / sampleRate).then(function () {
|
| - // Test calls to getFloatFrequencyData followed by getByteFrequencyData. The float data,
|
| - // when converted to byte values should be identical to the result from
|
| - // getByteFrequencyData.
|
| - var f1 = new Float32Array(analyser.frequencyBinCount);
|
| - var f2 = new Uint8Array(analyser.frequencyBinCount);
|
| -
|
| - analyser.getFloatFrequencyData(f1);
|
| - analyser.getByteFrequencyData(f2);
|
| -
|
| - var byteValuesFromFloat = convertFloatToByte(f1, analyser.minDecibels, analyser.maxDecibels);
|
| - success = Should("Output of getByteFrequencyData after getFloatFrequencyData",
|
| - byteValuesFromFloat)
|
| - .beEqualToArray(f2) && success;
|
| - }).then(context.resume.bind(context));
|
| -
|
| - suspendFrame += 128;
|
| - context.suspend(suspendFrame / sampleRate).then(function () {
|
| - // Test calls to getByteFrequencyData followed by getFloatFrequencyData. The float data,
|
| - // when converted to byte values should be identical to the result from
|
| - // getByteFrequencyData.
|
| - var f1 = new Uint8Array(analyser.frequencyBinCount);
|
| - var f2 = new Float32Array(analyser.frequencyBinCount);
|
| -
|
| - analyser.getByteFrequencyData(f1);
|
| - analyser.getFloatFrequencyData(f2);
|
| -
|
| - var byteValuesFromFloat = convertFloatToByte(f2, analyser.minDecibels, analyser.maxDecibels);
|
| - success = Should(
|
| - "Output of getFloatFrequenycData (converted to byte) after getByteFrequencyData",
|
| - f1)
|
| - .beEqualToArray(byteValuesFromFloat) && success;
|
| - }).then(context.resume.bind(context));
|
| -
|
| - osc.start();
|
| - context.startRendering().then(done);
|
| - });
|
| -
|
| - audit.defineTask("finish", function (done) {
|
| - finishJSTest();
|
| - done();
|
| - });
|
| -
|
| - audit.runTasks();
|
| -
|
| - // Convert the float frequency data (in dB), |floatFreqData|, to byte values using the dB
|
| - // limits |minDecibels| and |maxDecibels|. The new byte array is returned.
|
| - function convertFloatToByte(floatFreqData, minDecibels, maxDecibels) {
|
| - var scale = 255 / (maxDecibels - minDecibels);
|
| -
|
| - return floatFreqData.map(function (x) {
|
| - var value = Math.floor(scale * (x - minDecibels));
|
| - return Math.min(255, Math.max(0, value));
|
| - });
|
| - }
|
| - </script>
|
| - </body>
|
| -</html>
|
|
|