| 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 <stdint.h> | 5 #include <stdint.h> |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 83 DISALLOW_COPY_AND_ASSIGN(TestPacketSender); | 83 DISALLOW_COPY_AND_ASSIGN(TestPacketSender); |
| 84 }; | 84 }; |
| 85 | 85 |
| 86 class PeerVideoSender : public VideoSender { | 86 class PeerVideoSender : public VideoSender { |
| 87 public: | 87 public: |
| 88 PeerVideoSender( | 88 PeerVideoSender( |
| 89 scoped_refptr<CastEnvironment> cast_environment, | 89 scoped_refptr<CastEnvironment> cast_environment, |
| 90 const VideoSenderConfig& video_config, | 90 const VideoSenderConfig& video_config, |
| 91 const CreateVideoEncodeAcceleratorCallback& create_vea_cb, | 91 const CreateVideoEncodeAcceleratorCallback& create_vea_cb, |
| 92 const CreateVideoEncodeMemoryCallback& create_video_encode_mem_cb, | 92 const CreateVideoEncodeMemoryCallback& create_video_encode_mem_cb, |
| 93 const CastInitializationCallback& cast_initialization_cb, | |
| 94 transport::CastTransportSender* const transport_sender) | 93 transport::CastTransportSender* const transport_sender) |
| 95 : VideoSender(cast_environment, | 94 : VideoSender(cast_environment, |
| 96 video_config, | 95 video_config, |
| 97 create_vea_cb, | 96 create_vea_cb, |
| 98 create_video_encode_mem_cb, | 97 create_video_encode_mem_cb, |
| 99 cast_initialization_cb, | |
| 100 transport_sender) {} | 98 transport_sender) {} |
| 101 using VideoSender::OnReceivedCastFeedback; | 99 using VideoSender::OnReceivedCastFeedback; |
| 102 }; | 100 }; |
| 103 } // namespace | 101 } // namespace |
| 104 | 102 |
| 105 class VideoSenderTest : public ::testing::Test { | 103 class VideoSenderTest : public ::testing::Test { |
| 106 protected: | 104 protected: |
| 107 VideoSenderTest() { | 105 VideoSenderTest() { |
| 108 testing_clock_ = new base::SimpleTestTickClock(); | 106 testing_clock_ = new base::SimpleTestTickClock(); |
| 109 testing_clock_->Advance(base::TimeTicks::Now() - base::TimeTicks()); | 107 testing_clock_->Advance(base::TimeTicks::Now() - base::TimeTicks()); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 157 if (external) { | 155 if (external) { |
| 158 scoped_ptr<VideoEncodeAccelerator> fake_vea( | 156 scoped_ptr<VideoEncodeAccelerator> fake_vea( |
| 159 new test::FakeVideoEncodeAccelerator(task_runner_)); | 157 new test::FakeVideoEncodeAccelerator(task_runner_)); |
| 160 video_sender_.reset( | 158 video_sender_.reset( |
| 161 new PeerVideoSender(cast_environment_, | 159 new PeerVideoSender(cast_environment_, |
| 162 video_config, | 160 video_config, |
| 163 base::Bind(&CreateVideoEncodeAccelerator, | 161 base::Bind(&CreateVideoEncodeAccelerator, |
| 164 task_runner_, | 162 task_runner_, |
| 165 base::Passed(&fake_vea)), | 163 base::Passed(&fake_vea)), |
| 166 base::Bind(&CreateSharedMemory), | 164 base::Bind(&CreateSharedMemory), |
| 167 base::Bind(&VideoSenderTest::InitializationResult, | |
| 168 base::Unretained(this)), | |
| 169 transport_sender_.get())); | 165 transport_sender_.get())); |
| 170 } else { | 166 } else { |
| 171 video_sender_.reset( | 167 video_sender_.reset( |
| 172 new PeerVideoSender(cast_environment_, | 168 new PeerVideoSender(cast_environment_, |
| 173 video_config, | 169 video_config, |
| 174 CreateDefaultVideoEncodeAcceleratorCallback(), | 170 CreateDefaultVideoEncodeAcceleratorCallback(), |
| 175 CreateDefaultVideoEncodeMemoryCallback(), | 171 CreateDefaultVideoEncodeMemoryCallback(), |
| 176 base::Bind(&VideoSenderTest::InitializationResult, | |
| 177 base::Unretained(this)), | |
| 178 transport_sender_.get())); | 172 transport_sender_.get())); |
| 179 } | 173 } |
| 174 ASSERT_EQ(STATUS_VIDEO_INITIALIZED, video_sender_->InitializationResult()); |
| 180 } | 175 } |
| 181 | 176 |
| 182 scoped_refptr<media::VideoFrame> GetNewVideoFrame() { | 177 scoped_refptr<media::VideoFrame> GetNewVideoFrame() { |
| 183 gfx::Size size(kWidth, kHeight); | 178 gfx::Size size(kWidth, kHeight); |
| 184 scoped_refptr<media::VideoFrame> video_frame = | 179 scoped_refptr<media::VideoFrame> video_frame = |
| 185 media::VideoFrame::CreateFrame( | 180 media::VideoFrame::CreateFrame( |
| 186 VideoFrame::I420, size, gfx::Rect(size), size, base::TimeDelta()); | 181 VideoFrame::I420, size, gfx::Rect(size), size, base::TimeDelta()); |
| 187 PopulateVideoFrame(video_frame, kPixelValue); | 182 PopulateVideoFrame(video_frame, kPixelValue); |
| 188 return video_frame; | 183 return video_frame; |
| 189 } | 184 } |
| 190 | 185 |
| 191 void RunTasks(int during_ms) { | 186 void RunTasks(int during_ms) { |
| 192 for (int i = 0; i < during_ms; ++i) { | 187 for (int i = 0; i < during_ms; ++i) { |
| 193 // Call process the timers every 1 ms. | 188 // Call process the timers every 1 ms. |
| 194 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(1)); | 189 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(1)); |
| 195 task_runner_->RunTasks(); | 190 task_runner_->RunTasks(); |
| 196 } | 191 } |
| 197 } | 192 } |
| 198 | 193 |
| 199 void InitializationResult(CastInitializationStatus result) { | |
| 200 EXPECT_EQ(STATUS_VIDEO_INITIALIZED, result); | |
| 201 } | |
| 202 | |
| 203 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment. | 194 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment. |
| 204 TestPacketSender transport_; | 195 TestPacketSender transport_; |
| 205 scoped_ptr<transport::CastTransportSenderImpl> transport_sender_; | 196 scoped_ptr<transport::CastTransportSenderImpl> transport_sender_; |
| 206 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_; | 197 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_; |
| 207 scoped_ptr<PeerVideoSender> video_sender_; | 198 scoped_ptr<PeerVideoSender> video_sender_; |
| 208 scoped_refptr<CastEnvironment> cast_environment_; | 199 scoped_refptr<CastEnvironment> cast_environment_; |
| 209 | 200 |
| 210 DISALLOW_COPY_AND_ASSIGN(VideoSenderTest); | 201 DISALLOW_COPY_AND_ASSIGN(VideoSenderTest); |
| 211 }; | 202 }; |
| 212 | 203 |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 // Empty the pipeline. | 353 // Empty the pipeline. |
| 363 RunTasks(100); | 354 RunTasks(100); |
| 364 // Should have sent at least 7 packets. | 355 // Should have sent at least 7 packets. |
| 365 EXPECT_LE( | 356 EXPECT_LE( |
| 366 7, | 357 7, |
| 367 transport_.number_of_rtp_packets() + transport_.number_of_rtcp_packets()); | 358 transport_.number_of_rtp_packets() + transport_.number_of_rtcp_packets()); |
| 368 } | 359 } |
| 369 | 360 |
| 370 } // namespace cast | 361 } // namespace cast |
| 371 } // namespace media | 362 } // namespace media |
| OLD | NEW |