Bug 1320705 - Add a test to check that decoding an Opus file does to produce a long tail. r=jya a=test-only
authorPaul Adenot <paul@paul.cx>
Fri, 27 Jan 2017 15:18:58 +0100
changeset 378179 a00b321f8c49214f37243f3abdd987b527038fba
parent 378178 022d0370a2beb5cb35981b781c52a5f7f2c13b00
child 378180 e8cb89ffc23fdb30f8fe238486fcf6c345a99525
push id1419
push userjlund@mozilla.com
push dateMon, 10 Apr 2017 20:44:07 +0000
treeherdermozilla-release@5e6801b73ef6 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjya, test-only
bugs1320705
milestone53.0a2
Bug 1320705 - Add a test to check that decoding an Opus file does to produce a long tail. r=jya a=test-only MozReview-Commit-ID: B4IlW1cWYlX
dom/media/webaudio/test/mochitest.ini
dom/media/webaudio/test/sweep-300-330-1sec.opus
dom/media/webaudio/test/test_decodeOpusTail.html
--- a/dom/media/webaudio/test/mochitest.ini
+++ b/dom/media/webaudio/test/mochitest.ini
@@ -13,16 +13,17 @@ support-files =
   corsServer.sjs
   invalid.txt
   layouttest-glue.js
   noaudio.webm
   small-shot-expected.wav
   small-shot-mono-expected.wav
   small-shot.ogg
   small-shot.mp3
+  sweep-300-330-1sec.opus
   ting-44.1k-1ch.ogg
   ting-44.1k-2ch.ogg
   ting-48k-1ch.ogg
   ting-48k-2ch.ogg
   ting-44.1k-1ch.wav
   ting-44.1k-2ch.wav
   ting-48k-1ch.wav
   ting-48k-2ch.wav
@@ -105,18 +106,19 @@ skip-if = (android_version == '18' && de
 [test_convolverNode.html]
 [test_convolverNode_mono_mono.html]
 [test_convolverNodeChannelCount.html]
 [test_convolverNodeDelay.html]
 [test_convolverNodeFiniteInfluence.html]
 [test_convolverNodePassThrough.html]
 [test_convolverNodeWithGain.html]
 [test_currentTime.html]
+[test_decodeAudioDataPromise.html]
 [test_decodeMultichannel.html]
-[test_decodeAudioDataPromise.html]
+[test_decodeOpusTail.html]
 [test_delayNode.html]
 [test_delayNodeAtMax.html]
 [test_delayNodeChannelChanges.html]
 skip-if = toolkit == 'android' # bug 1056706
 [test_delayNodeCycles.html]
 [test_delayNodePassThrough.html]
 [test_delayNodeSmallMaxDelay.html]
 [test_delayNodeTailIncrease.html]
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..619d1e08442c2f06a80bc7a4c68369f1012bc8b9
GIT binary patch
literal 8889
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
new file mode 100644
--- /dev/null
+++ b/dom/media/webaudio/test/test_decodeOpusTail.html
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML>
+<html>
+<meta charset="utf-8">
+<head>
+  <title>Regression test to check that opus files don't have a tail at the end.</title>
+  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+</head>
+<body>
+<pre id="test">
+<script class="testbody" type="text/javascript">
+SimpleTest.waitForExplicitFinish();
+
+// This gets a 1 second Opus file and decodes it to a buffer. The opus file is
+// decoded at 48kHz, and the OfflineAudioContext is also at 48kHz, no resampling
+// is taking place.
+fetch('sweep-300-330-1sec.opus')
+.then(function(response) { return response.arrayBuffer(); })
+.then(function(buffer) {
+  var off = new OfflineAudioContext(1, 128, 48000);
+  off.decodeAudioData(buffer, function(decoded) {
+    var pcm = decoded.getChannelData(0);
+    is(pcm.length, 48000, "The length of the decoded file is correct.");
+    SimpleTest.finish();
+  });
+});
+
+</script>