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

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

Issue 1226123005: Define Stream base classes (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Code review follow-up 3 Created 5 years, 5 months 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/video/audio_receive_stream.cc ('k') | webrtc/video/video_receive_stream.h » ('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 2491 matching lines...) Expand 10 before | Expand all | Expand 10 after
2502 static const int kNumAcceptedDowntimeRtp = 5; 2502 static const int kNumAcceptedDowntimeRtp = 5;
2503 // A single RTCP may be in the pipeline. 2503 // A single RTCP may be in the pipeline.
2504 static const int kNumAcceptedDowntimeRtcp = 1; 2504 static const int kNumAcceptedDowntimeRtcp = 1;
2505 class NetworkStateTest : public test::EndToEndTest, public test::FakeEncoder { 2505 class NetworkStateTest : public test::EndToEndTest, public test::FakeEncoder {
2506 public: 2506 public:
2507 NetworkStateTest() 2507 NetworkStateTest()
2508 : EndToEndTest(kDefaultTimeoutMs), 2508 : EndToEndTest(kDefaultTimeoutMs),
2509 FakeEncoder(Clock::GetRealTimeClock()), 2509 FakeEncoder(Clock::GetRealTimeClock()),
2510 encoded_frames_(EventWrapper::Create()), 2510 encoded_frames_(EventWrapper::Create()),
2511 packet_event_(EventWrapper::Create()), 2511 packet_event_(EventWrapper::Create()),
2512 sender_state_(Call::kNetworkUp), 2512 sender_state_(kNetworkUp),
2513 sender_rtp_(0), 2513 sender_rtp_(0),
2514 sender_rtcp_(0), 2514 sender_rtcp_(0),
2515 receiver_rtcp_(0), 2515 receiver_rtcp_(0),
2516 down_frames_(0) {} 2516 down_frames_(0) {}
2517 2517
2518 Action OnSendRtp(const uint8_t* packet, size_t length) override { 2518 Action OnSendRtp(const uint8_t* packet, size_t length) override {
2519 rtc::CritScope lock(&test_crit_); 2519 rtc::CritScope lock(&test_crit_);
2520 ++sender_rtp_; 2520 ++sender_rtp_;
2521 packet_event_->Set(); 2521 packet_event_->Set();
2522 return SEND_PACKET; 2522 return SEND_PACKET;
(...skipping 29 matching lines...) Expand all
2552 send_config->encoder_settings.encoder = this; 2552 send_config->encoder_settings.encoder = this;
2553 } 2553 }
2554 2554
2555 void PerformTest() override { 2555 void PerformTest() override {
2556 EXPECT_EQ(kEventSignaled, encoded_frames_->Wait(kDefaultTimeoutMs)) 2556 EXPECT_EQ(kEventSignaled, encoded_frames_->Wait(kDefaultTimeoutMs))
2557 << "No frames received by the encoder."; 2557 << "No frames received by the encoder.";
2558 // Wait for packets from both sender/receiver. 2558 // Wait for packets from both sender/receiver.
2559 WaitForPacketsOrSilence(false, false); 2559 WaitForPacketsOrSilence(false, false);
2560 2560
2561 // Sender-side network down. 2561 // Sender-side network down.
2562 sender_call_->SignalNetworkState(Call::kNetworkDown); 2562 sender_call_->SignalNetworkState(kNetworkDown);
2563 { 2563 {
2564 rtc::CritScope lock(&test_crit_); 2564 rtc::CritScope lock(&test_crit_);
2565 // After network goes down we shouldn't be encoding more frames. 2565 // After network goes down we shouldn't be encoding more frames.
2566 sender_state_ = Call::kNetworkDown; 2566 sender_state_ = kNetworkDown;
2567 } 2567 }
2568 // Wait for receiver-packets and no sender packets. 2568 // Wait for receiver-packets and no sender packets.
2569 WaitForPacketsOrSilence(true, false); 2569 WaitForPacketsOrSilence(true, false);
2570 2570
2571 // Receiver-side network down. 2571 // Receiver-side network down.
2572 receiver_call_->SignalNetworkState(Call::kNetworkDown); 2572 receiver_call_->SignalNetworkState(kNetworkDown);
2573 WaitForPacketsOrSilence(true, true); 2573 WaitForPacketsOrSilence(true, true);
2574 2574
2575 // Network back up again for both. 2575 // Network back up again for both.
2576 { 2576 {
2577 rtc::CritScope lock(&test_crit_); 2577 rtc::CritScope lock(&test_crit_);
2578 // It's OK to encode frames again, as we're about to bring up the 2578 // It's OK to encode frames again, as we're about to bring up the
2579 // network. 2579 // network.
2580 sender_state_ = Call::kNetworkUp; 2580 sender_state_ = kNetworkUp;
2581 } 2581 }
2582 sender_call_->SignalNetworkState(Call::kNetworkUp); 2582 sender_call_->SignalNetworkState(kNetworkUp);
2583 receiver_call_->SignalNetworkState(Call::kNetworkUp); 2583 receiver_call_->SignalNetworkState(kNetworkUp);
2584 WaitForPacketsOrSilence(false, false); 2584 WaitForPacketsOrSilence(false, false);
2585 } 2585 }
2586 2586
2587 int32_t Encode(const VideoFrame& input_image, 2587 int32_t Encode(const VideoFrame& input_image,
2588 const CodecSpecificInfo* codec_specific_info, 2588 const CodecSpecificInfo* codec_specific_info,
2589 const std::vector<VideoFrameType>* frame_types) override { 2589 const std::vector<VideoFrameType>* frame_types) override {
2590 { 2590 {
2591 rtc::CritScope lock(&test_crit_); 2591 rtc::CritScope lock(&test_crit_);
2592 if (sender_state_ == Call::kNetworkDown) { 2592 if (sender_state_ == kNetworkDown) {
2593 ++down_frames_; 2593 ++down_frames_;
2594 EXPECT_LE(down_frames_, 1) 2594 EXPECT_LE(down_frames_, 1)
2595 << "Encoding more than one frame while network is down."; 2595 << "Encoding more than one frame while network is down.";
2596 if (down_frames_ > 1) 2596 if (down_frames_ > 1)
2597 encoded_frames_->Set(); 2597 encoded_frames_->Set();
2598 } else { 2598 } else {
2599 encoded_frames_->Set(); 2599 encoded_frames_->Set();
2600 } 2600 }
2601 } 2601 }
2602 return test::FakeEncoder::Encode( 2602 return test::FakeEncoder::Encode(
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
2648 receiver_done = true; 2648 receiver_done = true;
2649 } 2649 }
2650 } 2650 }
2651 } 2651 }
2652 2652
2653 rtc::CriticalSection test_crit_; 2653 rtc::CriticalSection test_crit_;
2654 const rtc::scoped_ptr<EventWrapper> encoded_frames_; 2654 const rtc::scoped_ptr<EventWrapper> encoded_frames_;
2655 const rtc::scoped_ptr<EventWrapper> packet_event_; 2655 const rtc::scoped_ptr<EventWrapper> packet_event_;
2656 Call* sender_call_; 2656 Call* sender_call_;
2657 Call* receiver_call_; 2657 Call* receiver_call_;
2658 Call::NetworkState sender_state_ GUARDED_BY(test_crit_); 2658 NetworkState sender_state_ GUARDED_BY(test_crit_);
2659 int sender_rtp_ GUARDED_BY(test_crit_); 2659 int sender_rtp_ GUARDED_BY(test_crit_);
2660 int sender_rtcp_ GUARDED_BY(test_crit_); 2660 int sender_rtcp_ GUARDED_BY(test_crit_);
2661 int receiver_rtcp_ GUARDED_BY(test_crit_); 2661 int receiver_rtcp_ GUARDED_BY(test_crit_);
2662 int down_frames_ GUARDED_BY(test_crit_); 2662 int down_frames_ GUARDED_BY(test_crit_);
2663 } test; 2663 } test;
2664 2664
2665 RunBaseTest(&test); 2665 RunBaseTest(&test);
2666 } 2666 }
2667 2667
2668 TEST_F(EndToEndTest, CallReportsRttForSender) { 2668 TEST_F(EndToEndTest, CallReportsRttForSender) {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
2713 const CodecSpecificInfo* codec_specific_info, 2713 const CodecSpecificInfo* codec_specific_info,
2714 const std::vector<VideoFrameType>* frame_types) override { 2714 const std::vector<VideoFrameType>* frame_types) override {
2715 ADD_FAILURE() << "Unexpected frame encode."; 2715 ADD_FAILURE() << "Unexpected frame encode.";
2716 return test::FakeEncoder::Encode( 2716 return test::FakeEncoder::Encode(
2717 input_image, codec_specific_info, frame_types); 2717 input_image, codec_specific_info, frame_types);
2718 } 2718 }
2719 }; 2719 };
2720 2720
2721 UnusedTransport transport; 2721 UnusedTransport transport;
2722 CreateSenderCall(Call::Config(&transport)); 2722 CreateSenderCall(Call::Config(&transport));
2723 sender_call_->SignalNetworkState(Call::kNetworkDown); 2723 sender_call_->SignalNetworkState(kNetworkDown);
2724 2724
2725 CreateSendConfig(1); 2725 CreateSendConfig(1);
2726 UnusedEncoder unused_encoder; 2726 UnusedEncoder unused_encoder;
2727 send_config_.encoder_settings.encoder = &unused_encoder; 2727 send_config_.encoder_settings.encoder = &unused_encoder;
2728 CreateStreams(); 2728 CreateStreams();
2729 CreateFrameGeneratorCapturer(); 2729 CreateFrameGeneratorCapturer();
2730 2730
2731 Start(); 2731 Start();
2732 SleepMs(kSilenceTimeoutMs); 2732 SleepMs(kSilenceTimeoutMs);
2733 Stop(); 2733 Stop();
2734 2734
2735 DestroyStreams(); 2735 DestroyStreams();
2736 } 2736 }
2737 2737
2738 TEST_F(EndToEndTest, NewReceiveStreamsRespectNetworkDown) { 2738 TEST_F(EndToEndTest, NewReceiveStreamsRespectNetworkDown) {
2739 test::DirectTransport sender_transport; 2739 test::DirectTransport sender_transport;
2740 CreateSenderCall(Call::Config(&sender_transport)); 2740 CreateSenderCall(Call::Config(&sender_transport));
2741 UnusedTransport transport; 2741 UnusedTransport transport;
2742 CreateReceiverCall(Call::Config(&transport)); 2742 CreateReceiverCall(Call::Config(&transport));
2743 sender_transport.SetReceiver(receiver_call_->Receiver()); 2743 sender_transport.SetReceiver(receiver_call_->Receiver());
2744 2744
2745 receiver_call_->SignalNetworkState(Call::kNetworkDown); 2745 receiver_call_->SignalNetworkState(kNetworkDown);
2746 2746
2747 CreateSendConfig(1); 2747 CreateSendConfig(1);
2748 CreateMatchingReceiveConfigs(); 2748 CreateMatchingReceiveConfigs();
2749 CreateStreams(); 2749 CreateStreams();
2750 CreateFrameGeneratorCapturer(); 2750 CreateFrameGeneratorCapturer();
2751 2751
2752 Start(); 2752 Start();
2753 SleepMs(kSilenceTimeoutMs); 2753 SleepMs(kSilenceTimeoutMs);
2754 Stop(); 2754 Stop();
2755 2755
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
2831 EXPECT_TRUE(default_receive_config.rtp.rtx.empty()) 2831 EXPECT_TRUE(default_receive_config.rtp.rtx.empty())
2832 << "Enabling RTX requires rtpmap: rtx negotiation."; 2832 << "Enabling RTX requires rtpmap: rtx negotiation.";
2833 EXPECT_TRUE(default_receive_config.rtp.extensions.empty()) 2833 EXPECT_TRUE(default_receive_config.rtp.extensions.empty())
2834 << "Enabling RTP extensions require negotiation."; 2834 << "Enabling RTP extensions require negotiation.";
2835 2835
2836 VerifyEmptyNackConfig(default_receive_config.rtp.nack); 2836 VerifyEmptyNackConfig(default_receive_config.rtp.nack);
2837 VerifyEmptyFecConfig(default_receive_config.rtp.fec); 2837 VerifyEmptyFecConfig(default_receive_config.rtp.fec);
2838 } 2838 }
2839 2839
2840 } // namespace webrtc 2840 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/video/audio_receive_stream.cc ('k') | webrtc/video/video_receive_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698