Index: media/base/composite_filter.cc |
diff --git a/media/base/composite_filter.cc b/media/base/composite_filter.cc |
index 1716f3a9b7520626434485069e7950a5af4ee403..f613f362ffb47debeaf2daeb6c512c9d8b11b311 100644 |
--- a/media/base/composite_filter.cc |
+++ b/media/base/composite_filter.cc |
@@ -173,6 +173,11 @@ void CompositeFilter::Stop(const base::Closure& stop_callback) { |
return; |
} |
+ if (!status_cb_.is_null()) { |
+ DCHECK_EQ(state_, kStopWhileSeekPending); |
+ status_cb_.Reset(); |
+ } |
+ |
callback_ = stop_callback; |
if (state_ == kStopPending) { |
StartSerialCallSequence(); |
@@ -268,7 +273,6 @@ void CompositeFilter::CallFilter(scoped_refptr<Filter>& filter, |
base::Bind(&CompositeFilter::OnStatusCB, this, callback)); |
break; |
default: |
- |
ChangeState(kError); |
DispatchPendingCallback(PIPELINE_ERROR_INVALID_STATE); |
} |
@@ -429,7 +433,6 @@ void CompositeFilter::OnStatusCB(const base::Closure& callback, |
SetError(status); |
callback.Run(); |
- |
} |
void CompositeFilter::SetError(PipelineStatus error) { |