<html>
<head>
  <title>Video playback</title>
</head>
<body>
  <video id='video1' muted></video>
</body>
<script type='text/javascript'>
  const video = document.getElementById('video1');

  function load_data_url(url) {
    video.src = url;
    video.onloadedmetadata = () => {
      // Enlarge |video| but keep it inside the viewport; |height| also has to
      // account for the Shelf (taskbar) at the bottom. |video| will be rendered
      // inside that area respecting its aspect ratio.
      video.width = Math.min(video.videoWidth, window.innerWidth * 0.9);
      video.height = Math.min(video.videoHeight, window.innerHeight * 0.9);
      video.loop = true;
      video.play();
    };

    video.onplay = () => {
      setInterval(draw_pass, 100);
    }

    video.load();
  }

  var draw_passes_count = 0;
  function draw_pass() {
    // <video> doesn't have a way to count the amount of played back frames, so
    // we'll just count time intervals then.
    draw_passes_count++;
  }

  function get_draw_passes_count() {
    return draw_passes_count;
  }

</script>
</html>
