Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(119)

Unified Diff: media/renderers/skcanvas_video_renderer.cc

Issue 2369093002: Fixing repeated pixels when drawing HTML5 video to canvas. (Closed)
Patch Set: Minor corrections in unit test. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/renderers/skcanvas_video_renderer.h ('k') | media/renderers/skcanvas_video_renderer_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/renderers/skcanvas_video_renderer.cc
diff --git a/media/renderers/skcanvas_video_renderer.cc b/media/renderers/skcanvas_video_renderer.cc
index 3a2a3547553606f631e32a2f87cc24d94e2f254e..bca39a96a5526603a6cbd31c56037abb3c90addf 100644
--- a/media/renderers/skcanvas_video_renderer.cc
+++ b/media/renderers/skcanvas_video_renderer.cc
@@ -787,6 +787,7 @@ bool SkCanvasVideoRenderer::UpdateLastImage(
auto* video_generator = new VideoImageGenerator(video_frame);
last_image_ = SkImage::MakeFromGenerator(video_generator);
}
+ CorrectLastImageDimensions(gfx::RectToSkIRect(video_frame->visible_rect()));
if (!last_image_) // Couldn't create the SkImage.
return false;
last_timestamp_ = video_frame->timestamp();
@@ -796,4 +797,19 @@ bool SkCanvasVideoRenderer::UpdateLastImage(
return true;
}
+void SkCanvasVideoRenderer::CorrectLastImageDimensions(
+ const SkIRect& visible_rect) {
+ last_image_dimensions_for_testing_ = visible_rect.size();
+ if (!last_image_)
+ return;
+ if (last_image_->dimensions() != visible_rect.size() &&
+ last_image_->bounds().contains(visible_rect)) {
+ last_image_ = last_image_->makeSubset(visible_rect);
+ }
+}
+
+SkISize SkCanvasVideoRenderer::LastImageDimensionsForTesting() {
+ return last_image_dimensions_for_testing_;
+}
+
} // namespace media
« no previous file with comments | « media/renderers/skcanvas_video_renderer.h ('k') | media/renderers/skcanvas_video_renderer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698