| 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 ea6ba1f0d538dcbb96d046e39c9af674aca353da..155eea86d912b4783858385ae90d1a8b95bb0d3f 100644
|
| --- a/content/renderer/media/android/webmediaplayer_android.cc
|
| +++ b/content/renderer/media/android/webmediaplayer_android.cc
|
| @@ -210,6 +210,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)));
|
| + waiter.Wait();
|
| + }
|
| }
|
|
|
| void WebMediaPlayerAndroid::load(LoadType load_type,
|
|
|