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 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
397 // The actual test class, generate synthetic data for both audio and video and | 397 // The actual test class, generate synthetic data for both audio and video and |
398 // send those through the sender and receiver and analyzes the result. | 398 // send those through the sender and receiver and analyzes the result. |
399 class End2EndTest : public ::testing::Test { | 399 class End2EndTest : public ::testing::Test { |
400 protected: | 400 protected: |
401 End2EndTest() | 401 End2EndTest() |
402 : start_time_(), | 402 : start_time_(), |
403 testing_clock_sender_(new base::SimpleTestTickClock()), | 403 testing_clock_sender_(new base::SimpleTestTickClock()), |
404 testing_clock_receiver_(new base::SimpleTestTickClock()), | 404 testing_clock_receiver_(new base::SimpleTestTickClock()), |
405 task_runner_( | 405 task_runner_( |
406 new test::FakeSingleThreadTaskRunner(testing_clock_sender_)), | 406 new test::FakeSingleThreadTaskRunner(testing_clock_sender_)), |
407 logging_config_(GetLoggingConfigWithRawEventsAndStatsEnabled()), | |
408 cast_environment_sender_(new CastEnvironment( | 407 cast_environment_sender_(new CastEnvironment( |
409 scoped_ptr<base::TickClock>(testing_clock_sender_).Pass(), | 408 scoped_ptr<base::TickClock>(testing_clock_sender_).Pass(), |
410 task_runner_, | 409 task_runner_, |
411 task_runner_, | 410 task_runner_, |
412 task_runner_, | 411 task_runner_)), |
413 logging_config_)), | |
414 cast_environment_receiver_(new CastEnvironment( | 412 cast_environment_receiver_(new CastEnvironment( |
415 scoped_ptr<base::TickClock>(testing_clock_receiver_).Pass(), | 413 scoped_ptr<base::TickClock>(testing_clock_receiver_).Pass(), |
416 task_runner_, | 414 task_runner_, |
417 task_runner_, | 415 task_runner_, |
418 task_runner_, | 416 task_runner_)), |
419 logging_config_)), | |
420 receiver_to_sender_(cast_environment_receiver_), | 417 receiver_to_sender_(cast_environment_receiver_), |
421 sender_to_receiver_(cast_environment_sender_), | 418 sender_to_receiver_(cast_environment_sender_), |
422 test_receiver_audio_callback_(new TestReceiverAudioCallback()), | 419 test_receiver_audio_callback_(new TestReceiverAudioCallback()), |
423 test_receiver_video_callback_(new TestReceiverVideoCallback()) { | 420 test_receiver_video_callback_(new TestReceiverVideoCallback()) { |
424 testing_clock_sender_->Advance( | 421 testing_clock_sender_->Advance( |
425 base::TimeDelta::FromMilliseconds(kStartMillisecond)); | 422 base::TimeDelta::FromMilliseconds(kStartMillisecond)); |
426 testing_clock_receiver_->Advance( | 423 testing_clock_receiver_->Advance( |
427 base::TimeDelta::FromMilliseconds(kStartMillisecond)); | 424 base::TimeDelta::FromMilliseconds(kStartMillisecond)); |
428 cast_environment_sender_->Logging()->AddRawEventSubscriber( | 425 cast_environment_sender_->Logging()->AddRawEventSubscriber( |
429 &event_subscriber_sender_); | 426 &event_subscriber_sender_); |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
494 void Create() { | 491 void Create() { |
495 cast_receiver_ = CastReceiver::Create(cast_environment_receiver_, | 492 cast_receiver_ = CastReceiver::Create(cast_environment_receiver_, |
496 audio_receiver_config_, | 493 audio_receiver_config_, |
497 video_receiver_config_, | 494 video_receiver_config_, |
498 &receiver_to_sender_); | 495 &receiver_to_sender_); |
499 net::IPEndPoint dummy_endpoint; | 496 net::IPEndPoint dummy_endpoint; |
500 transport_sender_.reset(new transport::CastTransportSenderImpl( | 497 transport_sender_.reset(new transport::CastTransportSenderImpl( |
501 NULL, | 498 NULL, |
502 testing_clock_sender_, | 499 testing_clock_sender_, |
503 dummy_endpoint, | 500 dummy_endpoint, |
504 logging_config_, | |
505 base::Bind(&UpdateCastTransportStatus), | 501 base::Bind(&UpdateCastTransportStatus), |
506 base::Bind(&End2EndTest::LogRawEvents, base::Unretained(this)), | 502 base::Bind(&End2EndTest::LogRawEvents, base::Unretained(this)), |
507 base::TimeDelta::FromSeconds(1), | 503 base::TimeDelta::FromSeconds(1), |
508 task_runner_, | 504 task_runner_, |
509 &sender_to_receiver_)); | 505 &sender_to_receiver_)); |
510 transport_sender_->InitializeAudio(transport_audio_config_); | 506 transport_sender_->InitializeAudio(transport_audio_config_); |
511 transport_sender_->InitializeVideo(transport_video_config_); | 507 transport_sender_->InitializeVideo(transport_video_config_); |
512 | 508 |
513 cast_sender_ = | 509 cast_sender_ = |
514 CastSender::Create(cast_environment_sender_, transport_sender_.get()); | 510 CastSender::Create(cast_environment_sender_, transport_sender_.get()); |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
590 VideoReceiverConfig video_receiver_config_; | 586 VideoReceiverConfig video_receiver_config_; |
591 AudioSenderConfig audio_sender_config_; | 587 AudioSenderConfig audio_sender_config_; |
592 VideoSenderConfig video_sender_config_; | 588 VideoSenderConfig video_sender_config_; |
593 transport::CastTransportAudioConfig transport_audio_config_; | 589 transport::CastTransportAudioConfig transport_audio_config_; |
594 transport::CastTransportVideoConfig transport_video_config_; | 590 transport::CastTransportVideoConfig transport_video_config_; |
595 | 591 |
596 base::TimeTicks start_time_; | 592 base::TimeTicks start_time_; |
597 base::SimpleTestTickClock* testing_clock_sender_; | 593 base::SimpleTestTickClock* testing_clock_sender_; |
598 base::SimpleTestTickClock* testing_clock_receiver_; | 594 base::SimpleTestTickClock* testing_clock_receiver_; |
599 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_; | 595 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_; |
600 CastLoggingConfig logging_config_; | |
601 scoped_refptr<CastEnvironment> cast_environment_sender_; | 596 scoped_refptr<CastEnvironment> cast_environment_sender_; |
602 scoped_refptr<CastEnvironment> cast_environment_receiver_; | 597 scoped_refptr<CastEnvironment> cast_environment_receiver_; |
603 | 598 |
604 LoopBackTransport receiver_to_sender_; | 599 LoopBackTransport receiver_to_sender_; |
605 LoopBackTransport sender_to_receiver_; | 600 LoopBackTransport sender_to_receiver_; |
606 scoped_ptr<transport::CastTransportSenderImpl> transport_sender_; | 601 scoped_ptr<transport::CastTransportSenderImpl> transport_sender_; |
607 | 602 |
608 scoped_ptr<CastReceiver> cast_receiver_; | 603 scoped_ptr<CastReceiver> cast_receiver_; |
609 scoped_ptr<CastSender> cast_sender_; | 604 scoped_ptr<CastSender> cast_sender_; |
610 scoped_refptr<AudioFrameInput> audio_frame_input_; | 605 scoped_refptr<AudioFrameInput> audio_frame_input_; |
(...skipping 710 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1321 EXPECT_EQ(total_event_count_for_frame, expected_event_count_for_frame); | 1316 EXPECT_EQ(total_event_count_for_frame, expected_event_count_for_frame); |
1322 } | 1317 } |
1323 | 1318 |
1324 // TODO(pwestin): Add repeatable packet loss test. | 1319 // TODO(pwestin): Add repeatable packet loss test. |
1325 // TODO(pwestin): Add test for misaligned send get calls. | 1320 // TODO(pwestin): Add test for misaligned send get calls. |
1326 // TODO(pwestin): Add more tests that does not resample. | 1321 // TODO(pwestin): Add more tests that does not resample. |
1327 // TODO(pwestin): Add test when we have starvation for our RunTask. | 1322 // TODO(pwestin): Add test when we have starvation for our RunTask. |
1328 | 1323 |
1329 } // namespace cast | 1324 } // namespace cast |
1330 } // namespace media | 1325 } // namespace media |
OLD | NEW |