Chromium Code Reviews| Index: cc/layers/video_layer_impl.cc |
| diff --git a/cc/layers/video_layer_impl.cc b/cc/layers/video_layer_impl.cc |
| index 51719717e6d49698db972ee9c80580348524d490..32c0f0dc9eb6fab78a62f4356a64fb5aa9556fe9 100644 |
| --- a/cc/layers/video_layer_impl.cc |
| +++ b/cc/layers/video_layer_impl.cc |
| @@ -221,8 +221,7 @@ void VideoLayerImpl::AppendQuads(RenderPass* render_pass, |
| } |
| case VideoFrameExternalResources::YUV_RESOURCE: { |
| DCHECK_GE(frame_resources_.size(), 3u); |
| - if (frame_resources_.size() < 3u) |
| - break; |
| + |
| YUVVideoDrawQuad::ColorSpace color_space = YUVVideoDrawQuad::REC_601; |
| if (frame_->format() == media::VideoFrame::YV12J) { |
| color_space = YUVVideoDrawQuad::JPEG; |
| @@ -230,16 +229,25 @@ void VideoLayerImpl::AppendQuads(RenderPass* render_pass, |
| color_space = YUVVideoDrawQuad::REC_709; |
| } |
| - const gfx::Size ya_tex_size = coded_size; |
| - const gfx::Size uv_tex_size = media::VideoFrame::PlaneSize( |
| - frame_->format(), media::VideoFrame::kUPlane, coded_size); |
| - DCHECK(uv_tex_size == |
| - media::VideoFrame::PlaneSize( |
| - frame_->format(), media::VideoFrame::kVPlane, coded_size)); |
| - if (frame_resources_.size() > 3) { |
| - DCHECK(ya_tex_size == |
| + gfx::Size ya_tex_size = coded_size; |
|
hendrikw
2015/05/14 22:11:19
Not too important, but you could leave ya_tex_size
Daniele Castagna
2015/05/14 22:23:03
Done.
|
| + gfx::Size uv_tex_size; |
| + |
| + if (frame_->format() == media::VideoFrame::NATIVE_TEXTURE) { |
| + DCHECK_EQ(media::VideoFrame::TEXTURE_YUV_420, frame_->texture_format()); |
| + DCHECK(visible_rect.origin().IsOrigin()); |
| + DCHECK(visible_rect.size() == coded_size); |
| + uv_tex_size.SetSize(ya_tex_size.width() / 2, ya_tex_size.height() / 2); |
| + } else { |
| + uv_tex_size = media::VideoFrame::PlaneSize( |
| + frame_->format(), media::VideoFrame::kUPlane, coded_size); |
| + DCHECK(uv_tex_size == |
| media::VideoFrame::PlaneSize( |
| - frame_->format(), media::VideoFrame::kAPlane, coded_size)); |
| + frame_->format(), media::VideoFrame::kVPlane, coded_size)); |
| + if (frame_resources_.size() > 3) { |
| + DCHECK(ya_tex_size == |
| + media::VideoFrame::PlaneSize( |
| + frame_->format(), media::VideoFrame::kAPlane, coded_size)); |
| + } |
| } |
| gfx::RectF tex_coord_rect( |