| OLD | NEW |
| 1 /* | 1 /* |
| 2 * libjingle | 2 * libjingle |
| 3 * Copyright 2008 Google Inc. | 3 * Copyright 2008 Google Inc. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
| 9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 90 class WebRtcVoiceEngineTestFake : public testing::Test { | 90 class WebRtcVoiceEngineTestFake : public testing::Test { |
| 91 public: | 91 public: |
| 92 WebRtcVoiceEngineTestFake() | 92 WebRtcVoiceEngineTestFake() |
| 93 : call_(webrtc::Call::Config()), | 93 : call_(webrtc::Call::Config()), |
| 94 voe_(kAudioCodecs, ARRAY_SIZE(kAudioCodecs)), | 94 voe_(kAudioCodecs, ARRAY_SIZE(kAudioCodecs)), |
| 95 trace_wrapper_(new FakeVoETraceWrapper()), | 95 trace_wrapper_(new FakeVoETraceWrapper()), |
| 96 engine_(new FakeVoEWrapper(&voe_), trace_wrapper_), | 96 engine_(new FakeVoEWrapper(&voe_), trace_wrapper_), |
| 97 channel_(nullptr) { | 97 channel_(nullptr) { |
| 98 send_parameters_.codecs.push_back(kPcmuCodec); | 98 send_parameters_.codecs.push_back(kPcmuCodec); |
| 99 recv_parameters_.codecs.push_back(kPcmuCodec); | 99 recv_parameters_.codecs.push_back(kPcmuCodec); |
| 100 options_adjust_agc_.adjust_agc_delta.Set(-10); | 100 options_adjust_agc_.adjust_agc_delta = rtc::Maybe<int>(-10); |
| 101 } | 101 } |
| 102 bool SetupEngine() { | 102 bool SetupEngine() { |
| 103 if (!engine_.Init(rtc::Thread::Current())) { | 103 if (!engine_.Init(rtc::Thread::Current())) { |
| 104 return false; | 104 return false; |
| 105 } | 105 } |
| 106 channel_ = engine_.CreateChannel(&call_, cricket::AudioOptions()); | 106 channel_ = engine_.CreateChannel(&call_, cricket::AudioOptions()); |
| 107 return (channel_ != nullptr); | 107 return (channel_ != nullptr); |
| 108 } | 108 } |
| 109 bool SetupEngineWithRecvStream() { | 109 bool SetupEngineWithRecvStream() { |
| 110 if (!SetupEngine()) { | 110 if (!SetupEngine()) { |
| (...skipping 2163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2274 EXPECT_EQ(0, agc_config.targetLeveldBOv); // level was restored | 2274 EXPECT_EQ(0, agc_config.targetLeveldBOv); // level was restored |
| 2275 } | 2275 } |
| 2276 | 2276 |
| 2277 TEST_F(WebRtcVoiceEngineTestFake, TxAgcConfigViaOptions) { | 2277 TEST_F(WebRtcVoiceEngineTestFake, TxAgcConfigViaOptions) { |
| 2278 EXPECT_TRUE(SetupEngineWithSendStream()); | 2278 EXPECT_TRUE(SetupEngineWithSendStream()); |
| 2279 webrtc::AgcConfig agc_config; | 2279 webrtc::AgcConfig agc_config; |
| 2280 EXPECT_EQ(0, voe_.GetAgcConfig(agc_config)); | 2280 EXPECT_EQ(0, voe_.GetAgcConfig(agc_config)); |
| 2281 EXPECT_EQ(0, agc_config.targetLeveldBOv); | 2281 EXPECT_EQ(0, agc_config.targetLeveldBOv); |
| 2282 | 2282 |
| 2283 cricket::AudioOptions options; | 2283 cricket::AudioOptions options; |
| 2284 options.tx_agc_target_dbov.Set(3); | 2284 options.tx_agc_target_dbov = rtc::Maybe<uint16_t>(3); |
| 2285 options.tx_agc_digital_compression_gain.Set(9); | 2285 options.tx_agc_digital_compression_gain = rtc::Maybe<uint16_t>(9); |
| 2286 options.tx_agc_limiter.Set(true); | 2286 options.tx_agc_limiter = rtc::Maybe<bool>(true); |
| 2287 options.auto_gain_control.Set(true); | 2287 options.auto_gain_control = rtc::Maybe<bool>(true); |
| 2288 EXPECT_TRUE(engine_.SetOptions(options)); | 2288 EXPECT_TRUE(engine_.SetOptions(options)); |
| 2289 | 2289 |
| 2290 EXPECT_EQ(0, voe_.GetAgcConfig(agc_config)); | 2290 EXPECT_EQ(0, voe_.GetAgcConfig(agc_config)); |
| 2291 EXPECT_EQ(3, agc_config.targetLeveldBOv); | 2291 EXPECT_EQ(3, agc_config.targetLeveldBOv); |
| 2292 EXPECT_EQ(9, agc_config.digitalCompressionGaindB); | 2292 EXPECT_EQ(9, agc_config.digitalCompressionGaindB); |
| 2293 EXPECT_TRUE(agc_config.limiterEnable); | 2293 EXPECT_TRUE(agc_config.limiterEnable); |
| 2294 | 2294 |
| 2295 // Check interaction with adjust_agc_delta. Both should be respected, for | 2295 // Check interaction with adjust_agc_delta. Both should be respected, for |
| 2296 // backwards compatibility. | 2296 // backwards compatibility. |
| 2297 options.adjust_agc_delta.Set(-10); | 2297 options.adjust_agc_delta = rtc::Maybe<int>(-10); |
| 2298 EXPECT_TRUE(engine_.SetOptions(options)); | 2298 EXPECT_TRUE(engine_.SetOptions(options)); |
| 2299 | 2299 |
| 2300 EXPECT_EQ(0, voe_.GetAgcConfig(agc_config)); | 2300 EXPECT_EQ(0, voe_.GetAgcConfig(agc_config)); |
| 2301 EXPECT_EQ(13, agc_config.targetLeveldBOv); | 2301 EXPECT_EQ(13, agc_config.targetLeveldBOv); |
| 2302 } | 2302 } |
| 2303 | 2303 |
| 2304 TEST_F(WebRtcVoiceEngineTestFake, SampleRatesViaOptions) { | 2304 TEST_F(WebRtcVoiceEngineTestFake, SampleRatesViaOptions) { |
| 2305 EXPECT_TRUE(SetupEngineWithSendStream()); | 2305 EXPECT_TRUE(SetupEngineWithSendStream()); |
| 2306 cricket::AudioOptions options; | 2306 cricket::AudioOptions options; |
| 2307 options.recording_sample_rate.Set(48000u); | 2307 options.recording_sample_rate = rtc::Maybe<uint32_t>(48000); |
| 2308 options.playout_sample_rate.Set(44100u); | 2308 options.playout_sample_rate = rtc::Maybe<uint32_t>(44100); |
| 2309 EXPECT_TRUE(engine_.SetOptions(options)); | 2309 EXPECT_TRUE(engine_.SetOptions(options)); |
| 2310 | 2310 |
| 2311 unsigned int recording_sample_rate, playout_sample_rate; | 2311 unsigned int recording_sample_rate, playout_sample_rate; |
| 2312 EXPECT_EQ(0, voe_.RecordingSampleRate(&recording_sample_rate)); | 2312 EXPECT_EQ(0, voe_.RecordingSampleRate(&recording_sample_rate)); |
| 2313 EXPECT_EQ(0, voe_.PlayoutSampleRate(&playout_sample_rate)); | 2313 EXPECT_EQ(0, voe_.PlayoutSampleRate(&playout_sample_rate)); |
| 2314 EXPECT_EQ(48000u, recording_sample_rate); | 2314 EXPECT_EQ(48000u, recording_sample_rate); |
| 2315 EXPECT_EQ(44100u, playout_sample_rate); | 2315 EXPECT_EQ(44100u, playout_sample_rate); |
| 2316 } | 2316 } |
| 2317 | 2317 |
| 2318 TEST_F(WebRtcVoiceEngineTestFake, TraceFilterViaTraceOptions) { | 2318 TEST_F(WebRtcVoiceEngineTestFake, TraceFilterViaTraceOptions) { |
| (...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2623 EXPECT_TRUE(highpass_filter_enabled); | 2623 EXPECT_TRUE(highpass_filter_enabled); |
| 2624 EXPECT_FALSE(stereo_swapping_enabled); | 2624 EXPECT_FALSE(stereo_swapping_enabled); |
| 2625 EXPECT_TRUE(typing_detection_enabled); | 2625 EXPECT_TRUE(typing_detection_enabled); |
| 2626 EXPECT_EQ(ec_mode, webrtc::kEcConference); | 2626 EXPECT_EQ(ec_mode, webrtc::kEcConference); |
| 2627 EXPECT_EQ(ns_mode, webrtc::kNsHighSuppression); | 2627 EXPECT_EQ(ns_mode, webrtc::kNsHighSuppression); |
| 2628 EXPECT_EQ(50, voe_.GetNetEqCapacity()); // From GetDefaultEngineOptions(). | 2628 EXPECT_EQ(50, voe_.GetNetEqCapacity()); // From GetDefaultEngineOptions(). |
| 2629 EXPECT_FALSE( | 2629 EXPECT_FALSE( |
| 2630 voe_.GetNetEqFastAccelerate()); // From GetDefaultEngineOptions(). | 2630 voe_.GetNetEqFastAccelerate()); // From GetDefaultEngineOptions(). |
| 2631 | 2631 |
| 2632 // Turn echo cancellation off | 2632 // Turn echo cancellation off |
| 2633 options.echo_cancellation.Set(false); | 2633 options.echo_cancellation = rtc::Maybe<bool>(false); |
| 2634 ASSERT_TRUE(engine_.SetOptions(options)); | 2634 ASSERT_TRUE(engine_.SetOptions(options)); |
| 2635 voe_.GetEcStatus(ec_enabled, ec_mode); | 2635 voe_.GetEcStatus(ec_enabled, ec_mode); |
| 2636 EXPECT_FALSE(ec_enabled); | 2636 EXPECT_FALSE(ec_enabled); |
| 2637 | 2637 |
| 2638 // Turn echo cancellation back on, with settings, and make sure | 2638 // Turn echo cancellation back on, with settings, and make sure |
| 2639 // nothing else changed. | 2639 // nothing else changed. |
| 2640 options.echo_cancellation.Set(true); | 2640 options.echo_cancellation = rtc::Maybe<bool>(true); |
| 2641 ASSERT_TRUE(engine_.SetOptions(options)); | 2641 ASSERT_TRUE(engine_.SetOptions(options)); |
| 2642 voe_.GetEcStatus(ec_enabled, ec_mode); | 2642 voe_.GetEcStatus(ec_enabled, ec_mode); |
| 2643 voe_.GetAecmMode(aecm_mode, cng_enabled); | 2643 voe_.GetAecmMode(aecm_mode, cng_enabled); |
| 2644 voe_.GetAgcStatus(agc_enabled, agc_mode); | 2644 voe_.GetAgcStatus(agc_enabled, agc_mode); |
| 2645 voe_.GetAgcConfig(agc_config); | 2645 voe_.GetAgcConfig(agc_config); |
| 2646 voe_.GetNsStatus(ns_enabled, ns_mode); | 2646 voe_.GetNsStatus(ns_enabled, ns_mode); |
| 2647 highpass_filter_enabled = voe_.IsHighPassFilterEnabled(); | 2647 highpass_filter_enabled = voe_.IsHighPassFilterEnabled(); |
| 2648 stereo_swapping_enabled = voe_.IsStereoChannelSwappingEnabled(); | 2648 stereo_swapping_enabled = voe_.IsStereoChannelSwappingEnabled(); |
| 2649 voe_.GetTypingDetectionStatus(typing_detection_enabled); | 2649 voe_.GetTypingDetectionStatus(typing_detection_enabled); |
| 2650 EXPECT_TRUE(ec_enabled); | 2650 EXPECT_TRUE(ec_enabled); |
| 2651 EXPECT_TRUE(voe_.ec_metrics_enabled()); | 2651 EXPECT_TRUE(voe_.ec_metrics_enabled()); |
| 2652 EXPECT_TRUE(agc_enabled); | 2652 EXPECT_TRUE(agc_enabled); |
| 2653 EXPECT_EQ(0, agc_config.targetLeveldBOv); | 2653 EXPECT_EQ(0, agc_config.targetLeveldBOv); |
| 2654 EXPECT_TRUE(ns_enabled); | 2654 EXPECT_TRUE(ns_enabled); |
| 2655 EXPECT_TRUE(highpass_filter_enabled); | 2655 EXPECT_TRUE(highpass_filter_enabled); |
| 2656 EXPECT_FALSE(stereo_swapping_enabled); | 2656 EXPECT_FALSE(stereo_swapping_enabled); |
| 2657 EXPECT_TRUE(typing_detection_enabled); | 2657 EXPECT_TRUE(typing_detection_enabled); |
| 2658 EXPECT_EQ(ec_mode, webrtc::kEcConference); | 2658 EXPECT_EQ(ec_mode, webrtc::kEcConference); |
| 2659 EXPECT_EQ(ns_mode, webrtc::kNsHighSuppression); | 2659 EXPECT_EQ(ns_mode, webrtc::kNsHighSuppression); |
| 2660 | 2660 |
| 2661 // Turn on delay agnostic aec and make sure nothing change w.r.t. echo | 2661 // Turn on delay agnostic aec and make sure nothing change w.r.t. echo |
| 2662 // control. | 2662 // control. |
| 2663 options.delay_agnostic_aec.Set(true); | 2663 options.delay_agnostic_aec = rtc::Maybe<bool>(true); |
| 2664 ASSERT_TRUE(engine_.SetOptions(options)); | 2664 ASSERT_TRUE(engine_.SetOptions(options)); |
| 2665 voe_.GetEcStatus(ec_enabled, ec_mode); | 2665 voe_.GetEcStatus(ec_enabled, ec_mode); |
| 2666 voe_.GetAecmMode(aecm_mode, cng_enabled); | 2666 voe_.GetAecmMode(aecm_mode, cng_enabled); |
| 2667 EXPECT_TRUE(ec_enabled); | 2667 EXPECT_TRUE(ec_enabled); |
| 2668 EXPECT_TRUE(voe_.ec_metrics_enabled()); | 2668 EXPECT_TRUE(voe_.ec_metrics_enabled()); |
| 2669 EXPECT_EQ(ec_mode, webrtc::kEcConference); | 2669 EXPECT_EQ(ec_mode, webrtc::kEcConference); |
| 2670 | 2670 |
| 2671 // Turn off echo cancellation and delay agnostic aec. | 2671 // Turn off echo cancellation and delay agnostic aec. |
| 2672 options.delay_agnostic_aec.Set(false); | 2672 options.delay_agnostic_aec = rtc::Maybe<bool>(false); |
| 2673 options.extended_filter_aec.Set(false); | 2673 options.extended_filter_aec = rtc::Maybe<bool>(false); |
| 2674 options.echo_cancellation.Set(false); | 2674 options.echo_cancellation = rtc::Maybe<bool>(false); |
| 2675 ASSERT_TRUE(engine_.SetOptions(options)); | 2675 ASSERT_TRUE(engine_.SetOptions(options)); |
| 2676 voe_.GetEcStatus(ec_enabled, ec_mode); | 2676 voe_.GetEcStatus(ec_enabled, ec_mode); |
| 2677 EXPECT_FALSE(ec_enabled); | 2677 EXPECT_FALSE(ec_enabled); |
| 2678 // Turning delay agnostic aec back on should also turn on echo cancellation. | 2678 // Turning delay agnostic aec back on should also turn on echo cancellation. |
| 2679 options.delay_agnostic_aec.Set(true); | 2679 options.delay_agnostic_aec = rtc::Maybe<bool>(true); |
| 2680 ASSERT_TRUE(engine_.SetOptions(options)); | 2680 ASSERT_TRUE(engine_.SetOptions(options)); |
| 2681 voe_.GetEcStatus(ec_enabled, ec_mode); | 2681 voe_.GetEcStatus(ec_enabled, ec_mode); |
| 2682 EXPECT_TRUE(ec_enabled); | 2682 EXPECT_TRUE(ec_enabled); |
| 2683 EXPECT_TRUE(voe_.ec_metrics_enabled()); | 2683 EXPECT_TRUE(voe_.ec_metrics_enabled()); |
| 2684 EXPECT_EQ(ec_mode, webrtc::kEcConference); | 2684 EXPECT_EQ(ec_mode, webrtc::kEcConference); |
| 2685 | 2685 |
| 2686 // Turn off AGC | 2686 // Turn off AGC |
| 2687 options.auto_gain_control.Set(false); | 2687 options.auto_gain_control = rtc::Maybe<bool>(false); |
| 2688 ASSERT_TRUE(engine_.SetOptions(options)); | 2688 ASSERT_TRUE(engine_.SetOptions(options)); |
| 2689 voe_.GetAgcStatus(agc_enabled, agc_mode); | 2689 voe_.GetAgcStatus(agc_enabled, agc_mode); |
| 2690 EXPECT_FALSE(agc_enabled); | 2690 EXPECT_FALSE(agc_enabled); |
| 2691 | 2691 |
| 2692 // Turn AGC back on | 2692 // Turn AGC back on |
| 2693 options.auto_gain_control.Set(true); | 2693 options.auto_gain_control = rtc::Maybe<bool>(true); |
| 2694 options.adjust_agc_delta.Clear(); | 2694 options.adjust_agc_delta = rtc::Maybe<int>(); |
| 2695 ASSERT_TRUE(engine_.SetOptions(options)); | 2695 ASSERT_TRUE(engine_.SetOptions(options)); |
| 2696 voe_.GetAgcStatus(agc_enabled, agc_mode); | 2696 voe_.GetAgcStatus(agc_enabled, agc_mode); |
| 2697 EXPECT_TRUE(agc_enabled); | 2697 EXPECT_TRUE(agc_enabled); |
| 2698 voe_.GetAgcConfig(agc_config); | 2698 voe_.GetAgcConfig(agc_config); |
| 2699 EXPECT_EQ(0, agc_config.targetLeveldBOv); | 2699 EXPECT_EQ(0, agc_config.targetLeveldBOv); |
| 2700 | 2700 |
| 2701 // Turn off other options (and stereo swapping on). | 2701 // Turn off other options (and stereo swapping on). |
| 2702 options.noise_suppression.Set(false); | 2702 options.noise_suppression = rtc::Maybe<bool>(false); |
| 2703 options.highpass_filter.Set(false); | 2703 options.highpass_filter = rtc::Maybe<bool>(false); |
| 2704 options.typing_detection.Set(false); | 2704 options.typing_detection = rtc::Maybe<bool>(false); |
| 2705 options.stereo_swapping.Set(true); | 2705 options.stereo_swapping = rtc::Maybe<bool>(true); |
| 2706 ASSERT_TRUE(engine_.SetOptions(options)); | 2706 ASSERT_TRUE(engine_.SetOptions(options)); |
| 2707 voe_.GetNsStatus(ns_enabled, ns_mode); | 2707 voe_.GetNsStatus(ns_enabled, ns_mode); |
| 2708 highpass_filter_enabled = voe_.IsHighPassFilterEnabled(); | 2708 highpass_filter_enabled = voe_.IsHighPassFilterEnabled(); |
| 2709 stereo_swapping_enabled = voe_.IsStereoChannelSwappingEnabled(); | 2709 stereo_swapping_enabled = voe_.IsStereoChannelSwappingEnabled(); |
| 2710 voe_.GetTypingDetectionStatus(typing_detection_enabled); | 2710 voe_.GetTypingDetectionStatus(typing_detection_enabled); |
| 2711 EXPECT_FALSE(ns_enabled); | 2711 EXPECT_FALSE(ns_enabled); |
| 2712 EXPECT_FALSE(highpass_filter_enabled); | 2712 EXPECT_FALSE(highpass_filter_enabled); |
| 2713 EXPECT_FALSE(typing_detection_enabled); | 2713 EXPECT_FALSE(typing_detection_enabled); |
| 2714 EXPECT_TRUE(stereo_swapping_enabled); | 2714 EXPECT_TRUE(stereo_swapping_enabled); |
| 2715 | 2715 |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2778 // Have to add a stream to make SetSend work. | 2778 // Have to add a stream to make SetSend work. |
| 2779 cricket::StreamParams stream1; | 2779 cricket::StreamParams stream1; |
| 2780 stream1.ssrcs.push_back(1); | 2780 stream1.ssrcs.push_back(1); |
| 2781 channel1->AddSendStream(stream1); | 2781 channel1->AddSendStream(stream1); |
| 2782 cricket::StreamParams stream2; | 2782 cricket::StreamParams stream2; |
| 2783 stream2.ssrcs.push_back(2); | 2783 stream2.ssrcs.push_back(2); |
| 2784 channel2->AddSendStream(stream2); | 2784 channel2->AddSendStream(stream2); |
| 2785 | 2785 |
| 2786 // AEC and AGC and NS | 2786 // AEC and AGC and NS |
| 2787 cricket::AudioSendParameters parameters_options_all = send_parameters_; | 2787 cricket::AudioSendParameters parameters_options_all = send_parameters_; |
| 2788 parameters_options_all.options.echo_cancellation.Set(true); | 2788 parameters_options_all.options.echo_cancellation = rtc::Maybe<bool>(true); |
| 2789 parameters_options_all.options.auto_gain_control.Set(true); | 2789 parameters_options_all.options.auto_gain_control = rtc::Maybe<bool>(true); |
| 2790 parameters_options_all.options.noise_suppression.Set(true); | 2790 parameters_options_all.options.noise_suppression = rtc::Maybe<bool>(true); |
| 2791 ASSERT_TRUE(channel1->SetSendParameters(parameters_options_all)); | 2791 ASSERT_TRUE(channel1->SetSendParameters(parameters_options_all)); |
| 2792 EXPECT_EQ(parameters_options_all.options, channel1->options()); | 2792 EXPECT_EQ(parameters_options_all.options, channel1->options()); |
| 2793 ASSERT_TRUE(channel2->SetSendParameters(parameters_options_all)); | 2793 ASSERT_TRUE(channel2->SetSendParameters(parameters_options_all)); |
| 2794 EXPECT_EQ(parameters_options_all.options, channel2->options()); | 2794 EXPECT_EQ(parameters_options_all.options, channel2->options()); |
| 2795 | 2795 |
| 2796 // unset NS | 2796 // unset NS |
| 2797 cricket::AudioSendParameters parameters_options_no_ns = send_parameters_; | 2797 cricket::AudioSendParameters parameters_options_no_ns = send_parameters_; |
| 2798 parameters_options_no_ns.options.noise_suppression.Set(false); | 2798 parameters_options_no_ns.options.noise_suppression = rtc::Maybe<bool>(false); |
| 2799 ASSERT_TRUE(channel1->SetSendParameters(parameters_options_no_ns)); | 2799 ASSERT_TRUE(channel1->SetSendParameters(parameters_options_no_ns)); |
| 2800 cricket::AudioOptions expected_options = parameters_options_all.options; | 2800 cricket::AudioOptions expected_options = parameters_options_all.options; |
| 2801 expected_options.echo_cancellation.Set(true); | 2801 expected_options.echo_cancellation = rtc::Maybe<bool>(true); |
| 2802 expected_options.auto_gain_control.Set(true); | 2802 expected_options.auto_gain_control = rtc::Maybe<bool>(true); |
| 2803 expected_options.noise_suppression.Set(false); | 2803 expected_options.noise_suppression = rtc::Maybe<bool>(false); |
| 2804 EXPECT_EQ(expected_options, channel1->options()); | 2804 EXPECT_EQ(expected_options, channel1->options()); |
| 2805 | 2805 |
| 2806 // unset AGC | 2806 // unset AGC |
| 2807 cricket::AudioSendParameters parameters_options_no_agc = send_parameters_; | 2807 cricket::AudioSendParameters parameters_options_no_agc = send_parameters_; |
| 2808 parameters_options_no_agc.options.auto_gain_control.Set(false); | 2808 parameters_options_no_agc.options.auto_gain_control = rtc::Maybe<bool>(false); |
| 2809 ASSERT_TRUE(channel2->SetSendParameters(parameters_options_no_agc)); | 2809 ASSERT_TRUE(channel2->SetSendParameters(parameters_options_no_agc)); |
| 2810 expected_options.echo_cancellation.Set(true); | 2810 expected_options.echo_cancellation = rtc::Maybe<bool>(true); |
| 2811 expected_options.auto_gain_control.Set(false); | 2811 expected_options.auto_gain_control = rtc::Maybe<bool>(false); |
| 2812 expected_options.noise_suppression.Set(true); | 2812 expected_options.noise_suppression = rtc::Maybe<bool>(true); |
| 2813 EXPECT_EQ(expected_options, channel2->options()); | 2813 EXPECT_EQ(expected_options, channel2->options()); |
| 2814 | 2814 |
| 2815 ASSERT_TRUE(engine_.SetOptions(parameters_options_all.options)); | 2815 ASSERT_TRUE(engine_.SetOptions(parameters_options_all.options)); |
| 2816 bool ec_enabled; | 2816 bool ec_enabled; |
| 2817 webrtc::EcModes ec_mode; | 2817 webrtc::EcModes ec_mode; |
| 2818 bool agc_enabled; | 2818 bool agc_enabled; |
| 2819 webrtc::AgcModes agc_mode; | 2819 webrtc::AgcModes agc_mode; |
| 2820 bool ns_enabled; | 2820 bool ns_enabled; |
| 2821 webrtc::NsModes ns_mode; | 2821 webrtc::NsModes ns_mode; |
| 2822 voe_.GetEcStatus(ec_enabled, ec_mode); | 2822 voe_.GetEcStatus(ec_enabled, ec_mode); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2855 voe_.GetAgcStatus(agc_enabled, agc_mode); | 2855 voe_.GetAgcStatus(agc_enabled, agc_mode); |
| 2856 voe_.GetNsStatus(ns_enabled, ns_mode); | 2856 voe_.GetNsStatus(ns_enabled, ns_mode); |
| 2857 EXPECT_TRUE(ec_enabled); | 2857 EXPECT_TRUE(ec_enabled); |
| 2858 EXPECT_TRUE(agc_enabled); | 2858 EXPECT_TRUE(agc_enabled); |
| 2859 EXPECT_TRUE(ns_enabled); | 2859 EXPECT_TRUE(ns_enabled); |
| 2860 | 2860 |
| 2861 // Make sure settings take effect while we are sending. | 2861 // Make sure settings take effect while we are sending. |
| 2862 ASSERT_TRUE(engine_.SetOptions(parameters_options_all.options)); | 2862 ASSERT_TRUE(engine_.SetOptions(parameters_options_all.options)); |
| 2863 cricket::AudioSendParameters parameters_options_no_agc_nor_ns = | 2863 cricket::AudioSendParameters parameters_options_no_agc_nor_ns = |
| 2864 send_parameters_; | 2864 send_parameters_; |
| 2865 parameters_options_no_agc_nor_ns.options.auto_gain_control.Set(false); | 2865 parameters_options_no_agc_nor_ns.options.auto_gain_control = |
| 2866 parameters_options_no_agc_nor_ns.options.noise_suppression.Set(false); | 2866 rtc::Maybe<bool>(false); |
| 2867 parameters_options_no_agc_nor_ns.options.noise_suppression = |
| 2868 rtc::Maybe<bool>(false); |
| 2867 channel2->SetSend(cricket::SEND_MICROPHONE); | 2869 channel2->SetSend(cricket::SEND_MICROPHONE); |
| 2868 channel2->SetSendParameters(parameters_options_no_agc_nor_ns); | 2870 channel2->SetSendParameters(parameters_options_no_agc_nor_ns); |
| 2869 expected_options.echo_cancellation.Set(true); | 2871 expected_options.echo_cancellation = rtc::Maybe<bool>(true); |
| 2870 expected_options.auto_gain_control.Set(false); | 2872 expected_options.auto_gain_control = rtc::Maybe<bool>(false); |
| 2871 expected_options.noise_suppression.Set(false); | 2873 expected_options.noise_suppression = rtc::Maybe<bool>(false); |
| 2872 EXPECT_EQ(expected_options, channel2->options()); | 2874 EXPECT_EQ(expected_options, channel2->options()); |
| 2873 voe_.GetEcStatus(ec_enabled, ec_mode); | 2875 voe_.GetEcStatus(ec_enabled, ec_mode); |
| 2874 voe_.GetAgcStatus(agc_enabled, agc_mode); | 2876 voe_.GetAgcStatus(agc_enabled, agc_mode); |
| 2875 voe_.GetNsStatus(ns_enabled, ns_mode); | 2877 voe_.GetNsStatus(ns_enabled, ns_mode); |
| 2876 EXPECT_TRUE(ec_enabled); | 2878 EXPECT_TRUE(ec_enabled); |
| 2877 EXPECT_FALSE(agc_enabled); | 2879 EXPECT_FALSE(agc_enabled); |
| 2878 EXPECT_FALSE(ns_enabled); | 2880 EXPECT_FALSE(ns_enabled); |
| 2879 } | 2881 } |
| 2880 | 2882 |
| 2881 // This test verifies DSCP settings are properly applied on voice media channel. | 2883 // This test verifies DSCP settings are properly applied on voice media channel. |
| 2882 TEST_F(WebRtcVoiceEngineTestFake, TestSetDscpOptions) { | 2884 TEST_F(WebRtcVoiceEngineTestFake, TestSetDscpOptions) { |
| 2883 EXPECT_TRUE(SetupEngineWithSendStream()); | 2885 EXPECT_TRUE(SetupEngineWithSendStream()); |
| 2884 rtc::scoped_ptr<cricket::VoiceMediaChannel> channel( | 2886 rtc::scoped_ptr<cricket::VoiceMediaChannel> channel( |
| 2885 engine_.CreateChannel(&call_, cricket::AudioOptions())); | 2887 engine_.CreateChannel(&call_, cricket::AudioOptions())); |
| 2886 rtc::scoped_ptr<cricket::FakeNetworkInterface> network_interface( | 2888 rtc::scoped_ptr<cricket::FakeNetworkInterface> network_interface( |
| 2887 new cricket::FakeNetworkInterface); | 2889 new cricket::FakeNetworkInterface); |
| 2888 channel->SetInterface(network_interface.get()); | 2890 channel->SetInterface(network_interface.get()); |
| 2889 cricket::AudioSendParameters parameters = send_parameters_; | 2891 cricket::AudioSendParameters parameters = send_parameters_; |
| 2890 parameters.options.dscp.Set(true); | 2892 parameters.options.dscp = rtc::Maybe<bool>(true); |
| 2891 EXPECT_TRUE(channel->SetSendParameters(parameters)); | 2893 EXPECT_TRUE(channel->SetSendParameters(parameters)); |
| 2892 EXPECT_EQ(rtc::DSCP_EF, network_interface->dscp()); | 2894 EXPECT_EQ(rtc::DSCP_EF, network_interface->dscp()); |
| 2893 // Verify previous value is not modified if dscp option is not set. | 2895 // Verify previous value is not modified if dscp option is not set. |
| 2894 EXPECT_TRUE(channel->SetSendParameters(send_parameters_)); | 2896 EXPECT_TRUE(channel->SetSendParameters(send_parameters_)); |
| 2895 EXPECT_EQ(rtc::DSCP_EF, network_interface->dscp()); | 2897 EXPECT_EQ(rtc::DSCP_EF, network_interface->dscp()); |
| 2896 parameters.options.dscp.Set(false); | 2898 parameters.options.dscp = rtc::Maybe<bool>(false); |
| 2897 EXPECT_TRUE(channel->SetSendParameters(parameters)); | 2899 EXPECT_TRUE(channel->SetSendParameters(parameters)); |
| 2898 EXPECT_EQ(rtc::DSCP_DEFAULT, network_interface->dscp()); | 2900 EXPECT_EQ(rtc::DSCP_DEFAULT, network_interface->dscp()); |
| 2899 } | 2901 } |
| 2900 | 2902 |
| 2901 TEST_F(WebRtcVoiceEngineTestFake, TestGetReceiveChannelId) { | 2903 TEST_F(WebRtcVoiceEngineTestFake, TestGetReceiveChannelId) { |
| 2902 EXPECT_TRUE(SetupEngine()); | 2904 EXPECT_TRUE(SetupEngine()); |
| 2903 cricket::WebRtcVoiceMediaChannel* media_channel = | 2905 cricket::WebRtcVoiceMediaChannel* media_channel = |
| 2904 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); | 2906 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); |
| 2905 EXPECT_EQ(-1, media_channel->GetReceiveChannelId(0)); | 2907 EXPECT_EQ(-1, media_channel->GetReceiveChannelId(0)); |
| 2906 EXPECT_TRUE(channel_->AddRecvStream( | 2908 EXPECT_TRUE(channel_->AddRecvStream( |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2995 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size()); | 2997 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size()); |
| 2996 | 2998 |
| 2997 // Combined BWE should be disabled. | 2999 // Combined BWE should be disabled. |
| 2998 for (uint32_t ssrc : ssrcs) { | 3000 for (uint32_t ssrc : ssrcs) { |
| 2999 const auto* s = call_.GetAudioReceiveStream(ssrc); | 3001 const auto* s = call_.GetAudioReceiveStream(ssrc); |
| 3000 EXPECT_NE(nullptr, s); | 3002 EXPECT_NE(nullptr, s); |
| 3001 EXPECT_FALSE(s->GetConfig().combined_audio_video_bwe); | 3003 EXPECT_FALSE(s->GetConfig().combined_audio_video_bwe); |
| 3002 } | 3004 } |
| 3003 | 3005 |
| 3004 // Enable combined BWE option - now it should be set up. | 3006 // Enable combined BWE option - now it should be set up. |
| 3005 send_parameters_.options.combined_audio_video_bwe.Set(true); | 3007 send_parameters_.options.combined_audio_video_bwe = rtc::Maybe<bool>(true); |
| 3006 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_)); | 3008 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_)); |
| 3007 for (uint32_t ssrc : ssrcs) { | 3009 for (uint32_t ssrc : ssrcs) { |
| 3008 const auto* s = call_.GetAudioReceiveStream(ssrc); | 3010 const auto* s = call_.GetAudioReceiveStream(ssrc); |
| 3009 EXPECT_NE(nullptr, s); | 3011 EXPECT_NE(nullptr, s); |
| 3010 EXPECT_EQ(true, s->GetConfig().combined_audio_video_bwe); | 3012 EXPECT_EQ(true, s->GetConfig().combined_audio_video_bwe); |
| 3011 } | 3013 } |
| 3012 | 3014 |
| 3013 // Disable combined BWE option - should be disabled again. | 3015 // Disable combined BWE option - should be disabled again. |
| 3014 send_parameters_.options.combined_audio_video_bwe.Set(false); | 3016 send_parameters_.options.combined_audio_video_bwe = rtc::Maybe<bool>(false); |
| 3015 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_)); | 3017 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_)); |
| 3016 for (uint32_t ssrc : ssrcs) { | 3018 for (uint32_t ssrc : ssrcs) { |
| 3017 const auto* s = call_.GetAudioReceiveStream(ssrc); | 3019 const auto* s = call_.GetAudioReceiveStream(ssrc); |
| 3018 EXPECT_NE(nullptr, s); | 3020 EXPECT_NE(nullptr, s); |
| 3019 EXPECT_FALSE(s->GetConfig().combined_audio_video_bwe); | 3021 EXPECT_FALSE(s->GetConfig().combined_audio_video_bwe); |
| 3020 } | 3022 } |
| 3021 | 3023 |
| 3022 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size()); | 3024 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size()); |
| 3023 } | 3025 } |
| 3024 | 3026 |
| 3025 TEST_F(WebRtcVoiceEngineTestFake, ConfigureCombinedBweForNewRecvStreams) { | 3027 TEST_F(WebRtcVoiceEngineTestFake, ConfigureCombinedBweForNewRecvStreams) { |
| 3026 // Test that adding receive streams after enabling combined bandwidth | 3028 // Test that adding receive streams after enabling combined bandwidth |
| 3027 // estimation will correctly configure each channel. | 3029 // estimation will correctly configure each channel. |
| 3028 EXPECT_TRUE(SetupEngineWithSendStream()); | 3030 EXPECT_TRUE(SetupEngineWithSendStream()); |
| 3029 cricket::WebRtcVoiceMediaChannel* media_channel = | 3031 cricket::WebRtcVoiceMediaChannel* media_channel = |
| 3030 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); | 3032 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); |
| 3031 send_parameters_.options.combined_audio_video_bwe.Set(true); | 3033 send_parameters_.options.combined_audio_video_bwe = rtc::Maybe<bool>(true); |
| 3032 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_)); | 3034 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_)); |
| 3033 | 3035 |
| 3034 static const uint32_t kSsrcs[] = {1, 2, 3, 4}; | 3036 static const uint32_t kSsrcs[] = {1, 2, 3, 4}; |
| 3035 for (unsigned int i = 0; i < ARRAY_SIZE(kSsrcs); ++i) { | 3037 for (unsigned int i = 0; i < ARRAY_SIZE(kSsrcs); ++i) { |
| 3036 EXPECT_TRUE(media_channel->AddRecvStream( | 3038 EXPECT_TRUE(media_channel->AddRecvStream( |
| 3037 cricket::StreamParams::CreateLegacy(kSsrcs[i]))); | 3039 cricket::StreamParams::CreateLegacy(kSsrcs[i]))); |
| 3038 EXPECT_NE(nullptr, call_.GetAudioReceiveStream(kSsrcs[i])); | 3040 EXPECT_NE(nullptr, call_.GetAudioReceiveStream(kSsrcs[i])); |
| 3039 } | 3041 } |
| 3040 EXPECT_EQ(ARRAY_SIZE(kSsrcs), call_.GetAudioReceiveStreams().size()); | 3042 EXPECT_EQ(ARRAY_SIZE(kSsrcs), call_.GetAudioReceiveStreams().size()); |
| 3041 } | 3043 } |
| 3042 | 3044 |
| 3043 TEST_F(WebRtcVoiceEngineTestFake, ConfiguresAudioReceiveStreamRtpExtensions) { | 3045 TEST_F(WebRtcVoiceEngineTestFake, ConfiguresAudioReceiveStreamRtpExtensions) { |
| 3044 // Test that setting the header extensions results in the expected state | 3046 // Test that setting the header extensions results in the expected state |
| 3045 // changes on an associated Call. | 3047 // changes on an associated Call. |
| 3046 std::vector<uint32_t> ssrcs; | 3048 std::vector<uint32_t> ssrcs; |
| 3047 ssrcs.push_back(223); | 3049 ssrcs.push_back(223); |
| 3048 ssrcs.push_back(224); | 3050 ssrcs.push_back(224); |
| 3049 | 3051 |
| 3050 EXPECT_TRUE(SetupEngineWithSendStream()); | 3052 EXPECT_TRUE(SetupEngineWithSendStream()); |
| 3051 cricket::WebRtcVoiceMediaChannel* media_channel = | 3053 cricket::WebRtcVoiceMediaChannel* media_channel = |
| 3052 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); | 3054 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); |
| 3053 send_parameters_.options.combined_audio_video_bwe.Set(true); | 3055 send_parameters_.options.combined_audio_video_bwe = rtc::Maybe<bool>(true); |
| 3054 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_)); | 3056 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_)); |
| 3055 for (uint32_t ssrc : ssrcs) { | 3057 for (uint32_t ssrc : ssrcs) { |
| 3056 EXPECT_TRUE(media_channel->AddRecvStream( | 3058 EXPECT_TRUE(media_channel->AddRecvStream( |
| 3057 cricket::StreamParams::CreateLegacy(ssrc))); | 3059 cricket::StreamParams::CreateLegacy(ssrc))); |
| 3058 } | 3060 } |
| 3059 | 3061 |
| 3060 // Combined BWE should be set up, but with no configured extensions. | 3062 // Combined BWE should be set up, but with no configured extensions. |
| 3061 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size()); | 3063 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size()); |
| 3062 for (uint32_t ssrc : ssrcs) { | 3064 for (uint32_t ssrc : ssrcs) { |
| 3063 const auto* s = call_.GetAudioReceiveStream(ssrc); | 3065 const auto* s = call_.GetAudioReceiveStream(ssrc); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3102 0x80, 0xc9, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, | 3104 0x80, 0xc9, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, |
| 3103 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, | 3105 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, |
| 3104 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 3106 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 3105 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | 3107 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
| 3106 }; | 3108 }; |
| 3107 rtc::Buffer kRtcpPacket(kRtcp, sizeof(kRtcp)); | 3109 rtc::Buffer kRtcpPacket(kRtcp, sizeof(kRtcp)); |
| 3108 | 3110 |
| 3109 EXPECT_TRUE(SetupEngineWithSendStream()); | 3111 EXPECT_TRUE(SetupEngineWithSendStream()); |
| 3110 cricket::WebRtcVoiceMediaChannel* media_channel = | 3112 cricket::WebRtcVoiceMediaChannel* media_channel = |
| 3111 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); | 3113 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); |
| 3112 send_parameters_.options.combined_audio_video_bwe.Set(true); | 3114 send_parameters_.options.combined_audio_video_bwe = rtc::Maybe<bool>(true); |
| 3113 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); | 3115 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); |
| 3114 EXPECT_TRUE(media_channel->AddRecvStream( | 3116 EXPECT_TRUE(media_channel->AddRecvStream( |
| 3115 cricket::StreamParams::CreateLegacy(kAudioSsrc))); | 3117 cricket::StreamParams::CreateLegacy(kAudioSsrc))); |
| 3116 | 3118 |
| 3117 EXPECT_EQ(1, call_.GetAudioReceiveStreams().size()); | 3119 EXPECT_EQ(1, call_.GetAudioReceiveStreams().size()); |
| 3118 const cricket::FakeAudioReceiveStream* s = | 3120 const cricket::FakeAudioReceiveStream* s = |
| 3119 call_.GetAudioReceiveStream(kAudioSsrc); | 3121 call_.GetAudioReceiveStream(kAudioSsrc); |
| 3120 EXPECT_EQ(0, s->received_packets()); | 3122 EXPECT_EQ(0, s->received_packets()); |
| 3121 channel_->OnPacketReceived(&kPcmuPacket, rtc::PacketTime()); | 3123 channel_->OnPacketReceived(&kPcmuPacket, rtc::PacketTime()); |
| 3122 EXPECT_EQ(1, s->received_packets()); | 3124 EXPECT_EQ(1, s->received_packets()); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3164 EXPECT_EQ(voe_.GetAssociateSendChannel(recv_ch), -1); | 3166 EXPECT_EQ(voe_.GetAssociateSendChannel(recv_ch), -1); |
| 3165 } | 3167 } |
| 3166 | 3168 |
| 3167 // Tests for the actual WebRtc VoE library. | 3169 // Tests for the actual WebRtc VoE library. |
| 3168 | 3170 |
| 3169 TEST(WebRtcVoiceEngineTest, TestDefaultOptionsBeforeInit) { | 3171 TEST(WebRtcVoiceEngineTest, TestDefaultOptionsBeforeInit) { |
| 3170 cricket::WebRtcVoiceEngine engine; | 3172 cricket::WebRtcVoiceEngine engine; |
| 3171 cricket::AudioOptions options = engine.GetOptions(); | 3173 cricket::AudioOptions options = engine.GetOptions(); |
| 3172 // The default options should have at least a few things set. We purposefully | 3174 // The default options should have at least a few things set. We purposefully |
| 3173 // don't check the option values here, though. | 3175 // don't check the option values here, though. |
| 3174 EXPECT_TRUE(options.echo_cancellation.IsSet()); | 3176 EXPECT_TRUE(options.echo_cancellation); |
| 3175 EXPECT_TRUE(options.auto_gain_control.IsSet()); | 3177 EXPECT_TRUE(options.auto_gain_control); |
| 3176 EXPECT_TRUE(options.noise_suppression.IsSet()); | 3178 EXPECT_TRUE(options.noise_suppression); |
| 3177 } | 3179 } |
| 3178 | 3180 |
| 3179 // Tests that the library initializes and shuts down properly. | 3181 // Tests that the library initializes and shuts down properly. |
| 3180 TEST(WebRtcVoiceEngineTest, StartupShutdown) { | 3182 TEST(WebRtcVoiceEngineTest, StartupShutdown) { |
| 3181 cricket::WebRtcVoiceEngine engine; | 3183 cricket::WebRtcVoiceEngine engine; |
| 3182 EXPECT_TRUE(engine.Init(rtc::Thread::Current())); | 3184 EXPECT_TRUE(engine.Init(rtc::Thread::Current())); |
| 3183 rtc::scoped_ptr<webrtc::Call> call( | 3185 rtc::scoped_ptr<webrtc::Call> call( |
| 3184 webrtc::Call::Create(webrtc::Call::Config())); | 3186 webrtc::Call::Create(webrtc::Call::Config())); |
| 3185 cricket::VoiceMediaChannel* channel = | 3187 cricket::VoiceMediaChannel* channel = |
| 3186 engine.CreateChannel(call.get(), cricket::AudioOptions()); | 3188 engine.CreateChannel(call.get(), cricket::AudioOptions()); |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3304 cricket::WebRtcVoiceEngine engine; | 3306 cricket::WebRtcVoiceEngine engine; |
| 3305 EXPECT_TRUE(engine.Init(rtc::Thread::Current())); | 3307 EXPECT_TRUE(engine.Init(rtc::Thread::Current())); |
| 3306 rtc::scoped_ptr<webrtc::Call> call( | 3308 rtc::scoped_ptr<webrtc::Call> call( |
| 3307 webrtc::Call::Create(webrtc::Call::Config())); | 3309 webrtc::Call::Create(webrtc::Call::Config())); |
| 3308 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::AudioOptions(), | 3310 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::AudioOptions(), |
| 3309 call.get()); | 3311 call.get()); |
| 3310 cricket::AudioRecvParameters parameters; | 3312 cricket::AudioRecvParameters parameters; |
| 3311 parameters.codecs = engine.codecs(); | 3313 parameters.codecs = engine.codecs(); |
| 3312 EXPECT_TRUE(channel.SetRecvParameters(parameters)); | 3314 EXPECT_TRUE(channel.SetRecvParameters(parameters)); |
| 3313 } | 3315 } |
| OLD | NEW |