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

Unified Diff: media/base/pipeline_impl.cc

Issue 6969026: Convert Filter::Seek() to use new callback system. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add files in content/renderer/media Created 9 years, 7 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 d7ad574b3ad02c19d212960691e2d40a32bb5d5a..80e0a00fa3a3d2d1b467f3336419bdfc5fe8761e 100644
--- a/media/base/pipeline_impl.cc
+++ b/media/base/pipeline_impl.cc
@@ -9,6 +9,7 @@
#include <algorithm>
+#include "base/bind.h"
#include "base/callback.h"
#include "base/compiler_specific.h"
#include "base/stl_util-inl.h"
@@ -575,6 +576,13 @@ void PipelineImpl::OnFilterStateTransition() {
NewRunnableMethod(this, &PipelineImpl::FilterStateTransitionTask));
}
+// Called from any thread.
+void PipelineImpl::OnFilterStateTransitionWithStatus(PipelineStatus status) {
+ if (status != PIPELINE_OK)
+ SetError(status);
Ami GONE FROM CHROMIUM 2011/05/12 20:42:16 This is funky b/c it posts the errorchanged task,
acolwell GONE FROM CHROMIUM 2011/05/12 22:30:40 Yes. This is one of the major reasons why I want t
+ OnFilterStateTransition();
+}
+
void PipelineImpl::OnTeardownStateTransition() {
message_loop_->PostTask(FROM_HERE,
NewRunnableMethod(this, &PipelineImpl::TeardownStateTransitionTask));
@@ -710,8 +718,9 @@ void PipelineImpl::InitializeTask() {
seek_pending_ = true;
set_state(kSeeking);
seek_timestamp_ = base::TimeDelta();
- pipeline_filter_->Seek(seek_timestamp_,
- NewCallback(this, &PipelineImpl::OnFilterStateTransition));
+ pipeline_filter_->Seek(
+ seek_timestamp_,
+ base::Bind(&PipelineImpl::OnFilterStateTransitionWithStatus, this));
}
}
@@ -952,7 +961,7 @@ void PipelineImpl::FilterStateTransitionTask() {
NewCallback(this, &PipelineImpl::OnFilterStateTransition));
} else if (state_ == kSeeking) {
pipeline_filter_->Seek(seek_timestamp_,
- NewCallback(this, &PipelineImpl::OnFilterStateTransition));
+ base::Bind(&PipelineImpl::OnFilterStateTransitionWithStatus, this));
} else if (state_ == kStarting) {
pipeline_filter_->Play(
NewCallback(this, &PipelineImpl::OnFilterStateTransition));

Powered by Google App Engine
This is Rietveld 408576698