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 <vector> | 5 #include <vector> |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "media/base/video_frame.h" | 10 #include "media/base/video_frame.h" |
11 #include "media/cast/cast_defines.h" | 11 #include "media/cast/cast_defines.h" |
12 #include "media/cast/cast_environment.h" | 12 #include "media/cast/cast_environment.h" |
13 #include "media/cast/sender/external_video_encoder.h" | 13 #include "media/cast/sender/external_video_encoder.h" |
14 #include "media/cast/test/fake_single_thread_task_runner.h" | 14 #include "media/cast/test/fake_single_thread_task_runner.h" |
15 #include "media/cast/test/fake_video_encode_accelerator.h" | 15 #include "media/cast/test/fake_video_encode_accelerator.h" |
16 #include "media/cast/test/utility/video_utility.h" | 16 #include "media/cast/test/utility/video_utility.h" |
17 #include "testing/gmock/include/gmock/gmock.h" | 17 #include "testing/gmock/include/gmock/gmock.h" |
18 | 18 |
19 namespace media { | 19 namespace media { |
20 namespace cast { | 20 namespace cast { |
21 | 21 |
22 using testing::_; | 22 using testing::_; |
23 | 23 |
24 namespace { | 24 namespace { |
25 | 25 |
| 26 void IgnoreInitializationStatus(CastInitializationStatus status) {} |
| 27 |
26 class VEAFactory { | 28 class VEAFactory { |
27 public: | 29 public: |
28 VEAFactory(const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, | 30 VEAFactory(const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, |
29 scoped_ptr<VideoEncodeAccelerator> vea) | 31 scoped_ptr<VideoEncodeAccelerator> vea) |
30 : task_runner_(task_runner), vea_(vea.Pass()) {} | 32 : task_runner_(task_runner), vea_(vea.Pass()) {} |
31 | 33 |
32 void CreateVideoEncodeAccelerator( | 34 void CreateVideoEncodeAccelerator( |
33 const ReceiveVideoEncodeAcceleratorCallback& callback) { | 35 const ReceiveVideoEncodeAcceleratorCallback& callback) { |
34 create_cb_ = callback; | 36 create_cb_ = callback; |
35 } | 37 } |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 task_runner_, | 129 task_runner_, |
128 task_runner_); | 130 task_runner_); |
129 | 131 |
130 fake_vea_ = new test::FakeVideoEncodeAccelerator(task_runner_, | 132 fake_vea_ = new test::FakeVideoEncodeAccelerator(task_runner_, |
131 &stored_bitrates_); | 133 &stored_bitrates_); |
132 scoped_ptr<VideoEncodeAccelerator> fake_vea(fake_vea_); | 134 scoped_ptr<VideoEncodeAccelerator> fake_vea(fake_vea_); |
133 VEAFactory vea_factory(task_runner_, fake_vea.Pass()); | 135 VEAFactory vea_factory(task_runner_, fake_vea.Pass()); |
134 video_encoder_.reset(new ExternalVideoEncoder( | 136 video_encoder_.reset(new ExternalVideoEncoder( |
135 cast_environment_, | 137 cast_environment_, |
136 video_config_, | 138 video_config_, |
| 139 base::Bind(&IgnoreInitializationStatus), |
137 base::Bind(&VEAFactory::CreateVideoEncodeAccelerator, | 140 base::Bind(&VEAFactory::CreateVideoEncodeAccelerator, |
138 base::Unretained(&vea_factory)), | 141 base::Unretained(&vea_factory)), |
139 base::Bind(&CreateSharedMemory))); | 142 base::Bind(&CreateSharedMemory))); |
140 vea_factory.FinishCreatingVideoEncodeAccelerator(); | 143 vea_factory.FinishCreatingVideoEncodeAccelerator(); |
141 } | 144 } |
142 | 145 |
143 virtual ~ExternalVideoEncoderTest() {} | 146 virtual ~ExternalVideoEncoderTest() {} |
144 | 147 |
145 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment. | 148 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment. |
146 test::FakeVideoEncodeAccelerator* fake_vea_; // Owned by video_encoder_. | 149 test::FakeVideoEncodeAccelerator* fake_vea_; // Owned by video_encoder_. |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 task_runner)); | 225 task_runner)); |
223 | 226 |
224 std::vector<uint32> stored_bitrates; | 227 std::vector<uint32> stored_bitrates; |
225 scoped_ptr<VideoEncodeAccelerator> fake_vea( | 228 scoped_ptr<VideoEncodeAccelerator> fake_vea( |
226 new test::FakeVideoEncodeAccelerator(task_runner, &stored_bitrates)); | 229 new test::FakeVideoEncodeAccelerator(task_runner, &stored_bitrates)); |
227 VEAFactory vea_factory(task_runner, fake_vea.Pass()); | 230 VEAFactory vea_factory(task_runner, fake_vea.Pass()); |
228 | 231 |
229 scoped_ptr<ExternalVideoEncoder> video_encoder(new ExternalVideoEncoder( | 232 scoped_ptr<ExternalVideoEncoder> video_encoder(new ExternalVideoEncoder( |
230 cast_environment, | 233 cast_environment, |
231 video_config, | 234 video_config, |
| 235 base::Bind(&IgnoreInitializationStatus), |
232 base::Bind(&VEAFactory::CreateVideoEncodeAccelerator, | 236 base::Bind(&VEAFactory::CreateVideoEncodeAccelerator, |
233 base::Unretained(&vea_factory)), | 237 base::Unretained(&vea_factory)), |
234 base::Bind(&CreateSharedMemory))); | 238 base::Bind(&CreateSharedMemory))); |
235 | 239 |
236 video_encoder.reset(); | 240 video_encoder.reset(); |
237 vea_factory.FinishCreatingVideoEncodeAccelerator(); | 241 vea_factory.FinishCreatingVideoEncodeAccelerator(); |
238 task_runner->RunTasks(); | 242 task_runner->RunTasks(); |
239 } | 243 } |
240 | 244 |
241 } // namespace cast | 245 } // namespace cast |
242 } // namespace media | 246 } // namespace media |
OLD | NEW |