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

Unified Diff: media/base/composite_filter.cc

Issue 8184003: Fix hangs & crashes in teardown-during-Seek. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 2 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/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) {

Powered by Google App Engine
This is Rietveld 408576698