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 |