tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>