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

Side by Side Diff: media/blink/watch_time_reporter.cc

Issue 2387293007: Register MediaPlayerRenderer service (Closed)
Patch Set: Typo. Created 4 years, 2 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
« no previous file with comments | « media/base/pipeline_metadata.h ('k') | media/blink/webmediaplayer_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/blink/watch_time_reporter.h" 5 #include "media/blink/watch_time_reporter.h"
6 6
7 #include "base/power_monitor/power_monitor.h" 7 #include "base/power_monitor/power_monitor.h"
8 8
9 namespace media { 9 namespace media {
10 10
(...skipping 20 matching lines...) Expand all
31 const GetMediaTimeCB& get_media_time_cb) 31 const GetMediaTimeCB& get_media_time_cb)
32 : has_audio_(has_audio), 32 : has_audio_(has_audio),
33 has_video_(has_video), 33 has_video_(has_video),
34 is_mse_(is_mse), 34 is_mse_(is_mse),
35 is_encrypted_(is_encrypted), 35 is_encrypted_(is_encrypted),
36 media_log_(std::move(media_log)), 36 media_log_(std::move(media_log)),
37 initial_video_size_(initial_video_size), 37 initial_video_size_(initial_video_size),
38 get_media_time_cb_(get_media_time_cb) { 38 get_media_time_cb_(get_media_time_cb) {
39 DCHECK(!get_media_time_cb_.is_null()); 39 DCHECK(!get_media_time_cb_.is_null());
40 DCHECK(has_audio_ || has_video_); 40 DCHECK(has_audio_ || has_video_);
41 if (has_video_)
42 DCHECK(!initial_video_size_.IsEmpty());
43 41
44 if (base::PowerMonitor* pm = base::PowerMonitor::Get()) 42 if (base::PowerMonitor* pm = base::PowerMonitor::Get())
45 pm->AddObserver(this); 43 pm->AddObserver(this);
46 } 44 }
47 45
48 WatchTimeReporter::~WatchTimeReporter() { 46 WatchTimeReporter::~WatchTimeReporter() {
49 // If the timer is still running, finalize immediately, this is our last 47 // If the timer is still running, finalize immediately, this is our last
50 // chance to capture metrics. 48 // chance to capture metrics.
51 if (reporting_timer_.IsRunning()) 49 if (reporting_timer_.IsRunning())
52 MaybeFinalizeWatchTime(FinalizeTime::IMMEDIATELY); 50 MaybeFinalizeWatchTime(FinalizeTime::IMMEDIATELY);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 &WatchTimeReporter::UpdateWatchTime); 111 &WatchTimeReporter::UpdateWatchTime);
114 return; 112 return;
115 } 113 }
116 114
117 end_timestamp_for_power_ = kNoTimestamp; 115 end_timestamp_for_power_ = kNoTimestamp;
118 } 116 }
119 117
120 bool WatchTimeReporter::ShouldReportWatchTime() { 118 bool WatchTimeReporter::ShouldReportWatchTime() {
121 // Only report watch time for media of sufficient size with both audio and 119 // Only report watch time for media of sufficient size with both audio and
122 // video tracks present. 120 // video tracks present.
121 // TODO(tguilbert): HLS playback will always have an |initial_video_size_| of
122 // (0,0) and never report watchtime. Fix this as part of HLS UMA cleanup.
123 // See crbug.com/650891.
123 return has_audio_ && has_video_ && 124 return has_audio_ && has_video_ &&
124 initial_video_size_.height() >= kMinimumVideoSize.height() && 125 initial_video_size_.height() >= kMinimumVideoSize.height() &&
125 initial_video_size_.width() >= kMinimumVideoSize.width(); 126 initial_video_size_.width() >= kMinimumVideoSize.width();
126 } 127 }
127 128
128 void WatchTimeReporter::MaybeStartReportingTimer( 129 void WatchTimeReporter::MaybeStartReportingTimer(
129 base::TimeDelta start_timestamp) { 130 base::TimeDelta start_timestamp) {
130 // Don't start the timer if any of our state indicates we shouldn't; this 131 // Don't start the timer if any of our state indicates we shouldn't; this
131 // check is important since the various event handlers do not have to care 132 // check is important since the various event handlers do not have to care
132 // about the state of other events. 133 // about the state of other events.
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 } 254 }
254 255
255 // Stop the timer if this is supposed to be our last tick. 256 // Stop the timer if this is supposed to be our last tick.
256 if (is_finalizing) { 257 if (is_finalizing) {
257 end_timestamp_ = kNoTimestamp; 258 end_timestamp_ = kNoTimestamp;
258 reporting_timer_.Stop(); 259 reporting_timer_.Stop();
259 } 260 }
260 } 261 }
261 262
262 } // namespace media 263 } // namespace media
OLDNEW
« no previous file with comments | « media/base/pipeline_metadata.h ('k') | media/blink/webmediaplayer_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698