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

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

Issue 1211873004: Request keyframe if too many packets are missing and NACK is disabled. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Renamed method + updated comment 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
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 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 frame_counter_(0) {} 243 frame_counter_(0) {}
244 244
245 void PerformTest() override { 245 void PerformTest() override {
246 EXPECT_EQ(kEventSignaled, Wait()) 246 EXPECT_EQ(kEventSignaled, Wait())
247 << "Timed out while waiting for enough frames to be decoded."; 247 << "Timed out while waiting for enough frames to be decoded.";
248 } 248 }
249 249
250 void ModifyConfigs(VideoSendStream::Config* send_config, 250 void ModifyConfigs(VideoSendStream::Config* send_config,
251 std::vector<VideoReceiveStream::Config>* receive_configs, 251 std::vector<VideoReceiveStream::Config>* receive_configs,
252 VideoEncoderConfig* encoder_config) override { 252 VideoEncoderConfig* encoder_config) override {
253 send_config->rtp.nack.rtp_history_ms =
254 (*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
253 send_config->encoder_settings.encoder = encoder_.get(); 255 send_config->encoder_settings.encoder = encoder_.get();
254 send_config->encoder_settings.payload_name = "VP9"; 256 send_config->encoder_settings.payload_name = "VP9";
255 send_config->encoder_settings.payload_type = VCM_VP9_PAYLOAD_TYPE; 257 send_config->encoder_settings.payload_type = VCM_VP9_PAYLOAD_TYPE;
256 encoder_config->streams[0].min_bitrate_bps = 50000; 258 encoder_config->streams[0].min_bitrate_bps = 50000;
257 encoder_config->streams[0].target_bitrate_bps = 259 encoder_config->streams[0].target_bitrate_bps =
258 encoder_config->streams[0].max_bitrate_bps = 2000000; 260 encoder_config->streams[0].max_bitrate_bps = 2000000;
259 261
260 (*receive_configs)[0].renderer = this; 262 (*receive_configs)[0].renderer = this;
261 (*receive_configs)[0].decoders.resize(1); 263 (*receive_configs)[0].decoders.resize(1);
262 (*receive_configs)[0].decoders[0].payload_type = 264 (*receive_configs)[0].decoders[0].payload_type =
(...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after
976 bool received_pli_; 978 bool received_pli_;
977 } test(rtp_history_ms); 979 } test(rtp_history_ms);
978 980
979 RunBaseTest(&test); 981 RunBaseTest(&test);
980 } 982 }
981 983
982 TEST_F(EndToEndTest, ReceivesPliAndRecoversWithNack) { 984 TEST_F(EndToEndTest, ReceivesPliAndRecoversWithNack) {
983 ReceivesPliAndRecovers(1000); 985 ReceivesPliAndRecovers(1000);
984 } 986 }
985 987
986 // TODO(pbos): Enable this when 2250 is resolved. 988 TEST_F(EndToEndTest, ReceivesPliAndRecoversWithoutNack) {
987 TEST_F(EndToEndTest, DISABLED_ReceivesPliAndRecoversWithoutNack) {
988 ReceivesPliAndRecovers(0); 989 ReceivesPliAndRecovers(0);
989 } 990 }
990 991
991 TEST_F(EndToEndTest, UnknownRtpPacketGivesUnknownSsrcReturnCode) { 992 TEST_F(EndToEndTest, UnknownRtpPacketGivesUnknownSsrcReturnCode) {
992 class PacketInputObserver : public PacketReceiver { 993 class PacketInputObserver : public PacketReceiver {
993 public: 994 public:
994 explicit PacketInputObserver(PacketReceiver* receiver) 995 explicit PacketInputObserver(PacketReceiver* receiver)
995 : receiver_(receiver), delivered_packet_(EventWrapper::Create()) {} 996 : receiver_(receiver), delivered_packet_(EventWrapper::Create()) {}
996 997
997 EventTypeWrapper Wait() { 998 EventTypeWrapper Wait() {
(...skipping 1094 matching lines...) Expand 10 before | Expand all | Expand 10 after
2092 Call::Config GetSenderCallConfig() override { 2093 Call::Config GetSenderCallConfig() override {
2093 Call::Config config = EndToEndTest::GetSenderCallConfig(); 2094 Call::Config config = EndToEndTest::GetSenderCallConfig();
2094 config.bitrate_config.start_bitrate_bps = kStartBitrateBps; 2095 config.bitrate_config.start_bitrate_bps = kStartBitrateBps;
2095 return config; 2096 return config;
2096 } 2097 }
2097 2098
2098 void ModifyConfigs(VideoSendStream::Config* send_config, 2099 void ModifyConfigs(VideoSendStream::Config* send_config,
2099 std::vector<VideoReceiveStream::Config>* receive_configs, 2100 std::vector<VideoReceiveStream::Config>* receive_configs,
2100 VideoEncoderConfig* encoder_config) override { 2101 VideoEncoderConfig* encoder_config) override {
2101 send_config->pre_encode_callback = this; // Used to inject delay. 2102 send_config->pre_encode_callback = this; // Used to inject delay.
2103 send_config->rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
2102 expected_cname_ = send_config->rtp.c_name = "SomeCName"; 2104 expected_cname_ = send_config->rtp.c_name = "SomeCName";
2105 (*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
2103 2106
2104 const std::vector<uint32_t>& ssrcs = send_config->rtp.ssrcs; 2107 const std::vector<uint32_t>& ssrcs = send_config->rtp.ssrcs;
2105 for (size_t i = 0; i < ssrcs.size(); ++i) { 2108 for (size_t i = 0; i < ssrcs.size(); ++i) {
2106 expected_send_ssrcs_.insert(ssrcs[i]); 2109 expected_send_ssrcs_.insert(ssrcs[i]);
2107 expected_receive_ssrcs_.push_back( 2110 expected_receive_ssrcs_.push_back(
2108 (*receive_configs)[i].rtp.remote_ssrc); 2111 (*receive_configs)[i].rtp.remote_ssrc);
2109 (*receive_configs)[i].render_delay_ms = kExpectedRenderDelayMs; 2112 (*receive_configs)[i].render_delay_ms = kExpectedRenderDelayMs;
2110 } 2113 }
2111 } 2114 }
2112 2115
(...skipping 718 matching lines...) Expand 10 before | Expand all | Expand 10 after
2831 EXPECT_TRUE(default_receive_config.rtp.rtx.empty()) 2834 EXPECT_TRUE(default_receive_config.rtp.rtx.empty())
2832 << "Enabling RTX requires rtpmap: rtx negotiation."; 2835 << "Enabling RTX requires rtpmap: rtx negotiation.";
2833 EXPECT_TRUE(default_receive_config.rtp.extensions.empty()) 2836 EXPECT_TRUE(default_receive_config.rtp.extensions.empty())
2834 << "Enabling RTP extensions require negotiation."; 2837 << "Enabling RTP extensions require negotiation.";
2835 2838
2836 VerifyEmptyNackConfig(default_receive_config.rtp.nack); 2839 VerifyEmptyNackConfig(default_receive_config.rtp.nack);
2837 VerifyEmptyFecConfig(default_receive_config.rtp.fec); 2840 VerifyEmptyFecConfig(default_receive_config.rtp.fec);
2838 } 2841 }
2839 2842
2840 } // namespace webrtc 2843 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698