Chromium Code Reviews| 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_; |
|
xhwang
2014/04/17 01:06:47
Usually decoders have decoding delay, e.g. for a d
xhwang
2014/04/17 01:21:07
I think this can be fixed if VDA always returns so
Sergey Ulanov
2014/04/23 02:44:21
I think Ami responded to this over e-mail. Decoder
|
| + |
| + // Callback that is !is_null() only during their respective operation being |
| // asynchronously executed. |
| - DecodeCB pending_decode_cb_; |
| base::Closure pending_reset_cb_; |
| State state_; |