Index: media/filters/gpu_video_decoder.h |
diff --git a/media/filters/gpu_video_decoder.h b/media/filters/gpu_video_decoder.h |
index 41742e91b42bad90fd878563ade31f016998c00c..f050ffc7e802453f8c5963bf0bebf119bd3bbb2d 100644 |
--- a/media/filters/gpu_video_decoder.h |
+++ b/media/filters/gpu_video_decoder.h |
@@ -51,6 +51,7 @@ class MEDIA_EXPORT GpuVideoDecoder |
virtual bool HasAlpha() const OVERRIDE; |
virtual bool NeedsBitstreamConversion() const OVERRIDE; |
virtual bool CanReadWithoutStalling() const OVERRIDE; |
+ virtual int GetMaxDecodeRequests() const OVERRIDE; |
// VideoDecodeAccelerator::Client implementation. |
virtual void NotifyInitializeDone() OVERRIDE; |
@@ -93,16 +94,7 @@ class MEDIA_EXPORT GpuVideoDecoder |
typedef std::map<int32, PictureBuffer> PictureBufferMap; |
- // Return true if more decode work can be piled on to the VDA. |
- bool CanMoreDecodeWorkBeDone(); |
- |
- // Enqueue a frame for later delivery (or drop it on the floor if a |
- // vda->Reset() is in progress) and trigger out-of-line delivery of the oldest |
- // ready frame to the client if there is a pending read. A NULL |frame| |
- // merely triggers delivery, and requires the ready_video_frames_ queue not be |
- // empty. |
- void EnqueueFrameAndTriggerFrameDelivery( |
- const scoped_refptr<VideoFrame>& frame); |
+ void DeliverFrame( const scoped_refptr<VideoFrame>& frame); |
// Static method is to allow it to run even after GVD is deleted. |
static void ReleaseMailbox( |
@@ -142,9 +134,12 @@ class MEDIA_EXPORT GpuVideoDecoder |
// occurs. |
scoped_ptr<VideoDecodeAccelerator> vda_; |
- // Callbacks that are !is_null() only during their respective operation being |
+ // Callbacks for the pending Decode requests (not more that |
+ // GetMaxDecodeRequests()). |
+ std::list<DecodeCB> pending_decode_callbacks_; |
+ |
+ // Callback that is !is_null() only during their respective operation being |
// asynchronously executed. |
- DecodeCB pending_decode_cb_; |
base::Closure pending_reset_cb_; |
State state_; |