Chromium Code Reviews| Index: media/filters/gpu_video_decoder.cc |
| diff --git a/media/filters/gpu_video_decoder.cc b/media/filters/gpu_video_decoder.cc |
| index bbfa6999384d23703b72c177fc34077c6f1b3bcb..0fee275d0cf63a1c1b6837dd98f0012dddb99caa 100644 |
| --- a/media/filters/gpu_video_decoder.cc |
| +++ b/media/filters/gpu_video_decoder.cc |
| @@ -88,6 +88,7 @@ GpuVideoDecoder::GpuVideoDecoder(GpuVideoAcceleratorFactories* factories, |
| available_pictures_(0), |
| needs_all_picture_buffers_to_decode_(false), |
| supports_deferred_initialization_(false), |
| + requires_texture_copy_(false), |
| weak_factory_(this) { |
| DCHECK(factories_); |
| } |
| @@ -219,6 +220,9 @@ void GpuVideoDecoder::Initialize(const VideoDecoderConfig& config, |
| capabilities.flags & |
| VideoDecodeAccelerator::Capabilities::NEEDS_ALL_PICTURE_BUFFERS_TO_DECODE; |
| needs_bitstream_conversion_ = (config.codec() == kCodecH264); |
| + requires_texture_copy_ = |
| + capabilities.flags & |
| + VideoDecodeAccelerator::Capabilities::REQUIRES_TEXTURE_COPY; |
| supports_deferred_initialization_ = !!( |
| capabilities.flags & |
| VideoDecodeAccelerator::Capabilities::SUPPORTS_DEFERRED_INITIALIZATION); |
| @@ -606,6 +610,12 @@ void GpuVideoDecoder::PictureReady(const media::Picture& picture) { |
| #if defined(OS_MACOSX) || defined(OS_WIN) |
| frame->metadata()->SetBoolean(VideoFrameMetadata::DECODER_OWNS_FRAME, true); |
| #endif |
| + |
| + // We keep deferred rendering strategy for Android WebView, that can only work |
| + // with COPY_REQUIRED. See http://crbug.com/582170. |
|
watk
2016/06/24 17:54:46
Comment doesn't make much sense unless you know th
Tima Vaisburd
2016/06/24 18:12:37
I removed the comment altogether.
|
| + if (requires_texture_copy_) |
| + frame->metadata()->SetBoolean(VideoFrameMetadata::COPY_REQUIRED, true); |
| + |
| CHECK_GT(available_pictures_, 0); |
| --available_pictures_; |