Index: webrtc/media/engine/webrtcvideoengine2_unittest.cc |
diff --git a/webrtc/media/engine/webrtcvideoengine2_unittest.cc b/webrtc/media/engine/webrtcvideoengine2_unittest.cc |
index e8800ba66f3cc7e171b008765247b0b624a74365..06e14afda2f7767784949f1c8323067e7c57bc24 100644 |
--- a/webrtc/media/engine/webrtcvideoengine2_unittest.cc |
+++ b/webrtc/media/engine/webrtcvideoengine2_unittest.cc |
@@ -2417,6 +2417,27 @@ TEST_F(WebRtcVideoChannel2Test, SetSendCodecsAcceptAllValidPayloadTypes) { |
} |
} |
+// Test that setting the same codecs but with a different preference for the |
+// first codec doesn't result in the stream being recreated. |
+// This may happen when a subsequent negotiation includes few codecs, as a |
+// result of one of the codecs being rejected. |
+TEST_F(WebRtcVideoChannel2Test, |
+ SetSendCodecsDifferentPreferenceDoesntRecreateStream) { |
+ cricket::VideoSendParameters parameters1; |
+ parameters1.codecs.push_back(kVp8Codec); |
+ parameters1.codecs.push_back(kVp9Codec); |
+ parameters1.codecs[0].preference += 1; |
+ EXPECT_TRUE(channel_->SetSendParameters(parameters1)); |
+ |
+ AddSendStream(); |
+ EXPECT_EQ(1, fake_call_->GetNumCreatedSendStreams()); |
+ |
+ cricket::VideoSendParameters parameters2; |
+ parameters2.codecs.push_back(kVp8Codec); |
+ EXPECT_TRUE(channel_->SetSendParameters(parameters2)); |
+ EXPECT_EQ(1, fake_call_->GetNumCreatedSendStreams()); |
+} |
+ |
TEST_F(WebRtcVideoChannel2Test, SetRecvCodecsWithOnlyVp8) { |
cricket::VideoRecvParameters parameters; |
parameters.codecs.push_back(kVp8Codec); |