| OLD | NEW | 
|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "cc/layers/video_layer_impl.h" | 5 #include "cc/layers/video_layer_impl.h" | 
| 6 | 6 | 
| 7 #include <stddef.h> | 7 #include <stddef.h> | 
| 8 | 8 | 
| 9 #include "cc/layers/video_frame_provider_client_impl.h" | 9 #include "cc/layers/video_frame_provider_client_impl.h" | 
| 10 #include "cc/output/context_provider.h" | 10 #include "cc/output/context_provider.h" | 
| (...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 371 | 371 | 
| 372   const YUVVideoDrawQuad* yuv_draw_quad = | 372   const YUVVideoDrawQuad* yuv_draw_quad = | 
| 373       static_cast<const YUVVideoDrawQuad*>(draw_quad); | 373       static_cast<const YUVVideoDrawQuad*>(draw_quad); | 
| 374   EXPECT_EQ(yuv_draw_quad->uv_tex_size.height(), | 374   EXPECT_EQ(yuv_draw_quad->uv_tex_size.height(), | 
| 375             (yuv_draw_quad->ya_tex_size.height() + 1) / 2); | 375             (yuv_draw_quad->ya_tex_size.height() + 1) / 2); | 
| 376   EXPECT_EQ(yuv_draw_quad->uv_tex_size.width(), | 376   EXPECT_EQ(yuv_draw_quad->uv_tex_size.width(), | 
| 377             (yuv_draw_quad->ya_tex_size.width() + 1) / 2); | 377             (yuv_draw_quad->ya_tex_size.width() + 1) / 2); | 
| 378   EXPECT_TRUE(yuv_draw_quad->require_overlay); | 378   EXPECT_TRUE(yuv_draw_quad->require_overlay); | 
| 379 } | 379 } | 
| 380 | 380 | 
| 381 TEST(VideoLayerImplTest, NativeARGBFrameGeneratesStreamVideoQuad) { |  | 
| 382   gfx::Size layer_size(1000, 1000); |  | 
| 383   gfx::Size viewport_size(1000, 1000); |  | 
| 384 |  | 
| 385   LayerTestCommon::LayerImplTest impl; |  | 
| 386   DebugSetImplThreadAndMainThreadBlocked(impl.task_runner_provider()); |  | 
| 387 |  | 
| 388   gpu::MailboxHolder mailbox_holders[media::VideoFrame::kMaxPlanes]; |  | 
| 389   mailbox_holders[0].texture_target = GL_TEXTURE_EXTERNAL_OES; |  | 
| 390   mailbox_holders[0].mailbox.name[0] = 1; |  | 
| 391 |  | 
| 392   gfx::Size resource_size = gfx::Size(10, 10); |  | 
| 393   scoped_refptr<media::VideoFrame> video_frame = |  | 
| 394       media::VideoFrame::WrapNativeTextures( |  | 
| 395           media::PIXEL_FORMAT_ARGB, mailbox_holders, base::Bind(EmptyCallback), |  | 
| 396           resource_size, gfx::Rect(10, 10), resource_size, base::TimeDelta()); |  | 
| 397   ASSERT_TRUE(video_frame); |  | 
| 398   video_frame->metadata()->SetBoolean(media::VideoFrameMetadata::ALLOW_OVERLAY, |  | 
| 399                                       true); |  | 
| 400   FakeVideoFrameProvider provider; |  | 
| 401   provider.set_frame(video_frame); |  | 
| 402 |  | 
| 403   VideoLayerImpl* video_layer_impl = |  | 
| 404       impl.AddChildToRoot<VideoLayerImpl>(&provider, media::VIDEO_ROTATION_0); |  | 
| 405   video_layer_impl->SetBounds(layer_size); |  | 
| 406   video_layer_impl->SetDrawsContent(true); |  | 
| 407   impl.host_impl()->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |  | 
| 408 |  | 
| 409   gfx::Rect occluded; |  | 
| 410   impl.AppendQuadsWithOcclusion(video_layer_impl, occluded); |  | 
| 411 |  | 
| 412   EXPECT_EQ(1u, impl.quad_list().size()); |  | 
| 413   const DrawQuad* draw_quad = impl.quad_list().ElementAt(0); |  | 
| 414   ASSERT_EQ(DrawQuad::STREAM_VIDEO_CONTENT, draw_quad->material); |  | 
| 415 |  | 
| 416   const StreamVideoDrawQuad* video_draw_quad = |  | 
| 417       StreamVideoDrawQuad::MaterialCast(draw_quad); |  | 
| 418   EXPECT_EQ(video_draw_quad->resource_size_in_pixels(), resource_size); |  | 
| 419 } |  | 
| 420 |  | 
| 421 TEST(VideoLayerImplTest, NativeARGBFrameGeneratesTextureQuad) { | 381 TEST(VideoLayerImplTest, NativeARGBFrameGeneratesTextureQuad) { | 
| 422   gfx::Size layer_size(1000, 1000); | 382   gfx::Size layer_size(1000, 1000); | 
| 423   gfx::Size viewport_size(1000, 1000); | 383   gfx::Size viewport_size(1000, 1000); | 
| 424 | 384 | 
| 425   LayerTestCommon::LayerImplTest impl; | 385   LayerTestCommon::LayerImplTest impl; | 
| 426   DebugSetImplThreadAndMainThreadBlocked(impl.task_runner_provider()); | 386   DebugSetImplThreadAndMainThreadBlocked(impl.task_runner_provider()); | 
| 427 | 387 | 
| 428   gpu::MailboxHolder mailbox_holders[media::VideoFrame::kMaxPlanes]; | 388   gpu::MailboxHolder mailbox_holders[media::VideoFrame::kMaxPlanes]; | 
| 429   mailbox_holders[0].texture_target = GL_TEXTURE_2D; | 389   mailbox_holders[0].texture_target = GL_TEXTURE_2D; | 
| 430   mailbox_holders[0].mailbox.name[0] = 1; | 390   mailbox_holders[0].mailbox.name[0] = 1; | 
| (...skipping 22 matching lines...) Expand all  Loading... | 
| 453   const DrawQuad* draw_quad = impl.quad_list().ElementAt(0); | 413   const DrawQuad* draw_quad = impl.quad_list().ElementAt(0); | 
| 454   ASSERT_EQ(DrawQuad::TEXTURE_CONTENT, draw_quad->material); | 414   ASSERT_EQ(DrawQuad::TEXTURE_CONTENT, draw_quad->material); | 
| 455 | 415 | 
| 456   const TextureDrawQuad* texture_draw_quad = | 416   const TextureDrawQuad* texture_draw_quad = | 
| 457       TextureDrawQuad::MaterialCast(draw_quad); | 417       TextureDrawQuad::MaterialCast(draw_quad); | 
| 458   EXPECT_EQ(texture_draw_quad->resource_size_in_pixels(), resource_size); | 418   EXPECT_EQ(texture_draw_quad->resource_size_in_pixels(), resource_size); | 
| 459 } | 419 } | 
| 460 | 420 | 
| 461 }  // namespace | 421 }  // namespace | 
| 462 }  // namespace cc | 422 }  // namespace cc | 
| OLD | NEW | 
|---|