blob: 22a1ede38ae8f55b6e46d35fdd1040377e55cd1a [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title>audiobuffersource-negative-playbackrate-loop</title>
<script src="../resources/js-test.js"></script>
<script src="resources/audio-testing.js"></script>
<script src="resources/audiobuffersource-testing.js"></script>
<script>
var sampleRate = 44100.0;
var sourceFrames = 128;
var renderFrames = 10;
var testSpacingFrames = 0;
var startLoop = 100 / sampleRate;
var loopDuration = (renderFrames / 2) / sampleRate;
var endLoop = startLoop + loopDuration;
var tests = [{
description:"Test looping playback at -1 playbackRate",
offsetFrame:0,
renderFrames:renderFrames,
expected:[104, 103, 102, 101, 100, 104, 103, 102, 101, 100],
}];
function go() {
jsTestIsAsync = true;
context = new webkitOfflineAudioContext(1, renderFrames, sampleRate);
var bufferSource = context.createBufferSource();
bufferSource.buffer = createRamp(context, 0, 127, sourceFrames);
bufferSource.connect(context.destination);
bufferSource.playbackRate.value = -1;
bufferSource.loop = true;
bufferSource.loopStart = startLoop;
bufferSource.loopEnd = endLoop;
bufferSource.start(0, startLoop, loopDuration);
bufferSource.stop(loopDuration * 2);
context.oncomplete = checkAllTests;
context.startRendering();
}
</script>
</head>
<body onload="go()">
</body>
</html>