| 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..a6f5942e1a9204110f030557d307784de017c110 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;
|
| @@ -231,15 +230,26 @@ void VideoLayerImpl::AppendQuads(RenderPass* render_pass,
|
| }
|
|
|
| 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 uv_tex_size;
|
| +
|
| + if (frame_->format() == media::VideoFrame::NATIVE_TEXTURE) {
|
| + DCHECK_EQ(media::VideoFrame::TEXTURE_YUV_420, frame_->texture_format());
|
| + DCHECK_EQ(3u, frame_resources_.size()); // Alpha is not supported yet.
|
| + DCHECK(visible_rect.origin().IsOrigin());
|
| + DCHECK(visible_rect.size() == coded_size);
|
| + uv_tex_size.SetSize((ya_tex_size.width() + 1) / 2,
|
| + (ya_tex_size.height() + 1) / 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));
|
| + DCHECK_IMPLIES(
|
| + frame_resources_.size() > 3,
|
| + ya_tex_size ==
|
| + media::VideoFrame::PlaneSize(
|
| + frame_->format(), media::VideoFrame::kAPlane, coded_size));
|
| }
|
|
|
| gfx::RectF tex_coord_rect(
|
|
|