Index: webkit/glue/media/web_video_renderer.h |
diff --git a/webkit/glue/media/web_video_renderer.h b/webkit/glue/media/web_video_renderer.h |
index 8bafb1a7cf10a5f1a51366a6adf2163f521a45d5..c75043d8331cac9e691c6dc6ea57602cc3b11f59 100644 |
--- a/webkit/glue/media/web_video_renderer.h |
+++ b/webkit/glue/media/web_video_renderer.h |
@@ -5,6 +5,7 @@ |
#ifndef WEBKIT_GLUE_MEDIA_WEB_VIDEO_RENDERER_H_ |
#define WEBKIT_GLUE_MEDIA_WEB_VIDEO_RENDERER_H_ |
+#include "media/base/video_frame.h" |
#include "media/filters/video_renderer_base.h" |
namespace webkit_glue { |
@@ -30,6 +31,15 @@ class WebVideoRenderer : public media::VideoRendererBase { |
virtual void Paint(skia::PlatformCanvas* canvas, |
const gfx::Rect& dest_rect) = 0; |
+ // Clients of this class (painter/compositor) should use GetCurrentFrame() |
+ // obtain ownership of VideoFrame, it should always relinquish the ownership |
+ // by use PutCurrentFrame(). Current frame is not guaranteed to be non-NULL. |
+ // It expects clients to use color-fill the background if current frame |
+ // is NULL. This could happen when before pipeline is pre-rolled or during |
+ // pause/flush/seek. |
+ virtual void GetCurrentFrame(scoped_refptr<media::VideoFrame>* frame_out) {} |
+ virtual void PutCurrentFrame(scoped_refptr<media::VideoFrame> frame) {} |
+ |
private: |
DISALLOW_COPY_AND_ASSIGN(WebVideoRenderer); |
}; |