capture.html (1075B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <script src=/resources/testharness.js></script> 5 <script src=/resources/testharnessreport.js></script> 6 </head> 7 <body> 8 <script> 9 10 // Run captureStream() on different videos, and assert data is flowing. 11 12 function makeAsyncTest(filename) { 13 promise_test(async test => { 14 const video = document.createElement('video'); 15 video.src = "/media/" + filename; 16 video.onerror = this.unreached_func("<video> error"); 17 video.play(); 18 19 const stream = video.captureStream(); 20 21 await new Promise(r => stream.onaddtrack = r); 22 const recorder = new MediaRecorder(stream); 23 24 recorder.start(0); 25 const {data} = await new Promise(r => recorder.ondataavailable = r); 26 assert_true(data.size > 0, 'Recorded data size should be > 0'); 27 }), "<video>.captureStream() and assert data flows."; 28 } 29 30 generate_tests(makeAsyncTest, [ 31 [ "video-only", "test-v-128k-320x240-24fps-8kfr.webm" ], 32 [ "audio-only", "test-a-128k-44100Hz-1ch.webm" ], 33 [ "video+audio", "test-av-384k-44100Hz-1ch-320x240-30fps-10kfr.webm" ] 34 ]); 35 36 </script> 37 </body> 38 </html>