Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: webrtc/video/end_to_end_tests.cc

Issue 2458863002: Start probes only after network is connected. (Closed)
Patch Set: sync Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/test/direct_transport.cc ('k') | webrtc/video/video_send_stream_tests.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 #include <algorithm> 10 #include <algorithm>
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 }; 115 };
116 116
117 void DecodesRetransmittedFrame(bool enable_rtx, bool enable_red); 117 void DecodesRetransmittedFrame(bool enable_rtx, bool enable_red);
118 void ReceivesPliAndRecovers(int rtp_history_ms); 118 void ReceivesPliAndRecovers(int rtp_history_ms);
119 void RespectsRtcpMode(RtcpMode rtcp_mode); 119 void RespectsRtcpMode(RtcpMode rtcp_mode);
120 void TestXrReceiverReferenceTimeReport(bool enable_rrtr); 120 void TestXrReceiverReferenceTimeReport(bool enable_rrtr);
121 void TestSendsSetSsrcs(size_t num_ssrcs, bool send_single_ssrc_first); 121 void TestSendsSetSsrcs(size_t num_ssrcs, bool send_single_ssrc_first);
122 void TestRtpStatePreservation(bool use_rtx, bool provoke_rtcpsr_before_rtp); 122 void TestRtpStatePreservation(bool use_rtx, bool provoke_rtcpsr_before_rtp);
123 void VerifyHistogramStats(bool use_rtx, bool use_red, bool screenshare); 123 void VerifyHistogramStats(bool use_rtx, bool use_red, bool screenshare);
124 void VerifyNewVideoSendStreamsRespectNetworkState( 124 void VerifyNewVideoSendStreamsRespectNetworkState(
125 MediaType network_to_bring_down, 125 MediaType network_to_bring_up,
126 VideoEncoder* encoder, 126 VideoEncoder* encoder,
127 Transport* transport); 127 Transport* transport);
128 void VerifyNewVideoReceiveStreamsRespectNetworkState( 128 void VerifyNewVideoReceiveStreamsRespectNetworkState(
129 MediaType network_to_bring_down, 129 MediaType network_to_bring_up,
130 Transport* transport); 130 Transport* transport);
131 }; 131 };
132 132
133 TEST_F(EndToEndTest, ReceiverCanBeStartedTwice) { 133 TEST_F(EndToEndTest, ReceiverCanBeStartedTwice) {
134 CreateCalls(Call::Config(&event_log_), Call::Config(&event_log_)); 134 CreateCalls(Call::Config(&event_log_), Call::Config(&event_log_));
135 135
136 test::NullTransport transport; 136 test::NullTransport transport;
137 CreateSendConfig(1, 0, 0, &transport); 137 CreateSendConfig(1, 0, 0, &transport);
138 CreateMatchingReceiveConfigs(&transport); 138 CreateMatchingReceiveConfigs(&transport);
139 139
(...skipping 3524 matching lines...) Expand 10 before | Expand all | Expand 10 after
3664 break; 3664 break;
3665 } 3665 }
3666 SleepMs(10); 3666 SleepMs(10);
3667 } 3667 }
3668 3668
3669 Stop(); 3669 Stop();
3670 DestroyStreams(); 3670 DestroyStreams();
3671 } 3671 }
3672 3672
3673 void EndToEndTest::VerifyNewVideoSendStreamsRespectNetworkState( 3673 void EndToEndTest::VerifyNewVideoSendStreamsRespectNetworkState(
3674 MediaType network_to_bring_down, 3674 MediaType network_to_bring_up,
3675 VideoEncoder* encoder, 3675 VideoEncoder* encoder,
3676 Transport* transport) { 3676 Transport* transport) {
3677 CreateSenderCall(Call::Config(&event_log_)); 3677 CreateSenderCall(Call::Config(&event_log_));
3678 sender_call_->SignalChannelNetworkState(network_to_bring_down, kNetworkDown); 3678 sender_call_->SignalChannelNetworkState(network_to_bring_up, kNetworkUp);
3679 3679
3680 CreateSendConfig(1, 0, 0, transport); 3680 CreateSendConfig(1, 0, 0, transport);
3681 video_send_config_.encoder_settings.encoder = encoder; 3681 video_send_config_.encoder_settings.encoder = encoder;
3682 CreateVideoStreams(); 3682 CreateVideoStreams();
3683 CreateFrameGeneratorCapturer(kDefaultFramerate, kDefaultWidth, 3683 CreateFrameGeneratorCapturer(kDefaultFramerate, kDefaultWidth,
3684 kDefaultHeight); 3684 kDefaultHeight);
3685 3685
3686 Start(); 3686 Start();
3687 SleepMs(kSilenceTimeoutMs); 3687 SleepMs(kSilenceTimeoutMs);
3688 Stop(); 3688 Stop();
3689 3689
3690 DestroyStreams(); 3690 DestroyStreams();
3691 } 3691 }
3692 3692
3693 void EndToEndTest::VerifyNewVideoReceiveStreamsRespectNetworkState( 3693 void EndToEndTest::VerifyNewVideoReceiveStreamsRespectNetworkState(
3694 MediaType network_to_bring_down, 3694 MediaType network_to_bring_up,
3695 Transport* transport) { 3695 Transport* transport) {
3696 Call::Config config(&event_log_); 3696 Call::Config config(&event_log_);
3697 CreateCalls(config, config); 3697 CreateCalls(config, config);
3698 receiver_call_->SignalChannelNetworkState(network_to_bring_down, 3698 receiver_call_->SignalChannelNetworkState(network_to_bring_up, kNetworkUp);
3699 kNetworkDown);
3700 3699
3701 test::DirectTransport sender_transport(sender_call_.get()); 3700 test::DirectTransport sender_transport(sender_call_.get());
3702 sender_transport.SetReceiver(receiver_call_->Receiver()); 3701 sender_transport.SetReceiver(receiver_call_->Receiver());
3703 CreateSendConfig(1, 0, 0, &sender_transport); 3702 CreateSendConfig(1, 0, 0, &sender_transport);
3704 CreateMatchingReceiveConfigs(transport); 3703 CreateMatchingReceiveConfigs(transport);
3705 CreateVideoStreams(); 3704 CreateVideoStreams();
3706 CreateFrameGeneratorCapturer(kDefaultFramerate, kDefaultWidth, 3705 CreateFrameGeneratorCapturer(kDefaultFramerate, kDefaultWidth,
3707 kDefaultHeight); 3706 kDefaultHeight);
3708 3707
3709 Start(); 3708 Start();
(...skipping 21 matching lines...) Expand all
3731 const std::vector<FrameType>* frame_types) override { 3730 const std::vector<FrameType>* frame_types) override {
3732 ADD_FAILURE() << "Unexpected frame encode."; 3731 ADD_FAILURE() << "Unexpected frame encode.";
3733 return test::FakeEncoder::Encode(input_image, codec_specific_info, 3732 return test::FakeEncoder::Encode(input_image, codec_specific_info,
3734 frame_types); 3733 frame_types);
3735 } 3734 }
3736 }; 3735 };
3737 3736
3738 UnusedEncoder unused_encoder; 3737 UnusedEncoder unused_encoder;
3739 UnusedTransport unused_transport; 3738 UnusedTransport unused_transport;
3740 VerifyNewVideoSendStreamsRespectNetworkState( 3739 VerifyNewVideoSendStreamsRespectNetworkState(
3741 MediaType::VIDEO, &unused_encoder, &unused_transport); 3740 MediaType::AUDIO, &unused_encoder, &unused_transport);
3742 } 3741 }
3743 3742
3744 TEST_F(EndToEndTest, NewVideoSendStreamsIgnoreAudioNetworkDown) { 3743 TEST_F(EndToEndTest, NewVideoSendStreamsIgnoreAudioNetworkDown) {
3745 class RequiredEncoder : public test::FakeEncoder { 3744 class RequiredEncoder : public test::FakeEncoder {
3746 public: 3745 public:
3747 RequiredEncoder() 3746 RequiredEncoder()
3748 : FakeEncoder(Clock::GetRealTimeClock()), encoded_frame_(false) {} 3747 : FakeEncoder(Clock::GetRealTimeClock()), encoded_frame_(false) {}
3749 ~RequiredEncoder() { 3748 ~RequiredEncoder() {
3750 if (!encoded_frame_) { 3749 if (!encoded_frame_) {
3751 ADD_FAILURE() << "Didn't encode an expected frame"; 3750 ADD_FAILURE() << "Didn't encode an expected frame";
3752 } 3751 }
3753 } 3752 }
3754 int32_t Encode(const VideoFrame& input_image, 3753 int32_t Encode(const VideoFrame& input_image,
3755 const CodecSpecificInfo* codec_specific_info, 3754 const CodecSpecificInfo* codec_specific_info,
3756 const std::vector<FrameType>* frame_types) override { 3755 const std::vector<FrameType>* frame_types) override {
3757 encoded_frame_ = true; 3756 encoded_frame_ = true;
3758 return test::FakeEncoder::Encode(input_image, codec_specific_info, 3757 return test::FakeEncoder::Encode(input_image, codec_specific_info,
3759 frame_types); 3758 frame_types);
3760 } 3759 }
3761 3760
3762 private: 3761 private:
3763 bool encoded_frame_; 3762 bool encoded_frame_;
3764 }; 3763 };
3765 3764
3766 RequiredTransport required_transport(true /*rtp*/, false /*rtcp*/); 3765 RequiredTransport required_transport(true /*rtp*/, false /*rtcp*/);
3767 RequiredEncoder required_encoder; 3766 RequiredEncoder required_encoder;
3768 VerifyNewVideoSendStreamsRespectNetworkState( 3767 VerifyNewVideoSendStreamsRespectNetworkState(
3769 MediaType::AUDIO, &required_encoder, &required_transport); 3768 MediaType::VIDEO, &required_encoder, &required_transport);
3770 } 3769 }
3771 3770
3772 TEST_F(EndToEndTest, NewVideoReceiveStreamsRespectVideoNetworkDown) { 3771 TEST_F(EndToEndTest, NewVideoReceiveStreamsRespectVideoNetworkDown) {
3773 UnusedTransport transport; 3772 UnusedTransport transport;
3774 VerifyNewVideoReceiveStreamsRespectNetworkState(MediaType::VIDEO, &transport); 3773 VerifyNewVideoReceiveStreamsRespectNetworkState(MediaType::AUDIO, &transport);
3775 } 3774 }
3776 3775
3777 TEST_F(EndToEndTest, NewVideoReceiveStreamsIgnoreAudioNetworkDown) { 3776 TEST_F(EndToEndTest, NewVideoReceiveStreamsIgnoreAudioNetworkDown) {
3778 RequiredTransport transport(false /*rtp*/, true /*rtcp*/); 3777 RequiredTransport transport(false /*rtp*/, true /*rtcp*/);
3779 VerifyNewVideoReceiveStreamsRespectNetworkState(MediaType::AUDIO, &transport); 3778 VerifyNewVideoReceiveStreamsRespectNetworkState(MediaType::VIDEO, &transport);
3780 } 3779 }
3781 3780
3782 void VerifyEmptyNackConfig(const NackConfig& config) { 3781 void VerifyEmptyNackConfig(const NackConfig& config) {
3783 EXPECT_EQ(0, config.rtp_history_ms) 3782 EXPECT_EQ(0, config.rtp_history_ms)
3784 << "Enabling NACK requires rtcp-fb: nack negotiation."; 3783 << "Enabling NACK requires rtcp-fb: nack negotiation.";
3785 } 3784 }
3786 3785
3787 void VerifyEmptyUlpfecConfig(const UlpfecConfig& config) { 3786 void VerifyEmptyUlpfecConfig(const UlpfecConfig& config) {
3788 EXPECT_EQ(-1, config.ulpfec_payload_type) 3787 EXPECT_EQ(-1, config.ulpfec_payload_type)
3789 << "Enabling ULPFEC requires rtpmap: ulpfec negotiation."; 3788 << "Enabling ULPFEC requires rtpmap: ulpfec negotiation.";
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
4004 std::unique_ptr<VideoEncoder> encoder_; 4003 std::unique_ptr<VideoEncoder> encoder_;
4005 std::unique_ptr<VideoDecoder> decoder_; 4004 std::unique_ptr<VideoDecoder> decoder_;
4006 rtc::CriticalSection crit_; 4005 rtc::CriticalSection crit_;
4007 int recorded_frames_ GUARDED_BY(crit_); 4006 int recorded_frames_ GUARDED_BY(crit_);
4008 } test(this); 4007 } test(this);
4009 4008
4010 RunBaseTest(&test); 4009 RunBaseTest(&test);
4011 } 4010 }
4012 4011
4013 } // namespace webrtc 4012 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/test/direct_transport.cc ('k') | webrtc/video/video_send_stream_tests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698