Index: content/common/gpu/media/vaapi_video_decode_accelerator.cc |
diff --git a/content/common/gpu/media/vaapi_video_decode_accelerator.cc b/content/common/gpu/media/vaapi_video_decode_accelerator.cc |
index c169c8123086ab8016c8f55ddff7587021caa8ee..0c9936f7305ae3ad27750fcf63639f52d6e54629 100644 |
--- a/content/common/gpu/media/vaapi_video_decode_accelerator.cc |
+++ b/content/common/gpu/media/vaapi_video_decode_accelerator.cc |
@@ -246,6 +246,8 @@ VaapiVideoDecodeAccelerator::VaapiVideoDecodeAccelerator( |
surfaces_available_(&lock_), |
message_loop_(base::MessageLoop::current()), |
weak_this_(base::AsWeakPtr(this)), |
+ va_surface_release_cb_(media::BindToCurrentLoop(base::Bind( |
+ &VaapiVideoDecodeAccelerator::RecycleVASurfaceID, weak_this_))), |
client_ptr_factory_(client), |
client_(client_ptr_factory_.GetWeakPtr()), |
decoder_thread_("VaapiDecoderThread"), |
@@ -318,7 +320,7 @@ bool VaapiVideoDecodeAccelerator::Initialize( |
decoder_.reset( |
new VaapiH264Decoder( |
vaapi_wrapper_.get(), |
- media::BindToLoop(message_loop_->message_loop_proxy(), base::Bind( |
+ media::BindToCurrentLoop(base::Bind( |
&VaapiVideoDecodeAccelerator::SurfaceReady, weak_this_)), |
base::Bind(&ReportToUMA))); |
@@ -508,13 +510,9 @@ bool VaapiVideoDecodeAccelerator::FeedDecoderWithOutputSurfaces_Locked() { |
if (state_ != kDecoding && state_ != kFlushing && state_ != kIdle) |
return false; |
- VASurface::ReleaseCB va_surface_release_cb = |
- media::BindToLoop(message_loop_->message_loop_proxy(), base::Bind( |
- &VaapiVideoDecodeAccelerator::RecycleVASurfaceID, weak_this_)); |
- |
while (!available_va_surfaces_.empty()) { |
scoped_refptr<VASurface> va_surface( |
- new VASurface(available_va_surfaces_.front(), va_surface_release_cb)); |
+ new VASurface(available_va_surfaces_.front(), va_surface_release_cb_)); |
available_va_surfaces_.pop_front(); |
decoder_->ReuseSurface(va_surface); |
} |