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

Side by Side Diff: content/test/data/media/mediarecorder_test.html

Issue 2585533002: MediaRecorder (cleanup): support mime type video/x-matroska and codec=avc1 to the list (Closed)
Patch Set: Created 4 years 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 <title>MediaStream Recoder Browser Test (w/ MediaSource)</title> 4 <title>MediaStream Recoder Browser Test (w/ MediaSource)</title>
5 </head> 5 </head>
6 <body> 6 <body>
7 <div> Record Real-Time video content browser test.</div> 7 <div> Record Real-Time video content browser test.</div>
8 <video id="video" autoplay></video> 8 <video id="video" autoplay></video>
9 <video id="remoteVideo" autoplay></video> 9 <video id="remoteVideo" autoplay></video>
10 </body> 10 </body>
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 return failTest(err.toString()); 161 return failTest(err.toString());
162 }) 162 })
163 .then(function() { 163 .then(function() {
164 reportTestSuccess(); 164 reportTestSuccess();
165 }); 165 });
166 } 166 }
167 167
168 // Tests that when MediaRecorder's start(0) function is called, some data is 168 // Tests that when MediaRecorder's start(0) function is called, some data is
169 // made available by media recorder via dataavailable events, containing non 169 // made available by media recorder via dataavailable events, containing non
170 // empty blob data. 170 // empty blob data.
171 function testStartAndDataAvailable(codec) { 171 function testStartAndDataAvailable(mimeType) {
172 var videoSize = 0; 172 var videoSize = 0;
173 var emptyBlobs = 0; 173 var emptyBlobs = 0;
174 var timeStamps = []; 174 var timeStamps = [];
175 const mimeType = codec ? "video/webm;codecs=" + String(codec) : "";
176 navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS) 175 navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS)
177 .then(function(stream) { 176 .then(function(stream) {
178 return createAndStartMediaRecorder(stream, mimeType); 177 return createAndStartMediaRecorder(stream, mimeType);
179 }) 178 })
180 .then(function(recorder) { 179 .then(function(recorder) {
181 // Save history of Blobs received via dataavailable. 180 // Save history of Blobs received via dataavailable.
182 recorder.ondataavailable = function(event) { 181 recorder.ondataavailable = function(event) {
183 timeStamps.push(event.timeStamp); 182 timeStamps.push(event.timeStamp);
184 if (event.data.size > 0) 183 if (event.data.size > 0)
185 videoSize += event.data.size; 184 videoSize += event.data.size;
(...skipping 14 matching lines...) Expand all
200 .catch(function(err) { 199 .catch(function(err) {
201 return failTest(err.toString()); 200 return failTest(err.toString());
202 }) 201 })
203 .then(function() { 202 .then(function() {
204 reportTestSuccess(); 203 reportTestSuccess();
205 }); 204 });
206 } 205 }
207 206
208 // Tests that when MediaRecorder's start(timeSlice) is called, some data 207 // Tests that when MediaRecorder's start(timeSlice) is called, some data
209 // available events are fired containing non empty blob data. 208 // available events are fired containing non empty blob data.
210 function testStartWithTimeSlice(codec) { 209 function testStartWithTimeSlice(mimeType) {
211 var videoSize = 0; 210 var videoSize = 0;
212 var emptyBlobs = 0; 211 var emptyBlobs = 0;
213 var timeStamps = []; 212 var timeStamps = [];
214 const mimeType = codec ? "video/webm;codecs=" + String(codec) : "";
215 navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS) 213 navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS)
216 .then(function(stream) { 214 .then(function(stream) {
217 return createAndStartMediaRecorder(stream, mimeType, DEFAULT_TIME_SLICE); 215 return createAndStartMediaRecorder(stream, mimeType,
216 DEFAULT_TIME_SLICE);
218 }) 217 })
219 .then(function(recorder) { 218 .then(function(recorder) {
220 recorder.ondataavailable = function(event) { 219 recorder.ondataavailable = function(event) {
221 timeStamps.push(event.timeStamp); 220 timeStamps.push(event.timeStamp);
222 if (event.data.size > 0) 221 if (event.data.size > 0)
223 videoSize += event.data.size; 222 videoSize += event.data.size;
224 else 223 else
225 emptyBlobs += 1; 224 emptyBlobs += 1;
226 }; 225 };
227 }) 226 })
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 .then(function(stream) { 279 .then(function(stream) {
281 return createMediaRecorder(stream, DEFAULT_RECORDER_MIME_TYPE); 280 return createMediaRecorder(stream, DEFAULT_RECORDER_MIME_TYPE);
282 }) 281 })
283 .then(function(recorder) { 282 .then(function(recorder) {
284 assertThrows(function() {recorder.resume()}, 'Calling resume() in' + 283 assertThrows(function() {recorder.resume()}, 'Calling resume() in' +
285 ' inactive state should cause a DOM error'); 284 ' inactive state should cause a DOM error');
286 }); 285 });
287 } 286 }
288 287
289 // Tests that MediaRecorder sends data blobs when resume() is called. 288 // Tests that MediaRecorder sends data blobs when resume() is called.
290 function testResumeAndDataAvailable(codec) { 289 function testResumeAndDataAvailable(mimeType) {
291 var videoSize = 0; 290 var videoSize = 0;
292 var emptyBlobs = 0; 291 var emptyBlobs = 0;
293 const mimeType = codec ? "video/webm;codecs=" + String(codec) : "";
294 navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS) 292 navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS)
295 .then(function(stream) { 293 .then(function(stream) {
296 return createAndStartMediaRecorder(stream, mimeType); 294 return createAndStartMediaRecorder(stream, mimeType);
297 }) 295 })
298 .then(function(recorder) { 296 .then(function(recorder) {
299 recorder.pause(); 297 recorder.pause();
300 recorder.ondataavailable = function(event) { 298 recorder.ondataavailable = function(event) {
301 if (event.data.size > 0) { 299 if (event.data.size > 0) {
302 videoSize += event.data.size; 300 videoSize += event.data.size;
303 } else { 301 } else {
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 .then(function(stream) { 404 .then(function(stream) {
407 return createMediaRecorder(stream, DEFAULT_RECORDER_MIME_TYPE); 405 return createMediaRecorder(stream, DEFAULT_RECORDER_MIME_TYPE);
408 }) 406 })
409 .then(function(recorder) { 407 .then(function(recorder) {
410 assertThrows(function() {recorder.pause()}, 'Calling pause() in' + 408 assertThrows(function() {recorder.pause()}, 'Calling pause() in' +
411 ' inactive state should cause a DOM error'); 409 ' inactive state should cause a DOM error');
412 }); 410 });
413 } 411 }
414 412
415 // Tests that a remote peer connection stream can be successfully recorded. 413 // Tests that a remote peer connection stream can be successfully recorded.
416 function testRecordRemotePeerConnection(codec) { 414 function testRecordRemotePeerConnection(mimeType) {
417 var videoSize = 0; 415 var videoSize = 0;
418 var timeStamps = []; 416 var timeStamps = [];
419 const mimeType = codec ? "video/webm;codecs=" + String(codec) : "";
420 navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS) 417 navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS)
421 .then(function(localStream) { 418 .then(function(localStream) {
422 return setupPeerConnection(localStream); 419 return setupPeerConnection(localStream);
423 }) 420 })
424 .then(function(remoteStream) { 421 .then(function(remoteStream) {
425 return createMediaRecorder(remoteStream, mimeType); 422 return createMediaRecorder(remoteStream, mimeType);
426 }) 423 })
427 .then(function(recorder) { 424 .then(function(recorder) {
428 recorder.ondataavailable = function(event) { 425 recorder.ondataavailable = function(event) {
429 timeStamps.push(event.timeStamp); 426 timeStamps.push(event.timeStamp);
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 return failTest(err.toString()); 589 return failTest(err.toString());
593 }) 590 })
594 .then(function() { 591 .then(function() {
595 reportTestSuccess(); 592 reportTestSuccess();
596 }); 593 });
597 } 594 }
598 595
599 </script> 596 </script>
600 </body> 597 </body>
601 </html> 598 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698