blob: 5ca38b8237a8ba52a5e4633dddbd951064d8df9a [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 quality;
var nextRequest = 0;
var sampleCount = 10;
var abortAfter = 4;
var droppedAmount = sampleCount - abortAfter - 1; // 1 sample will be aborted
if (window.internals)
internals.initializeMockMediaSource();
function runTest() {
findMediaElement();
source = new MediaSource();
source.addEventListener('sourceopen', startLoad);
run('video.src = URL.createObjectURL(source)');
}
function startLoad() {
sourceBuffer = source.addSourceBuffer('video/mock; codecs="mock"');
sourceBuffer.addEventListener('updateend', sourceUpdated);
run('quality = video.getVideoPlaybackQuality()');
testExpected('quality.droppedVideoFrames', 0);
// Make an init segment with 1 video track
var init = makeAInit(0, [makeATrack(1, 'mock', TRACK_KIND.VIDEO)]);
sourceBuffer.appendBuffer(init);
}
function sourceUpdated() {
if (nextRequest == sampleCount) {
finishTest();
return;
}
sourceBuffer.appendBuffer(
makeASample(nextRequest, nextRequest, 1, 1, 1,
(nextRequest == 0) ? SAMPLE_FLAG.SYNC : SAMPLE_FLAG.NONE
));
if (nextRequest == abortAfter)
sourceBuffer.abort();
++nextRequest;
}
function finishTest() {
testExpected('video.duration', abortAfter);
run('quality = video.getVideoPlaybackQuality()');
testExpected('quality.droppedVideoFrames', droppedAmount);
endTest();
}
</script>
</head>
<body onload="runTest()">
<video></video>
</body>
</html>