Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(452)

Side by Side Diff: chrome/test/data/media/eme_player_js/fps_observer.js

Issue 408993002: Have media content and chrome browser tests load data from media/test/data (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // FPSObserver observes a <video> and reports decoded FPS, dropped FPS, and
6 // total dropped frames during the video playback.
7 var FPSObserver = new function() {
8 this.video_ = null;
9 this.decodedFrames_ = 0;
10 this.droppedFrames_ = 0;
11 this.startTime_ = 0;
12 this.intID_ = null;
13 }
14
15 FPSObserver.observe = function(video) {
16 this.video_ = video;
17 var observer = this;
18 this.video_.addEventListener('playing', function() {
19 observer.onVideoPlaying();
20 });
21
22 this.video_.addEventListener('error', function() {
23 observer.endTest();
24 });
25
26 this.video_.addEventListener('ended', function() {
27 observer.endTest();
28 });
29 };
30
31 FPSObserver.onVideoPlaying = function() {
32 this.decodedFrames_ = 0;
33 this.droppedFrames_ = 0;
34 this.startTime_ = window.performance.now();
35 this.endTest(true);
36 var observer = this;
37 this.intID_ = window.setInterval(function() {
38 observer.calculateStats();}, 1000);
39 };
40
41 FPSObserver.calculateStats = function() {
42 if (this.video_.readyState <= HTMLMediaElement.HAVE_CURRENT_DATA ||
43 this.video_.paused || this.video_.ended)
44 return;
45 var currentTime = window.performance.now();
46 var deltaTime = (currentTime - this.startTime_) / 1000;
47 this.startTime_ = currentTime;
48
49 // Calculate decoded frames per sec.
50 var fps = (this.video_.webkitDecodedFrameCount - this.decodedFrames_) /
51 deltaTime;
52 this.decodedFrames_ = this.video_.webkitDecodedFrameCount;
53 fps = fps.toFixed(2);
54 decodedFPSElement.innerHTML = fps;
55
56 // Calculate dropped frames per sec.
57 fps = (this.video_.webkitDroppedFrameCount - this.droppedFrames_) / deltaTime;
58 this.droppedFrames_ = this.video_.webkitDroppedFrameCount;
59 fps = fps.toFixed(2);
60 droppedFPSElement.innerHTML = fps;
61
62 droppedFramesElement.innerHTML = this.droppedFrames_;
63 };
64
65 FPSObserver.endTest = function() {
66 window.clearInterval(this.intID_);
67 };
OLDNEW
« no previous file with comments | « chrome/test/data/media/eme_player_js/file_io_test_player.js ('k') | chrome/test/data/media/eme_player_js/globals.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698