4 <script src="/media-resources/video-test.js"></script>
5 <script src="/media/resources/media-source/webm/segment-info.js"></script>
6 <script src="webkitmediasource-util.js"></script>
8 var segmentHelper = new MediaSourceTest.SegmentHelper(WebMSegmentInfo.testWebM);
10 function abortDuringInitSegment(runNextTestCase, videoTag)
12 segmentHelper.addSourceBuffer();
14 consoleWrite("Test aborting during initialization segment.");
16 var initSegment = segmentHelper.initSegment;
17 var partialInitSegment = initSegment.subarray(0, initSegment.length / 2);
19 consoleWrite("Appending partial initialization segment.");
20 segmentHelper.sourceBuffer.append(partialInitSegment);
22 consoleWrite("Aborting append.");
23 segmentHelper.sourceBuffer.abort();
25 consoleWrite("Appending full initialization segment.");
26 segmentHelper.appendInitSegment();
28 consoleWrite("Appending enough media segments to trigger loadeddata.");
29 segmentHelper.appendMediaSegment(0);
30 segmentHelper.appendMediaSegment(1);
32 var eventHandler = function(event)
34 event.target.removeEventListener('loadeddata', eventHandler);
37 videoTag.addEventListener('loadeddata', eventHandler);
39 consoleWrite("Unexpected exception " + e);
43 function abortDuringMediaSegment(runNextTestCase, videoTag)
45 segmentHelper.addSourceBuffer();
47 consoleWrite("Test aborting in the middle of a media segment.");
49 segmentHelper.appendInitSegment();
50 var mediaSegment = segmentHelper.mediaSegments[0];
51 var partialMediaSegment = mediaSegment.subarray(0, mediaSegment.length / 2);
53 consoleWrite("Appending partial media segment.");
54 segmentHelper.sourceBuffer.append(partialMediaSegment);
56 consoleWrite("Aborting append.");
57 segmentHelper.sourceBuffer.abort();
59 consoleWrite("Appending full media segment.");
60 segmentHelper.appendMediaSegment(0);
62 consoleWrite("Appending enough media segments to trigger loadeddata.");
63 segmentHelper.appendMediaSegment(1);
65 var eventHandler = function(event)
67 event.target.removeEventListener('loadedmetadata', eventHandler);
70 videoTag.addEventListener('loadedmetadata', eventHandler);
72 consoleWrite("Unexpected exception " + e);
80 waitForEvent('loadeddata');
81 waitForEvent('webkitsourceopen', "", false, false, mediaSource);
82 waitForEvent('playing');
83 waitForEvent('webkitsourceended', "", false, false, mediaSource);
84 waitForEvent('ended');
85 waitForEvent('emptied');
87 segmentHelper.init(video, function(success)
90 failTest("Failed to load segment data");
95 abortDuringInitSegment,
96 abortDuringMediaSegment,
99 MediaSourceTest.startSourceOpenTesting(video, testCases);
104 <body onload="onLoad()">
106 <p>Tests webkitSourceAbort() functionality</p>