| 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
|
|
|