| Index: webrtc/media/engine/webrtcvideoengine2_unittest.cc
|
| diff --git a/webrtc/media/engine/webrtcvideoengine2_unittest.cc b/webrtc/media/engine/webrtcvideoengine2_unittest.cc
|
| index 3165be1e2d6a675c05b0c5f1d1ff3ae6abf3993e..46664c4d945ee6027088405d2dc4a9445f307b25 100644
|
| --- a/webrtc/media/engine/webrtcvideoengine2_unittest.cc
|
| +++ b/webrtc/media/engine/webrtcvideoengine2_unittest.cc
|
| @@ -2430,45 +2430,99 @@ TEST_F(WebRtcVideoChannel2Test, SetDefaultSendCodecs) {
|
| // TODO(juberti): Check RTCP, PLI, TMMBR.
|
| }
|
|
|
| -// TODO(brandtr): Remove when FlexFEC _is_ exposed by default.
|
| -TEST_F(WebRtcVideoChannel2Test, FlexfecCodecWithoutSsrcNotExposedByDefault) {
|
| +// The following four tests ensures that FlexFEC is not activated by default
|
| +// when the field trials are not enabled.
|
| +// TODO(brandtr): Remove or update these tests when FlexFEC _is_ enabled by
|
| +// default.
|
| +TEST_F(WebRtcVideoChannel2Test,
|
| + FlexfecSendCodecWithoutSsrcNotExposedByDefault) {
|
| FakeVideoSendStream* stream = AddSendStream();
|
| webrtc::VideoSendStream::Config config = stream->GetConfig().Copy();
|
|
|
| EXPECT_EQ(-1, config.rtp.flexfec.payload_type);
|
| + EXPECT_EQ(0U, config.rtp.flexfec.ssrc);
|
| + EXPECT_TRUE(config.rtp.flexfec.protected_media_ssrcs.empty());
|
| }
|
|
|
| -// TODO(brandtr): Remove when FlexFEC _is_ exposed by default.
|
| -TEST_F(WebRtcVideoChannel2Test, FlexfecCodecWithSsrcNotExposedByDefault) {
|
| +TEST_F(WebRtcVideoChannel2Test, FlexfecSendCodecWithSsrcNotExposedByDefault) {
|
| FakeVideoSendStream* stream = AddSendStream(
|
| CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc));
|
| webrtc::VideoSendStream::Config config = stream->GetConfig().Copy();
|
|
|
| EXPECT_EQ(-1, config.rtp.flexfec.payload_type);
|
| + EXPECT_EQ(0U, config.rtp.flexfec.ssrc);
|
| + EXPECT_TRUE(config.rtp.flexfec.protected_media_ssrcs.empty());
|
| +}
|
| +
|
| +TEST_F(WebRtcVideoChannel2Test,
|
| + FlexfecRecvCodecWithoutSsrcNotExposedByDefault) {
|
| + AddRecvStream();
|
| +
|
| + const std::vector<FakeFlexfecReceiveStream*>& streams =
|
| + fake_call_->GetFlexfecReceiveStreams();
|
| + EXPECT_TRUE(streams.empty());
|
| +}
|
| +
|
| +TEST_F(WebRtcVideoChannel2Test, FlexfecRecvCodecWithSsrcNotExposedByDefault) {
|
| + AddRecvStream(
|
| + CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc));
|
| +
|
| + const std::vector<FakeFlexfecReceiveStream*>& streams =
|
| + fake_call_->GetFlexfecReceiveStreams();
|
| + EXPECT_TRUE(streams.empty());
|
| }
|
|
|
| // 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.
|
| -class WebRtcVideoChannel2FlexfecTest : public WebRtcVideoChannel2Test {
|
| +class WebRtcVideoChannel2FlexfecRecvTest : public WebRtcVideoChannel2Test {
|
| public:
|
| - WebRtcVideoChannel2FlexfecTest()
|
| - : WebRtcVideoChannel2Test(
|
| - "WebRTC-FlexFEC-03-Advertised/Enabled/WebRTC-FlexFEC-03/Enabled/") {
|
| - }
|
| + WebRtcVideoChannel2FlexfecRecvTest()
|
| + : WebRtcVideoChannel2Test("WebRTC-FlexFEC-03-Advertised/Enabled/") {}
|
| };
|
|
|
| -// TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled
|
| -// by default.
|
| -TEST_F(WebRtcVideoChannel2FlexfecTest,
|
| +TEST_F(WebRtcVideoChannel2FlexfecRecvTest,
|
| DefaultFlexfecCodecHasTransportCcAndRembFeedbackParam) {
|
| EXPECT_TRUE(cricket::HasTransportCc(GetEngineCodec("flexfec-03")));
|
| EXPECT_TRUE(cricket::HasRemb(GetEngineCodec("flexfec-03")));
|
| }
|
|
|
| -// TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled
|
| -// by default.
|
| -TEST_F(WebRtcVideoChannel2FlexfecTest, SetDefaultSendCodecsWithoutSsrc) {
|
| +TEST_F(WebRtcVideoChannel2FlexfecRecvTest, SetDefaultRecvCodecsWithoutSsrc) {
|
| + AddRecvStream();
|
| +
|
| + const std::vector<FakeFlexfecReceiveStream*>& streams =
|
| + fake_call_->GetFlexfecReceiveStreams();
|
| + EXPECT_TRUE(streams.empty());
|
| +}
|
| +
|
| +TEST_F(WebRtcVideoChannel2FlexfecRecvTest, SetDefaultRecvCodecsWithSsrc) {
|
| + AddRecvStream(
|
| + CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc));
|
| +
|
| + const std::vector<FakeFlexfecReceiveStream*>& streams =
|
| + fake_call_->GetFlexfecReceiveStreams();
|
| + ASSERT_EQ(1U, streams.size());
|
| + const FakeFlexfecReceiveStream* stream = streams.front();
|
| + const webrtc::FlexfecReceiveStream::Config& config = stream->GetConfig();
|
| + EXPECT_EQ(GetEngineCodec("flexfec-03").id, config.payload_type);
|
| + EXPECT_EQ(kFlexfecSsrc, config.remote_ssrc);
|
| + ASSERT_EQ(1U, config.protected_media_ssrcs.size());
|
| + EXPECT_EQ(kSsrcs1[0], config.protected_media_ssrcs[0]);
|
| +}
|
| +
|
| +// 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.
|
| +class WebRtcVideoChannel2FlexfecSendRecvTest : public WebRtcVideoChannel2Test {
|
| + public:
|
| + WebRtcVideoChannel2FlexfecSendRecvTest()
|
| + : WebRtcVideoChannel2Test(
|
| + "WebRTC-FlexFEC-03-Advertised/Enabled/WebRTC-FlexFEC-03/Enabled/") {
|
| + }
|
| +};
|
| +
|
| +TEST_F(WebRtcVideoChannel2FlexfecSendRecvTest,
|
| + SetDefaultSendCodecsWithoutSsrc) {
|
| FakeVideoSendStream* stream = AddSendStream();
|
| webrtc::VideoSendStream::Config config = stream->GetConfig().Copy();
|
|
|
| @@ -2477,9 +2531,7 @@ TEST_F(WebRtcVideoChannel2FlexfecTest, SetDefaultSendCodecsWithoutSsrc) {
|
| EXPECT_TRUE(config.rtp.flexfec.protected_media_ssrcs.empty());
|
| }
|
|
|
| -// TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled
|
| -// by default.
|
| -TEST_F(WebRtcVideoChannel2FlexfecTest, SetDefaultSendCodecsWithSsrc) {
|
| +TEST_F(WebRtcVideoChannel2FlexfecSendRecvTest, SetDefaultSendCodecsWithSsrc) {
|
| FakeVideoSendStream* stream = AddSendStream(
|
| CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc));
|
| webrtc::VideoSendStream::Config config = stream->GetConfig().Copy();
|
| @@ -2502,9 +2554,7 @@ TEST_F(WebRtcVideoChannel2Test, SetSendCodecsWithoutFec) {
|
| EXPECT_EQ(-1, config.rtp.ulpfec.red_payload_type);
|
| }
|
|
|
| -// TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled
|
| -// by default.
|
| -TEST_F(WebRtcVideoChannel2FlexfecTest, SetSendCodecsWithoutFec) {
|
| +TEST_F(WebRtcVideoChannel2FlexfecSendRecvTest, SetSendCodecsWithoutFec) {
|
| cricket::VideoSendParameters parameters;
|
| parameters.codecs.push_back(GetEngineCodec("VP8"));
|
| ASSERT_TRUE(channel_->SetSendParameters(parameters));
|
| @@ -2515,7 +2565,7 @@ TEST_F(WebRtcVideoChannel2FlexfecTest, SetSendCodecsWithoutFec) {
|
| EXPECT_EQ(-1, config.rtp.flexfec.payload_type);
|
| }
|
|
|
| -TEST_F(WebRtcVideoChannel2FlexfecTest, SetRecvCodecsWithFec) {
|
| +TEST_F(WebRtcVideoChannel2FlexfecRecvTest, SetRecvCodecsWithFec) {
|
| AddRecvStream(
|
| CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc));
|
|
|
| @@ -2554,6 +2604,40 @@ TEST_F(WebRtcVideoChannel2FlexfecTest, SetRecvCodecsWithFec) {
|
| flexfec_stream_config.rtp_header_extensions);
|
| }
|
|
|
| +// We should not send FlexFEC, even if we advertise it, unless the right
|
| +// field trial is set.
|
| +// TODO(brandtr): Remove when FlexFEC is enabled by default.
|
| +TEST_F(WebRtcVideoChannel2FlexfecRecvTest,
|
| + SetSendCodecsWithoutSsrcWithFecDoesNotEnableFec) {
|
| + cricket::VideoSendParameters parameters;
|
| + parameters.codecs.push_back(GetEngineCodec("VP8"));
|
| + parameters.codecs.push_back(GetEngineCodec("flexfec-03"));
|
| + ASSERT_TRUE(channel_->SetSendParameters(parameters));
|
| +
|
| + FakeVideoSendStream* stream = AddSendStream();
|
| + webrtc::VideoSendStream::Config config = stream->GetConfig().Copy();
|
| +
|
| + EXPECT_EQ(-1, config.rtp.flexfec.payload_type);
|
| + EXPECT_EQ(0, config.rtp.flexfec.ssrc);
|
| + EXPECT_TRUE(config.rtp.flexfec.protected_media_ssrcs.empty());
|
| +}
|
| +
|
| +TEST_F(WebRtcVideoChannel2FlexfecRecvTest,
|
| + SetSendCodecsWithSsrcWithFecDoesNotEnableFec) {
|
| + cricket::VideoSendParameters parameters;
|
| + parameters.codecs.push_back(GetEngineCodec("VP8"));
|
| + parameters.codecs.push_back(GetEngineCodec("flexfec-03"));
|
| + ASSERT_TRUE(channel_->SetSendParameters(parameters));
|
| +
|
| + FakeVideoSendStream* stream = AddSendStream(
|
| + CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc));
|
| + webrtc::VideoSendStream::Config config = stream->GetConfig().Copy();
|
| +
|
| + EXPECT_EQ(-1, config.rtp.flexfec.payload_type);
|
| + EXPECT_EQ(0, config.rtp.flexfec.ssrc);
|
| + EXPECT_TRUE(config.rtp.flexfec.protected_media_ssrcs.empty());
|
| +}
|
| +
|
| TEST_F(WebRtcVideoChannel2Test,
|
| SetSendCodecRejectsRtxWithoutAssociatedPayloadType) {
|
| const int kUnusedPayloadType = 127;
|
| @@ -2648,9 +2732,8 @@ TEST_F(WebRtcVideoChannel2Test, SetSendCodecsWithoutFecDisablesFec) {
|
| << "SetSendCodec without ULPFEC should disable current ULPFEC.";
|
| }
|
|
|
| -// TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled
|
| -// by default.
|
| -TEST_F(WebRtcVideoChannel2FlexfecTest, SetSendCodecsWithoutFecDisablesFec) {
|
| +TEST_F(WebRtcVideoChannel2FlexfecSendRecvTest,
|
| + SetSendCodecsWithoutFecDisablesFec) {
|
| cricket::VideoSendParameters parameters;
|
| parameters.codecs.push_back(GetEngineCodec("VP8"));
|
| parameters.codecs.push_back(GetEngineCodec("flexfec-03"));
|
| @@ -3054,14 +3137,7 @@ TEST_F(WebRtcVideoChannel2Test, SetRecvCodecsWithoutFecDisablesFec) {
|
| << "SetSendCodec without ULPFEC should disable current ULPFEC.";
|
| }
|
|
|
| -// TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled
|
| -// by default.
|
| -TEST_F(WebRtcVideoChannel2FlexfecTest, SetRecvParamsWithoutFecDisablesFec) {
|
| - cricket::VideoSendParameters send_parameters;
|
| - send_parameters.codecs.push_back(GetEngineCodec("VP8"));
|
| - send_parameters.codecs.push_back(GetEngineCodec("flexfec-03"));
|
| - ASSERT_TRUE(channel_->SetSendParameters(send_parameters));
|
| -
|
| +TEST_F(WebRtcVideoChannel2FlexfecRecvTest, SetRecvParamsWithoutFecDisablesFec) {
|
| AddRecvStream(
|
| CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc));
|
| const std::vector<FakeFlexfecReceiveStream*>& streams =
|
| @@ -3108,9 +3184,8 @@ TEST_F(WebRtcVideoChannel2Test, SetSendParamsWithFecEnablesFec) {
|
| << "ULPFEC should be enabled on the receive stream.";
|
| }
|
|
|
| -// TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled
|
| -// by default.
|
| -TEST_F(WebRtcVideoChannel2FlexfecTest, SetSendParamsWithFecEnablesFec) {
|
| +TEST_F(WebRtcVideoChannel2FlexfecSendRecvTest,
|
| + SetSendRecvParamsWithFecEnablesFec) {
|
| AddRecvStream(
|
| CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc));
|
| const std::vector<FakeFlexfecReceiveStream*>& streams =
|
| @@ -3145,7 +3220,7 @@ TEST_F(WebRtcVideoChannel2FlexfecTest, SetSendParamsWithFecEnablesFec) {
|
| stream_with_send_params->GetConfig().protected_media_ssrcs[0]);
|
| }
|
|
|
| -TEST_F(WebRtcVideoChannel2Test, SetSendCodecsRejectDuplicateFecPayloads) {
|
| +TEST_F(WebRtcVideoChannel2Test, SetRecvCodecsRejectDuplicateFecPayloads) {
|
| cricket::VideoRecvParameters parameters;
|
| parameters.codecs.push_back(GetEngineCodec("VP8"));
|
| parameters.codecs.push_back(GetEngineCodec("red"));
|
| @@ -3153,10 +3228,8 @@ TEST_F(WebRtcVideoChannel2Test, SetSendCodecsRejectDuplicateFecPayloads) {
|
| EXPECT_FALSE(channel_->SetRecvParameters(parameters));
|
| }
|
|
|
| -// TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled
|
| -// by default.
|
| -TEST_F(WebRtcVideoChannel2FlexfecTest,
|
| - SetSendCodecsRejectDuplicateFecPayloads) {
|
| +TEST_F(WebRtcVideoChannel2FlexfecRecvTest,
|
| + SetRecvCodecsRejectDuplicateFecPayloads) {
|
| cricket::VideoRecvParameters parameters;
|
| parameters.codecs.push_back(GetEngineCodec("VP8"));
|
| parameters.codecs.push_back(GetEngineCodec("flexfec-03"));
|
| @@ -3809,9 +3882,7 @@ TEST_F(WebRtcVideoChannel2Test, UlpfecPacketDoesntCreateUnsignalledStream) {
|
| false /* expect_created_receive_stream */);
|
| }
|
|
|
| -// TODO(brandtr): Change to "non-field trial" test when FlexFEC is enabled
|
| -// by default.
|
| -TEST_F(WebRtcVideoChannel2FlexfecTest,
|
| +TEST_F(WebRtcVideoChannel2FlexfecRecvTest,
|
| FlexfecPacketDoesntCreateUnsignalledStream) {
|
| TestReceiveUnsignaledSsrcPacket(GetEngineCodec("flexfec-03").id,
|
| false /* expect_created_receive_stream */);
|
|
|