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