diff options
author | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-28 22:43:55 +0000 |
---|---|---|
committer | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-28 22:43:55 +0000 |
commit | 59c9d7d02cdd43be2428addf59d29c030a0f535a (patch) | |
tree | 421a422f832061dba7b084d823560b6f459ac0b6 /media | |
parent | da376224135be705d4d7cc3d3e47932c79733b00 (diff) | |
download | chromium_src-59c9d7d02cdd43be2428addf59d29c030a0f535a.zip chromium_src-59c9d7d02cdd43be2428addf59d29c030a0f535a.tar.gz chromium_src-59c9d7d02cdd43be2428addf59d29c030a0f535a.tar.bz2 |
Cancel a task if stopped/errored so we don't hit an over-protective DCHECK.
TEST=media bear tests should start passing again
BUG=none
Review URL: http://codereview.chromium.org/160295
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21907 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/base/pipeline_impl.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/media/base/pipeline_impl.cc b/media/base/pipeline_impl.cc index e5f1c0c..21b9338 100644 --- a/media/base/pipeline_impl.cc +++ b/media/base/pipeline_impl.cc @@ -592,6 +592,11 @@ void PipelineImpl::SeekTask(base::TimeDelta time, void PipelineImpl::FilterStateTransitionTask() { DCHECK_EQ(MessageLoop::current(), message_loop_); + // No reason transitioning if we've errored or have stopped. + if (state_ == kError || state_ == kStopped) { + return; + } + if (!StateTransitionsToStarted(state_)) { NOTREACHED() << "Invalid current state: " << state_; SetError(PIPELINE_ERROR_ABORT); |