Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/testing/talos/talos/tests/video/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 4 kB image not shown  

Quellcode-Bibliothek video_playback.html   Sprache: HTML

 
 products/Sources/formale Sprachen/C/Firefox/testing/talos/talos/tests/video/video_playback.html


<!-- This Source Code Form is subject to the terms of the Mozilla Public
   - License, v. 2.0. If a copy of the MPL was not distributed with this file,
   - You can obtain one at http://mozilla.org/MPL/2.0/.  -->

<html>
<head>
<script src="resource://talos-powers/TalosPowersContent.js"></script>
<script src="resource://talos-powers/TalosContentProfiler.js"></script>
<script language="javascript" type="text/javascript">
const MEASUREMENT1_MS = 3000;
const MEASUREMENT2_MS = 2000;
const PLAYBACK_RATE = 5;
var vdo;
var start1 = 0;
var paintedFramesStart1 = 0;
var start2 = 0;
var paintedFramesStart2 = 0;
var testIndex = 0;
var test = [
  "testsrc.240p.120fps.mp4",
  "testsrc.480p.60fps.webm",
  "testsrc.1080p.60fps.mp4",
];
var viewModeIndex = 0;
// Remove fullscreen mode since it causes intermittent failures on try server. See bug 1192317.
var viewMode = [1, 1.1, 2];
var testResult = {names: [], values: []};

/* globals readyToStart:true */

function init() {
  TalosPowersContent.focus(content_focused);
}

function content_focused() {
  vdo = document.getElementById("vdo");
  vdo.addEventListener("loadeddata", prepare);
  document.addEventListener("fullscreenchange", fullscreen);
  document.addEventListener("mozfullscreenchange", fullscreen);
  runTest();
}

function fullscreen() {
  if ((document.fullscreenElement && document.fullscreenElement !== null) ||
      document.mozFullScreen) {
    startTest();
  } else {
    nextTest();
  }
}

function runTest() {
  // Windows XP cannot play mp4 clip due to the lack of gmp-eme-plugin, so skip it.
  if (window.navigator.oscpu == "Windows NT 5.1" && test[testIndex].includes("mp4")) {
    nextTest();
  }
  vdo.setAttribute("src""clips/" + test[testIndex]);
  vdo.load();
}

function prepare() {
  if (viewMode[viewModeIndex] == "fullscreen") {
    // Fullscreen mode
    vdo.setAttribute("width""100%");
    vdo.setAttribute("height""100%");
    if (document.body.requestFullscreen) {
      document.body.requestFullscreen();
    } else if (document.body.mozRequestFullScreen) {
      document.body.mozRequestFullScreen();
    }
  } else {
    readyToStart = true;
    vdo.setAttribute("width", vdo.videoWidth * viewMode[viewModeIndex]);
    vdo.setAttribute("height", vdo.videoHeight * viewMode[viewModeIndex]);
    startTest();
  }
}

function startTest() {
  TalosContentProfiler.subtestStart("start test " + test[testIndex], true).then(() => {
    vdo.playbackRate = PLAYBACK_RATE;
    start1 = performance.now();
    paintedFramesStart1 = vdo.mozPaintedFrames;
    vdo.play();
    setTimeout(function() {
      start2 = performance.now();
      paintedFramesStart2 = vdo.mozPaintedFrames;
      setTimeout(measurementEnded, MEASUREMENT2_MS);
    }, MEASUREMENT1_MS);
  });
}

function measurementEnded() {
  vdo.pause();
  var end = performance.now();
  var paintedFramesEnd = vdo.mozPaintedFrames;
  var timePerFrame1 = (start2 - start1) / (paintedFramesStart2 - paintedFramesStart1);
  var timePerFrame2 = (end - start2) / (paintedFramesEnd - paintedFramesStart2);
  testResult.names.push(test[testIndex] + "_scale_" + viewMode[viewModeIndex] + "_startup");
  testResult.values.push(timePerFrame1);
  testResult.names.push(test[testIndex] + "_scale_" + viewMode[viewModeIndex] + "_inclip");
  testResult.values.push(timePerFrame2);

  TalosContentProfiler.subtestEnd("Test " + test[testIndex], true).then(() => {
    if (viewMode[viewModeIndex] == "fullscreen") {
      // Exit fullscreen mode
      if (document.exitFullscreen) {
        document.exitFullscreen();
      } else if (document.mozCancelFullScreen) {
        document.mozCancelFullScreen();
      }
    } else {
      nextTest();
    }
  });
}

function nextTest() {
  viewModeIndex++;
  if (viewModeIndex >= viewMode.length) {
    viewModeIndex = 0;
    testIndex++;
  }
  if (testIndex >= test.length) {
    // End the test
    reportResult();
  } else {
    runTest();
  }
}

function reportResult() {
  var msg = "";
  for (var i = 0; i < testResult.names.length; i++) {
    msg += testResult.names[i] + " = " + testResult.values[i] + " ms/frame\n\n";
  }

  dump(msg); // Put the readable report at talos run-log

  if (window.tpRecordTime) {
    // Within talos - report the results
    return tpRecordTime(testResult.values.join(","), 0, testResult.names.join(","));
  }
    // Local run in a plain browser, display the formatted report
    alert(msg);

  return undefined;
}
</script>

</head>
<body id="body" onload="init();">
<video id="vdo" width="100%" height="100%">
</video>
</body>
</html>

Messung V0.5
C=100 H=100 G=100

¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.35Bemerkung:  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.