Chromium Code Reviews| Index: content/renderer/media/android/webmediaplayer_android.cc |
| diff --git a/content/renderer/media/android/webmediaplayer_android.cc b/content/renderer/media/android/webmediaplayer_android.cc |
| index 27e2c1d8e698bd11d66049ff033363b72e5f3011..8de6f4ebb88cecfd5f0c99c4649d85ea8826b146 100644 |
| --- a/content/renderer/media/android/webmediaplayer_android.cc |
| +++ b/content/renderer/media/android/webmediaplayer_android.cc |
| @@ -201,6 +201,16 @@ WebMediaPlayerAndroid::~WebMediaPlayerAndroid() { |
| delegate_->PlayerGone(this); |
| stream_texture_factory_->RemoveObserver(this); |
| + |
| + if (media_source_delegate_) { |
| + // Part of |media_source_delegate_| needs to be stopped on the media thread. |
| + // Wait until |media_source_delegate_| is fully stopped before tearing |
| + // down other objects. |
| + base::WaitableEvent waiter(false, false); |
| + media_source_delegate_->Stop( |
| + base::Bind(&base::WaitableEvent::Signal, base::Unretained(&waiter))); |
|
qinmin
2014/09/26 18:06:50
How about moving this waitableEvent into MediaSour
xhwang
2014/09/26 21:06:57
My Clank checkout is broken.. I'll land this CL as
|
| + waiter.Wait(); |
| + } |
| } |
| void WebMediaPlayerAndroid::load(LoadType load_type, |