Index: media/filters/skcanvas_video_renderer.h |
diff --git a/media/filters/skcanvas_video_renderer.h b/media/filters/skcanvas_video_renderer.h |
index 146e7cd16cec099ffc12b62019a4b1c466f59b63..461248a14bcee16f141d652b35bc4b51c64837c3 100644 |
--- a/media/filters/skcanvas_video_renderer.h |
+++ b/media/filters/skcanvas_video_renderer.h |
@@ -13,8 +13,15 @@ |
#include "third_party/skia/include/core/SkXfermode.h" |
#include "ui/gfx/rect.h" |
+class GrContext; |
class SkCanvas; |
+namespace gpu { |
+namespace gles2 { |
+class GLES2Interface; |
+} |
+} |
+ |
namespace media { |
class VideoFrame; |
@@ -27,6 +34,10 @@ class MEDIA_EXPORT SkCanvasVideoRenderer { |
SkCanvasVideoRenderer(); |
~SkCanvasVideoRenderer(); |
+ struct Context3DProvider { |
scherkus (not reviewing)
2014/10/15 17:10:24
to be clear, we need this because we don't depend
|
+ gpu::gles2::GLES2Interface* gl; |
+ class GrContext* gr_context; |
+ }; |
// Paints |video_frame| on |canvas|, scaling and rotating the result to fit |
// dimensions specified by |dest_rect|. |
// |
@@ -36,19 +47,34 @@ class MEDIA_EXPORT SkCanvasVideoRenderer { |
const gfx::RectF& dest_rect, |
uint8 alpha, |
SkXfermode::Mode mode, |
- VideoRotation video_rotation); |
+ VideoRotation video_rotation, |
+ Context3DProvider* context_provider); |
// Copy |video_frame| on |canvas|. |
void Copy(const scoped_refptr<VideoFrame>&, SkCanvas* canvas); |
+ static void CopyVideoFrameToTexture(gpu::gles2::GLES2Interface* gl, |
+ media::VideoFrame* video_frame, |
+ unsigned int texture, |
+ unsigned int level, |
+ unsigned int internal_format, |
+ unsigned int type, |
+ bool premultiply_alpha, |
+ bool flip_y); |
+ |
private: |
- VideoImageGenerator* generator_; |
+ void CleanUpTemporaryBuffers(); |
// An RGB bitmap and corresponding timestamp of the previously converted |
// video frame data. |
SkBitmap last_frame_; |
+ VideoImageGenerator* generator_; |
base::TimeDelta last_frame_timestamp_; |
+ // It's possible to be used by accelerated client and non-accelerated client. |
+ SkBitmap accelerated_last_frame_; |
+ base::TimeDelta accelerated_last_frame_timestamp_; |
+ |
DISALLOW_COPY_AND_ASSIGN(SkCanvasVideoRenderer); |
}; |