Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Side by Side Diff: LayoutTests/http/tests/media/media-source/mediasource-sourcebufferlist.html

Issue 552943002: MSE: Start letting SourceBuffer begin to do initialization segment received algorithm (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebased. Addressed philipj@'s PS5 comments. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <script src="/w3c/resources/testharness.js"></script> 4 <script src="/w3c/resources/testharness.js"></script>
5 <script src="/w3c/resources/testharnessreport.js"></script> 5 <script src="/w3c/resources/testharnessreport.js"></script>
6 <script src="mediasource-util.js"></script> 6 <script src="mediasource-util.js"></script>
7 7
8 <link rel='stylesheet' href='/w3c/resources/testharness.css'> 8 <link rel='stylesheet' href='/w3c/resources/testharness.css'>
9 </head> 9 </head>
10 <body> 10 <body>
11 <div id="log"></div> 11 <div id="log"></div>
12 <script> 12 <script>
13 function verifySourceBufferLists(mediaSource, expected) 13 function verifySourceBufferLists(mediaSource, expected)
14 { 14 {
15 assert_equals(mediaSource.sourceBuffers.length, expected.length, " sourceBuffers length"); 15 assert_equals(mediaSource.sourceBuffers.length, expected.length, " sourceBuffers length");
16 assert_equals(mediaSource.activeSourceBuffers.length, expected.len gth, "activeSourceBuffers length"); 16 assert_equals(mediaSource.activeSourceBuffers.length, 0, "activeSo urceBuffers length");
17 for (var i = 0; i < expected.length; ++i) { 17 for (var i = 0; i < expected.length; ++i)
18 assert_equals(mediaSource.sourceBuffers[i], expected[i], "Verify ing mediaSource.sourceBuffers[" + i + "]"); 18 assert_equals(mediaSource.sourceBuffers[i], expected[i], "Verify ing mediaSource.sourceBuffers[" + i + "]");
19 assert_equals(mediaSource.activeSourceBuffers[i], expected[i], " Verifying mediaSource.activeSourceBuffers[" + i + "]");
20 }
21 } 19 }
22 20
23 mediasource_test(function(test, mediaElement, mediaSource) 21 mediasource_test(function(test, mediaElement, mediaSource)
24 { 22 {
25 test.expectEvent(mediaSource.sourceBuffers, "addsourcebuffer", "so urceBuffers"); 23 test.expectEvent(mediaSource.sourceBuffers, "addsourcebuffer", "so urceBuffers");
26 test.expectEvent(mediaSource.activeSourceBuffers, "addsourcebuffer ", "activeSourceBuffers");
27 var sourceBufferA = mediaSource.addSourceBuffer(MediaSourceUtil.VI DEO_ONLY_TYPE); 24 var sourceBufferA = mediaSource.addSourceBuffer(MediaSourceUtil.VI DEO_ONLY_TYPE);
28 var sourceBufferB = null; 25 var sourceBufferB = null;
29 26
30 test.waitForExpectedEvents(function() 27 test.waitForExpectedEvents(function()
31 { 28 {
32 test.expectEvent(mediaSource.sourceBuffers, "addsourcebuffer", "sourceBuffers"); 29 test.expectEvent(mediaSource.sourceBuffers, "addsourcebuffer", "sourceBuffers");
33 test.expectEvent(mediaSource.activeSourceBuffers, "addsourcebu ffer", "activeSourceBuffers");
34 sourceBufferB = mediaSource.addSourceBuffer(MediaSourceUtil.AU DIO_ONLY_TYPE); 30 sourceBufferB = mediaSource.addSourceBuffer(MediaSourceUtil.AU DIO_ONLY_TYPE);
35 31
36 verifySourceBufferLists(mediaSource, [sourceBufferA, sourceBuf ferB]); 32 verifySourceBufferLists(mediaSource, [sourceBufferA, sourceBuf ferB]);
37 }); 33 });
38 34
39 test.waitForExpectedEvents(function() 35 test.waitForExpectedEvents(function()
40 { 36 {
41 test.expectEvent(mediaSource.activeSourceBuffers, "removesourc ebuffer", "activeSourceBuffers");
42 test.expectEvent(mediaSource.sourceBuffers, "removesourcebuffe r", "sourceBuffers"); 37 test.expectEvent(mediaSource.sourceBuffers, "removesourcebuffe r", "sourceBuffers");
43 mediaSource.removeSourceBuffer(sourceBufferA); 38 mediaSource.removeSourceBuffer(sourceBufferA);
44 39
45 verifySourceBufferLists(mediaSource, [sourceBufferB]); 40 verifySourceBufferLists(mediaSource, [sourceBufferB]);
46 41
47 test.expectEvent(mediaSource.sourceBuffers, "addsourcebuffer", "sourceBuffers"); 42 test.expectEvent(mediaSource.sourceBuffers, "addsourcebuffer", "sourceBuffers");
48 test.expectEvent(mediaSource.activeSourceBuffers, "addsourcebu ffer", "activeSourceBuffers");
49 sourceBufferA = mediaSource.addSourceBuffer(MediaSourceUtil.VI DEO_ONLY_TYPE); 43 sourceBufferA = mediaSource.addSourceBuffer(MediaSourceUtil.VI DEO_ONLY_TYPE);
50 44
51 verifySourceBufferLists(mediaSource, [sourceBufferB, sourceBuf ferA]); 45 verifySourceBufferLists(mediaSource, [sourceBufferB, sourceBuf ferA]);
52 }); 46 });
53 47
54 test.waitForExpectedEvents(function() 48 test.waitForExpectedEvents(function()
55 { 49 {
56 test.done(); 50 test.done();
57 }); 51 });
58 }, "Test SourceBufferList event dispatching."); 52 }, "Test SourceBufferList event dispatching.");
59 53
60 mediasource_test(function(test, mediaElement, mediaSource) 54 mediasource_test(function(test, mediaElement, mediaSource)
61 { 55 {
62 test.expectEvent(mediaSource.sourceBuffers, "addsourcebuffer", "so urceBuffers"); 56 test.expectEvent(mediaSource.sourceBuffers, "addsourcebuffer", "so urceBuffers");
63 test.expectEvent(mediaSource.activeSourceBuffers, "addsourcebuffer ", "activeSourceBuffers");
64 test.expectEvent(mediaSource.sourceBuffers, "addsourcebuffer", "so urceBuffers"); 57 test.expectEvent(mediaSource.sourceBuffers, "addsourcebuffer", "so urceBuffers");
65 test.expectEvent(mediaSource.activeSourceBuffers, "addsourcebuffer ", "activeSourceBuffers");
66 var sourceBufferA = mediaSource.addSourceBuffer(MediaSourceUtil.VI DEO_ONLY_TYPE); 58 var sourceBufferA = mediaSource.addSourceBuffer(MediaSourceUtil.VI DEO_ONLY_TYPE);
67 var sourceBufferB = mediaSource.addSourceBuffer(MediaSourceUtil.AU DIO_ONLY_TYPE); 59 var sourceBufferB = mediaSource.addSourceBuffer(MediaSourceUtil.AU DIO_ONLY_TYPE);
68 60
69 verifySourceBufferLists(mediaSource, [sourceBufferA, sourceBufferB ]); 61 verifySourceBufferLists(mediaSource, [sourceBufferA, sourceBufferB ]);
70 62
71 test.waitForExpectedEvents(function() 63 test.waitForExpectedEvents(function()
72 { 64 {
73 verifySourceBufferLists(mediaSource, [sourceBufferA, sourceBuf ferB]); 65 verifySourceBufferLists(mediaSource, [sourceBufferA, sourceBuf ferB]);
74 66
75 // Force the media element to close the MediaSource object. 67 // Force the media element to close the MediaSource object.
76 test.expectEvent(mediaSource.activeSourceBuffers, "removesourc ebuffer", "activeSourceBuffers");
77 test.expectEvent(mediaSource.sourceBuffers, "removesourcebuffe r", "sourceBuffers"); 68 test.expectEvent(mediaSource.sourceBuffers, "removesourcebuffe r", "sourceBuffers");
78 test.expectEvent(mediaSource, "sourceclose", "mediaSource clos ing"); 69 test.expectEvent(mediaSource, "sourceclose", "mediaSource clos ing");
70 test.expectEvent(mediaElement, "error", "mediaElement error lo ading");
79 mediaElement.src = ""; 71 mediaElement.src = "";
80 }); 72 });
81 73
82 test.waitForExpectedEvents(function() 74 test.waitForExpectedEvents(function()
83 { 75 {
76 assert_equals(mediaElement.error.code, MediaError.MEDIA_ERR_SR C_NOT_SUPPORTED, "Expected error code");
84 assert_equals(mediaSource.readyState, "closed", "mediaSource i s closed."); 77 assert_equals(mediaSource.readyState, "closed", "mediaSource i s closed.");
85 78
86 verifySourceBufferLists(mediaSource, []); 79 verifySourceBufferLists(mediaSource, []);
87 test.done(); 80 test.done();
88 }); 81 });
89 }, "Test that only 1 removesourcebuffer event fires on each SourceBuff erList when the MediaSource closes."); 82 }, "Test that only 1 removesourcebuffer event fires on sourceBuffers w hen the MediaSource closes.");
90 83
84 mediasource_testafterdataloaded(function(test, mediaElement, mediaSour ce, segmentInfo, sourceBuffer, mediaData)
85 {
86 // FIXME: Test two activeSourceBuffers, either demuxed or once mul titrack is supported.
87 var initSegment = MediaSourceUtil.extractSegmentData(mediaData, se gmentInfo.init);
88
89 test.expectEvent(sourceBuffer, "updateend", "initSegment append en ded.");
90 test.expectEvent(mediaElement, "loadedmetadata", "loadedmetadata d one.");
91 sourceBuffer.appendBuffer(initSegment);
92
93 test.waitForExpectedEvents(function()
94 {
95 assert_equals(mediaSource.sourceBuffers.length, 1, "mediaSourc e sourceBuffers");
96 assert_equals(mediaSource.activeSourceBuffers.length, 1, "medi aSource activeSourceBuffers");
97
98 // Force the media element to close the MediaSource object.
99 test.expectEvent(mediaSource.sourceBuffers, "removesourcebuffe r", "sourcebuffers");
100 test.expectEvent(mediaSource.activeSourceBuffers, "removesourc ebuffer", "activesourcebuffers");
101 test.expectEvent(mediaSource, "sourceclose", "mediaSource clos ing");
102 test.expectEvent(mediaElement, "error", "mediaElement error lo ading");
103 mediaElement.src = "";
104 });
105
106 test.waitForExpectedEvents(function()
107 {
108 assert_equals(mediaElement.error.code, MediaError.MEDIA_ERR_SR C_NOT_SUPPORTED, "Expected error code");
109 assert_equals(mediaSource.readyState, "closed", "mediaSource i s closed.");
110 assert_equals(mediaSource.sourceBuffers.length, 0, "mediaSourc e sourceBuffers");
111 assert_equals(mediaSource.activeSourceBuffers.length, 0, "medi aSource activeSourceBuffers");
112 test.done();
113 });
114 }, "Test removesourcebuffer event firing on sourceBuffers and activeSo urceBuffers when MediaSource closes.", { allow_media_element_error: true } );
91 </script> 115 </script>
92 </body> 116 </body>
93 </html> 117 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698