gecko-dev/dom/media/mediasource/test/test_Sequence_mp4.html
Jean-Yves Avenard 88b7ec7f4b Bug 1293576: [MSE] P2. Fix mochitest. r=gerald
The mochitest relied that the video track was processed first. Additionally, change for the file with only a single video track as the previous video didn't have aligned segments, making the use of sequence mode useless.
We swap the segment around, which allow to more easily visually inspect the result (counter goes forward and then back)

MozReview-Commit-ID: 33PsrmRF1GL

--HG--
extra : rebase_source : e98a7714f81f5c7913091128b5ee04cf41c2d09b
2016-08-10 16:21:36 +10:00

40 lines
1.5 KiB
HTML

<!DOCTYPE html>
<html><head>
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
<title>MSE: Don't get stuck buffering for too long when we have frames to show</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="mediasource.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();
var receivedSourceOpen = false;
runWithMSE(function(ms, v) {
ms.addEventListener("sourceopen", function() {
ok(true, "Receive a sourceopen event");
ok(!receivedSourceOpen, "Should only receive one sourceopen for this test");
receivedSourceOpen = true;
var sb = ms.addSourceBuffer("video/mp4");
ok(sb, "Create a SourceBuffer");
sb.addEventListener('error', (e) => { ok(false, "Got Error: " + e); SimpleTest.finish(); });
sb.mode = 'sequence';
fetchAndLoad(sb, 'bipbop/bipbop_video', ['init'], '.mp4')
.then(fetchAndLoad.bind(null, sb, 'bipbop/bipbop_video', ['5'], '.m4s'))
.then(fetchAndLoad.bind(null, sb, 'bipbop/bipbop_video', ['2'], '.m4s'))
.then(function() {
is(v.buffered.length, 1, "Continuous buffered range");
is(v.buffered.start(0), 0, "Buffered range starts at 0");
ok(sb.timestampOffset > 0, "SourceBuffer.timestampOffset set to allow continuous range");
SimpleTest.finish();
});
});
});
</script>
</pre>
</body>
</html>