OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/resources/video_resource_updater.h" | 5 #include "cc/resources/video_resource_updater.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
| 10 #include "base/memory/ptr_util.h" |
10 #include "cc/resources/resource_provider.h" | 11 #include "cc/resources/resource_provider.h" |
11 #include "cc/test/fake_output_surface.h" | 12 #include "cc/test/fake_output_surface.h" |
12 #include "cc/test/fake_output_surface_client.h" | 13 #include "cc/test/fake_output_surface_client.h" |
13 #include "cc/test/fake_resource_provider.h" | 14 #include "cc/test/fake_resource_provider.h" |
14 #include "cc/test/test_shared_bitmap_manager.h" | 15 #include "cc/test/test_shared_bitmap_manager.h" |
15 #include "cc/test/test_web_graphics_context_3d.h" | 16 #include "cc/test/test_web_graphics_context_3d.h" |
16 #include "cc/trees/blocking_task_runner.h" | 17 #include "cc/trees/blocking_task_runner.h" |
17 #include "gpu/GLES2/gl2extchromium.h" | 18 #include "gpu/GLES2/gl2extchromium.h" |
18 #include "media/base/video_frame.h" | 19 #include "media/base/video_frame.h" |
19 #include "testing/gtest/include/gtest/gtest.h" | 20 #include "testing/gtest/include/gtest/gtest.h" |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 void ResetImmutableTextureCreated() { immutable_texture_created_ = false; } | 64 void ResetImmutableTextureCreated() { immutable_texture_created_ = false; } |
64 | 65 |
65 private: | 66 private: |
66 int upload_count_; | 67 int upload_count_; |
67 int created_texture_count_; | 68 int created_texture_count_; |
68 bool immutable_texture_created_; | 69 bool immutable_texture_created_; |
69 }; | 70 }; |
70 | 71 |
71 class SharedBitmapManagerAllocationCounter : public TestSharedBitmapManager { | 72 class SharedBitmapManagerAllocationCounter : public TestSharedBitmapManager { |
72 public: | 73 public: |
73 scoped_ptr<SharedBitmap> AllocateSharedBitmap( | 74 std::unique_ptr<SharedBitmap> AllocateSharedBitmap( |
74 const gfx::Size& size) override { | 75 const gfx::Size& size) override { |
75 ++allocation_count_; | 76 ++allocation_count_; |
76 return TestSharedBitmapManager::AllocateSharedBitmap(size); | 77 return TestSharedBitmapManager::AllocateSharedBitmap(size); |
77 } | 78 } |
78 | 79 |
79 int AllocationCount() { return allocation_count_; } | 80 int AllocationCount() { return allocation_count_; } |
80 void ResetAllocationCount() { allocation_count_ = 0; } | 81 void ResetAllocationCount() { allocation_count_ = 0; } |
81 | 82 |
82 private: | 83 private: |
83 int allocation_count_; | 84 int allocation_count_; |
84 }; | 85 }; |
85 | 86 |
86 class VideoResourceUpdaterTest : public testing::Test { | 87 class VideoResourceUpdaterTest : public testing::Test { |
87 protected: | 88 protected: |
88 VideoResourceUpdaterTest() { | 89 VideoResourceUpdaterTest() { |
89 scoped_ptr<WebGraphicsContext3DUploadCounter> context3d( | 90 std::unique_ptr<WebGraphicsContext3DUploadCounter> context3d( |
90 new WebGraphicsContext3DUploadCounter()); | 91 new WebGraphicsContext3DUploadCounter()); |
91 | 92 |
92 context3d_ = context3d.get(); | 93 context3d_ = context3d.get(); |
93 context3d_->set_support_texture_storage(true); | 94 context3d_->set_support_texture_storage(true); |
94 | 95 |
95 output_surface3d_ = FakeOutputSurface::Create3d(std::move(context3d)); | 96 output_surface3d_ = FakeOutputSurface::Create3d(std::move(context3d)); |
96 CHECK(output_surface3d_->BindToClient(&client_)); | 97 CHECK(output_surface3d_->BindToClient(&client_)); |
97 } | 98 } |
98 | 99 |
99 void SetUp() override { | 100 void SetUp() override { |
100 testing::Test::SetUp(); | 101 testing::Test::SetUp(); |
101 | 102 |
102 output_surface_software_ = FakeOutputSurface::CreateSoftware( | 103 output_surface_software_ = FakeOutputSurface::CreateSoftware( |
103 make_scoped_ptr(new SoftwareOutputDevice)); | 104 base::WrapUnique(new SoftwareOutputDevice)); |
104 CHECK(output_surface_software_->BindToClient(&client_)); | 105 CHECK(output_surface_software_->BindToClient(&client_)); |
105 | 106 |
106 shared_bitmap_manager_.reset(new SharedBitmapManagerAllocationCounter()); | 107 shared_bitmap_manager_.reset(new SharedBitmapManagerAllocationCounter()); |
107 resource_provider3d_ = FakeResourceProvider::Create( | 108 resource_provider3d_ = FakeResourceProvider::Create( |
108 output_surface3d_.get(), shared_bitmap_manager_.get()); | 109 output_surface3d_.get(), shared_bitmap_manager_.get()); |
109 | 110 |
110 resource_provider_software_ = FakeResourceProvider::Create( | 111 resource_provider_software_ = FakeResourceProvider::Create( |
111 output_surface_software_.get(), shared_bitmap_manager_.get()); | 112 output_surface_software_.get(), shared_bitmap_manager_.get()); |
112 } | 113 } |
113 | 114 |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 size, // coded_size | 237 size, // coded_size |
237 gfx::Rect(size), // visible_rect | 238 gfx::Rect(size), // visible_rect |
238 size, // natural_size | 239 size, // natural_size |
239 base::TimeDelta()); // timestamp | 240 base::TimeDelta()); // timestamp |
240 EXPECT_TRUE(video_frame); | 241 EXPECT_TRUE(video_frame); |
241 return video_frame; | 242 return video_frame; |
242 } | 243 } |
243 | 244 |
244 WebGraphicsContext3DUploadCounter* context3d_; | 245 WebGraphicsContext3DUploadCounter* context3d_; |
245 FakeOutputSurfaceClient client_; | 246 FakeOutputSurfaceClient client_; |
246 scoped_ptr<FakeOutputSurface> output_surface3d_; | 247 std::unique_ptr<FakeOutputSurface> output_surface3d_; |
247 scoped_ptr<FakeOutputSurface> output_surface_software_; | 248 std::unique_ptr<FakeOutputSurface> output_surface_software_; |
248 scoped_ptr<SharedBitmapManagerAllocationCounter> shared_bitmap_manager_; | 249 std::unique_ptr<SharedBitmapManagerAllocationCounter> shared_bitmap_manager_; |
249 scoped_ptr<ResourceProvider> resource_provider3d_; | 250 std::unique_ptr<ResourceProvider> resource_provider3d_; |
250 scoped_ptr<ResourceProvider> resource_provider_software_; | 251 std::unique_ptr<ResourceProvider> resource_provider_software_; |
251 }; | 252 }; |
252 | 253 |
253 TEST_F(VideoResourceUpdaterTest, SoftwareFrame) { | 254 TEST_F(VideoResourceUpdaterTest, SoftwareFrame) { |
254 VideoResourceUpdater updater(output_surface3d_->context_provider(), | 255 VideoResourceUpdater updater(output_surface3d_->context_provider(), |
255 resource_provider3d_.get()); | 256 resource_provider3d_.get()); |
256 scoped_refptr<media::VideoFrame> video_frame = CreateTestYUVVideoFrame(); | 257 scoped_refptr<media::VideoFrame> video_frame = CreateTestYUVVideoFrame(); |
257 | 258 |
258 VideoFrameExternalResources resources = | 259 VideoFrameExternalResources resources = |
259 updater.CreateExternalResourcesFromVideoFrame(video_frame); | 260 updater.CreateExternalResourcesFromVideoFrame(video_frame); |
260 EXPECT_EQ(VideoFrameExternalResources::YUV_RESOURCE, resources.type); | 261 EXPECT_EQ(VideoFrameExternalResources::YUV_RESOURCE, resources.type); |
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
506 // The texture copy path requires the use of CopyTextureCHROMIUM, which | 507 // The texture copy path requires the use of CopyTextureCHROMIUM, which |
507 // enforces that the target texture not be immutable, as it may need | 508 // enforces that the target texture not be immutable, as it may need |
508 // to alter the storage of the texture. Therefore, this test asserts | 509 // to alter the storage of the texture. Therefore, this test asserts |
509 // that an immutable texture wasn't created by glTexStorage2DEXT, when | 510 // that an immutable texture wasn't created by glTexStorage2DEXT, when |
510 // that extension is supported. | 511 // that extension is supported. |
511 EXPECT_FALSE(context3d_->WasImmutableTextureCreated()); | 512 EXPECT_FALSE(context3d_->WasImmutableTextureCreated()); |
512 } | 513 } |
513 | 514 |
514 } // namespace | 515 } // namespace |
515 } // namespace cc | 516 } // namespace cc |
OLD | NEW |