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..30500851e519a50921399d11cd393d8cecb54440 100644 |
--- a/media/filters/skcanvas_video_renderer.h |
+++ b/media/filters/skcanvas_video_renderer.h |
@@ -7,6 +7,7 @@ |
#include "base/memory/ref_counted.h" |
#include "base/time/time.h" |
+#include "base/timer/timer.h" |
#include "media/base/media_export.h" |
#include "media/base/video_rotation.h" |
#include "third_party/skia/include/core/SkBitmap.h" |
@@ -42,12 +43,23 @@ class MEDIA_EXPORT SkCanvasVideoRenderer { |
void Copy(const scoped_refptr<VideoFrame>&, SkCanvas* canvas); |
private: |
- VideoImageGenerator* generator_; |
+ void ResetAcceleratedLastFrame(); |
// An RGB bitmap and corresponding timestamp of the previously converted |
- // video frame data. |
+ // video frame data by software color space conversion. |
SkBitmap last_frame_; |
base::TimeDelta last_frame_timestamp_; |
+ // If |last_frame_| is not used for a while, it's deleted to save memory. |
+ base::OneShotTimer<SkCanvasVideoRenderer> frame_deleting_timer_; |
scherkus (not reviewing)
2014/10/28 23:24:19
I believe DelayTimer() is a more appropriate timer
|
+ |
+ // This is a hardware accelerated copy of the frame generated by |
+ // |accelerated_generator_|. |
+ // It's used when |canvas| parameter in Paint() is Ganesh canvas. |
+ // Note: all GrContext in SkCanvas instances are same. |
+ SkBitmap accelerated_last_frame_; |
+ VideoImageGenerator* accelerated_generator_; |
+ base::TimeDelta accelerated_last_frame_timestamp_; |
+ base::OneShotTimer<SkCanvasVideoRenderer> accelerated_frame_deleting_timer_; |
scherkus (not reviewing)
2014/10/28 23:24:19
ditto
|
DISALLOW_COPY_AND_ASSIGN(SkCanvasVideoRenderer); |
}; |