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

Unified Diff: media/base/pipeline_impl.cc

Issue 8661002: Fire CanPlayThrough immediately for local and streaming media files (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add test for streaming case to DownloadRateMonitor Created 9 years, 1 month 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: media/base/pipeline_impl.cc
diff --git a/media/base/pipeline_impl.cc b/media/base/pipeline_impl.cc
index 386b064a96221aa8d344c5ad5e9dd74a7d9d92d1..6926b0f93fa7d0ad2fec0ef45809c4e87a192374 100644
--- a/media/base/pipeline_impl.cc
+++ b/media/base/pipeline_impl.cc
@@ -251,7 +251,7 @@ base::TimeDelta PipelineImpl::GetBufferedTime() {
base::AutoLock auto_lock(lock_);
// If media is fully loaded, then return duration.
- if (loaded_ || total_bytes_ == buffered_bytes_) {
+ if (local_source_ || total_bytes_ == buffered_bytes_) {
max_buffered_time_ = duration_;
return duration_;
}
@@ -307,14 +307,24 @@ void PipelineImpl::GetNaturalVideoSize(gfx::Size* out_size) const {
*out_size = natural_size_;
}
+void PipelineImpl::SetLocalSource(bool local_source) {
+ media_log_->AddEvent(
+ media_log_->CreateBooleanEvent(
+ MediaLogEvent::LOCAL_SOURCE_SET, "local_source", local_source));
+
+ base::AutoLock auto_lock(lock_);
+ local_source_ = local_source;
+ download_rate_monitor_.set_local_source(local_source_);
+}
+
bool PipelineImpl::IsStreaming() const {
base::AutoLock auto_lock(lock_);
return streaming_;
}
-bool PipelineImpl::IsLoaded() const {
+bool PipelineImpl::IsLocalSource() const {
base::AutoLock auto_lock(lock_);
- return loaded_;
+ return local_source_;
}
PipelineStatistics PipelineImpl::GetStatistics() const {
@@ -358,7 +368,7 @@ void PipelineImpl::ResetState() {
buffered_time_ = kZero;
buffered_bytes_ = 0;
streaming_ = false;
- loaded_ = false;
+ local_source_ = false;
total_bytes_ = 0;
natural_size_.SetSize(0, 0);
volume_ = 1.0f;
@@ -555,6 +565,7 @@ void PipelineImpl::SetStreaming(bool streaming) {
base::AutoLock auto_lock(lock_);
streaming_ = streaming;
+ download_rate_monitor_.set_streaming(streaming_);
}
void PipelineImpl::NotifyEnded() {
@@ -564,15 +575,9 @@ void PipelineImpl::NotifyEnded() {
media_log_->AddEvent(media_log_->CreateEvent(MediaLogEvent::ENDED));
}
-void PipelineImpl::SetLoaded(bool loaded) {
+void PipelineImpl::SetLocalSourceFromFilter(bool local_source) {
DCHECK(IsRunning());
- media_log_->AddEvent(
- media_log_->CreateBooleanEvent(
- MediaLogEvent::LOADED_SET, "loaded", loaded));
-
- base::AutoLock auto_lock(lock_);
- loaded_ = loaded;
- download_rate_monitor_.set_loaded(loaded_);
+ SetLocalSource(local_source);
}
void PipelineImpl::SetNetworkActivity(bool is_downloading_data) {

Powered by Google App Engine
This is Rietveld 408576698