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> // max | 10 #include <algorithm> // max |
(...skipping 1103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1114 | 1114 |
1115 std::unique_ptr<RtpRtcp> rtp_rtcp_; | 1115 std::unique_ptr<RtpRtcp> rtp_rtcp_; |
1116 std::unique_ptr<internal::TransportAdapter> feedback_transport_; | 1116 std::unique_ptr<internal::TransportAdapter> feedback_transport_; |
1117 VideoSendStream* stream_; | 1117 VideoSendStream* stream_; |
1118 bool bitrate_capped_; | 1118 bool bitrate_capped_; |
1119 } test; | 1119 } test; |
1120 | 1120 |
1121 RunBaseTest(&test); | 1121 RunBaseTest(&test); |
1122 } | 1122 } |
1123 | 1123 |
| 1124 TEST_F(VideoSendStreamTest, ChangingNetworkRoute) { |
| 1125 class ChangingNetworkRouteTest : public test::EndToEndTest { |
| 1126 public: |
| 1127 const int kStartBitrateBps = 300000; |
| 1128 const int kNewMaxBitrateBps = 1234567; |
| 1129 |
| 1130 ChangingNetworkRouteTest() |
| 1131 : EndToEndTest(test::CallTest::kDefaultTimeoutMs), |
| 1132 call_(nullptr) {} |
| 1133 |
| 1134 void OnCallsCreated(Call* sender_call, Call* receiver_call) override { |
| 1135 call_ = sender_call; |
| 1136 } |
| 1137 |
| 1138 Action OnSendRtp(const uint8_t* packet, size_t length) override { |
| 1139 if (call_->GetStats().send_bandwidth_bps > kStartBitrateBps) { |
| 1140 observation_complete_.Set(); |
| 1141 } |
| 1142 |
| 1143 return SEND_PACKET; |
| 1144 } |
| 1145 |
| 1146 void PerformTest() override { |
| 1147 rtc::NetworkRoute new_route(true, 10, 20, -1); |
| 1148 call_->OnNetworkRouteChanged("transport", new_route); |
| 1149 Call::Config::BitrateConfig bitrate_config; |
| 1150 bitrate_config.start_bitrate_bps = kStartBitrateBps; |
| 1151 call_->SetBitrateConfig(bitrate_config); |
| 1152 EXPECT_TRUE(Wait()) |
| 1153 << "Timed out while waiting for start bitrate to be exceeded."; |
| 1154 |
| 1155 bitrate_config.start_bitrate_bps = -1; |
| 1156 bitrate_config.max_bitrate_bps = kNewMaxBitrateBps; |
| 1157 call_->SetBitrateConfig(bitrate_config); |
| 1158 // TODO(holmer): We should set the last sent packet id here and verify |
| 1159 // that we correctly ignore any packet loss reported prior to that id. |
| 1160 ++new_route.local_network_id; |
| 1161 call_->OnNetworkRouteChanged("transport", new_route); |
| 1162 EXPECT_EQ(kStartBitrateBps, call_->GetStats().send_bandwidth_bps); |
| 1163 } |
| 1164 |
| 1165 private: |
| 1166 Call* call_; |
| 1167 } test; |
| 1168 |
| 1169 RunBaseTest(&test); |
| 1170 } |
| 1171 |
1124 class MaxPaddingSetTest : public test::SendTest { | 1172 class MaxPaddingSetTest : public test::SendTest { |
1125 public: | 1173 public: |
1126 static const uint32_t kMinTransmitBitrateBps = 400000; | 1174 static const uint32_t kMinTransmitBitrateBps = 400000; |
1127 static const uint32_t kActualEncodeBitrateBps = 40000; | 1175 static const uint32_t kActualEncodeBitrateBps = 40000; |
1128 static const uint32_t kMinPacketsToSend = 50; | 1176 static const uint32_t kMinPacketsToSend = 50; |
1129 | 1177 |
1130 explicit MaxPaddingSetTest(bool test_switch_content_type) | 1178 explicit MaxPaddingSetTest(bool test_switch_content_type) |
1131 : SendTest(test::CallTest::kDefaultTimeoutMs), | 1179 : SendTest(test::CallTest::kDefaultTimeoutMs), |
1132 call_(nullptr), | 1180 call_(nullptr), |
1133 send_stream_(nullptr), | 1181 send_stream_(nullptr), |
(...skipping 1333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2467 observation_complete_.Set(); | 2515 observation_complete_.Set(); |
2468 } | 2516 } |
2469 } | 2517 } |
2470 } test; | 2518 } test; |
2471 | 2519 |
2472 RunBaseTest(&test); | 2520 RunBaseTest(&test); |
2473 } | 2521 } |
2474 #endif // !defined(RTC_DISABLE_VP9) | 2522 #endif // !defined(RTC_DISABLE_VP9) |
2475 | 2523 |
2476 } // namespace webrtc | 2524 } // namespace webrtc |
OLD | NEW |