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