Index: media/filters/gpu_video_decoder.h |
diff --git a/media/filters/gpu_video_decoder.h b/media/filters/gpu_video_decoder.h |
index 065ac38d068abecdea8bdc5b769fd6fbec54f915..81c7d6c65046e44b76e4b97b999ebe4281402751 100644 |
--- a/media/filters/gpu_video_decoder.h |
+++ b/media/filters/gpu_video_decoder.h |
@@ -135,9 +135,12 @@ class MEDIA_EXPORT GpuVideoDecoder |
// Destroy all PictureBuffers in |buffers|, and delete their textures. |
void DestroyPictureBuffers(PictureBufferMap* buffers); |
- // Returns true if the video decoder can support |profile| and |coded_size|. |
- bool IsProfileSupported(VideoCodecProfile profile, |
- const gfx::Size& coded_size); |
+ // Returns true if the video decoder with |capabilities| can support |
+ // |profile| and |coded_size|. |
+ bool IsProfileSupported( |
+ const VideoDecodeAccelerator::Capabilities& capabilities, |
+ VideoCodecProfile profile, |
+ const gfx::Size& coded_size); |
// Assert the contract that this class is operated on the right thread. |
void DCheckGpuVideoAcceleratorFactoriesTaskRunnerIsCurrent() const; |
@@ -203,6 +206,12 @@ class MEDIA_EXPORT GpuVideoDecoder |
// HasAvailableOutputFrames(). |
int available_pictures_; |
+ // If true, the client cannot expect the VDA to produce any new decoded |
+ // frames, until it returns all PictureBuffers it may be holding back to the |
+ // VDA. In other words, the VDA may require all PictureBuffers to be able to |
+ // proceed with decoding the next frame. |
+ bool needs_all_picture_buffers_to_decode_; |
+ |
// Bound to factories_->GetMessageLoop(). |
// NOTE: Weak pointers must be invalidated before all other member variables. |
base::WeakPtrFactory<GpuVideoDecoder> weak_factory_; |