Index: media/filters/skcanvas_video_renderer.cc |
diff --git a/media/filters/skcanvas_video_renderer.cc b/media/filters/skcanvas_video_renderer.cc |
index fe1bfde044ec91a71ac05b5b88b210189d8483e2..003c1951a9b4010e93e612a347d645b22aa3f66a 100644 |
--- a/media/filters/skcanvas_video_renderer.cc |
+++ b/media/filters/skcanvas_video_renderer.cc |
@@ -190,6 +190,7 @@ void SkCanvasVideoRenderer::Paint(media::VideoFrame* video_frame, |
SkCanvas* canvas, |
const gfx::RectF& dest_rect, |
uint8 alpha, |
+ SkXfermode::Mode mode, |
VideoRotation video_rotation) { |
if (alpha == 0) { |
return; |
@@ -233,13 +234,21 @@ void SkCanvasVideoRenderer::Paint(media::VideoFrame* video_frame, |
last_frame_timestamp_ = video_frame->timestamp(); |
} |
- // Use SRC mode so we completely overwrite the buffer (in case we have alpha) |
- // this means we don't need the extra cost of clearing the buffer first. |
- paint.setXfermode(SkXfermode::Create(SkXfermode::kSrc_Mode)); |
+ paint.setXfermodeMode(mode); |
// Paint using |last_frame_|. |
paint.setFilterLevel(SkPaint::kLow_FilterLevel); |
canvas->drawBitmapRect(last_frame_, NULL, dest, &paint); |
} |
+void SkCanvasVideoRenderer::Copy(media::VideoFrame* video_frame, |
+ SkCanvas* canvas) { |
+ Paint(video_frame, |
+ canvas, |
+ video_frame->visible_rect(), |
+ 0xff, |
+ SkXfermode::kSrc_Mode, |
+ media::VIDEO_ROTATION_0); |
+} |
+ |
} // namespace media |