| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2004 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 | 10 |
| (...skipping 2329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2340 EXPECT_EQ(kRtxSsrcs1[0], config.rtp.rtx.ssrcs[0]); | 2340 EXPECT_EQ(kRtxSsrcs1[0], config.rtp.rtx.ssrcs[0]); |
| 2341 VerifySendStreamHasRtxTypes(config, default_apt_rtx_types_); | 2341 VerifySendStreamHasRtxTypes(config, default_apt_rtx_types_); |
| 2342 // TODO(juberti): Check RTCP, PLI, TMMBR. | 2342 // TODO(juberti): Check RTCP, PLI, TMMBR. |
| 2343 } | 2343 } |
| 2344 | 2344 |
| 2345 // TODO(brandtr): Remove when FlexFEC _is_ exposed by default. | 2345 // TODO(brandtr): Remove when FlexFEC _is_ exposed by default. |
| 2346 TEST_F(WebRtcVideoChannel2Test, FlexfecCodecWithoutSsrcNotExposedByDefault) { | 2346 TEST_F(WebRtcVideoChannel2Test, FlexfecCodecWithoutSsrcNotExposedByDefault) { |
| 2347 FakeVideoSendStream* stream = AddSendStream(); | 2347 FakeVideoSendStream* stream = AddSendStream(); |
| 2348 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); | 2348 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); |
| 2349 | 2349 |
| 2350 EXPECT_EQ(-1, config.rtp.flexfec.flexfec_payload_type); | 2350 EXPECT_EQ(-1, config.rtp.flexfec.payload_type); |
| 2351 } | 2351 } |
| 2352 | 2352 |
| 2353 // TODO(brandtr): Remove when FlexFEC _is_ exposed by default. | 2353 // TODO(brandtr): Remove when FlexFEC _is_ exposed by default. |
| 2354 TEST_F(WebRtcVideoChannel2Test, FlexfecCodecWithSsrcNotExposedByDefault) { | 2354 TEST_F(WebRtcVideoChannel2Test, FlexfecCodecWithSsrcNotExposedByDefault) { |
| 2355 FakeVideoSendStream* stream = AddSendStream( | 2355 FakeVideoSendStream* stream = AddSendStream( |
| 2356 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); | 2356 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); |
| 2357 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); | 2357 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); |
| 2358 | 2358 |
| 2359 EXPECT_EQ(-1, config.rtp.flexfec.flexfec_payload_type); | 2359 EXPECT_EQ(-1, config.rtp.flexfec.payload_type); |
| 2360 } | 2360 } |
| 2361 | 2361 |
| 2362 // TODO(brandtr): When FlexFEC is no longer behind a field trial, merge all | 2362 // TODO(brandtr): When FlexFEC is no longer behind a field trial, merge all |
| 2363 // tests that use this test fixture into the corresponding "non-field trial" | 2363 // tests that use this test fixture into the corresponding "non-field trial" |
| 2364 // tests. | 2364 // tests. |
| 2365 class WebRtcVideoChannel2FlexfecTest : public WebRtcVideoChannel2Test { | 2365 class WebRtcVideoChannel2FlexfecTest : public WebRtcVideoChannel2Test { |
| 2366 public: | 2366 public: |
| 2367 WebRtcVideoChannel2FlexfecTest() | 2367 WebRtcVideoChannel2FlexfecTest() |
| 2368 : WebRtcVideoChannel2Test("WebRTC-FlexFEC-03/Enabled/") {} | 2368 : WebRtcVideoChannel2Test("WebRTC-FlexFEC-03/Enabled/") {} |
| 2369 }; | 2369 }; |
| 2370 | 2370 |
| 2371 // TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled | 2371 // TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled |
| 2372 // by default. | 2372 // by default. |
| 2373 TEST_F(WebRtcVideoChannel2FlexfecTest, SetDefaultSendCodecsWithoutSsrc) { | 2373 TEST_F(WebRtcVideoChannel2FlexfecTest, SetDefaultSendCodecsWithoutSsrc) { |
| 2374 FakeVideoSendStream* stream = AddSendStream(); | 2374 FakeVideoSendStream* stream = AddSendStream(); |
| 2375 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); | 2375 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); |
| 2376 | 2376 |
| 2377 EXPECT_EQ(GetEngineCodec("flexfec-03").id, | 2377 EXPECT_EQ(GetEngineCodec("flexfec-03").id, config.rtp.flexfec.payload_type); |
| 2378 config.rtp.flexfec.flexfec_payload_type); | 2378 EXPECT_EQ(0U, config.rtp.flexfec.ssrc); |
| 2379 EXPECT_FALSE(config.rtp.flexfec.IsCompleteAndEnabled()); | 2379 EXPECT_TRUE(config.rtp.flexfec.protected_media_ssrcs.empty()); |
| 2380 } | 2380 } |
| 2381 | 2381 |
| 2382 // TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled | 2382 // TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled |
| 2383 // by default. | 2383 // by default. |
| 2384 TEST_F(WebRtcVideoChannel2FlexfecTest, SetDefaultSendCodecsWithSsrc) { | 2384 TEST_F(WebRtcVideoChannel2FlexfecTest, SetDefaultSendCodecsWithSsrc) { |
| 2385 FakeVideoSendStream* stream = AddSendStream( | 2385 FakeVideoSendStream* stream = AddSendStream( |
| 2386 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); | 2386 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); |
| 2387 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); | 2387 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); |
| 2388 | 2388 |
| 2389 EXPECT_EQ(GetEngineCodec("flexfec-03").id, | 2389 EXPECT_EQ(GetEngineCodec("flexfec-03").id, config.rtp.flexfec.payload_type); |
| 2390 config.rtp.flexfec.flexfec_payload_type); | 2390 EXPECT_EQ(kFlexfecSsrc, config.rtp.flexfec.ssrc); |
| 2391 EXPECT_TRUE(config.rtp.flexfec.IsCompleteAndEnabled()); | 2391 ASSERT_EQ(1U, config.rtp.flexfec.protected_media_ssrcs.size()); |
| 2392 EXPECT_EQ(kSsrcs1[0], config.rtp.flexfec.protected_media_ssrcs[0]); |
| 2392 } | 2393 } |
| 2393 | 2394 |
| 2394 TEST_F(WebRtcVideoChannel2Test, SetSendCodecsWithoutFec) { | 2395 TEST_F(WebRtcVideoChannel2Test, SetSendCodecsWithoutFec) { |
| 2395 cricket::VideoSendParameters parameters; | 2396 cricket::VideoSendParameters parameters; |
| 2396 parameters.codecs.push_back(GetEngineCodec("VP8")); | 2397 parameters.codecs.push_back(GetEngineCodec("VP8")); |
| 2397 ASSERT_TRUE(channel_->SetSendParameters(parameters)); | 2398 ASSERT_TRUE(channel_->SetSendParameters(parameters)); |
| 2398 | 2399 |
| 2399 FakeVideoSendStream* stream = AddSendStream(); | 2400 FakeVideoSendStream* stream = AddSendStream(); |
| 2400 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); | 2401 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); |
| 2401 | 2402 |
| 2402 EXPECT_EQ(-1, config.rtp.ulpfec.ulpfec_payload_type); | 2403 EXPECT_EQ(-1, config.rtp.ulpfec.ulpfec_payload_type); |
| 2403 EXPECT_EQ(-1, config.rtp.ulpfec.red_payload_type); | 2404 EXPECT_EQ(-1, config.rtp.ulpfec.red_payload_type); |
| 2404 } | 2405 } |
| 2405 | 2406 |
| 2406 // TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled | 2407 // TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled |
| 2407 // by default. | 2408 // by default. |
| 2408 TEST_F(WebRtcVideoChannel2FlexfecTest, SetSendCodecsWithoutFec) { | 2409 TEST_F(WebRtcVideoChannel2FlexfecTest, SetSendCodecsWithoutFec) { |
| 2409 cricket::VideoSendParameters parameters; | 2410 cricket::VideoSendParameters parameters; |
| 2410 parameters.codecs.push_back(GetEngineCodec("VP8")); | 2411 parameters.codecs.push_back(GetEngineCodec("VP8")); |
| 2411 ASSERT_TRUE(channel_->SetSendParameters(parameters)); | 2412 ASSERT_TRUE(channel_->SetSendParameters(parameters)); |
| 2412 | 2413 |
| 2413 FakeVideoSendStream* stream = AddSendStream(); | 2414 FakeVideoSendStream* stream = AddSendStream(); |
| 2414 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); | 2415 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); |
| 2415 | 2416 |
| 2416 EXPECT_EQ(-1, config.rtp.flexfec.flexfec_payload_type); | 2417 EXPECT_EQ(-1, config.rtp.flexfec.payload_type); |
| 2417 } | 2418 } |
| 2418 | 2419 |
| 2419 TEST_F(WebRtcVideoChannel2Test, | 2420 TEST_F(WebRtcVideoChannel2Test, |
| 2420 SetSendCodecRejectsRtxWithoutAssociatedPayloadType) { | 2421 SetSendCodecRejectsRtxWithoutAssociatedPayloadType) { |
| 2421 const int kUnusedPayloadType = 127; | 2422 const int kUnusedPayloadType = 127; |
| 2422 EXPECT_FALSE(FindCodecById(engine_.codecs(), kUnusedPayloadType)); | 2423 EXPECT_FALSE(FindCodecById(engine_.codecs(), kUnusedPayloadType)); |
| 2423 | 2424 |
| 2424 cricket::VideoSendParameters parameters; | 2425 cricket::VideoSendParameters parameters; |
| 2425 cricket::VideoCodec rtx_codec(kUnusedPayloadType, "rtx"); | 2426 cricket::VideoCodec rtx_codec(kUnusedPayloadType, "rtx"); |
| 2426 parameters.codecs.push_back(rtx_codec); | 2427 parameters.codecs.push_back(rtx_codec); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2478 TEST_F(WebRtcVideoChannel2FlexfecTest, SetSendCodecsWithoutFecDisablesFec) { | 2479 TEST_F(WebRtcVideoChannel2FlexfecTest, SetSendCodecsWithoutFecDisablesFec) { |
| 2479 cricket::VideoSendParameters parameters; | 2480 cricket::VideoSendParameters parameters; |
| 2480 parameters.codecs.push_back(GetEngineCodec("VP8")); | 2481 parameters.codecs.push_back(GetEngineCodec("VP8")); |
| 2481 parameters.codecs.push_back(GetEngineCodec("flexfec-03")); | 2482 parameters.codecs.push_back(GetEngineCodec("flexfec-03")); |
| 2482 ASSERT_TRUE(channel_->SetSendParameters(parameters)); | 2483 ASSERT_TRUE(channel_->SetSendParameters(parameters)); |
| 2483 | 2484 |
| 2484 FakeVideoSendStream* stream = AddSendStream( | 2485 FakeVideoSendStream* stream = AddSendStream( |
| 2485 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); | 2486 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); |
| 2486 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); | 2487 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); |
| 2487 | 2488 |
| 2488 EXPECT_EQ(GetEngineCodec("flexfec-03").id, | 2489 EXPECT_EQ(GetEngineCodec("flexfec-03").id, config.rtp.flexfec.payload_type); |
| 2489 config.rtp.flexfec.flexfec_payload_type); | 2490 EXPECT_EQ(kFlexfecSsrc, config.rtp.flexfec.ssrc); |
| 2490 EXPECT_EQ(kFlexfecSsrc, config.rtp.flexfec.flexfec_ssrc); | |
| 2491 ASSERT_EQ(1U, config.rtp.flexfec.protected_media_ssrcs.size()); | 2491 ASSERT_EQ(1U, config.rtp.flexfec.protected_media_ssrcs.size()); |
| 2492 EXPECT_EQ(kSsrcs1[0], config.rtp.flexfec.protected_media_ssrcs[0]); | 2492 EXPECT_EQ(kSsrcs1[0], config.rtp.flexfec.protected_media_ssrcs[0]); |
| 2493 | 2493 |
| 2494 parameters.codecs.pop_back(); | 2494 parameters.codecs.pop_back(); |
| 2495 ASSERT_TRUE(channel_->SetSendParameters(parameters)); | 2495 ASSERT_TRUE(channel_->SetSendParameters(parameters)); |
| 2496 stream = fake_call_->GetVideoSendStreams()[0]; | 2496 stream = fake_call_->GetVideoSendStreams()[0]; |
| 2497 ASSERT_TRUE(stream != nullptr); | 2497 ASSERT_TRUE(stream != nullptr); |
| 2498 config = stream->GetConfig().Copy(); | 2498 config = stream->GetConfig().Copy(); |
| 2499 EXPECT_EQ(-1, config.rtp.flexfec.flexfec_payload_type) | 2499 EXPECT_EQ(-1, config.rtp.flexfec.payload_type) |
| 2500 << "SetSendCodec without FlexFEC should disable current FlexFEC."; | 2500 << "SetSendCodec without FlexFEC should disable current FlexFEC."; |
| 2501 } | 2501 } |
| 2502 | 2502 |
| 2503 TEST_F(WebRtcVideoChannel2Test, SetSendCodecsChangesExistingStreams) { | 2503 TEST_F(WebRtcVideoChannel2Test, SetSendCodecsChangesExistingStreams) { |
| 2504 cricket::VideoSendParameters parameters; | 2504 cricket::VideoSendParameters parameters; |
| 2505 cricket::VideoCodec codec(100, "VP8"); | 2505 cricket::VideoCodec codec(100, "VP8"); |
| 2506 codec.SetParam(kCodecParamMaxQuantization, kDefaultQpMax); | 2506 codec.SetParam(kCodecParamMaxQuantization, kDefaultQpMax); |
| 2507 parameters.codecs.push_back(codec); | 2507 parameters.codecs.push_back(codec); |
| 2508 | 2508 |
| 2509 ASSERT_TRUE(channel_->SetSendParameters(parameters)); | 2509 ASSERT_TRUE(channel_->SetSendParameters(parameters)); |
| (...skipping 1548 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4058 | 4058 |
| 4059 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWith3SimulcastStreams) { | 4059 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWith3SimulcastStreams) { |
| 4060 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 3); | 4060 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 3); |
| 4061 } | 4061 } |
| 4062 | 4062 |
| 4063 // Test that we normalize send codec format size in simulcast. | 4063 // Test that we normalize send codec format size in simulcast. |
| 4064 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWithOddSizeInSimulcast) { | 4064 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWithOddSizeInSimulcast) { |
| 4065 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 541, 271, 2, 2); | 4065 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 541, 271, 2, 2); |
| 4066 } | 4066 } |
| 4067 } // namespace cricket | 4067 } // namespace cricket |
| OLD | NEW |