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 585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
596 CastSender::Create(cast_environment_sender_, transport_sender_.get()); | 596 CastSender::Create(cast_environment_sender_, transport_sender_.get()); |
597 | 597 |
598 // Initializing audio and video senders. | 598 // Initializing audio and video senders. |
599 cast_sender_->InitializeAudio(audio_sender_config_, | 599 cast_sender_->InitializeAudio(audio_sender_config_, |
600 base::Bind(&AudioInitializationStatus)); | 600 base::Bind(&AudioInitializationStatus)); |
601 cast_sender_->InitializeVideo(video_sender_config_, | 601 cast_sender_->InitializeVideo(video_sender_config_, |
602 base::Bind(&VideoInitializationStatus), | 602 base::Bind(&VideoInitializationStatus), |
603 CreateDefaultVideoEncodeAcceleratorCallback(), | 603 CreateDefaultVideoEncodeAcceleratorCallback(), |
604 CreateDefaultVideoEncodeMemoryCallback()); | 604 CreateDefaultVideoEncodeMemoryCallback()); |
605 | 605 |
606 receiver_to_sender_.SetPacketReceiver(cast_sender_->packet_receiver(), | 606 receiver_to_sender_.SetPacketReceiver( |
607 task_runner_, | 607 transport_sender_->PacketReceiverForTesting(), |
608 &testing_clock_); | 608 task_runner_, |
| 609 &testing_clock_); |
609 sender_to_receiver_.SetPacketReceiver(cast_receiver_->packet_receiver(), | 610 sender_to_receiver_.SetPacketReceiver(cast_receiver_->packet_receiver(), |
610 task_runner_, | 611 task_runner_, |
611 &testing_clock_); | 612 &testing_clock_); |
612 | 613 |
613 audio_frame_input_ = cast_sender_->audio_frame_input(); | 614 audio_frame_input_ = cast_sender_->audio_frame_input(); |
614 video_frame_input_ = cast_sender_->video_frame_input(); | 615 video_frame_input_ = cast_sender_->video_frame_input(); |
615 | 616 |
616 audio_bus_factory_.reset( | 617 audio_bus_factory_.reset( |
617 new TestAudioBusFactory(audio_sender_config_.channels, | 618 new TestAudioBusFactory(audio_sender_config_.channels, |
618 audio_sender_config_.frequency, | 619 audio_sender_config_.frequency, |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
708 | 709 |
709 void StartBasicPlayer() { | 710 void StartBasicPlayer() { |
710 cast_receiver_->RequestDecodedVideoFrame( | 711 cast_receiver_->RequestDecodedVideoFrame( |
711 base::Bind(&End2EndTest::BasicPlayerGotVideoFrame, | 712 base::Bind(&End2EndTest::BasicPlayerGotVideoFrame, |
712 base::Unretained(this))); | 713 base::Unretained(this))); |
713 cast_receiver_->RequestDecodedAudioFrame( | 714 cast_receiver_->RequestDecodedAudioFrame( |
714 base::Bind(&End2EndTest::BasicPlayerGotAudioFrame, | 715 base::Bind(&End2EndTest::BasicPlayerGotAudioFrame, |
715 base::Unretained(this))); | 716 base::Unretained(this))); |
716 } | 717 } |
717 | 718 |
718 void LogRawEvents(const std::vector<PacketEvent>& packet_events) { | 719 void LogRawEvents(const std::vector<PacketEvent>& packet_events, |
| 720 const std::vector<FrameEvent>& frame_events) { |
719 EXPECT_FALSE(packet_events.empty()); | 721 EXPECT_FALSE(packet_events.empty()); |
720 for (std::vector<media::cast::PacketEvent>::const_iterator it = | 722 for (std::vector<media::cast::PacketEvent>::const_iterator it = |
721 packet_events.begin(); | 723 packet_events.begin(); |
722 it != packet_events.end(); | 724 it != packet_events.end(); |
723 ++it) { | 725 ++it) { |
724 cast_environment_sender_->Logging()->InsertPacketEvent(it->timestamp, | 726 cast_environment_sender_->Logging()->InsertPacketEvent(it->timestamp, |
725 it->type, | 727 it->type, |
726 it->media_type, | 728 it->media_type, |
727 it->rtp_timestamp, | 729 it->rtp_timestamp, |
728 it->frame_id, | 730 it->frame_id, |
729 it->packet_id, | 731 it->packet_id, |
730 it->max_packet_id, | 732 it->max_packet_id, |
731 it->size); | 733 it->size); |
732 } | 734 } |
| 735 for (std::vector<media::cast::FrameEvent>::const_iterator it = |
| 736 frame_events.begin(); |
| 737 it != frame_events.end(); |
| 738 ++it) { |
| 739 cast_environment_sender_->Logging()->InsertFrameEvent(it->timestamp, |
| 740 it->type, |
| 741 it->media_type, |
| 742 it->rtp_timestamp, |
| 743 it->frame_id); |
| 744 } |
733 } | 745 } |
734 | 746 |
735 FrameReceiverConfig audio_receiver_config_; | 747 FrameReceiverConfig audio_receiver_config_; |
736 FrameReceiverConfig video_receiver_config_; | 748 FrameReceiverConfig video_receiver_config_; |
737 AudioSenderConfig audio_sender_config_; | 749 AudioSenderConfig audio_sender_config_; |
738 VideoSenderConfig video_sender_config_; | 750 VideoSenderConfig video_sender_config_; |
739 | 751 |
740 base::TimeTicks start_time_; | 752 base::TimeTicks start_time_; |
741 | 753 |
742 // These run in "test time" | 754 // These run in "test time" |
(...skipping 700 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1443 EXPECT_LT((video_ticks_.back().second - test_end).InMilliseconds(), 1000); | 1455 EXPECT_LT((video_ticks_.back().second - test_end).InMilliseconds(), 1000); |
1444 } | 1456 } |
1445 | 1457 |
1446 // TODO(pwestin): Add repeatable packet loss test. | 1458 // TODO(pwestin): Add repeatable packet loss test. |
1447 // TODO(pwestin): Add test for misaligned send get calls. | 1459 // TODO(pwestin): Add test for misaligned send get calls. |
1448 // TODO(pwestin): Add more tests that does not resample. | 1460 // TODO(pwestin): Add more tests that does not resample. |
1449 // TODO(pwestin): Add test when we have starvation for our RunTask. | 1461 // TODO(pwestin): Add test when we have starvation for our RunTask. |
1450 | 1462 |
1451 } // namespace cast | 1463 } // namespace cast |
1452 } // namespace media | 1464 } // namespace media |
OLD | NEW |