| 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 // This test generate synthetic data. For audio it's a sinusoid waveform with | 5 // This test generate synthetic data. For audio it's a sinusoid waveform with |
| 6 // frequency kSoundFrequency and different amplitudes. For video it's a pattern | 6 // frequency kSoundFrequency and different amplitudes. For video it's a pattern |
| 7 // that is shifting by one pixel per frame, each pixels neighbors right and down | 7 // that is shifting by one pixel per frame, each pixels neighbors right and down |
| 8 // is this pixels value +1, since the pixel value is 8 bit it will wrap | 8 // is this pixels value +1, since the pixel value is 8 bit it will wrap |
| 9 // frequently within the image. Visually this will create diagonally color bands | 9 // frequently within the image. Visually this will create diagonally color bands |
| 10 // that moves across the screen | 10 // that moves across the screen |
| (...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 424 }; | 424 }; |
| 425 | 425 |
| 426 } // namespace | 426 } // namespace |
| 427 | 427 |
| 428 // The actual test class, generate synthetic data for both audio and video and | 428 // The actual test class, generate synthetic data for both audio and video and |
| 429 // send those through the sender and receiver and analyzes the result. | 429 // send those through the sender and receiver and analyzes the result. |
| 430 class End2EndTest : public ::testing::Test { | 430 class End2EndTest : public ::testing::Test { |
| 431 protected: | 431 protected: |
| 432 End2EndTest() | 432 End2EndTest() |
| 433 : start_time_(), | 433 : start_time_(), |
| 434 testing_clock_(base::TimeTicks() + |
| 435 base::TimeDelta::FromMilliseconds(kStartMillisecond)), |
| 434 task_runner_(new test::FakeSingleThreadTaskRunner(&testing_clock_)), | 436 task_runner_(new test::FakeSingleThreadTaskRunner(&testing_clock_)), |
| 435 testing_clock_sender_(new test::SkewedTickClock(&testing_clock_)), | 437 testing_clock_sender_(new test::SkewedTickClock(&testing_clock_)), |
| 436 task_runner_sender_( | 438 task_runner_sender_( |
| 437 new test::SkewedSingleThreadTaskRunner(task_runner_)), | 439 new test::SkewedSingleThreadTaskRunner(task_runner_)), |
| 438 testing_clock_receiver_(new test::SkewedTickClock(&testing_clock_)), | 440 testing_clock_receiver_(new test::SkewedTickClock(&testing_clock_)), |
| 439 task_runner_receiver_( | 441 task_runner_receiver_( |
| 440 new test::SkewedSingleThreadTaskRunner(task_runner_)), | 442 new test::SkewedSingleThreadTaskRunner(task_runner_)), |
| 441 cast_environment_sender_(new CastEnvironment( | 443 cast_environment_sender_(new CastEnvironment( |
| 442 scoped_ptr<base::TickClock>(testing_clock_sender_), | 444 scoped_ptr<base::TickClock>(testing_clock_sender_), |
| 443 task_runner_sender_, | 445 task_runner_sender_, |
| 444 task_runner_sender_, | 446 task_runner_sender_, |
| 445 task_runner_sender_)), | 447 task_runner_sender_)), |
| 446 cast_environment_receiver_(new CastEnvironment( | 448 cast_environment_receiver_(new CastEnvironment( |
| 447 scoped_ptr<base::TickClock>(testing_clock_receiver_), | 449 scoped_ptr<base::TickClock>(testing_clock_receiver_), |
| 448 task_runner_receiver_, | 450 task_runner_receiver_, |
| 449 task_runner_receiver_, | 451 task_runner_receiver_, |
| 450 task_runner_receiver_)), | 452 task_runner_receiver_)), |
| 451 receiver_to_sender_(cast_environment_receiver_), | 453 receiver_to_sender_(cast_environment_receiver_), |
| 452 sender_to_receiver_(cast_environment_sender_), | 454 sender_to_receiver_(cast_environment_sender_), |
| 453 test_receiver_audio_callback_(new TestReceiverAudioCallback()), | 455 test_receiver_audio_callback_(new TestReceiverAudioCallback()), |
| 454 test_receiver_video_callback_(new TestReceiverVideoCallback()) { | 456 test_receiver_video_callback_(new TestReceiverVideoCallback()) { |
| 455 testing_clock_.Advance( | |
| 456 base::TimeDelta::FromMilliseconds(kStartMillisecond)); | |
| 457 cast_environment_sender_->logger()->Subscribe(&event_subscriber_sender_); | 457 cast_environment_sender_->logger()->Subscribe(&event_subscriber_sender_); |
| 458 } | 458 } |
| 459 | 459 |
| 460 void Configure(Codec video_codec, | 460 void Configure(Codec video_codec, |
| 461 Codec audio_codec, | 461 Codec audio_codec, |
| 462 int audio_sampling_frequency, | 462 int audio_sampling_frequency, |
| 463 int max_number_of_video_buffers_used) { | 463 int max_number_of_video_buffers_used) { |
| 464 audio_sender_config_.ssrc = 1; | 464 audio_sender_config_.ssrc = 1; |
| 465 audio_sender_config_.receiver_ssrc = 2; | 465 audio_sender_config_.receiver_ssrc = 2; |
| 466 audio_sender_config_.max_playout_delay = | 466 audio_sender_config_.max_playout_delay = |
| (...skipping 977 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1444 EXPECT_LT(jump, 220u); | 1444 EXPECT_LT(jump, 220u); |
| 1445 } | 1445 } |
| 1446 | 1446 |
| 1447 // TODO(pwestin): Add repeatable packet loss test. | 1447 // TODO(pwestin): Add repeatable packet loss test. |
| 1448 // TODO(pwestin): Add test for misaligned send get calls. | 1448 // TODO(pwestin): Add test for misaligned send get calls. |
| 1449 // TODO(pwestin): Add more tests that does not resample. | 1449 // TODO(pwestin): Add more tests that does not resample. |
| 1450 // TODO(pwestin): Add test when we have starvation for our RunTask. | 1450 // TODO(pwestin): Add test when we have starvation for our RunTask. |
| 1451 | 1451 |
| 1452 } // namespace cast | 1452 } // namespace cast |
| 1453 } // namespace media | 1453 } // namespace media |
| OLD | NEW |