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

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
« no previous file with comments | « webkit/media/webmediaplayer_impl.h ('k') | webkit/media/webmediaplayer_proxy.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/media/webmediaplayer_impl.cc
diff --git a/webkit/media/webmediaplayer_impl.cc b/webkit/media/webmediaplayer_impl.cc
index 3120d9cf2f0a194ced15a2fd26b6175aee00cda4..bc7631d1b12b6e0945a768151271c09f10a2010b 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,10 +459,12 @@ int WebMediaPlayerImpl::dataRate() const {
}
WebMediaPlayer::NetworkState WebMediaPlayerImpl::networkState() const {
+ DCHECK_EQ(main_loop_, MessageLoop::current());
return network_state_;
}
WebMediaPlayer::ReadyState WebMediaPlayerImpl::readyState() const {
+ DCHECK_EQ(main_loop_, MessageLoop::current());
return ready_state_;
}
@@ -917,26 +920,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 +954,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()));
}
« no previous file with comments | « webkit/media/webmediaplayer_impl.h ('k') | webkit/media/webmediaplayer_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698