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

Side by Side Diff: webrtc/media/engine/webrtcvideoengine2_unittest.cc

Issue 2882433003: Reduce VideoSendStream recreations due to FlexFEC. (Closed)
Patch Set: 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 unified diff | Download patch
OLDNEW
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 2413 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 // TODO(brandtr): Remove when FlexFEC _is_ exposed by default.
2434 TEST_F(WebRtcVideoChannel2Test, FlexfecCodecWithoutSsrcNotExposedByDefault) { 2434 TEST_F(WebRtcVideoChannel2Test,
2435 FlexfecSendCodecWithoutSsrcNotExposedByDefault) {
2435 FakeVideoSendStream* stream = AddSendStream(); 2436 FakeVideoSendStream* stream = AddSendStream();
2436 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); 2437 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy();
2437 2438
2438 EXPECT_EQ(-1, config.rtp.flexfec.payload_type); 2439 EXPECT_EQ(-1, config.rtp.flexfec.payload_type);
2440 EXPECT_EQ(0U, config.rtp.flexfec.ssrc);
2441 EXPECT_TRUE(config.rtp.flexfec.protected_media_ssrcs.empty());
2439 } 2442 }
2440 2443
2441 // TODO(brandtr): Remove when FlexFEC _is_ exposed by default. 2444 // TODO(brandtr): Remove when FlexFEC _is_ exposed by default.
2442 TEST_F(WebRtcVideoChannel2Test, FlexfecCodecWithSsrcNotExposedByDefault) { 2445 TEST_F(WebRtcVideoChannel2Test, FlexfecSendCodecWithSsrcNotExposedByDefault) {
2443 FakeVideoSendStream* stream = AddSendStream( 2446 FakeVideoSendStream* stream = AddSendStream(
2444 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); 2447 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc));
2445 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); 2448 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy();
2446 2449
2447 EXPECT_EQ(-1, config.rtp.flexfec.payload_type); 2450 EXPECT_EQ(-1, config.rtp.flexfec.payload_type);
2451 EXPECT_EQ(0U, config.rtp.flexfec.ssrc);
2452 EXPECT_TRUE(config.rtp.flexfec.protected_media_ssrcs.empty());
2453 }
2454
2455 // TODO(brandtr): Remove when FlexFEC _is_ exposed by default.
2456 TEST_F(WebRtcVideoChannel2Test,
2457 FlexfecRecvCodecWithoutSsrcNotExposedByDefault) {
2458 AddRecvStream();
2459
2460 const std::vector<FakeFlexfecReceiveStream*>& streams =
2461 fake_call_->GetFlexfecReceiveStreams();
2462 EXPECT_TRUE(streams.empty());
2463 }
2464
2465 // TODO(brandtr): Remove when FlexFEC _is_ exposed by default.
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 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
2641 2691
2642 parameters.codecs.pop_back(); 2692 parameters.codecs.pop_back();
2643 ASSERT_TRUE(channel_->SetSendParameters(parameters)); 2693 ASSERT_TRUE(channel_->SetSendParameters(parameters));
2644 stream = fake_call_->GetVideoSendStreams()[0]; 2694 stream = fake_call_->GetVideoSendStreams()[0];
2645 ASSERT_TRUE(stream != nullptr); 2695 ASSERT_TRUE(stream != nullptr);
2646 config = stream->GetConfig().Copy(); 2696 config = stream->GetConfig().Copy();
2647 EXPECT_EQ(-1, config.rtp.ulpfec.ulpfec_payload_type) 2697 EXPECT_EQ(-1, config.rtp.ulpfec.ulpfec_payload_type)
2648 << "SetSendCodec without ULPFEC should disable current ULPFEC."; 2698 << "SetSendCodec without ULPFEC should disable current ULPFEC.";
2649 } 2699 }
2650 2700
2651 // TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled 2701 TEST_F(WebRtcVideoChannel2FlexfecSendRecvTest,
2652 // by default. 2702 SetSendCodecsWithoutFecDisablesFec) {
2653 TEST_F(WebRtcVideoChannel2FlexfecTest, SetSendCodecsWithoutFecDisablesFec) {
2654 cricket::VideoSendParameters parameters; 2703 cricket::VideoSendParameters parameters;
2655 parameters.codecs.push_back(GetEngineCodec("VP8")); 2704 parameters.codecs.push_back(GetEngineCodec("VP8"));
2656 parameters.codecs.push_back(GetEngineCodec("flexfec-03")); 2705 parameters.codecs.push_back(GetEngineCodec("flexfec-03"));
2657 ASSERT_TRUE(channel_->SetSendParameters(parameters)); 2706 ASSERT_TRUE(channel_->SetSendParameters(parameters));
2658 2707
2659 FakeVideoSendStream* stream = AddSendStream( 2708 FakeVideoSendStream* stream = AddSendStream(
2660 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); 2709 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc));
2661 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy(); 2710 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy();
2662 2711
2663 EXPECT_EQ(GetEngineCodec("flexfec-03").id, config.rtp.flexfec.payload_type); 2712 EXPECT_EQ(GetEngineCodec("flexfec-03").id, config.rtp.flexfec.payload_type);
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after
3047 3096
3048 cricket::VideoRecvParameters recv_parameters; 3097 cricket::VideoRecvParameters recv_parameters;
3049 recv_parameters.codecs.push_back(GetEngineCodec("VP8")); 3098 recv_parameters.codecs.push_back(GetEngineCodec("VP8"));
3050 ASSERT_TRUE(channel_->SetRecvParameters(recv_parameters)); 3099 ASSERT_TRUE(channel_->SetRecvParameters(recv_parameters));
3051 stream = fake_call_->GetVideoReceiveStreams()[0]; 3100 stream = fake_call_->GetVideoReceiveStreams()[0];
3052 ASSERT_TRUE(stream != nullptr); 3101 ASSERT_TRUE(stream != nullptr);
3053 EXPECT_EQ(-1, stream->GetConfig().rtp.ulpfec.ulpfec_payload_type) 3102 EXPECT_EQ(-1, stream->GetConfig().rtp.ulpfec.ulpfec_payload_type)
3054 << "SetSendCodec without ULPFEC should disable current ULPFEC."; 3103 << "SetSendCodec without ULPFEC should disable current ULPFEC.";
3055 } 3104 }
3056 3105
3057 // TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled 3106 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( 3107 AddRecvStream(
3066 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); 3108 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc));
3067 const std::vector<FakeFlexfecReceiveStream*>& streams = 3109 const std::vector<FakeFlexfecReceiveStream*>& streams =
3068 fake_call_->GetFlexfecReceiveStreams(); 3110 fake_call_->GetFlexfecReceiveStreams();
3069 3111
3070 ASSERT_EQ(1U, streams.size()); 3112 ASSERT_EQ(1U, streams.size());
3071 const FakeFlexfecReceiveStream* stream = streams.front(); 3113 const FakeFlexfecReceiveStream* stream = streams.front();
3072 EXPECT_EQ(GetEngineCodec("flexfec-03").id, stream->GetConfig().payload_type); 3114 EXPECT_EQ(GetEngineCodec("flexfec-03").id, stream->GetConfig().payload_type);
3073 EXPECT_EQ(kFlexfecSsrc, stream->GetConfig().remote_ssrc); 3115 EXPECT_EQ(kFlexfecSsrc, stream->GetConfig().remote_ssrc);
3074 ASSERT_EQ(1U, stream->GetConfig().protected_media_ssrcs.size()); 3116 ASSERT_EQ(1U, stream->GetConfig().protected_media_ssrcs.size());
(...skipping 26 matching lines...) Expand all
3101 send_parameters.codecs.push_back(GetEngineCodec("VP8")); 3143 send_parameters.codecs.push_back(GetEngineCodec("VP8"));
3102 send_parameters.codecs.push_back(GetEngineCodec("red")); 3144 send_parameters.codecs.push_back(GetEngineCodec("red"));
3103 send_parameters.codecs.push_back(GetEngineCodec("ulpfec")); 3145 send_parameters.codecs.push_back(GetEngineCodec("ulpfec"));
3104 ASSERT_TRUE(channel_->SetSendParameters(send_parameters)); 3146 ASSERT_TRUE(channel_->SetSendParameters(send_parameters));
3105 stream = fake_call_->GetVideoReceiveStreams()[0]; 3147 stream = fake_call_->GetVideoReceiveStreams()[0];
3106 EXPECT_EQ(GetEngineCodec("ulpfec").id, 3148 EXPECT_EQ(GetEngineCodec("ulpfec").id,
3107 stream->GetConfig().rtp.ulpfec.ulpfec_payload_type) 3149 stream->GetConfig().rtp.ulpfec.ulpfec_payload_type)
3108 << "ULPFEC should be enabled on the receive stream."; 3150 << "ULPFEC should be enabled on the receive stream.";
3109 } 3151 }
3110 3152
3111 // TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled 3153 TEST_F(WebRtcVideoChannel2FlexfecSendRecvTest, SetSendParamsWithFecEnablesFec) {
3112 // by default.
3113 TEST_F(WebRtcVideoChannel2FlexfecTest, SetSendParamsWithFecEnablesFec) {
3114 AddRecvStream( 3154 AddRecvStream(
3115 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc)); 3155 CreatePrimaryWithFecFrStreamParams("cname", kSsrcs1[0], kFlexfecSsrc));
3116 const std::vector<FakeFlexfecReceiveStream*>& streams = 3156 const std::vector<FakeFlexfecReceiveStream*>& streams =
3117 fake_call_->GetFlexfecReceiveStreams(); 3157 fake_call_->GetFlexfecReceiveStreams();
3118 3158
3119 cricket::VideoRecvParameters recv_parameters; 3159 cricket::VideoRecvParameters recv_parameters;
3120 recv_parameters.codecs.push_back(GetEngineCodec("VP8")); 3160 recv_parameters.codecs.push_back(GetEngineCodec("VP8"));
3121 recv_parameters.codecs.push_back(GetEngineCodec("flexfec-03")); 3161 recv_parameters.codecs.push_back(GetEngineCodec("flexfec-03"));
3122 ASSERT_TRUE(channel_->SetRecvParameters(recv_parameters)); 3162 ASSERT_TRUE(channel_->SetRecvParameters(recv_parameters));
3123 ASSERT_EQ(1U, streams.size()); 3163 ASSERT_EQ(1U, streams.size());
(...skipping 14 matching lines...) Expand all
3138 const FakeFlexfecReceiveStream* stream_with_send_params = streams.front(); 3178 const FakeFlexfecReceiveStream* stream_with_send_params = streams.front();
3139 EXPECT_EQ(GetEngineCodec("flexfec-03").id, 3179 EXPECT_EQ(GetEngineCodec("flexfec-03").id,
3140 stream_with_send_params->GetConfig().payload_type); 3180 stream_with_send_params->GetConfig().payload_type);
3141 EXPECT_EQ(kFlexfecSsrc, stream_with_send_params->GetConfig().remote_ssrc); 3181 EXPECT_EQ(kFlexfecSsrc, stream_with_send_params->GetConfig().remote_ssrc);
3142 EXPECT_EQ(1U, 3182 EXPECT_EQ(1U,
3143 stream_with_send_params->GetConfig().protected_media_ssrcs.size()); 3183 stream_with_send_params->GetConfig().protected_media_ssrcs.size());
3144 EXPECT_EQ(kSsrcs1[0], 3184 EXPECT_EQ(kSsrcs1[0],
3145 stream_with_send_params->GetConfig().protected_media_ssrcs[0]); 3185 stream_with_send_params->GetConfig().protected_media_ssrcs[0]);
3146 } 3186 }
3147 3187
3148 TEST_F(WebRtcVideoChannel2Test, SetSendCodecsRejectDuplicateFecPayloads) { 3188 TEST_F(WebRtcVideoChannel2Test, SetRecvCodecsRejectDuplicateFecPayloads) {
3149 cricket::VideoRecvParameters parameters; 3189 cricket::VideoRecvParameters parameters;
3150 parameters.codecs.push_back(GetEngineCodec("VP8")); 3190 parameters.codecs.push_back(GetEngineCodec("VP8"));
3151 parameters.codecs.push_back(GetEngineCodec("red")); 3191 parameters.codecs.push_back(GetEngineCodec("red"));
3152 parameters.codecs[1].id = parameters.codecs[0].id; 3192 parameters.codecs[1].id = parameters.codecs[0].id;
3153 EXPECT_FALSE(channel_->SetRecvParameters(parameters)); 3193 EXPECT_FALSE(channel_->SetRecvParameters(parameters));
3154 } 3194 }
3155 3195
3156 // TODO(brandtr): Merge into "non-field trial" test when FlexFEC is enabled 3196 TEST_F(WebRtcVideoChannel2FlexfecRecvTest,
3157 // by default. 3197 SetRecvCodecsRejectDuplicateFecPayloads) {
3158 TEST_F(WebRtcVideoChannel2FlexfecTest,
3159 SetSendCodecsRejectDuplicateFecPayloads) {
3160 cricket::VideoRecvParameters parameters; 3198 cricket::VideoRecvParameters parameters;
3161 parameters.codecs.push_back(GetEngineCodec("VP8")); 3199 parameters.codecs.push_back(GetEngineCodec("VP8"));
3162 parameters.codecs.push_back(GetEngineCodec("flexfec-03")); 3200 parameters.codecs.push_back(GetEngineCodec("flexfec-03"));
3163 parameters.codecs[1].id = parameters.codecs[0].id; 3201 parameters.codecs[1].id = parameters.codecs[0].id;
3164 EXPECT_FALSE(channel_->SetRecvParameters(parameters)); 3202 EXPECT_FALSE(channel_->SetRecvParameters(parameters));
3165 } 3203 }
3166 3204
3167 TEST_F(WebRtcVideoChannel2Test, SetRecvCodecsRejectDuplicateCodecPayloads) { 3205 TEST_F(WebRtcVideoChannel2Test, SetRecvCodecsRejectDuplicateCodecPayloads) {
3168 cricket::VideoRecvParameters parameters; 3206 cricket::VideoRecvParameters parameters;
3169 parameters.codecs.push_back(GetEngineCodec("VP8")); 3207 parameters.codecs.push_back(GetEngineCodec("VP8"));
(...skipping 632 matching lines...) Expand 10 before | Expand all | Expand 10 after
3802 const int rtx_vp8_payload_type = default_apt_rtx_types_[vp8.id]; 3840 const int rtx_vp8_payload_type = default_apt_rtx_types_[vp8.id];
3803 TestReceiveUnsignaledSsrcPacket(rtx_vp8_payload_type, 3841 TestReceiveUnsignaledSsrcPacket(rtx_vp8_payload_type,
3804 false /* expect_created_receive_stream */); 3842 false /* expect_created_receive_stream */);
3805 } 3843 }
3806 3844
3807 TEST_F(WebRtcVideoChannel2Test, UlpfecPacketDoesntCreateUnsignalledStream) { 3845 TEST_F(WebRtcVideoChannel2Test, UlpfecPacketDoesntCreateUnsignalledStream) {
3808 TestReceiveUnsignaledSsrcPacket(GetEngineCodec("ulpfec").id, 3846 TestReceiveUnsignaledSsrcPacket(GetEngineCodec("ulpfec").id,
3809 false /* expect_created_receive_stream */); 3847 false /* expect_created_receive_stream */);
3810 } 3848 }
3811 3849
3812 // TODO(brandtr): Change to "non-field trial" test when FlexFEC is enabled 3850 TEST_F(WebRtcVideoChannel2FlexfecRecvTest,
3813 // by default.
3814 TEST_F(WebRtcVideoChannel2FlexfecTest,
3815 FlexfecPacketDoesntCreateUnsignalledStream) { 3851 FlexfecPacketDoesntCreateUnsignalledStream) {
3816 TestReceiveUnsignaledSsrcPacket(GetEngineCodec("flexfec-03").id, 3852 TestReceiveUnsignaledSsrcPacket(GetEngineCodec("flexfec-03").id,
3817 false /* expect_created_receive_stream */); 3853 false /* expect_created_receive_stream */);
3818 } 3854 }
3819 3855
3820 TEST_F(WebRtcVideoChannel2Test, RedRtxPacketDoesntCreateUnsignalledStream) { 3856 TEST_F(WebRtcVideoChannel2Test, RedRtxPacketDoesntCreateUnsignalledStream) {
3821 TestReceiveUnsignaledSsrcPacket(kRedRtxPayloadType, 3857 TestReceiveUnsignaledSsrcPacket(kRedRtxPayloadType,
3822 false /* expect_created_receive_stream */); 3858 false /* expect_created_receive_stream */);
3823 } 3859 }
3824 3860
(...skipping 632 matching lines...) Expand 10 before | Expand all | Expand 10 after
4457 4493
4458 TEST_F(WebRtcVideoChannel2SimulcastTest, 4494 TEST_F(WebRtcVideoChannel2SimulcastTest,
4459 NoSimulcastScreenshareWithoutConference) { 4495 NoSimulcastScreenshareWithoutConference) {
4460 webrtc::test::ScopedFieldTrials override_field_trials_( 4496 webrtc::test::ScopedFieldTrials override_field_trials_(
4461 "WebRTC-SimulcastScreenshare/Enabled/"); 4497 "WebRTC-SimulcastScreenshare/Enabled/");
4462 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 1, true, 4498 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 1, true,
4463 false); 4499 false);
4464 } 4500 }
4465 4501
4466 } // namespace cricket 4502 } // namespace cricket
OLDNEW
« webrtc/media/engine/webrtcvideoengine2.cc ('K') | « webrtc/media/engine/webrtcvideoengine2.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698