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

Unified Diff: LayoutTests/webaudio/audiobuffersource-loop-comprehensive.html

Issue 912803005: Looping AudioBufferSourceNodes stop only if duration is explicitly given. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Update according to review. Created 5 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
« no previous file with comments | « no previous file | LayoutTests/webaudio/audiobuffersource-loop-comprehensive-expected.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: LayoutTests/webaudio/audiobuffersource-loop-comprehensive.html
diff --git a/LayoutTests/webaudio/audiobuffersource-loop-comprehensive.html b/LayoutTests/webaudio/audiobuffersource-loop-comprehensive.html
index 1ddb02073c7279d0bea8418fbea25ab9815de685..b012b24eca3c282936a308aff0de19ff37e4e206 100644
--- a/LayoutTests/webaudio/audiobuffersource-loop-comprehensive.html
+++ b/LayoutTests/webaudio/audiobuffersource-loop-comprehensive.html
@@ -9,10 +9,6 @@
</head>
<body>
-
-<div id="description"></div>
-<div id="console"></div>
-
<script>
description("Tests AudioBufferSourceNode looping with a variety of loop points.");
@@ -136,14 +132,37 @@ var tests = [
expected: [0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7] },
// Start a loop with a duration longer than the buffer. The output should be the data from frame 1
-// to 6, and then looping from 3 to 5 until 30 frames have been played.
-{ description: "loop from 3 -> 6 with offset 1 for 31 frames",
+// to 6, and then looping from 3 to 5 until 20 frames have been played.
+{ description: "loop from 3 -> 6 with offset 1 for 20 frames",
loopStartFrame: 3,
loopEndFrame: 6,
playbackRate: 1,
offsetFrame: 1,
- durationFrames: 30,
- expected: [1, 2, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3] },
+ renderFrames: 30,
+ durationFrames: 20,
+ expected: [1, 2, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] },
+
+// Start a loop with a duration less than the length of the looping frames. The output should be
+// the data from frame 1 to 3, and then stopping because duration = 3
+{ description: "loop from 3 -> 8 with offset 1 for 3 frames",
+ loopStartFrame: 3,
+ loopEndFrame: 8,
+ playbackRate: 1,
+ offsetFrame: 1,
+ durationFrames: 3,
+ renderFrames: 30,
+ expected: [1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] },
+
+// Start a loop with a duration less than the length of the looping frames. The output should be
+// the data from frame 1 to 3, and then stopping because duration = 3
+{ description: "loop from 3 -> 8 with offset 7 for 3 frames",
+ loopStartFrame: 3,
+ loopEndFrame: 8,
+ playbackRate: 1,
+ offsetFrame: 7,
+ durationFrames: 3,
+ renderFrames: 30,
+ expected: [7, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }
];
@@ -170,7 +189,19 @@ function runLoopTest(context, testNumber, test) {
// Render each test one after the other, spaced apart by testSpacingSeconds.
var startTime = testNumber * testSpacingSeconds;
- if (test.renderFrames) {
+ // If durationFrames is given, run the test for the specified duration.
+ if (test.durationFrames) {
+ if (!test.renderFrames) {
+ testFailed("renderFrames is required for test " + testNumber + ": " + test.description);
+ } else {
+ if (test.durationFrames > testSpacingFrames || test.durationFrames < 0) {
+ testFailed("Test " + testNumber
+ + ": durationFrames (" + test.durationFrames + ") outside the range [0, "
+ + testSpacingFrames + "]");
+ }
+ source.start(startTime, offset, test.durationFrames / context.sampleRate);
+ }
+ } else if (test.renderFrames) {
var duration = test.renderFrames / context.sampleRate;
if (test.renderFrames > testSpacingFrames || test.renderFrames < 0) {
testFailed("Test " + testNumber
@@ -179,24 +210,12 @@ function runLoopTest(context, testNumber, test) {
}
source.start(startTime, offset);
source.stop(startTime + duration);
- } else if (test.durationFrames) {
- if (test.durationFrames > testSpacingFrames || test.durationFrames < 0) {
- testFailed("Test " + testNumber
- + ": durationFrames (" + test.durationFrames + ") outside the range [0, "
- + testSpacingFrames + "]");
- }
- source.start(startTime, offset, test.durationFrames / context.sampleRate);
} else {
- testFailed("Test " + testNumber + " must specify one of renderFrames or durationFrames");
+ testFailed("Test " + testNumber + " must specify renderFrames and possibly durationFrames");
}
}
function runTest() {
- if (window.testRunner) {
- testRunner.dumpAsText();
- testRunner.waitUntilDone();
- }
-
window.jsTestIsAsync = true;
// Create offline audio context.
« no previous file with comments | « no previous file | LayoutTests/webaudio/audiobuffersource-loop-comprehensive-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698