diff options
Diffstat (limited to 'dom/media/mediasource/test/test_AbortAfterPartialMediaSegment.html')
-rw-r--r-- | dom/media/mediasource/test/test_AbortAfterPartialMediaSegment.html | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/dom/media/mediasource/test/test_AbortAfterPartialMediaSegment.html b/dom/media/mediasource/test/test_AbortAfterPartialMediaSegment.html new file mode 100644 index 0000000000..4c695f48c7 --- /dev/null +++ b/dom/media/mediasource/test/test_AbortAfterPartialMediaSegment.html @@ -0,0 +1,62 @@ +<!DOCTYPE HTML> +<html> +<head> + <title>MSE: can properly resume after a partial media segment header followed by abort </title> + <script 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(); + +const VIDEO_CODEC_STRING = 'video/webm; codecs="vp09.00.51.08.01.01.01.01"'; + +const logError = (error) => { + console.error(error, error.message); + ok(false, "should not reach here"); +}; + +runWithMSE(async (ms, v) => { + await once(ms, "sourceopen"); + + const supported = MediaSource.isTypeSupported(VIDEO_CODEC_STRING); + if (!supported) { + ok(true, "vp9 isn't supported on this platform, abort"); + SimpleTest.finish(); + return; + } + const sb = ms.addSourceBuffer(VIDEO_CODEC_STRING); + + const arrayBuffer = await fetchWithXHR("1516754.webm"); + info("- append init segment, a media segment and a partial media segment header -"); + sb.appendBuffer(new Uint8Array(arrayBuffer, 0, 87355 + 3000)); + + info("- wait for updateend -"); + await once(sb, "updateend"); + + // start seeking. + v.currentTime = 11; + v.addEventListener("seeked", () => { + info("- seek completed -"); + SimpleTest.finish(); + }); + + sb.abort(); + + info("- append init segment -"); + sb.appendBuffer(new Uint8Array(arrayBuffer, 0, 3150)); + info("- wait for updateend -"); + await once(sb, "updateend"); + info("- append media segment 10-15s -"); + sb.appendBuffer(new Uint8Array(arrayBuffer, 159968, 72931)); + + // We now wait for seek to complete +}); + +</script> +</pre> +</body> +</html> |