Chromium Code Reviews| 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)); |