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 2412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2423 EXPECT_EQ(1000, config.rtp.nack.rtp_history_ms); | 2423 EXPECT_EQ(1000, config.rtp.nack.rtp_history_ms); |
2424 EXPECT_EQ(GetEngineCodec("ulpfec").id, config.rtp.ulpfec.ulpfec_payload_type); | 2424 EXPECT_EQ(GetEngineCodec("ulpfec").id, config.rtp.ulpfec.ulpfec_payload_type); |
2425 EXPECT_EQ(GetEngineCodec("red").id, config.rtp.ulpfec.red_payload_type); | 2425 EXPECT_EQ(GetEngineCodec("red").id, config.rtp.ulpfec.red_payload_type); |
2426 | 2426 |
2427 EXPECT_EQ(1u, config.rtp.rtx.ssrcs.size()); | 2427 EXPECT_EQ(1u, config.rtp.rtx.ssrcs.size()); |
2428 EXPECT_EQ(kRtxSsrcs1[0], config.rtp.rtx.ssrcs[0]); | 2428 EXPECT_EQ(kRtxSsrcs1[0], config.rtp.rtx.ssrcs[0]); |
2429 VerifySendStreamHasRtxTypes(config, default_apt_rtx_types_); | 2429 VerifySendStreamHasRtxTypes(config, default_apt_rtx_types_); |
2430 // TODO(juberti): Check RTCP, PLI, TMMBR. | 2430 // TODO(juberti): Check RTCP, PLI, TMMBR. |
2431 } | 2431 } |
2432 | 2432 |
2433 // TODO(brandtr): Remove when FlexFEC _is_ exposed by default. | 2433 // The following four tests ensures that FlexFEC is not activated by default |
2434 TEST_F(WebRtcVideoChannel2Test, FlexfecCodecWithoutSsrcNotExposedByDefault) { | 2434 // when the field trials are not enabled. |
| 2435 // TODO(brandtr): Remove or update these tests when FlexFEC _is_ enabled by |
| 2436 // default. |
| 2437 TEST_F(WebRtcVideoChannel2Test, |
| 2438 FlexfecSendCodecWithoutSsrcNotExposedByDefault) { |
2435 FakeVideoSendStream* stream = AddSendStream(); | 2439 FakeVideoSendStream* stream = AddSendStream(); |
2436 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); | 2440 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); |
2437 | 2441 |
2438 EXPECT_EQ(-1, config.rtp.flexfec.payload_type); | 2442 EXPECT_EQ(-1, config.rtp.flexfec.payload_type); |
| 2443 EXPECT_EQ(0U, config.rtp.flexfec.ssrc); |
| 2444 EXPECT_TRUE(config.rtp.flexfec.protected_media_ssrcs.empty()); |
2439 } | 2445 } |
2440 | 2446 |
2441 // TODO(brandtr): Remove when FlexFEC _is_ exposed by default. | 2447 TEST_F(WebRtcVideoChannel2Test, FlexfecSendCodecWithSsrcNotExposedByDefault) { |
2442 TEST_F(WebRtcVideoChannel2Test, FlexfecCodecWithSsrcNotExposedByDefault) { | |
2443 FakeVideoSendStream* stream = AddSendStream( | 2448 FakeVideoSendStream* stream = AddSendStream( |
2444 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); | 2449 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); |
2445 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); | 2450 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); |
2446 | 2451 |
2447 EXPECT_EQ(-1, config.rtp.flexfec.payload_type); | 2452 EXPECT_EQ(-1, config.rtp.flexfec.payload_type); |
| 2453 EXPECT_EQ(0U, config.rtp.flexfec.ssrc); |
| 2454 EXPECT_TRUE(config.rtp.flexfec.protected_media_ssrcs.empty()); |
| 2455 } |
| 2456 |
| 2457 TEST_F(WebRtcVideoChannel2Test, |
| 2458 FlexfecRecvCodecWithoutSsrcNotExposedByDefault) { |
| 2459 AddRecvStream(); |
| 2460 |
| 2461 const std::vector<FakeFlexfecReceiveStream*>& streams = |
| 2462 fake_call_->GetFlexfecReceiveStreams(); |
| 2463 EXPECT_TRUE(streams.empty()); |
| 2464 } |
| 2465 |
| 2466 TEST_F(WebRtcVideoChannel2Test, FlexfecRecvCodecWithSsrcNotExposedByDefault) { |
| 2467 AddRecvStream( |
| 2468 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); |
| 2469 |
| 2470 const std::vector<FakeFlexfecReceiveStream*>& streams = |
| 2471 fake_call_->GetFlexfecReceiveStreams(); |
| 2472 EXPECT_TRUE(streams.empty()); |
2448 } | 2473 } |
2449 | 2474 |
2450 // TODO(brandtr): When FlexFEC is no longer behind a field trial, merge all | 2475 // TODO(brandtr): When FlexFEC is no longer behind a field trial, merge all |
2451 // tests that use this test fixture into the corresponding "non-field trial" | 2476 // tests that use this test fixture into the corresponding "non-field trial" |
2452 // tests. | 2477 // tests. |
2453 class WebRtcVideoChannel2FlexfecTest : public WebRtcVideoChannel2Test { | 2478 class WebRtcVideoChannel2FlexfecRecvTest : public WebRtcVideoChannel2Test { |
2454 public: | 2479 public: |
2455 WebRtcVideoChannel2FlexfecTest() | 2480 WebRtcVideoChannel2FlexfecRecvTest() |
| 2481 : WebRtcVideoChannel2Test("WebRTC-FlexFEC-03-Advertised/Enabled/") {} |
| 2482 }; |
| 2483 |
| 2484 TEST_F(WebRtcVideoChannel2FlexfecRecvTest, |
| 2485 DefaultFlexfecCodecHasTransportCcAndRembFeedbackParam) { |
| 2486 EXPECT_TRUE(cricket::HasTransportCc(GetEngineCodec("flexfec-03"))); |
| 2487 EXPECT_TRUE(cricket::HasRemb(GetEngineCodec("flexfec-03"))); |
| 2488 } |
| 2489 |
| 2490 TEST_F(WebRtcVideoChannel2FlexfecRecvTest, SetDefaultRecvCodecsWithoutSsrc) { |
| 2491 AddRecvStream(); |
| 2492 |
| 2493 const std::vector<FakeFlexfecReceiveStream*>& streams = |
| 2494 fake_call_->GetFlexfecReceiveStreams(); |
| 2495 EXPECT_TRUE(streams.empty()); |
| 2496 } |
| 2497 |
| 2498 TEST_F(WebRtcVideoChannel2FlexfecRecvTest, SetDefaultRecvCodecsWithSsrc) { |
| 2499 AddRecvStream( |
| 2500 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); |
| 2501 |
| 2502 const std::vector<FakeFlexfecReceiveStream*>& streams = |
| 2503 fake_call_->GetFlexfecReceiveStreams(); |
| 2504 ASSERT_EQ(1U, streams.size()); |
| 2505 const FakeFlexfecReceiveStream* stream = streams.front(); |
| 2506 const webrtc::FlexfecReceiveStream::Config& config = stream->GetConfig(); |
| 2507 EXPECT_EQ(GetEngineCodec("flexfec-03").id, config.payload_type); |
| 2508 EXPECT_EQ(kFlexfecSsrc, config.remote_ssrc); |
| 2509 ASSERT_EQ(1U, config.protected_media_ssrcs.size()); |
| 2510 EXPECT_EQ(kSsrcs1[0], config.protected_media_ssrcs[0]); |
| 2511 } |
| 2512 |
| 2513 // TODO(brandtr): When FlexFEC is no longer behind a field trial, merge all |
| 2514 // tests that use this test fixture into the corresponding "non-field trial" |
| 2515 // tests. |
| 2516 class WebRtcVideoChannel2FlexfecSendRecvTest : public WebRtcVideoChannel2Test { |
| 2517 public: |
| 2518 WebRtcVideoChannel2FlexfecSendRecvTest() |
2456 : WebRtcVideoChannel2Test( | 2519 : WebRtcVideoChannel2Test( |
2457 "WebRTC-FlexFEC-03-Advertised/Enabled/WebRTC-FlexFEC-03/Enabled/") { | 2520 "WebRTC-FlexFEC-03-Advertised/Enabled/WebRTC-FlexFEC-03/Enabled/") { |
2458 } | 2521 } |
2459 }; | 2522 }; |
2460 | 2523 |
2461 // TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled | 2524 TEST_F(WebRtcVideoChannel2FlexfecSendRecvTest, |
2462 // by default. | 2525 SetDefaultSendCodecsWithoutSsrc) { |
2463 TEST_F(WebRtcVideoChannel2FlexfecTest, | |
2464 DefaultFlexfecCodecHasTransportCcAndRembFeedbackParam) { | |
2465 EXPECT_TRUE(cricket::HasTransportCc(GetEngineCodec("flexfec-03"))); | |
2466 EXPECT_TRUE(cricket::HasRemb(GetEngineCodec("flexfec-03"))); | |
2467 } | |
2468 | |
2469 // TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled | |
2470 // by default. | |
2471 TEST_F(WebRtcVideoChannel2FlexfecTest, SetDefaultSendCodecsWithoutSsrc) { | |
2472 FakeVideoSendStream* stream = AddSendStream(); | 2526 FakeVideoSendStream* stream = AddSendStream(); |
2473 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); | 2527 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); |
2474 | 2528 |
2475 EXPECT_EQ(GetEngineCodec("flexfec-03").id, config.rtp.flexfec.payload_type); | 2529 EXPECT_EQ(GetEngineCodec("flexfec-03").id, config.rtp.flexfec.payload_type); |
2476 EXPECT_EQ(0U, config.rtp.flexfec.ssrc); | 2530 EXPECT_EQ(0U, config.rtp.flexfec.ssrc); |
2477 EXPECT_TRUE(config.rtp.flexfec.protected_media_ssrcs.empty()); | 2531 EXPECT_TRUE(config.rtp.flexfec.protected_media_ssrcs.empty()); |
2478 } | 2532 } |
2479 | 2533 |
2480 // TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled | 2534 TEST_F(WebRtcVideoChannel2FlexfecSendRecvTest, SetDefaultSendCodecsWithSsrc) { |
2481 // by default. | |
2482 TEST_F(WebRtcVideoChannel2FlexfecTest, SetDefaultSendCodecsWithSsrc) { | |
2483 FakeVideoSendStream* stream = AddSendStream( | 2535 FakeVideoSendStream* stream = AddSendStream( |
2484 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); | 2536 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); |
2485 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); | 2537 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); |
2486 | 2538 |
2487 EXPECT_EQ(GetEngineCodec("flexfec-03").id, config.rtp.flexfec.payload_type); | 2539 EXPECT_EQ(GetEngineCodec("flexfec-03").id, config.rtp.flexfec.payload_type); |
2488 EXPECT_EQ(kFlexfecSsrc, config.rtp.flexfec.ssrc); | 2540 EXPECT_EQ(kFlexfecSsrc, config.rtp.flexfec.ssrc); |
2489 ASSERT_EQ(1U, config.rtp.flexfec.protected_media_ssrcs.size()); | 2541 ASSERT_EQ(1U, config.rtp.flexfec.protected_media_ssrcs.size()); |
2490 EXPECT_EQ(kSsrcs1[0], config.rtp.flexfec.protected_media_ssrcs[0]); | 2542 EXPECT_EQ(kSsrcs1[0], config.rtp.flexfec.protected_media_ssrcs[0]); |
2491 } | 2543 } |
2492 | 2544 |
2493 TEST_F(WebRtcVideoChannel2Test, SetSendCodecsWithoutFec) { | 2545 TEST_F(WebRtcVideoChannel2Test, SetSendCodecsWithoutFec) { |
2494 cricket::VideoSendParameters parameters; | 2546 cricket::VideoSendParameters parameters; |
2495 parameters.codecs.push_back(GetEngineCodec("VP8")); | 2547 parameters.codecs.push_back(GetEngineCodec("VP8")); |
2496 ASSERT_TRUE(channel_->SetSendParameters(parameters)); | 2548 ASSERT_TRUE(channel_->SetSendParameters(parameters)); |
2497 | 2549 |
2498 FakeVideoSendStream* stream = AddSendStream(); | 2550 FakeVideoSendStream* stream = AddSendStream(); |
2499 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); | 2551 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); |
2500 | 2552 |
2501 EXPECT_EQ(-1, config.rtp.ulpfec.ulpfec_payload_type); | 2553 EXPECT_EQ(-1, config.rtp.ulpfec.ulpfec_payload_type); |
2502 EXPECT_EQ(-1, config.rtp.ulpfec.red_payload_type); | 2554 EXPECT_EQ(-1, config.rtp.ulpfec.red_payload_type); |
2503 } | 2555 } |
2504 | 2556 |
2505 // TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled | 2557 TEST_F(WebRtcVideoChannel2FlexfecSendRecvTest, SetSendCodecsWithoutFec) { |
2506 // by default. | |
2507 TEST_F(WebRtcVideoChannel2FlexfecTest, SetSendCodecsWithoutFec) { | |
2508 cricket::VideoSendParameters parameters; | 2558 cricket::VideoSendParameters parameters; |
2509 parameters.codecs.push_back(GetEngineCodec("VP8")); | 2559 parameters.codecs.push_back(GetEngineCodec("VP8")); |
2510 ASSERT_TRUE(channel_->SetSendParameters(parameters)); | 2560 ASSERT_TRUE(channel_->SetSendParameters(parameters)); |
2511 | 2561 |
2512 FakeVideoSendStream* stream = AddSendStream(); | 2562 FakeVideoSendStream* stream = AddSendStream(); |
2513 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); | 2563 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); |
2514 | 2564 |
2515 EXPECT_EQ(-1, config.rtp.flexfec.payload_type); | 2565 EXPECT_EQ(-1, config.rtp.flexfec.payload_type); |
2516 } | 2566 } |
2517 | 2567 |
2518 TEST_F(WebRtcVideoChannel2FlexfecTest, SetRecvCodecsWithFec) { | 2568 TEST_F(WebRtcVideoChannel2FlexfecRecvTest, SetRecvCodecsWithFec) { |
2519 AddRecvStream( | 2569 AddRecvStream( |
2520 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); | 2570 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); |
2521 | 2571 |
2522 cricket::VideoRecvParameters recv_parameters; | 2572 cricket::VideoRecvParameters recv_parameters; |
2523 recv_parameters.codecs.push_back(GetEngineCodec("VP8")); | 2573 recv_parameters.codecs.push_back(GetEngineCodec("VP8")); |
2524 recv_parameters.codecs.push_back(GetEngineCodec("flexfec-03")); | 2574 recv_parameters.codecs.push_back(GetEngineCodec("flexfec-03")); |
2525 ASSERT_TRUE(channel_->SetRecvParameters(recv_parameters)); | 2575 ASSERT_TRUE(channel_->SetRecvParameters(recv_parameters)); |
2526 | 2576 |
2527 const std::vector<FakeFlexfecReceiveStream*>& flexfec_streams = | 2577 const std::vector<FakeFlexfecReceiveStream*>& flexfec_streams = |
2528 fake_call_->GetFlexfecReceiveStreams(); | 2578 fake_call_->GetFlexfecReceiveStreams(); |
(...skipping 18 matching lines...) Expand all Loading... |
2547 flexfec_stream_config.rtcp_send_transport); | 2597 flexfec_stream_config.rtcp_send_transport); |
2548 // TODO(brandtr): Update this EXPECT when we set |transport_cc| in a | 2598 // TODO(brandtr): Update this EXPECT when we set |transport_cc| in a |
2549 // spec-compliant way. | 2599 // spec-compliant way. |
2550 EXPECT_EQ(video_stream_config.rtp.transport_cc, | 2600 EXPECT_EQ(video_stream_config.rtp.transport_cc, |
2551 flexfec_stream_config.transport_cc); | 2601 flexfec_stream_config.transport_cc); |
2552 EXPECT_EQ(video_stream_config.rtp.rtcp_mode, flexfec_stream_config.rtcp_mode); | 2602 EXPECT_EQ(video_stream_config.rtp.rtcp_mode, flexfec_stream_config.rtcp_mode); |
2553 EXPECT_EQ(video_stream_config.rtp.extensions, | 2603 EXPECT_EQ(video_stream_config.rtp.extensions, |
2554 flexfec_stream_config.rtp_header_extensions); | 2604 flexfec_stream_config.rtp_header_extensions); |
2555 } | 2605 } |
2556 | 2606 |
| 2607 // We should not send FlexFEC, even if we advertise it, unless the right |
| 2608 // field trial is set. |
| 2609 // TODO(brandtr): Remove when FlexFEC is enabled by default. |
| 2610 TEST_F(WebRtcVideoChannel2FlexfecRecvTest, |
| 2611 SetSendCodecsWithoutSsrcWithFecDoesNotEnableFec) { |
| 2612 cricket::VideoSendParameters parameters; |
| 2613 parameters.codecs.push_back(GetEngineCodec("VP8")); |
| 2614 parameters.codecs.push_back(GetEngineCodec("flexfec-03")); |
| 2615 ASSERT_TRUE(channel_->SetSendParameters(parameters)); |
| 2616 |
| 2617 FakeVideoSendStream* stream = AddSendStream(); |
| 2618 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); |
| 2619 |
| 2620 EXPECT_EQ(-1, config.rtp.flexfec.payload_type); |
| 2621 EXPECT_EQ(0, config.rtp.flexfec.ssrc); |
| 2622 EXPECT_TRUE(config.rtp.flexfec.protected_media_ssrcs.empty()); |
| 2623 } |
| 2624 |
| 2625 TEST_F(WebRtcVideoChannel2FlexfecRecvTest, |
| 2626 SetSendCodecsWithSsrcWithFecDoesNotEnableFec) { |
| 2627 cricket::VideoSendParameters parameters; |
| 2628 parameters.codecs.push_back(GetEngineCodec("VP8")); |
| 2629 parameters.codecs.push_back(GetEngineCodec("flexfec-03")); |
| 2630 ASSERT_TRUE(channel_->SetSendParameters(parameters)); |
| 2631 |
| 2632 FakeVideoSendStream* stream = AddSendStream( |
| 2633 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); |
| 2634 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); |
| 2635 |
| 2636 EXPECT_EQ(-1, config.rtp.flexfec.payload_type); |
| 2637 EXPECT_EQ(0, config.rtp.flexfec.ssrc); |
| 2638 EXPECT_TRUE(config.rtp.flexfec.protected_media_ssrcs.empty()); |
| 2639 } |
| 2640 |
2557 TEST_F(WebRtcVideoChannel2Test, | 2641 TEST_F(WebRtcVideoChannel2Test, |
2558 SetSendCodecRejectsRtxWithoutAssociatedPayloadType) { | 2642 SetSendCodecRejectsRtxWithoutAssociatedPayloadType) { |
2559 const int kUnusedPayloadType = 127; | 2643 const int kUnusedPayloadType = 127; |
2560 EXPECT_FALSE(FindCodecById(engine_.codecs(), kUnusedPayloadType)); | 2644 EXPECT_FALSE(FindCodecById(engine_.codecs(), kUnusedPayloadType)); |
2561 | 2645 |
2562 cricket::VideoSendParameters parameters; | 2646 cricket::VideoSendParameters parameters; |
2563 cricket::VideoCodec rtx_codec(kUnusedPayloadType, "rtx"); | 2647 cricket::VideoCodec rtx_codec(kUnusedPayloadType, "rtx"); |
2564 parameters.codecs.push_back(rtx_codec); | 2648 parameters.codecs.push_back(rtx_codec); |
2565 EXPECT_FALSE(channel_->SetSendParameters(parameters)) | 2649 EXPECT_FALSE(channel_->SetSendParameters(parameters)) |
2566 << "RTX codec without associated payload type should be rejected."; | 2650 << "RTX codec without associated payload type should be rejected."; |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2641 | 2725 |
2642 parameters.codecs.pop_back(); | 2726 parameters.codecs.pop_back(); |
2643 ASSERT_TRUE(channel_->SetSendParameters(parameters)); | 2727 ASSERT_TRUE(channel_->SetSendParameters(parameters)); |
2644 stream = fake_call_->GetVideoSendStreams()[0]; | 2728 stream = fake_call_->GetVideoSendStreams()[0]; |
2645 ASSERT_TRUE(stream != nullptr); | 2729 ASSERT_TRUE(stream != nullptr); |
2646 config = stream->GetConfig().Copy(); | 2730 config = stream->GetConfig().Copy(); |
2647 EXPECT_EQ(-1, config.rtp.ulpfec.ulpfec_payload_type) | 2731 EXPECT_EQ(-1, config.rtp.ulpfec.ulpfec_payload_type) |
2648 << "SetSendCodec without ULPFEC should disable current ULPFEC."; | 2732 << "SetSendCodec without ULPFEC should disable current ULPFEC."; |
2649 } | 2733 } |
2650 | 2734 |
2651 // TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled | 2735 TEST_F(WebRtcVideoChannel2FlexfecSendRecvTest, |
2652 // by default. | 2736 SetSendCodecsWithoutFecDisablesFec) { |
2653 TEST_F(WebRtcVideoChannel2FlexfecTest, SetSendCodecsWithoutFecDisablesFec) { | |
2654 cricket::VideoSendParameters parameters; | 2737 cricket::VideoSendParameters parameters; |
2655 parameters.codecs.push_back(GetEngineCodec("VP8")); | 2738 parameters.codecs.push_back(GetEngineCodec("VP8")); |
2656 parameters.codecs.push_back(GetEngineCodec("flexfec-03")); | 2739 parameters.codecs.push_back(GetEngineCodec("flexfec-03")); |
2657 ASSERT_TRUE(channel_->SetSendParameters(parameters)); | 2740 ASSERT_TRUE(channel_->SetSendParameters(parameters)); |
2658 | 2741 |
2659 FakeVideoSendStream* stream = AddSendStream( | 2742 FakeVideoSendStream* stream = AddSendStream( |
2660 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); | 2743 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); |
2661 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); | 2744 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); |
2662 | 2745 |
2663 EXPECT_EQ(GetEngineCodec("flexfec-03").id, config.rtp.flexfec.payload_type); | 2746 EXPECT_EQ(GetEngineCodec("flexfec-03").id, config.rtp.flexfec.payload_type); |
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3047 | 3130 |
3048 cricket::VideoRecvParameters recv_parameters; | 3131 cricket::VideoRecvParameters recv_parameters; |
3049 recv_parameters.codecs.push_back(GetEngineCodec("VP8")); | 3132 recv_parameters.codecs.push_back(GetEngineCodec("VP8")); |
3050 ASSERT_TRUE(channel_->SetRecvParameters(recv_parameters)); | 3133 ASSERT_TRUE(channel_->SetRecvParameters(recv_parameters)); |
3051 stream = fake_call_->GetVideoReceiveStreams()[0]; | 3134 stream = fake_call_->GetVideoReceiveStreams()[0]; |
3052 ASSERT_TRUE(stream != nullptr); | 3135 ASSERT_TRUE(stream != nullptr); |
3053 EXPECT_EQ(-1, stream->GetConfig().rtp.ulpfec.ulpfec_payload_type) | 3136 EXPECT_EQ(-1, stream->GetConfig().rtp.ulpfec.ulpfec_payload_type) |
3054 << "SetSendCodec without ULPFEC should disable current ULPFEC."; | 3137 << "SetSendCodec without ULPFEC should disable current ULPFEC."; |
3055 } | 3138 } |
3056 | 3139 |
3057 // TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled | 3140 TEST_F(WebRtcVideoChannel2FlexfecRecvTest, SetRecvParamsWithoutFecDisablesFec) { |
3058 // by default. | |
3059 TEST_F(WebRtcVideoChannel2FlexfecTest, SetRecvParamsWithoutFecDisablesFec) { | |
3060 cricket::VideoSendParameters send_parameters; | |
3061 send_parameters.codecs.push_back(GetEngineCodec("VP8")); | |
3062 send_parameters.codecs.push_back(GetEngineCodec("flexfec-03")); | |
3063 ASSERT_TRUE(channel_->SetSendParameters(send_parameters)); | |
3064 | |
3065 AddRecvStream( | 3141 AddRecvStream( |
3066 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); | 3142 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); |
3067 const std::vector<FakeFlexfecReceiveStream*>& streams = | 3143 const std::vector<FakeFlexfecReceiveStream*>& streams = |
3068 fake_call_->GetFlexfecReceiveStreams(); | 3144 fake_call_->GetFlexfecReceiveStreams(); |
3069 | 3145 |
3070 ASSERT_EQ(1U, streams.size()); | 3146 ASSERT_EQ(1U, streams.size()); |
3071 const FakeFlexfecReceiveStream* stream = streams.front(); | 3147 const FakeFlexfecReceiveStream* stream = streams.front(); |
3072 EXPECT_EQ(GetEngineCodec("flexfec-03").id, stream->GetConfig().payload_type); | 3148 EXPECT_EQ(GetEngineCodec("flexfec-03").id, stream->GetConfig().payload_type); |
3073 EXPECT_EQ(kFlexfecSsrc, stream->GetConfig().remote_ssrc); | 3149 EXPECT_EQ(kFlexfecSsrc, stream->GetConfig().remote_ssrc); |
3074 ASSERT_EQ(1U, stream->GetConfig().protected_media_ssrcs.size()); | 3150 ASSERT_EQ(1U, stream->GetConfig().protected_media_ssrcs.size()); |
(...skipping 26 matching lines...) Expand all Loading... |
3101 send_parameters.codecs.push_back(GetEngineCodec("VP8")); | 3177 send_parameters.codecs.push_back(GetEngineCodec("VP8")); |
3102 send_parameters.codecs.push_back(GetEngineCodec("red")); | 3178 send_parameters.codecs.push_back(GetEngineCodec("red")); |
3103 send_parameters.codecs.push_back(GetEngineCodec("ulpfec")); | 3179 send_parameters.codecs.push_back(GetEngineCodec("ulpfec")); |
3104 ASSERT_TRUE(channel_->SetSendParameters(send_parameters)); | 3180 ASSERT_TRUE(channel_->SetSendParameters(send_parameters)); |
3105 stream = fake_call_->GetVideoReceiveStreams()[0]; | 3181 stream = fake_call_->GetVideoReceiveStreams()[0]; |
3106 EXPECT_EQ(GetEngineCodec("ulpfec").id, | 3182 EXPECT_EQ(GetEngineCodec("ulpfec").id, |
3107 stream->GetConfig().rtp.ulpfec.ulpfec_payload_type) | 3183 stream->GetConfig().rtp.ulpfec.ulpfec_payload_type) |
3108 << "ULPFEC should be enabled on the receive stream."; | 3184 << "ULPFEC should be enabled on the receive stream."; |
3109 } | 3185 } |
3110 | 3186 |
3111 // TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled | 3187 TEST_F(WebRtcVideoChannel2FlexfecSendRecvTest, |
3112 // by default. | 3188 SetSendRecvParamsWithFecEnablesFec) { |
3113 TEST_F(WebRtcVideoChannel2FlexfecTest, SetSendParamsWithFecEnablesFec) { | |
3114 AddRecvStream( | 3189 AddRecvStream( |
3115 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); | 3190 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); |
3116 const std::vector<FakeFlexfecReceiveStream*>& streams = | 3191 const std::vector<FakeFlexfecReceiveStream*>& streams = |
3117 fake_call_->GetFlexfecReceiveStreams(); | 3192 fake_call_->GetFlexfecReceiveStreams(); |
3118 | 3193 |
3119 cricket::VideoRecvParameters recv_parameters; | 3194 cricket::VideoRecvParameters recv_parameters; |
3120 recv_parameters.codecs.push_back(GetEngineCodec("VP8")); | 3195 recv_parameters.codecs.push_back(GetEngineCodec("VP8")); |
3121 recv_parameters.codecs.push_back(GetEngineCodec("flexfec-03")); | 3196 recv_parameters.codecs.push_back(GetEngineCodec("flexfec-03")); |
3122 ASSERT_TRUE(channel_->SetRecvParameters(recv_parameters)); | 3197 ASSERT_TRUE(channel_->SetRecvParameters(recv_parameters)); |
3123 ASSERT_EQ(1U, streams.size()); | 3198 ASSERT_EQ(1U, streams.size()); |
(...skipping 14 matching lines...) Expand all Loading... |
3138 const FakeFlexfecReceiveStream* stream_with_send_params = streams.front(); | 3213 const FakeFlexfecReceiveStream* stream_with_send_params = streams.front(); |
3139 EXPECT_EQ(GetEngineCodec("flexfec-03").id, | 3214 EXPECT_EQ(GetEngineCodec("flexfec-03").id, |
3140 stream_with_send_params->GetConfig().payload_type); | 3215 stream_with_send_params->GetConfig().payload_type); |
3141 EXPECT_EQ(kFlexfecSsrc, stream_with_send_params->GetConfig().remote_ssrc); | 3216 EXPECT_EQ(kFlexfecSsrc, stream_with_send_params->GetConfig().remote_ssrc); |
3142 EXPECT_EQ(1U, | 3217 EXPECT_EQ(1U, |
3143 stream_with_send_params->GetConfig().protected_media_ssrcs.size()); | 3218 stream_with_send_params->GetConfig().protected_media_ssrcs.size()); |
3144 EXPECT_EQ(kSsrcs1[0], | 3219 EXPECT_EQ(kSsrcs1[0], |
3145 stream_with_send_params->GetConfig().protected_media_ssrcs[0]); | 3220 stream_with_send_params->GetConfig().protected_media_ssrcs[0]); |
3146 } | 3221 } |
3147 | 3222 |
3148 TEST_F(WebRtcVideoChannel2Test, SetSendCodecsRejectDuplicateFecPayloads) { | 3223 TEST_F(WebRtcVideoChannel2Test, SetRecvCodecsRejectDuplicateFecPayloads) { |
3149 cricket::VideoRecvParameters parameters; | 3224 cricket::VideoRecvParameters parameters; |
3150 parameters.codecs.push_back(GetEngineCodec("VP8")); | 3225 parameters.codecs.push_back(GetEngineCodec("VP8")); |
3151 parameters.codecs.push_back(GetEngineCodec("red")); | 3226 parameters.codecs.push_back(GetEngineCodec("red")); |
3152 parameters.codecs[1].id = parameters.codecs[0].id; | 3227 parameters.codecs[1].id = parameters.codecs[0].id; |
3153 EXPECT_FALSE(channel_->SetRecvParameters(parameters)); | 3228 EXPECT_FALSE(channel_->SetRecvParameters(parameters)); |
3154 } | 3229 } |
3155 | 3230 |
3156 // TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled | 3231 TEST_F(WebRtcVideoChannel2FlexfecRecvTest, |
3157 // by default. | 3232 SetRecvCodecsRejectDuplicateFecPayloads) { |
3158 TEST_F(WebRtcVideoChannel2FlexfecTest, | |
3159 SetSendCodecsRejectDuplicateFecPayloads) { | |
3160 cricket::VideoRecvParameters parameters; | 3233 cricket::VideoRecvParameters parameters; |
3161 parameters.codecs.push_back(GetEngineCodec("VP8")); | 3234 parameters.codecs.push_back(GetEngineCodec("VP8")); |
3162 parameters.codecs.push_back(GetEngineCodec("flexfec-03")); | 3235 parameters.codecs.push_back(GetEngineCodec("flexfec-03")); |
3163 parameters.codecs[1].id = parameters.codecs[0].id; | 3236 parameters.codecs[1].id = parameters.codecs[0].id; |
3164 EXPECT_FALSE(channel_->SetRecvParameters(parameters)); | 3237 EXPECT_FALSE(channel_->SetRecvParameters(parameters)); |
3165 } | 3238 } |
3166 | 3239 |
3167 TEST_F(WebRtcVideoChannel2Test, SetRecvCodecsRejectDuplicateCodecPayloads) { | 3240 TEST_F(WebRtcVideoChannel2Test, SetRecvCodecsRejectDuplicateCodecPayloads) { |
3168 cricket::VideoRecvParameters parameters; | 3241 cricket::VideoRecvParameters parameters; |
3169 parameters.codecs.push_back(GetEngineCodec("VP8")); | 3242 parameters.codecs.push_back(GetEngineCodec("VP8")); |
(...skipping 632 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3802 const int rtx_vp8_payload_type = default_apt_rtx_types_[vp8.id]; | 3875 const int rtx_vp8_payload_type = default_apt_rtx_types_[vp8.id]; |
3803 TestReceiveUnsignaledSsrcPacket(rtx_vp8_payload_type, | 3876 TestReceiveUnsignaledSsrcPacket(rtx_vp8_payload_type, |
3804 false /* expect_created_receive_stream */); | 3877 false /* expect_created_receive_stream */); |
3805 } | 3878 } |
3806 | 3879 |
3807 TEST_F(WebRtcVideoChannel2Test, UlpfecPacketDoesntCreateUnsignalledStream) { | 3880 TEST_F(WebRtcVideoChannel2Test, UlpfecPacketDoesntCreateUnsignalledStream) { |
3808 TestReceiveUnsignaledSsrcPacket(GetEngineCodec("ulpfec").id, | 3881 TestReceiveUnsignaledSsrcPacket(GetEngineCodec("ulpfec").id, |
3809 false /* expect_created_receive_stream */); | 3882 false /* expect_created_receive_stream */); |
3810 } | 3883 } |
3811 | 3884 |
3812 // TODO(brandtr): Change to "non-field trial" test when FlexFEC is enabled | 3885 TEST_F(WebRtcVideoChannel2FlexfecRecvTest, |
3813 // by default. | |
3814 TEST_F(WebRtcVideoChannel2FlexfecTest, | |
3815 FlexfecPacketDoesntCreateUnsignalledStream) { | 3886 FlexfecPacketDoesntCreateUnsignalledStream) { |
3816 TestReceiveUnsignaledSsrcPacket(GetEngineCodec("flexfec-03").id, | 3887 TestReceiveUnsignaledSsrcPacket(GetEngineCodec("flexfec-03").id, |
3817 false /* expect_created_receive_stream */); | 3888 false /* expect_created_receive_stream */); |
3818 } | 3889 } |
3819 | 3890 |
3820 TEST_F(WebRtcVideoChannel2Test, RedRtxPacketDoesntCreateUnsignalledStream) { | 3891 TEST_F(WebRtcVideoChannel2Test, RedRtxPacketDoesntCreateUnsignalledStream) { |
3821 TestReceiveUnsignaledSsrcPacket(kRedRtxPayloadType, | 3892 TestReceiveUnsignaledSsrcPacket(kRedRtxPayloadType, |
3822 false /* expect_created_receive_stream */); | 3893 false /* expect_created_receive_stream */); |
3823 } | 3894 } |
3824 | 3895 |
(...skipping 632 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4457 | 4528 |
4458 TEST_F(WebRtcVideoChannel2SimulcastTest, | 4529 TEST_F(WebRtcVideoChannel2SimulcastTest, |
4459 NoSimulcastScreenshareWithoutConference) { | 4530 NoSimulcastScreenshareWithoutConference) { |
4460 webrtc::test::ScopedFieldTrials override_field_trials_( | 4531 webrtc::test::ScopedFieldTrials override_field_trials_( |
4461 "WebRTC-SimulcastScreenshare/Enabled/"); | 4532 "WebRTC-SimulcastScreenshare/Enabled/"); |
4462 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 1, true, | 4533 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 1, true, |
4463 false); | 4534 false); |
4464 } | 4535 } |
4465 | 4536 |
4466 } // namespace cricket | 4537 } // namespace cricket |
OLD | NEW |