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

Unified Diff: media/base/pipeline_impl.cc

Issue 269002: Report stalled event correctly for <video> (Closed)
Patch Set: comments Created 11 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 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 49ebe4a3b606bc93eaca80ca5f1c29365ade684e..2b38269652945c1d59d82b551ad8dfc17f63b646 100644
--- a/media/base/pipeline_impl.cc
+++ b/media/base/pipeline_impl.cc
@@ -157,6 +157,11 @@ bool PipelineImpl::IsInitialized() const {
}
}
+bool PipelineImpl::IsNetworkActive() const {
+ AutoLock auto_lock(lock_);
+ return network_activity_;
+}
+
bool PipelineImpl::IsRendered(const std::string& major_mime_type) const {
AutoLock auto_lock(lock_);
bool is_rendered = (rendered_mime_types_.find(major_mime_type) !=
@@ -284,6 +289,12 @@ void PipelineImpl::SetPipelineErrorCallback(PipelineCallback* error_callback) {
error_callback_.reset(error_callback);
}
+void PipelineImpl::SetNetworkEventCallback(PipelineCallback* network_callback) {
+ DCHECK(!IsRunning())
+ << "Permanent callbacks should be set before the pipeline has started";
+ network_callback_.reset(network_callback);
+}
+
void PipelineImpl::ResetState() {
AutoLock auto_lock(lock_);
const base::TimeDelta kZero;
@@ -417,6 +428,16 @@ void PipelineImpl::SetLoaded(bool loaded) {
loaded_ = loaded;
}
+void PipelineImpl::SetNetworkActivity(bool network_activity) {
+ DCHECK(IsRunning());
+ {
+ AutoLock auto_lock(lock_);
+ network_activity_ = network_activity;
+ }
+ message_loop_->PostTask(FROM_HERE,
+ NewRunnableMethod(this, &PipelineImpl::NotifyNetworkEventTask));
+}
+
void PipelineImpl::BroadcastMessage(FilterMessage message) {
DCHECK(IsRunning());
@@ -718,6 +739,13 @@ void PipelineImpl::NotifyEndedTask() {
}
}
+void PipelineImpl::NotifyNetworkEventTask() {
+ DCHECK_EQ(MessageLoop::current(), message_loop_);
+ if (network_callback_.get()) {
+ network_callback_->Run();
+ }
+}
+
void PipelineImpl::BroadcastMessageTask(FilterMessage message) {
DCHECK_EQ(MessageLoop::current(), message_loop_);

Powered by Google App Engine
This is Rietveld 408576698