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

Unified Diff: webkit/media/webmediaplayer_impl.cc

Issue 10535101: Replace Pipeline::SetNetworkActivity() with BufferedDataSource -> WebMediaPlayerImpl callback. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 6 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
Index: webkit/media/webmediaplayer_impl.cc
diff --git a/webkit/media/webmediaplayer_impl.cc b/webkit/media/webmediaplayer_impl.cc
index 3120d9cf2f0a194ced15a2fd26b6175aee00cda4..a3399bf4c5009f15e4778111c3a31186f791a996 100644
--- a/webkit/media/webmediaplayer_impl.cc
+++ b/webkit/media/webmediaplayer_impl.cc
@@ -44,7 +44,6 @@ using WebKit::WebMediaPlayer;
using WebKit::WebRect;
using WebKit::WebSize;
using WebKit::WebString;
-using media::NetworkEvent;
using media::PipelineStatus;
namespace {
@@ -244,7 +243,9 @@ void WebMediaPlayerImpl::load(const WebKit::WebURL& url, CORSMode cors_mode) {
// Otherwise it's a regular request which requires resolving the URL first.
proxy_->set_data_source(
- new BufferedDataSource(main_loop_, frame_, media_log_));
+ new BufferedDataSource(main_loop_, frame_, media_log_,
+ base::Bind(&WebMediaPlayerImpl::NotifyDownloading,
+ base::Unretained(this))));
proxy_->data_source()->Initialize(
url, static_cast<BufferedResourceLoader::CORSMode>(cors_mode),
base::Bind(
@@ -458,6 +459,7 @@ int WebMediaPlayerImpl::dataRate() const {
}
WebMediaPlayer::NetworkState WebMediaPlayerImpl::networkState() const {
+ DCHECK_EQ(main_loop_, MessageLoop::current());
scherkus (not reviewing) 2012/06/12 02:55:04 left over debugging code? it's fine to leave it i
Ami GONE FROM CHROMIUM 2012/06/12 03:42:43 No, copying from dataRate() above, I think.
return network_state_;
}
@@ -917,26 +919,6 @@ void WebMediaPlayerImpl::OnPipelineError(PipelineStatus error) {
Repaint();
}
-void WebMediaPlayerImpl::OnNetworkEvent(NetworkEvent type) {
- DCHECK_EQ(main_loop_, MessageLoop::current());
- switch(type) {
- case media::DOWNLOAD_CONTINUED:
- SetNetworkState(WebMediaPlayer::NetworkStateLoading);
- break;
- case media::DOWNLOAD_PAUSED:
- SetNetworkState(WebMediaPlayer::NetworkStateIdle);
- break;
- case media::CAN_PLAY_THROUGH:
- // Temporarily disable delayed firing of CAN_PLAY_THROUGH due to
- // crbug.com/106480.
- // TODO(vrk): uncomment code below when bug above is fixed.
- // SetReadyState(WebMediaPlayer::NetworkStateHaveEnoughData);
- break;
- default:
- NOTREACHED();
- }
-}
-
void WebMediaPlayerImpl::OnDemuxerOpened() {
DCHECK_EQ(main_loop_, MessageLoop::current());
@@ -971,13 +953,23 @@ void WebMediaPlayerImpl::DataSourceInitialized(
StartPipeline();
}
+void WebMediaPlayerImpl::NotifyDownloading(bool is_downloading) {
+ if (!is_downloading && network_state_ == WebMediaPlayer::NetworkStateLoading)
+ SetNetworkState(WebMediaPlayer::NetworkStateIdle);
+ else if (is_downloading && network_state_ == WebMediaPlayer::NetworkStateIdle)
+ SetNetworkState(WebMediaPlayer::NetworkStateLoading);
+ media_log_->AddEvent(
+ media_log_->CreateBooleanEvent(
+ media::MediaLogEvent::NETWORK_ACTIVITY_SET,
+ "is_downloading_data", is_downloading));
+}
+
void WebMediaPlayerImpl::StartPipeline() {
started_ = true;
pipeline_->Start(
filter_collection_.Pass(),
base::Bind(&WebMediaPlayerProxy::PipelineEndedCallback, proxy_.get()),
base::Bind(&WebMediaPlayerProxy::PipelineErrorCallback, proxy_.get()),
- base::Bind(&WebMediaPlayerProxy::NetworkEventCallback, proxy_.get()),
base::Bind(&WebMediaPlayerProxy::PipelineInitializationCallback,
proxy_.get()));
}

Powered by Google App Engine
This is Rietveld 408576698