| Index: media/gpu/vp9_decoder.cc
|
| diff --git a/media/gpu/vp9_decoder.cc b/media/gpu/vp9_decoder.cc
|
| index b24f2466846e28485dd17b23372c2a57e0deb302..4d2295724013ae89004d7a4a19e619da466f1fdc 100644
|
| --- a/media/gpu/vp9_decoder.cc
|
| +++ b/media/gpu/vp9_decoder.cc
|
| @@ -112,6 +112,15 @@ VP9Decoder::DecodeResult VP9Decoder::Decode() {
|
| curr_frame_hdr_->frame_height);
|
| DCHECK(!new_pic_size.IsEmpty());
|
|
|
| + gfx::Rect new_render_rect(curr_frame_hdr_->render_width,
|
| + curr_frame_hdr_->render_height);
|
| + // Due to specification render size should be set as not larger than frame
|
| + // size, or set as frame size if render_and_frame_size_different == 0. For
|
| + // safety we check the validity of render size or leave it as (0, 0).
|
| + if (!gfx::Rect(new_pic_size).Contains(new_render_rect))
|
| + new_render_rect = gfx::Rect();
|
| + DVLOG(1) << "Render resolution: " << new_render_rect.ToString();
|
| +
|
| if (new_pic_size != pic_size_) {
|
| DVLOG(1) << "New resolution: " << new_pic_size.ToString();
|
|
|
| @@ -138,6 +147,7 @@ VP9Decoder::DecodeResult VP9Decoder::Decode() {
|
| if (!pic)
|
| return kRanOutOfSurfaces;
|
|
|
| + pic->visible_rect = new_render_rect;
|
| pic->frame_hdr.reset(curr_frame_hdr_.release());
|
|
|
| if (!DecodeAndOutputPicture(pic)) {
|
|
|