summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-28 22:43:55 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-28 22:43:55 +0000
commit59c9d7d02cdd43be2428addf59d29c030a0f535a (patch)
tree421a422f832061dba7b084d823560b6f459ac0b6 /media
parentda376224135be705d4d7cc3d3e47932c79733b00 (diff)
downloadchromium_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.cc5
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);