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

Unified Diff: webrtc/media/engine/webrtcvideoengine2_unittest.cc

Issue 2911913002: Recreate FlexfecReceiveStream separately from VideoReceiveStream. (Closed)
Patch Set: perkj comments 1. Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/media/engine/webrtcvideoengine2.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/media/engine/webrtcvideoengine2_unittest.cc
diff --git a/webrtc/media/engine/webrtcvideoengine2_unittest.cc b/webrtc/media/engine/webrtcvideoengine2_unittest.cc
index 46664c4d945ee6027088405d2dc4a9445f307b25..a8a0bf613148b0082f259b21ad64db0a8c703b6c 100644
--- a/webrtc/media/engine/webrtcvideoengine2_unittest.cc
+++ b/webrtc/media/engine/webrtcvideoengine2_unittest.cc
@@ -2510,6 +2510,53 @@ TEST_F(WebRtcVideoChannel2FlexfecRecvTest, SetDefaultRecvCodecsWithSsrc) {
EXPECT_EQ(kSsrcs1[0], config.protected_media_ssrcs[0]);
}
+TEST_F(WebRtcVideoChannel2FlexfecRecvTest,
+ EnablingFlexfecDoesNotRecreateVideoReceiveStream) {
+ cricket::VideoRecvParameters recv_parameters;
+ recv_parameters.codecs.push_back(GetEngineCodec("VP8"));
+ ASSERT_TRUE(channel_->SetRecvParameters(recv_parameters));
+
+ AddRecvStream(
+ CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc));
+ EXPECT_EQ(1, fake_call_->GetNumCreatedReceiveStreams());
+ EXPECT_EQ(1U, fake_call_->GetVideoReceiveStreams().size());
+
+ // Enable FlexFEC.
+ recv_parameters.codecs.push_back(GetEngineCodec("flexfec-03"));
+ ASSERT_TRUE(channel_->SetRecvParameters(recv_parameters));
+ EXPECT_EQ(2, fake_call_->GetNumCreatedReceiveStreams())
+ << "Enabling FlexFEC should create FlexfecReceiveStream.";
+ EXPECT_EQ(1U, fake_call_->GetVideoReceiveStreams().size())
+ << "Enabling FlexFEC should not create VideoReceiveStream.";
+ EXPECT_EQ(1U, fake_call_->GetFlexfecReceiveStreams().size())
+ << "Enabling FlexFEC should create a single FlexfecReceiveStream.";
+}
+
+TEST_F(WebRtcVideoChannel2FlexfecRecvTest,
+ DisablingFlexfecDoesNotRecreateVideoReceiveStream) {
+ cricket::VideoRecvParameters recv_parameters;
+ recv_parameters.codecs.push_back(GetEngineCodec("VP8"));
+ recv_parameters.codecs.push_back(GetEngineCodec("flexfec-03"));
+ ASSERT_TRUE(channel_->SetRecvParameters(recv_parameters));
+
+ AddRecvStream(
+ CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc));
+ EXPECT_EQ(2, fake_call_->GetNumCreatedReceiveStreams());
+ EXPECT_EQ(1U, fake_call_->GetVideoReceiveStreams().size());
+ EXPECT_EQ(1U, fake_call_->GetFlexfecReceiveStreams().size());
+
+ // Disable FlexFEC.
+ recv_parameters.codecs.clear();
+ recv_parameters.codecs.push_back(GetEngineCodec("VP8"));
+ ASSERT_TRUE(channel_->SetRecvParameters(recv_parameters));
+ EXPECT_EQ(2, fake_call_->GetNumCreatedReceiveStreams())
+ << "Disabling FlexFEC should not recreate VideoReceiveStream.";
+ EXPECT_EQ(1U, fake_call_->GetVideoReceiveStreams().size())
+ << "Disabling FlexFEC should not destroy VideoReceiveStream.";
+ EXPECT_TRUE(fake_call_->GetFlexfecReceiveStreams().empty())
+ << "Disabling FlexFEC should destroy FlexfecReceiveStream.";
+}
+
// TODO(brandtr): When FlexFEC is no longer behind a field trial, merge all
// tests that use this test fixture into the corresponding "non-field trial"
// tests.
« no previous file with comments | « webrtc/media/engine/webrtcvideoengine2.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698