| Index: media/filters/gpu_video_decoder.cc
|
| diff --git a/media/filters/gpu_video_decoder.cc b/media/filters/gpu_video_decoder.cc
|
| index fcddcfc77f96560c1637a301aa28ba92a7f83df9..f20a2111ef04b5ffc18d0635fb988f1099925d52 100644
|
| --- a/media/filters/gpu_video_decoder.cc
|
| +++ b/media/filters/gpu_video_decoder.cc
|
| @@ -13,6 +13,7 @@
|
| #include "base/metrics/histogram.h"
|
| #include "base/stl_util.h"
|
| #include "base/task_runner_util.h"
|
| +#include "gpu/command_buffer/common/mailbox_holder.h"
|
| #include "media/base/bind_to_loop.h"
|
| #include "media/base/decoder_buffer.h"
|
| #include "media/base/media_log.h"
|
| @@ -443,13 +444,11 @@ void GpuVideoDecoder::PictureReady(const media::Picture& picture) {
|
| DCHECK(decoder_texture_target_);
|
|
|
| scoped_refptr<VideoFrame> frame(VideoFrame::WrapNativeTexture(
|
| - make_scoped_ptr(new VideoFrame::MailboxHolder(
|
| - pb.texture_mailbox(),
|
| - 0, // sync_point
|
| - BindToCurrentLoop(base::Bind(&GpuVideoDecoder::ReusePictureBuffer,
|
| - weak_this_,
|
| - picture.picture_buffer_id())))),
|
| - decoder_texture_target_,
|
| + make_scoped_ptr(new gpu::MailboxHolder(
|
| + pb.texture_mailbox(), decoder_texture_target_, 0 /* sync_point */)),
|
| + BindToCurrentLoop(base::Bind(&GpuVideoDecoder::ReusePictureBuffer,
|
| + weak_this_,
|
| + picture.picture_buffer_id())),
|
| pb.size(),
|
| visible_rect,
|
| natural_size,
|
| @@ -457,8 +456,7 @@ void GpuVideoDecoder::PictureReady(const media::Picture& picture) {
|
| base::Bind(&GpuVideoAcceleratorFactories::ReadPixels,
|
| factories_,
|
| pb.texture_id(),
|
| - gfx::Size(visible_rect.width(), visible_rect.height())),
|
| - base::Closure()));
|
| + gfx::Size(visible_rect.width(), visible_rect.height()))));
|
| CHECK_GT(available_pictures_, 0);
|
| --available_pictures_;
|
| bool inserted =
|
| @@ -491,7 +489,7 @@ void GpuVideoDecoder::EnqueueFrameAndTriggerFrameDelivery(
|
| }
|
|
|
| void GpuVideoDecoder::ReusePictureBuffer(int64 picture_buffer_id,
|
| - uint32 sync_point) {
|
| + gpu::MailboxHolder* mailbox_holder) {
|
| DVLOG(3) << "ReusePictureBuffer(" << picture_buffer_id << ")";
|
| DCHECK(gvd_task_runner_->BelongsToCurrentThread());
|
|
|
| @@ -515,7 +513,7 @@ void GpuVideoDecoder::ReusePictureBuffer(int64 picture_buffer_id,
|
| return;
|
| }
|
|
|
| - factories_->WaitSyncPoint(sync_point);
|
| + factories_->WaitSyncPoint(mailbox_holder->sync_point);
|
| ++available_pictures_;
|
|
|
| vda_->ReusePictureBuffer(picture_buffer_id);
|
|
|