OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |