| Index: media/gpu/android_video_decode_accelerator.cc
|
| diff --git a/media/gpu/android_video_decode_accelerator.cc b/media/gpu/android_video_decode_accelerator.cc
|
| index 6b2faa2c3c4c9f378ebb57de9854c136f47728d1..30375401f5b33236937a251e646a892266596552 100644
|
| --- a/media/gpu/android_video_decode_accelerator.cc
|
| +++ b/media/gpu/android_video_decode_accelerator.cc
|
| @@ -427,13 +427,17 @@ void AndroidVideoDecodeAccelerator::StartSurfaceChooser() {
|
| weak_this_factory_.GetWeakPtr()),
|
| base::Bind(&AndroidVideoDecodeAccelerator::OnSurfaceTransition,
|
| weak_this_factory_.GetWeakPtr(), nullptr),
|
| - base::Bind(&AndroidVideoDecodeAccelerator::OnStopUsingOverlayImmediately,
|
| - weak_this_factory_.GetWeakPtr()),
|
| std::move(factory));
|
| }
|
|
|
| void AndroidVideoDecodeAccelerator::OnSurfaceTransition(
|
| std::unique_ptr<AndroidOverlay> overlay) {
|
| + if (overlay) {
|
| + overlay->AddDestructionCallback(base::Bind(
|
| + &AndroidVideoDecodeAccelerator::OnStopUsingOverlayImmediately,
|
| + weak_this_factory_.GetWeakPtr()));
|
| + }
|
| +
|
| // If we're waiting for a surface (e.g., during startup), then proceed
|
| // immediately. Otherwise, wait for Dequeue to handle it. This can probably
|
| // be merged with UpdateSurface.
|
|
|