blob: ce6799920d1d8f53550dd5c6fff5d1b973e303b7 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title>mock-media-source</title>
<script src="mock-media-source.js"></script>
<script src="../video-test.js"></script>
<script>
var source;
var sourceBuffer;
var initSegment;
if (window.internals)
internals.initializeMockMediaSource();
function runTest() {
findMediaElement();
source = new MediaSource();
waitForEventOn(source, 'sourceopen', sourceOpen);
waitForEventOn(source, 'sourceended', sourceEnded);
run('video.src = URL.createObjectURL(source)');
}
function sourceOpen() {
run('sourceBuffer = source.addSourceBuffer("video/mock; codecs=mock")');
waitForEventOn(sourceBuffer, 'updateend', firstUpdate, false, true);
initSegment = makeAInit(100, [
makeATrack(1, 'mock', TRACK_KIND.VIDEO),
]);
run('sourceBuffer.appendBuffer(initSegment)');
}
function sourceEnded() {
if (!expected)
logResult(Failed, 'Unexpected "sourceended" event');
endTest();
}
function firstUpdate() {
consoleWrite('Test that a replacement initialization segment containing a track with the same codec but a different trackID succeeds.')
waitForEventOn(sourceBuffer, 'updateend', secondUpdate, false, true);
initSegment = makeAInit(100, [
makeATrack(2, 'mock', TRACK_KIND.VIDEO),
]);
run('sourceBuffer.appendBuffer(initSegment)');
}
function secondUpdate() {
consoleWrite('Test that a replacement initialization segment containing a track with a different codec but the same trackID fails.')
waitForEventOn(sourceBuffer, 'error');
waitForEventOn(sourceBuffer, 'updateend');
expected = true;
initSegment = makeAInit(100, [
makeATrack(2, '!moc', TRACK_KIND.VIDEO),
]);
run('sourceBuffer.appendBuffer(initSegment)');
}
</script>
</head>
<body onload="runTest()">
<video></video>
</body>
</html>