| Index: webrtc/video/video_send_stream_tests.cc
|
| diff --git a/webrtc/video/video_send_stream_tests.cc b/webrtc/video/video_send_stream_tests.cc
|
| index ddd099900dd3fe66a5b89475bf428f6071875a64..3a8acbc5b5d022718ff31efad0f3e673569596a3 100644
|
| --- a/webrtc/video/video_send_stream_tests.cc
|
| +++ b/webrtc/video/video_send_stream_tests.cc
|
| @@ -1121,6 +1121,54 @@ TEST_F(VideoSendStreamTest, MinTransmitBitrateRespectsRemb) {
|
| RunBaseTest(&test);
|
| }
|
|
|
| +TEST_F(VideoSendStreamTest, ChangingNetworkRoute) {
|
| + class ChangingNetworkRouteTest : public test::EndToEndTest {
|
| + public:
|
| + const int kStartBitrateBps = 300000;
|
| + const int kNewMaxBitrateBps = 1234567;
|
| +
|
| + ChangingNetworkRouteTest()
|
| + : EndToEndTest(test::CallTest::kDefaultTimeoutMs),
|
| + call_(nullptr) {}
|
| +
|
| + void OnCallsCreated(Call* sender_call, Call* receiver_call) override {
|
| + call_ = sender_call;
|
| + }
|
| +
|
| + Action OnSendRtp(const uint8_t* packet, size_t length) override {
|
| + if (call_->GetStats().send_bandwidth_bps > kStartBitrateBps) {
|
| + observation_complete_.Set();
|
| + }
|
| +
|
| + return SEND_PACKET;
|
| + }
|
| +
|
| + void PerformTest() override {
|
| + rtc::NetworkRoute new_route(true, 10, 20, -1);
|
| + call_->OnNetworkRouteChanged("transport", new_route);
|
| + Call::Config::BitrateConfig bitrate_config;
|
| + bitrate_config.start_bitrate_bps = kStartBitrateBps;
|
| + call_->SetBitrateConfig(bitrate_config);
|
| + EXPECT_TRUE(Wait())
|
| + << "Timed out while waiting for start bitrate to be exceeded.";
|
| +
|
| + bitrate_config.start_bitrate_bps = -1;
|
| + bitrate_config.max_bitrate_bps = kNewMaxBitrateBps;
|
| + call_->SetBitrateConfig(bitrate_config);
|
| + // TODO(holmer): We should set the last sent packet id here and verify
|
| + // that we correctly ignore any packet loss reported prior to that id.
|
| + ++new_route.local_network_id;
|
| + call_->OnNetworkRouteChanged("transport", new_route);
|
| + EXPECT_EQ(kStartBitrateBps, call_->GetStats().send_bandwidth_bps);
|
| + }
|
| +
|
| + private:
|
| + Call* call_;
|
| + } test;
|
| +
|
| + RunBaseTest(&test);
|
| +}
|
| +
|
| class MaxPaddingSetTest : public test::SendTest {
|
| public:
|
| static const uint32_t kMinTransmitBitrateBps = 400000;
|
|
|