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 299c446ff609f621438cd36d0536f804f3b56460..0e2191bb609fe4acbcccd19b55655f335a0e63aa 100644 |
| --- a/cc/layers/video_layer_impl.cc |
| +++ b/cc/layers/video_layer_impl.cc |
| @@ -12,6 +12,7 @@ |
| #include "cc/layers/video_frame_provider_client_impl.h" |
| #include "cc/quads/stream_video_draw_quad.h" |
| #include "cc/quads/texture_draw_quad.h" |
| +#include "cc/quads/y_video_draw_quad.h" |
| #include "cc/quads/yuv_video_draw_quad.h" |
| #include "cc/resources/resource_provider.h" |
| #include "cc/resources/single_release_callback_impl.h" |
| @@ -309,6 +310,24 @@ void VideoLayerImpl::AppendQuads(RenderPass* render_pass, |
| ValidateQuadResources(texture_quad); |
| break; |
| } |
| + case VideoFrameExternalResources::Y16_RESOURCE: { |
| + // TODO(astojilj) TextureDrawQuad could be used with nearest_neighbor set |
| + // - evaluate if it is required to add YVideoDrawQuad for Y16 and Y8. |
| + // For now it desnt't look like YVideoDrawQuad is required as the plan |
| + // is to render RG or R in original form. |
| + DCHECK_EQ(frame_resources_.size(), 1u); |
| + if (frame_resources_.size() < 1u) |
| + break; |
| + gfx::PointF uv_top_left(0.f, 0.f); |
| + gfx::PointF uv_bottom_right(tex_width_scale, tex_height_scale); |
| + YVideoDrawQuad* y_video_quad = |
|
dshwang
2016/07/04 18:23:16
IMO, existing TextureDrawQuad can handle it.
aleksandar.stojiljkovic
2016/07/05 19:54:17
Done.
|
| + render_pass->CreateAndAppendDrawQuad<YVideoDrawQuad>(); |
| + y_video_quad->SetNew(shared_quad_state, quad_rect, opaque_rect, |
| + visible_quad_rect, frame_resources_[0].id, uv_top_left, |
| + uv_bottom_right); |
| + ValidateQuadResources(y_video_quad); |
| + break; |
| + } |
| case VideoFrameExternalResources::STREAM_TEXTURE_RESOURCE: { |
| DCHECK_EQ(frame_resources_.size(), 1u); |
| if (frame_resources_.size() < 1u) |