| Index: media/base/filters.h
|
| diff --git a/media/base/filters.h b/media/base/filters.h
|
| index c4da5d9143f72477fc4b760903b573db8d41379f..141a75346a694eeb7a7cc232a84104e8a51c2800 100644
|
| --- a/media/base/filters.h
|
| +++ b/media/base/filters.h
|
| @@ -108,9 +108,22 @@ class MediaFilter : public base::RefCountedThreadSafe<MediaFilter> {
|
| }
|
| }
|
|
|
| + // TODO(boliu): Remove once Stop() is asynchronous in subclasses.
|
| + virtual void Stop() {}
|
| +
|
| // The pipeline is being stopped either as a result of an error or because
|
| // the client called Stop().
|
| - virtual void Stop() = 0;
|
| + // TODO(boliu): No implementation in subclasses yet.
|
| + virtual void Stop(FilterCallback* callback) {
|
| + // TODO(boliu): Call the synchronous version for now. Remove once
|
| + // all filters have asynchronous stop.
|
| + Stop();
|
| +
|
| + if (callback) {
|
| + callback->Run();
|
| + delete callback;
|
| + }
|
| + }
|
|
|
| // The pipeline playback rate has been changed. Filters may implement this
|
| // method if they need to respond to this call.
|
|
|