test_FrameSelection.html (2034B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>MSE: verify correct frames selected for given position</title> 5 <script src="/tests/SimpleTest/SimpleTest.js"></script> 6 <script type="text/javascript" src="mediasource.js"></script> 7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 8 </head> 9 <body> 10 <pre id="test"> 11 <script class="testbody" type="text/javascript"> 12 13 SimpleTest.waitForExplicitFinish(); 14 15 runWithMSE(async (ms, v) => { 16 await once(ms, "sourceopen"); 17 const sb = ms.addSourceBuffer("video/webm"); 18 19 let arrayBuffer = await fetchWithXHR("seek.webm"); 20 let p = once(v, "loadedmetadata"); 21 // Append entire file covering range [0, 4]. 22 sb.appendBuffer(new Uint8Array(arrayBuffer)); 23 await p; 24 is(v.currentTime, 0, "currentTime has correct initial value"); 25 is(v.videoWidth, 320, "videoWidth has correct initial value"); 26 is(v.videoHeight, 240, "videoHeight has correct initial value"); 27 28 arrayBuffer = await fetchWithXHR("seek_lowres.webm"); 29 // Append initialization segment. 30 info("Appending low-res init segment"); 31 p = once(sb, "updateend"); 32 sb.appendBuffer(new Uint8Array(arrayBuffer, 0, 438)); 33 await p; 34 35 info("Appending low-res range [2,4]"); 36 // Append media segment covering range [2, 4]. 37 p = once(sb, "updateend"); 38 sb.appendBuffer(new Uint8Array(arrayBuffer, 51003)); 39 await p; 40 41 ms.endOfStream(); 42 43 info("Seeking to t=3"); 44 p = Promise.all([once(v, "seeked"), once(v, "resize")]); 45 v.currentTime = 3; 46 await p; 47 is(v.currentTime, 3, "Video currentTime at target"); 48 is(v.videoWidth, 160, "videoWidth has correct low-res value"); 49 is(v.videoHeight, 120, "videoHeight has correct low-res value"); 50 51 info("Seeking to t=1"); 52 p = Promise.all([once(v, "seeked"), once(v, "resize")]); 53 v.currentTime = 1; 54 await p; 55 is(v.currentTime, 1, "Video currentTime at target"); 56 is(v.videoWidth, 320, "videoWidth has correct high-res value"); 57 is(v.videoHeight, 240, "videoHeight has correct high-res value"); 58 SimpleTest.finish(); 59 }); 60 61 </script> 62 </pre> 63 </body> 64 </html>