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

Unified Diff: media/blink/webmediaplayer_impl.cc

Issue 2611333003: [Video] Disable bg optimization if avg keyframe distance is >10s (Closed)
Patch Set: Rebase the test Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/blink/webmediaplayer_impl.h ('k') | media/blink/webmediaplayer_impl_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/blink/webmediaplayer_impl.cc
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
index 96c5424ebb666ca204a410ac7461d8da3d5e0030..b0e7d1c71f3d6819338ed00105d809ee43f03bf3 100644
--- a/media/blink/webmediaplayer_impl.cc
+++ b/media/blink/webmediaplayer_impl.cc
@@ -887,28 +887,28 @@ double WebMediaPlayerImpl::mediaTimeForTimeValue(double timeValue) const {
unsigned WebMediaPlayerImpl::decodedFrameCount() const {
DCHECK(main_task_runner_->BelongsToCurrentThread());
- PipelineStatistics stats = pipeline_.GetStatistics();
+ PipelineStatistics stats = GetPipelineStatistics();
return stats.video_frames_decoded;
}
unsigned WebMediaPlayerImpl::droppedFrameCount() const {
DCHECK(main_task_runner_->BelongsToCurrentThread());
- PipelineStatistics stats = pipeline_.GetStatistics();
+ PipelineStatistics stats = GetPipelineStatistics();
return stats.video_frames_dropped;
}
size_t WebMediaPlayerImpl::audioDecodedByteCount() const {
DCHECK(main_task_runner_->BelongsToCurrentThread());
- PipelineStatistics stats = pipeline_.GetStatistics();
+ PipelineStatistics stats = GetPipelineStatistics();
return stats.audio_bytes_decoded;
}
size_t WebMediaPlayerImpl::videoDecodedByteCount() const {
DCHECK(main_task_runner_->BelongsToCurrentThread());
- PipelineStatistics stats = pipeline_.GetStatistics();
+ PipelineStatistics stats = GetPipelineStatistics();
return stats.video_bytes_decoded;
}
@@ -2005,7 +2005,7 @@ void WebMediaPlayerImpl::ReportMemoryUsage() {
void WebMediaPlayerImpl::FinishMemoryUsageReport(int64_t demuxer_memory_usage) {
DCHECK(main_task_runner_->BelongsToCurrentThread());
- const PipelineStatistics stats = pipeline_.GetStatistics();
+ const PipelineStatistics stats = GetPipelineStatistics();
const int64_t data_source_memory_usage =
data_source_ ? data_source_->GetMemoryUsage() : 0;
const int64_t current_memory_usage =
@@ -2107,9 +2107,17 @@ bool WebMediaPlayerImpl::ShouldPauseWhenHidden() const {
}
bool WebMediaPlayerImpl::ShouldDisableVideoWhenHidden() const {
+ DCHECK(main_task_runner_->BelongsToCurrentThread());
DCHECK(IsHidden());
- return IsBackgroundVideoTrackOptimizationEnabled() && hasVideo() &&
- hasAudio() && !IsStreaming();
+
+ if (!IsBackgroundVideoTrackOptimizationEnabled() || !hasVideo() ||
+ !hasAudio() || IsStreaming()) {
+ return false;
+ }
+
+ PipelineStatistics stats = GetPipelineStatistics();
+ return stats.video_keyframe_distance_average <
+ max_keyframe_distance_to_disable_background_video_;
}
void WebMediaPlayerImpl::EnableVideoTrackIfNeeded() {
@@ -2141,4 +2149,15 @@ void WebMediaPlayerImpl::DisableVideoTrackIfNeeded() {
}
}
+void WebMediaPlayerImpl::SetPipelineStatisticsForTest(
+ const PipelineStatistics& stats) {
+ pipeline_statistics_for_test_ = base::make_optional(stats);
+}
+
+PipelineStatistics WebMediaPlayerImpl::GetPipelineStatistics() const {
+ DCHECK(main_task_runner_->BelongsToCurrentThread());
+
+ return pipeline_statistics_for_test_.value_or(pipeline_.GetStatistics());
+}
+
} // namespace media
« no previous file with comments | « media/blink/webmediaplayer_impl.h ('k') | media/blink/webmediaplayer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698