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

Side by Side Diff: LayoutTests/http/tests/media/media-source/mediasource-addsourcebuffer.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: Updated to be part 1 of a 3-sided blink->chromium->blink set of changes 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 mediasource_test(function(test, mediaElement, mediaSource) 13 mediasource_test(function(test, mediaElement, mediaSource)
14 { 14 {
15 mediaSource.endOfStream(); 15 mediaSource.endOfStream();
16 assert_throws("InvalidStateError", 16 assert_throws("InvalidStateError",
17 function() { mediaSource.addSourceBuffer(MediaSourceUt il.AUDIO_VIDEO_TYPE); }, 17 function() { mediaSource.addSourceBuffer(MediaSourceUt il.AUDIO_VIDEO_TYPE); },
18 "addSourceBuffer() threw an exception when in 'ended' state."); 18 "addSourceBuffer() threw an exception when in 'ended' state.");
19 test.done(); 19 test.done();
20 }, "Test addSourceBuffer() in 'ended' state."); 20 }, "Test addSourceBuffer() in 'ended' state.");
21 21
22 mediasource_test(function(test, mediaElement, mediaSource) 22 mediasource_test(function(test, mediaElement, mediaSource)
23 { 23 {
24 assert_throws("InvalidAccessError", 24 assert_throws("InvalidAccessError",
25 function() { mediaSource.addSourceBuffer(""); }, 25 function() { mediaSource.addSourceBuffer(""); },
26 "addSourceBuffer() threw an exception when passed an e mpty string."); 26 "addSourceBuffer() threw an exception when passed an e mpty string.");
27 test.done(); 27 test.done();
28 }, "Test addSourceBuffer() with empty type"); 28 }, "Test addSourceBuffer() with empty type");
29 29
30 mediasource_test(function(test, mediaElement, mediaSource) 30 mediasource_test(function(test, mediaElement, mediaSource)
31 { 31 {
32 assert_throws("NotSupportedError", 32 assert_throws("NotSupportedError",
33 function() { mediaSource.addSourceBuffer(null); }, 33 function() { mediaSource.addSourceBuffer(null); },
34 "addSourceBuffer() threw an exception when passed null ."); 34 "addSourceBuffer() threw an exception when passed null .");
35 test.done(); 35 test.done();
36 }, "Test addSourceBuffer() with null"); 36 }, "Test addSourceBuffer() with null");
37 37
38 mediasource_test(function(test, mediaElement, mediaSource) 38 mediasource_test(function(test, mediaElement, mediaSource)
39 { 39 {
40 assert_throws("NotSupportedError", 40 assert_throws("NotSupportedError",
41 function() { mediaSource.addSourceBuffer("invalidType" ); }, 41 function() { mediaSource.addSourceBuffer("invalidType" ); },
42 "addSourceBuffer() threw an exception for an unsupport ed type."); 42 "addSourceBuffer() threw an exception for an unsupport ed type.");
43 test.done(); 43 test.done();
44 }, "Test addSourceBuffer() with unsupported type"); 44 }, "Test addSourceBuffer() with unsupported type");
45 45
46 mediasource_test(function(test, mediaElement, mediaSource) 46 mediasource_test(function(test, mediaElement, mediaSource)
47 { 47 {
48 var mimetype = 'video/webm;codecs="vp8,vorbis"'; 48 var mimetype = 'video/webm;codecs="vp8,vorbis"';
49 49
50 assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is supported"); 50 assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is supported");
51 51
52 var sourceBuffer = mediaSource.addSourceBuffer(mimetype); 52 var sourceBuffer = mediaSource.addSourceBuffer(mimetype);
53 assert_true(sourceBuffer != null, "New SourceBuffer returned"); 53 assert_true(sourceBuffer != null, "New SourceBuffer returned");
54 assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceB uffer is in mediaSource.sourceBuffers"); 54 assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceB uffer is in mediaSource.sourceBuffers");
55 assert_equals(mediaSource.activeSourceBuffers[0], sourceBuffer, "S ourceBuffer is in mediaSource.activeSourceBuffers"); 55 assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBu ffer is not in mediaSource.activeSourceBuffers");
56 test.done(); 56 test.done();
57 }, "Test addSourceBuffer() with Vorbis and VP8"); 57 }, "Test addSourceBuffer() with Vorbis and VP8");
58 58
59 mediasource_test(function(test, mediaElement, mediaSource) 59 mediasource_test(function(test, mediaElement, mediaSource)
60 { 60 {
61 var videoMimetype = 'video/webm;codecs="vp8"'; 61 var videoMimetype = 'video/webm;codecs="vp8"';
62 var audioMimetype = 'audio/webm;codecs="vorbis"'; 62 var audioMimetype = 'audio/webm;codecs="vorbis"';
63 63
64 assert_true(MediaSource.isTypeSupported(videoMimetype), videoMimet ype + " is supported"); 64 assert_true(MediaSource.isTypeSupported(videoMimetype), videoMimet ype + " is supported");
65 assert_true(MediaSource.isTypeSupported(audioMimetype), audioMimet ype + " is supported"); 65 assert_true(MediaSource.isTypeSupported(audioMimetype), audioMimet ype + " is supported");
66 66
67 var sourceBufferA = mediaSource.addSourceBuffer(videoMimetype); 67 var sourceBufferA = mediaSource.addSourceBuffer(videoMimetype);
68 var sourceBufferB = mediaSource.addSourceBuffer(audioMimetype); 68 var sourceBufferB = mediaSource.addSourceBuffer(audioMimetype);
69 assert_equals(mediaSource.sourceBuffers[0], sourceBufferA, "source BufferA is in mediaSource.sourceBuffers"); 69 assert_equals(mediaSource.sourceBuffers[0], sourceBufferA, "source BufferA is in mediaSource.sourceBuffers");
70 assert_equals(mediaSource.activeSourceBuffers[0], sourceBufferA, " sourceBufferA is in mediaSource.activeSourceBuffers"); 70 assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBu fferA is not in mediaSource.activeSourceBuffers");
71 assert_equals(mediaSource.sourceBuffers[1], sourceBufferB, "source BufferB is in mediaSource.sourceBuffers"); 71 assert_equals(mediaSource.sourceBuffers[1], sourceBufferB, "source BufferB is in mediaSource.sourceBuffers");
72 assert_equals(mediaSource.activeSourceBuffers[1], sourceBufferB, " sourceBufferB is in mediaSource.activeSourceBuffers"); 72 assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBu fferB is not in mediaSource.activeSourceBuffers");
73 test.done(); 73 test.done();
74 }, "Test addSourceBuffer() with Vorbis and VP8 in separate SourceBuffe rs"); 74 }, "Test addSourceBuffer() with Vorbis and VP8 in separate SourceBuffe rs");
75 75
76 mediasource_test(function(test, mediaElement, mediaSource) 76 mediasource_test(function(test, mediaElement, mediaSource)
77 { 77 {
78 var mimetype = MediaSourceUtil.VIDEO_ONLY_TYPE; 78 var mimetype = MediaSourceUtil.VIDEO_ONLY_TYPE;
79 79
80 assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is supported"); 80 assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is supported");
81 81
82 var sourceBuffer = mediaSource.addSourceBuffer(mimetype); 82 var sourceBuffer = mediaSource.addSourceBuffer(mimetype);
83 assert_true(sourceBuffer != null, "New SourceBuffer returned"); 83 assert_true(sourceBuffer != null, "New SourceBuffer returned");
84 assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceB uffer is in mediaSource.sourceBuffers"); 84 assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceB uffer is in mediaSource.sourceBuffers");
85 assert_equals(mediaSource.activeSourceBuffers[0], sourceBuffer, "S ourceBuffer is in mediaSource.activeSourceBuffers"); 85 assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBu ffer is not in mediaSource.activeSourceBuffers");
86 test.done(); 86 test.done();
87 }, "Test addSourceBuffer() video only"); 87 }, "Test addSourceBuffer() video only");
88 88
89 mediasource_test(function(test, mediaElement, mediaSource) 89 mediasource_test(function(test, mediaElement, mediaSource)
90 { 90 {
91 var mimetype = MediaSourceUtil.AUDIO_ONLY_TYPE; 91 var mimetype = MediaSourceUtil.AUDIO_ONLY_TYPE;
92 92
93 assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is supported"); 93 assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is supported");
94 94
95 var sourceBuffer = mediaSource.addSourceBuffer(mimetype); 95 var sourceBuffer = mediaSource.addSourceBuffer(mimetype);
96 assert_true(sourceBuffer != null, "New SourceBuffer returned"); 96 assert_true(sourceBuffer != null, "New SourceBuffer returned");
97 assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceB uffer is in mediaSource.sourceBuffers"); 97 assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceB uffer is in mediaSource.sourceBuffers");
98 assert_equals(mediaSource.activeSourceBuffers[0], sourceBuffer, "S ourceBuffer is in mediaSource.activeSourceBuffers"); 98 assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBu ffer is not in mediaSource.activeSourceBuffers");
99 test.done(); 99 test.done();
100 }, "Test addSourceBuffer() audio only"); 100 }, "Test addSourceBuffer() audio only");
101 101
102 mediasource_test(function(test, mediaElement, mediaSource) 102 mediasource_test(function(test, mediaElement, mediaSource)
103 { 103 {
104 var mimetype = 'video/mp4;codecs="avc1.4D4001,mp4a.40.2"'; 104 var mimetype = 'video/mp4;codecs="avc1.4D4001,mp4a.40.2"';
105 105
106 assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is supported"); 106 assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is supported");
107 107
108 var sourceBuffer = mediaSource.addSourceBuffer(mimetype); 108 var sourceBuffer = mediaSource.addSourceBuffer(mimetype);
109 assert_true(sourceBuffer != null, "New SourceBuffer returned"); 109 assert_true(sourceBuffer != null, "New SourceBuffer returned");
110 assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceB uffer is in mediaSource.sourceBuffers"); 110 assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceB uffer is in mediaSource.sourceBuffers");
111 assert_equals(mediaSource.activeSourceBuffers[0], sourceBuffer, "S ourceBuffer is in mediaSource.activeSourceBuffers"); 111 assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBu ffer is not in mediaSource.activeSourceBuffers");
112 test.done(); 112 test.done();
113 }, "Test addSourceBuffer() with AAC and H.264"); 113 }, "Test addSourceBuffer() with AAC and H.264");
114 114
115 mediasource_test(function(test, mediaElement, mediaSource) 115 mediasource_test(function(test, mediaElement, mediaSource)
116 { 116 {
117 var videoMimetype = 'video/mp4;codecs="avc1.4D4001"'; 117 var videoMimetype = 'video/mp4;codecs="avc1.4D4001"';
118 var audioMimetype = 'audio/mp4;codecs="mp4a.40.2"'; 118 var audioMimetype = 'audio/mp4;codecs="mp4a.40.2"';
119 119
120 assert_true(MediaSource.isTypeSupported(videoMimetype), videoMimet ype + " is supported"); 120 assert_true(MediaSource.isTypeSupported(videoMimetype), videoMimet ype + " is supported");
121 assert_true(MediaSource.isTypeSupported(audioMimetype), audioMimet ype + " is supported"); 121 assert_true(MediaSource.isTypeSupported(audioMimetype), audioMimet ype + " is supported");
122 122
123 var sourceBufferA = mediaSource.addSourceBuffer(videoMimetype); 123 var sourceBufferA = mediaSource.addSourceBuffer(videoMimetype);
124 var sourceBufferB = mediaSource.addSourceBuffer(audioMimetype); 124 var sourceBufferB = mediaSource.addSourceBuffer(audioMimetype);
125 assert_equals(mediaSource.sourceBuffers[0], sourceBufferA, "source BufferA is in mediaSource.sourceBuffers"); 125 assert_equals(mediaSource.sourceBuffers[0], sourceBufferA, "source BufferA is in mediaSource.sourceBuffers");
126 assert_equals(mediaSource.activeSourceBuffers[0], sourceBufferA, " sourceBufferA is in mediaSource.activeSourceBuffers"); 126 assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBu fferA is not in mediaSource.activeSourceBuffers");
127 assert_equals(mediaSource.sourceBuffers[1], sourceBufferB, "source BufferB is in mediaSource.sourceBuffers"); 127 assert_equals(mediaSource.sourceBuffers[1], sourceBufferB, "source BufferB is in mediaSource.sourceBuffers");
128 assert_equals(mediaSource.activeSourceBuffers[1], sourceBufferB, " sourceBufferB is in mediaSource.activeSourceBuffers"); 128 assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBu fferB is not in mediaSource.activeSourceBuffers");
129 test.done(); 129 test.done();
130 }, "Test addSourceBuffer() with AAC and H.264 in separate SourceBuffer s"); 130 }, "Test addSourceBuffer() with AAC and H.264 in separate SourceBuffer s");
131 131
132 mediasource_test(function(test, mediaElement, mediaSource) 132 mediasource_test(function(test, mediaElement, mediaSource)
133 { 133 {
134 var reachedLimit = false; 134 var reachedLimit = false;
135 135
136 // The 20 here is an arbitrary upper limit to make sure the test te rminates. This test 136 // The 20 here is an arbitrary upper limit to make sure the test te rminates. This test
137 // assumes that implementations won't support more than 20 SourceBu ffers simultaneously. 137 // assumes that implementations won't support more than 20 SourceBu ffers simultaneously.
138 for (var i = 0; i < 20; ++i) { 138 for (var i = 0; i < 20; ++i) {
139 try { 139 try {
140 mediaSource.addSourceBuffer(MediaSourceUtil.AUDIO_VIDEO_TYP E); 140 mediaSource.addSourceBuffer(MediaSourceUtil.AUDIO_VIDEO_TYP E);
141 } catch(e) { 141 } catch(e) {
142 assert_equals(e.name, "QuotaExceededError"); 142 assert_equals(e.name, "QuotaExceededError");
143 reachedLimit = true; 143 reachedLimit = true;
144 break; 144 break;
145 } 145 }
146 } 146 }
147 assert_true(reachedLimit, "Reached SourceBuffer limit."); 147 assert_true(reachedLimit, "Reached SourceBuffer limit.");
148 test.done(); 148 test.done();
149 }, "Test addSourceBuffer() QuotaExceededError."); 149 }, "Test addSourceBuffer() QuotaExceededError.");
150 </script> 150 </script>
151 </body> 151 </body>
152 </html> 152 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698