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

Unified Diff: third_party/WebKit/LayoutTests/webaudio/codec-tests/webm/webm-decode.html

Issue 2655783004: Decode entire in-memory file for WebAudio (Closed)
Patch Set: Use int, not size_t. Created 3 years, 10 months 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/codec-tests/webm/webm-decode.html
diff --git a/third_party/WebKit/LayoutTests/webaudio/codec-tests/webm/webm-decode.html b/third_party/WebKit/LayoutTests/webaudio/codec-tests/webm/webm-decode.html
new file mode 100644
index 0000000000000000000000000000000000000000..1f3232a6030053bd66aa16723276ff1e4e82fd30
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/webaudio/codec-tests/webm/webm-decode.html
@@ -0,0 +1,61 @@
+<!doctype html>
+<html>
+
+<head>
+ <title>Test webm Decoding</title>
+ <script src="../../../resources/testharness.js"></script>
+ <script src="../../../resources/testharnessreport.js"></script>
+ <script src="../../resources/audit-util.js"></script>
+ <script src="../../resources/audit.js"></script>
+ <script src="../../resources/buffer-loader.js"></script>
+</head>
+
+<body>
+ <script>
+ let audit = Audit.createTaskRunner();
+ let decodedAudio;
+ let expectedAudio;
+
+ audit.define('test', function(task, should) {
+ task.describe('Test webm decoding');
+
+ let context = new AudioContext();
+
+ let bufferLoader = new BufferLoader(
+ context, ['webm-decode-expected.wav', 'test-webm.webm'],
+ function(bufferList) {
+ expectedAudio = bufferList[0];
+ decodedAudio = bufferList[1];
+
+ // Verify that we have the right number of channels and frames.
+ should(decodedAudio.numberOfChannels, 'Number of channels')
+ .beEqualTo(expectedAudio.numberOfChannels);
+ should(decodedAudio.length, 'Decoded number of frames')
+ .beEqualTo(expectedAudio.length);
+
+ // Verify that the actual data matches the expected data very
+ // closely.
+ for (let c = 0; c < expectedAudio.numberOfChannels; ++c) {
+ let snrdB = 10 *
+ Math.log10(computeSNR(
+ decodedAudio.getChannelData(c),
+ expectedAudio.getChannelData(c)));
+ should(snrdB, 'SNR between actual expected channel ' + c)
+ .beGreaterThanOrEqualTo(109.56);
+ should(decodedAudio.getChannelData(c), 'Decoded channel ' + c)
+ .beCloseToArray(
+ expectedAudio.getChannelData(c),
+ {absoluteThreshold: 4.0234e-5});
+ }
+
+ task.done();
+ });
+
+ bufferLoader.load();
+ });
+
+ audit.run();
+ </script>
+</body>
+
+</html>

Powered by Google App Engine
This is Rietveld 408576698