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

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

Issue 2440563004: Switch to using an explicit ended signal instead of time comparison. (Closed)
Patch Set: Fix ended event in ARI. 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/webmediaplayer_impl.h" 5 #include "media/blink/webmediaplayer_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <limits> 9 #include <limits>
10 #include <string> 10 #include <string>
(...skipping 1086 matching lines...) Expand 10 before | Expand all | Expand 10 after
1097 1097
1098 void WebMediaPlayerImpl::OnEnded() { 1098 void WebMediaPlayerImpl::OnEnded() {
1099 DVLOG(1) << __func__; 1099 DVLOG(1) << __func__;
1100 DCHECK(main_task_runner_->BelongsToCurrentThread()); 1100 DCHECK(main_task_runner_->BelongsToCurrentThread());
1101 1101
1102 // Ignore state changes until we've completed all outstanding operations. 1102 // Ignore state changes until we've completed all outstanding operations.
1103 if (!pipeline_controller_.IsStable()) 1103 if (!pipeline_controller_.IsStable())
1104 return; 1104 return;
1105 1105
1106 ended_ = true; 1106 ended_ = true;
1107 client_->timeChanged(); 1107 client_->timeChanged(ended_);
1108 1108
1109 // We don't actually want this to run until |client_| calls seek() or pause(), 1109 // We don't actually want this to run until |client_| calls seek() or pause(),
1110 // but that should have already happened in timeChanged() and so this is 1110 // but that should have already happened in timeChanged() and so this is
1111 // expected to be a no-op. 1111 // expected to be a no-op.
1112 UpdatePlayState(); 1112 UpdatePlayState();
1113 } 1113 }
1114 1114
1115 void WebMediaPlayerImpl::OnMetadata(PipelineMetadata metadata) { 1115 void WebMediaPlayerImpl::OnMetadata(PipelineMetadata metadata) {
1116 DVLOG(1) << __func__; 1116 DVLOG(1) << __func__;
1117 DCHECK(main_task_runner_->BelongsToCurrentThread()); 1117 DCHECK(main_task_runner_->BelongsToCurrentThread());
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1167 // transition to HAVE_FUTURE_DATA here if not enough is buffered. 1167 // transition to HAVE_FUTURE_DATA here if not enough is buffered.
1168 SetReadyState(WebMediaPlayer::ReadyStateHaveEnoughData); 1168 SetReadyState(WebMediaPlayer::ReadyStateHaveEnoughData);
1169 1169
1170 // Let the DataSource know we have enough data. It may use this information 1170 // Let the DataSource know we have enough data. It may use this information
1171 // to release unused network connections. 1171 // to release unused network connections.
1172 if (data_source_) 1172 if (data_source_)
1173 data_source_->OnBufferingHaveEnough(false); 1173 data_source_->OnBufferingHaveEnough(false);
1174 1174
1175 // Blink expects a timeChanged() in response to a seek(). 1175 // Blink expects a timeChanged() in response to a seek().
1176 if (should_notify_time_changed_) 1176 if (should_notify_time_changed_)
1177 client_->timeChanged(); 1177 client_->timeChanged(ended_);
1178 1178
1179 // Once we have enough, start reporting the total memory usage. We'll also 1179 // Once we have enough, start reporting the total memory usage. We'll also
1180 // report once playback starts. 1180 // report once playback starts.
1181 ReportMemoryUsage(); 1181 ReportMemoryUsage();
1182 1182
1183 // Report the amount of time it took to leave the underflow state. Don't 1183 // Report the amount of time it took to leave the underflow state. Don't
1184 // bother to report this for MSE playbacks since it's out of our control. 1184 // bother to report this for MSE playbacks since it's out of our control.
1185 if (underflow_timer_ && data_source_) { 1185 if (underflow_timer_ && data_source_) {
1186 UMA_HISTOGRAM_TIMES("Media.UnderflowDuration", 1186 UMA_HISTOGRAM_TIMES("Media.UnderflowDuration",
1187 underflow_timer_->Elapsed()); 1187 underflow_timer_->Elapsed());
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
1357 1357
1358 void WebMediaPlayerImpl::requestRemotePlaybackControl() { 1358 void WebMediaPlayerImpl::requestRemotePlaybackControl() {
1359 cast_impl_.requestRemotePlaybackControl(); 1359 cast_impl_.requestRemotePlaybackControl();
1360 } 1360 }
1361 1361
1362 void WebMediaPlayerImpl::OnRemotePlaybackEnded() { 1362 void WebMediaPlayerImpl::OnRemotePlaybackEnded() {
1363 DVLOG(1) << __func__; 1363 DVLOG(1) << __func__;
1364 DCHECK(main_task_runner_->BelongsToCurrentThread()); 1364 DCHECK(main_task_runner_->BelongsToCurrentThread());
1365 1365
1366 ended_ = true; 1366 ended_ = true;
1367 client_->timeChanged(); 1367 client_->timeChanged(ended_);
1368 } 1368 }
1369 1369
1370 void WebMediaPlayerImpl::OnDisconnectedFromRemoteDevice(double t) { 1370 void WebMediaPlayerImpl::OnDisconnectedFromRemoteDevice(double t) {
1371 DoSeek(base::TimeDelta::FromSecondsD(t), false); 1371 DoSeek(base::TimeDelta::FromSecondsD(t), false);
1372 1372
1373 // We already told the delegate we're paused when remoting started. 1373 // We already told the delegate we're paused when remoting started.
1374 client_->playbackStateChanged(); 1374 client_->playbackStateChanged();
1375 client_->disconnectedFromRemoteDevice(); 1375 client_->disconnectedFromRemoteDevice();
1376 1376
1377 UpdatePlayState(); 1377 UpdatePlayState();
(...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after
1884 pipeline_metadata_.natural_size, 1884 pipeline_metadata_.natural_size,
1885 base::Bind(&GetCurrentTimeInternal, this))); 1885 base::Bind(&GetCurrentTimeInternal, this)));
1886 watch_time_reporter_->OnVolumeChange(volume_); 1886 watch_time_reporter_->OnVolumeChange(volume_);
1887 if (delegate_ && delegate_->IsHidden()) 1887 if (delegate_ && delegate_->IsHidden())
1888 watch_time_reporter_->OnHidden(); 1888 watch_time_reporter_->OnHidden();
1889 else 1889 else
1890 watch_time_reporter_->OnShown(); 1890 watch_time_reporter_->OnShown();
1891 } 1891 }
1892 1892
1893 } // namespace media 1893 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698