Index: third_party/WebKit/LayoutTests/webaudio/hrtf-database.html |
diff --git a/third_party/WebKit/LayoutTests/webaudio/hrtf-database.html b/third_party/WebKit/LayoutTests/webaudio/hrtf-database.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..fc2dab3ec0bdae888606271a2cba95dc04f365b5 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/webaudio/hrtf-database.html |
@@ -0,0 +1,63 @@ |
+<!doctype html> |
+<html> |
+ <head> |
+ <title>Test FLAC-encoded HRTF databse</title> |
+ <script src="../resources/testharness.js"></script> |
+ <script src="../resources/testharnessreport.js"></script> |
+ <script src="resources/audit.js"></script> |
+ <script src="resources/buffer-loader.js"></script> |
+ </head> |
+ |
+ <body> |
+ <script> |
+ // This MUST be the sample rate used by the HTRF database! |
+ var sampleRate = 44100; |
+ |
+ var context; |
+ var wavBuffer; |
+ var flacBuffer; |
+ |
+ var audit = Audit.createTaskRunner(); |
+ |
+ audit.define("loadfiles", function (task, should) { |
+ task.describe("Load HRTF database files"); |
+ |
+ // Any valid context with the right sample rate will do. |
+ context = new OfflineAudioContext(1, 1, sampleRate); |
+ |
+ var bufferLoader = new BufferLoader( |
+ context, [ |
+ "../../Source/platform/audio/resources/Composite.wav", |
+ "../../Source/platform/audio/resources/Composite.flac", |
+ ], |
+ function (bufferList) { |
+ should(bufferList.length, "Number of buffers loaded") |
+ .beEqualTo(2); |
+ wavBuffer = bufferList[0]; |
+ flacBuffer = bufferList[1]; |
+ task.done(); |
+ }); |
+ |
+ bufferLoader.load(); |
+ }); |
+ |
+ audit.define("verify-flac", function (task, should) { |
+ task.describe("Verify FLAC-encoded HRTF database matches original"); |
+ |
+ should(flacBuffer.numberOfChannels, "Number of FLAC channels") |
+ .beEqualTo(wavBuffer.numberOfChannels); |
+ |
+ for (var k = 0; k < wavBuffer.numberOfChannels; ++k) { |
+ should(flacBuffer.getChannelData(k), |
+ "FLAC-encoded HRTF database channel " + k |
+ ) |
+ .beEqualToArray(wavBuffer.getChannelData(k)); |
+ } |
+ |
+ task.done(); |
+ }); |
+ |
+ audit.run(); |
+ </script> |
+ </body> |
+</html> |