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

Side by Side Diff: talk/media/webrtc/webrtcvoiceengine_unittest.cc

Issue 1432553007: Rename Maybe to Optional (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 5 years, 1 month 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
« no previous file with comments | « talk/media/webrtc/webrtcvoiceengine.cc ('k') | talk/session/media/channel.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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 = rtc::Maybe<int>(-10); 100 options_adjust_agc_.adjust_agc_delta = rtc::Optional<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 2164 matching lines...) Expand 10 before | Expand all | Expand 10 after
2275 EXPECT_EQ(0, agc_config.targetLeveldBOv); // level was restored 2275 EXPECT_EQ(0, agc_config.targetLeveldBOv); // level was restored
2276 } 2276 }
2277 2277
2278 TEST_F(WebRtcVoiceEngineTestFake, TxAgcConfigViaOptions) { 2278 TEST_F(WebRtcVoiceEngineTestFake, TxAgcConfigViaOptions) {
2279 EXPECT_TRUE(SetupEngineWithSendStream()); 2279 EXPECT_TRUE(SetupEngineWithSendStream());
2280 webrtc::AgcConfig agc_config; 2280 webrtc::AgcConfig agc_config;
2281 EXPECT_EQ(0, voe_.GetAgcConfig(agc_config)); 2281 EXPECT_EQ(0, voe_.GetAgcConfig(agc_config));
2282 EXPECT_EQ(0, agc_config.targetLeveldBOv); 2282 EXPECT_EQ(0, agc_config.targetLeveldBOv);
2283 2283
2284 cricket::AudioOptions options; 2284 cricket::AudioOptions options;
2285 options.tx_agc_target_dbov = rtc::Maybe<uint16_t>(3); 2285 options.tx_agc_target_dbov = rtc::Optional<uint16_t>(3);
2286 options.tx_agc_digital_compression_gain = rtc::Maybe<uint16_t>(9); 2286 options.tx_agc_digital_compression_gain = rtc::Optional<uint16_t>(9);
2287 options.tx_agc_limiter = rtc::Maybe<bool>(true); 2287 options.tx_agc_limiter = rtc::Optional<bool>(true);
2288 options.auto_gain_control = rtc::Maybe<bool>(true); 2288 options.auto_gain_control = rtc::Optional<bool>(true);
2289 EXPECT_TRUE(engine_.SetOptions(options)); 2289 EXPECT_TRUE(engine_.SetOptions(options));
2290 2290
2291 EXPECT_EQ(0, voe_.GetAgcConfig(agc_config)); 2291 EXPECT_EQ(0, voe_.GetAgcConfig(agc_config));
2292 EXPECT_EQ(3, agc_config.targetLeveldBOv); 2292 EXPECT_EQ(3, agc_config.targetLeveldBOv);
2293 EXPECT_EQ(9, agc_config.digitalCompressionGaindB); 2293 EXPECT_EQ(9, agc_config.digitalCompressionGaindB);
2294 EXPECT_TRUE(agc_config.limiterEnable); 2294 EXPECT_TRUE(agc_config.limiterEnable);
2295 2295
2296 // Check interaction with adjust_agc_delta. Both should be respected, for 2296 // Check interaction with adjust_agc_delta. Both should be respected, for
2297 // backwards compatibility. 2297 // backwards compatibility.
2298 options.adjust_agc_delta = rtc::Maybe<int>(-10); 2298 options.adjust_agc_delta = rtc::Optional<int>(-10);
2299 EXPECT_TRUE(engine_.SetOptions(options)); 2299 EXPECT_TRUE(engine_.SetOptions(options));
2300 2300
2301 EXPECT_EQ(0, voe_.GetAgcConfig(agc_config)); 2301 EXPECT_EQ(0, voe_.GetAgcConfig(agc_config));
2302 EXPECT_EQ(13, agc_config.targetLeveldBOv); 2302 EXPECT_EQ(13, agc_config.targetLeveldBOv);
2303 } 2303 }
2304 2304
2305 TEST_F(WebRtcVoiceEngineTestFake, SampleRatesViaOptions) { 2305 TEST_F(WebRtcVoiceEngineTestFake, SampleRatesViaOptions) {
2306 EXPECT_TRUE(SetupEngineWithSendStream()); 2306 EXPECT_TRUE(SetupEngineWithSendStream());
2307 cricket::AudioOptions options; 2307 cricket::AudioOptions options;
2308 options.recording_sample_rate = rtc::Maybe<uint32_t>(48000); 2308 options.recording_sample_rate = rtc::Optional<uint32_t>(48000);
2309 options.playout_sample_rate = rtc::Maybe<uint32_t>(44100); 2309 options.playout_sample_rate = rtc::Optional<uint32_t>(44100);
2310 EXPECT_TRUE(engine_.SetOptions(options)); 2310 EXPECT_TRUE(engine_.SetOptions(options));
2311 2311
2312 unsigned int recording_sample_rate, playout_sample_rate; 2312 unsigned int recording_sample_rate, playout_sample_rate;
2313 EXPECT_EQ(0, voe_.RecordingSampleRate(&recording_sample_rate)); 2313 EXPECT_EQ(0, voe_.RecordingSampleRate(&recording_sample_rate));
2314 EXPECT_EQ(0, voe_.PlayoutSampleRate(&playout_sample_rate)); 2314 EXPECT_EQ(0, voe_.PlayoutSampleRate(&playout_sample_rate));
2315 EXPECT_EQ(48000u, recording_sample_rate); 2315 EXPECT_EQ(48000u, recording_sample_rate);
2316 EXPECT_EQ(44100u, playout_sample_rate); 2316 EXPECT_EQ(44100u, playout_sample_rate);
2317 } 2317 }
2318 2318
2319 TEST_F(WebRtcVoiceEngineTestFake, TraceFilterViaTraceOptions) { 2319 TEST_F(WebRtcVoiceEngineTestFake, TraceFilterViaTraceOptions) {
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
2632 EXPECT_TRUE(highpass_filter_enabled); 2632 EXPECT_TRUE(highpass_filter_enabled);
2633 EXPECT_FALSE(stereo_swapping_enabled); 2633 EXPECT_FALSE(stereo_swapping_enabled);
2634 EXPECT_TRUE(typing_detection_enabled); 2634 EXPECT_TRUE(typing_detection_enabled);
2635 EXPECT_EQ(ec_mode, webrtc::kEcConference); 2635 EXPECT_EQ(ec_mode, webrtc::kEcConference);
2636 EXPECT_EQ(ns_mode, webrtc::kNsHighSuppression); 2636 EXPECT_EQ(ns_mode, webrtc::kNsHighSuppression);
2637 EXPECT_EQ(50, voe_.GetNetEqCapacity()); // From GetDefaultEngineOptions(). 2637 EXPECT_EQ(50, voe_.GetNetEqCapacity()); // From GetDefaultEngineOptions().
2638 EXPECT_FALSE( 2638 EXPECT_FALSE(
2639 voe_.GetNetEqFastAccelerate()); // From GetDefaultEngineOptions(). 2639 voe_.GetNetEqFastAccelerate()); // From GetDefaultEngineOptions().
2640 2640
2641 // Turn echo cancellation off 2641 // Turn echo cancellation off
2642 options.echo_cancellation = rtc::Maybe<bool>(false); 2642 options.echo_cancellation = rtc::Optional<bool>(false);
2643 ASSERT_TRUE(engine_.SetOptions(options)); 2643 ASSERT_TRUE(engine_.SetOptions(options));
2644 voe_.GetEcStatus(ec_enabled, ec_mode); 2644 voe_.GetEcStatus(ec_enabled, ec_mode);
2645 EXPECT_FALSE(ec_enabled); 2645 EXPECT_FALSE(ec_enabled);
2646 2646
2647 // Turn echo cancellation back on, with settings, and make sure 2647 // Turn echo cancellation back on, with settings, and make sure
2648 // nothing else changed. 2648 // nothing else changed.
2649 options.echo_cancellation = rtc::Maybe<bool>(true); 2649 options.echo_cancellation = rtc::Optional<bool>(true);
2650 ASSERT_TRUE(engine_.SetOptions(options)); 2650 ASSERT_TRUE(engine_.SetOptions(options));
2651 voe_.GetEcStatus(ec_enabled, ec_mode); 2651 voe_.GetEcStatus(ec_enabled, ec_mode);
2652 voe_.GetAecmMode(aecm_mode, cng_enabled); 2652 voe_.GetAecmMode(aecm_mode, cng_enabled);
2653 voe_.GetAgcStatus(agc_enabled, agc_mode); 2653 voe_.GetAgcStatus(agc_enabled, agc_mode);
2654 voe_.GetAgcConfig(agc_config); 2654 voe_.GetAgcConfig(agc_config);
2655 voe_.GetNsStatus(ns_enabled, ns_mode); 2655 voe_.GetNsStatus(ns_enabled, ns_mode);
2656 highpass_filter_enabled = voe_.IsHighPassFilterEnabled(); 2656 highpass_filter_enabled = voe_.IsHighPassFilterEnabled();
2657 stereo_swapping_enabled = voe_.IsStereoChannelSwappingEnabled(); 2657 stereo_swapping_enabled = voe_.IsStereoChannelSwappingEnabled();
2658 voe_.GetTypingDetectionStatus(typing_detection_enabled); 2658 voe_.GetTypingDetectionStatus(typing_detection_enabled);
2659 EXPECT_TRUE(ec_enabled); 2659 EXPECT_TRUE(ec_enabled);
2660 EXPECT_TRUE(voe_.ec_metrics_enabled()); 2660 EXPECT_TRUE(voe_.ec_metrics_enabled());
2661 EXPECT_TRUE(agc_enabled); 2661 EXPECT_TRUE(agc_enabled);
2662 EXPECT_EQ(0, agc_config.targetLeveldBOv); 2662 EXPECT_EQ(0, agc_config.targetLeveldBOv);
2663 EXPECT_TRUE(ns_enabled); 2663 EXPECT_TRUE(ns_enabled);
2664 EXPECT_TRUE(highpass_filter_enabled); 2664 EXPECT_TRUE(highpass_filter_enabled);
2665 EXPECT_FALSE(stereo_swapping_enabled); 2665 EXPECT_FALSE(stereo_swapping_enabled);
2666 EXPECT_TRUE(typing_detection_enabled); 2666 EXPECT_TRUE(typing_detection_enabled);
2667 EXPECT_EQ(ec_mode, webrtc::kEcConference); 2667 EXPECT_EQ(ec_mode, webrtc::kEcConference);
2668 EXPECT_EQ(ns_mode, webrtc::kNsHighSuppression); 2668 EXPECT_EQ(ns_mode, webrtc::kNsHighSuppression);
2669 2669
2670 // Turn on delay agnostic aec and make sure nothing change w.r.t. echo 2670 // Turn on delay agnostic aec and make sure nothing change w.r.t. echo
2671 // control. 2671 // control.
2672 options.delay_agnostic_aec = rtc::Maybe<bool>(true); 2672 options.delay_agnostic_aec = rtc::Optional<bool>(true);
2673 ASSERT_TRUE(engine_.SetOptions(options)); 2673 ASSERT_TRUE(engine_.SetOptions(options));
2674 voe_.GetEcStatus(ec_enabled, ec_mode); 2674 voe_.GetEcStatus(ec_enabled, ec_mode);
2675 voe_.GetAecmMode(aecm_mode, cng_enabled); 2675 voe_.GetAecmMode(aecm_mode, cng_enabled);
2676 EXPECT_TRUE(ec_enabled); 2676 EXPECT_TRUE(ec_enabled);
2677 EXPECT_TRUE(voe_.ec_metrics_enabled()); 2677 EXPECT_TRUE(voe_.ec_metrics_enabled());
2678 EXPECT_EQ(ec_mode, webrtc::kEcConference); 2678 EXPECT_EQ(ec_mode, webrtc::kEcConference);
2679 2679
2680 // Turn off echo cancellation and delay agnostic aec. 2680 // Turn off echo cancellation and delay agnostic aec.
2681 options.delay_agnostic_aec = rtc::Maybe<bool>(false); 2681 options.delay_agnostic_aec = rtc::Optional<bool>(false);
2682 options.extended_filter_aec = rtc::Maybe<bool>(false); 2682 options.extended_filter_aec = rtc::Optional<bool>(false);
2683 options.echo_cancellation = rtc::Maybe<bool>(false); 2683 options.echo_cancellation = rtc::Optional<bool>(false);
2684 ASSERT_TRUE(engine_.SetOptions(options)); 2684 ASSERT_TRUE(engine_.SetOptions(options));
2685 voe_.GetEcStatus(ec_enabled, ec_mode); 2685 voe_.GetEcStatus(ec_enabled, ec_mode);
2686 EXPECT_FALSE(ec_enabled); 2686 EXPECT_FALSE(ec_enabled);
2687 // Turning delay agnostic aec back on should also turn on echo cancellation. 2687 // Turning delay agnostic aec back on should also turn on echo cancellation.
2688 options.delay_agnostic_aec = rtc::Maybe<bool>(true); 2688 options.delay_agnostic_aec = rtc::Optional<bool>(true);
2689 ASSERT_TRUE(engine_.SetOptions(options)); 2689 ASSERT_TRUE(engine_.SetOptions(options));
2690 voe_.GetEcStatus(ec_enabled, ec_mode); 2690 voe_.GetEcStatus(ec_enabled, ec_mode);
2691 EXPECT_TRUE(ec_enabled); 2691 EXPECT_TRUE(ec_enabled);
2692 EXPECT_TRUE(voe_.ec_metrics_enabled()); 2692 EXPECT_TRUE(voe_.ec_metrics_enabled());
2693 EXPECT_EQ(ec_mode, webrtc::kEcConference); 2693 EXPECT_EQ(ec_mode, webrtc::kEcConference);
2694 2694
2695 // Turn off AGC 2695 // Turn off AGC
2696 options.auto_gain_control = rtc::Maybe<bool>(false); 2696 options.auto_gain_control = rtc::Optional<bool>(false);
2697 ASSERT_TRUE(engine_.SetOptions(options)); 2697 ASSERT_TRUE(engine_.SetOptions(options));
2698 voe_.GetAgcStatus(agc_enabled, agc_mode); 2698 voe_.GetAgcStatus(agc_enabled, agc_mode);
2699 EXPECT_FALSE(agc_enabled); 2699 EXPECT_FALSE(agc_enabled);
2700 2700
2701 // Turn AGC back on 2701 // Turn AGC back on
2702 options.auto_gain_control = rtc::Maybe<bool>(true); 2702 options.auto_gain_control = rtc::Optional<bool>(true);
2703 options.adjust_agc_delta = rtc::Maybe<int>(); 2703 options.adjust_agc_delta = rtc::Optional<int>();
2704 ASSERT_TRUE(engine_.SetOptions(options)); 2704 ASSERT_TRUE(engine_.SetOptions(options));
2705 voe_.GetAgcStatus(agc_enabled, agc_mode); 2705 voe_.GetAgcStatus(agc_enabled, agc_mode);
2706 EXPECT_TRUE(agc_enabled); 2706 EXPECT_TRUE(agc_enabled);
2707 voe_.GetAgcConfig(agc_config); 2707 voe_.GetAgcConfig(agc_config);
2708 EXPECT_EQ(0, agc_config.targetLeveldBOv); 2708 EXPECT_EQ(0, agc_config.targetLeveldBOv);
2709 2709
2710 // Turn off other options (and stereo swapping on). 2710 // Turn off other options (and stereo swapping on).
2711 options.noise_suppression = rtc::Maybe<bool>(false); 2711 options.noise_suppression = rtc::Optional<bool>(false);
2712 options.highpass_filter = rtc::Maybe<bool>(false); 2712 options.highpass_filter = rtc::Optional<bool>(false);
2713 options.typing_detection = rtc::Maybe<bool>(false); 2713 options.typing_detection = rtc::Optional<bool>(false);
2714 options.stereo_swapping = rtc::Maybe<bool>(true); 2714 options.stereo_swapping = rtc::Optional<bool>(true);
2715 ASSERT_TRUE(engine_.SetOptions(options)); 2715 ASSERT_TRUE(engine_.SetOptions(options));
2716 voe_.GetNsStatus(ns_enabled, ns_mode); 2716 voe_.GetNsStatus(ns_enabled, ns_mode);
2717 highpass_filter_enabled = voe_.IsHighPassFilterEnabled(); 2717 highpass_filter_enabled = voe_.IsHighPassFilterEnabled();
2718 stereo_swapping_enabled = voe_.IsStereoChannelSwappingEnabled(); 2718 stereo_swapping_enabled = voe_.IsStereoChannelSwappingEnabled();
2719 voe_.GetTypingDetectionStatus(typing_detection_enabled); 2719 voe_.GetTypingDetectionStatus(typing_detection_enabled);
2720 EXPECT_FALSE(ns_enabled); 2720 EXPECT_FALSE(ns_enabled);
2721 EXPECT_FALSE(highpass_filter_enabled); 2721 EXPECT_FALSE(highpass_filter_enabled);
2722 EXPECT_FALSE(typing_detection_enabled); 2722 EXPECT_FALSE(typing_detection_enabled);
2723 EXPECT_TRUE(stereo_swapping_enabled); 2723 EXPECT_TRUE(stereo_swapping_enabled);
2724 2724
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
2787 // Have to add a stream to make SetSend work. 2787 // Have to add a stream to make SetSend work.
2788 cricket::StreamParams stream1; 2788 cricket::StreamParams stream1;
2789 stream1.ssrcs.push_back(1); 2789 stream1.ssrcs.push_back(1);
2790 channel1->AddSendStream(stream1); 2790 channel1->AddSendStream(stream1);
2791 cricket::StreamParams stream2; 2791 cricket::StreamParams stream2;
2792 stream2.ssrcs.push_back(2); 2792 stream2.ssrcs.push_back(2);
2793 channel2->AddSendStream(stream2); 2793 channel2->AddSendStream(stream2);
2794 2794
2795 // AEC and AGC and NS 2795 // AEC and AGC and NS
2796 cricket::AudioSendParameters parameters_options_all = send_parameters_; 2796 cricket::AudioSendParameters parameters_options_all = send_parameters_;
2797 parameters_options_all.options.echo_cancellation = rtc::Maybe<bool>(true); 2797 parameters_options_all.options.echo_cancellation = rtc::Optional<bool>(true);
2798 parameters_options_all.options.auto_gain_control = rtc::Maybe<bool>(true); 2798 parameters_options_all.options.auto_gain_control = rtc::Optional<bool>(true);
2799 parameters_options_all.options.noise_suppression = rtc::Maybe<bool>(true); 2799 parameters_options_all.options.noise_suppression = rtc::Optional<bool>(true);
2800 ASSERT_TRUE(channel1->SetSendParameters(parameters_options_all)); 2800 ASSERT_TRUE(channel1->SetSendParameters(parameters_options_all));
2801 EXPECT_EQ(parameters_options_all.options, channel1->options()); 2801 EXPECT_EQ(parameters_options_all.options, channel1->options());
2802 ASSERT_TRUE(channel2->SetSendParameters(parameters_options_all)); 2802 ASSERT_TRUE(channel2->SetSendParameters(parameters_options_all));
2803 EXPECT_EQ(parameters_options_all.options, channel2->options()); 2803 EXPECT_EQ(parameters_options_all.options, channel2->options());
2804 2804
2805 // unset NS 2805 // unset NS
2806 cricket::AudioSendParameters parameters_options_no_ns = send_parameters_; 2806 cricket::AudioSendParameters parameters_options_no_ns = send_parameters_;
2807 parameters_options_no_ns.options.noise_suppression = rtc::Maybe<bool>(false); 2807 parameters_options_no_ns.options.noise_suppression =
2808 rtc::Optional<bool>(false);
2808 ASSERT_TRUE(channel1->SetSendParameters(parameters_options_no_ns)); 2809 ASSERT_TRUE(channel1->SetSendParameters(parameters_options_no_ns));
2809 cricket::AudioOptions expected_options = parameters_options_all.options; 2810 cricket::AudioOptions expected_options = parameters_options_all.options;
2810 expected_options.echo_cancellation = rtc::Maybe<bool>(true); 2811 expected_options.echo_cancellation = rtc::Optional<bool>(true);
2811 expected_options.auto_gain_control = rtc::Maybe<bool>(true); 2812 expected_options.auto_gain_control = rtc::Optional<bool>(true);
2812 expected_options.noise_suppression = rtc::Maybe<bool>(false); 2813 expected_options.noise_suppression = rtc::Optional<bool>(false);
2813 EXPECT_EQ(expected_options, channel1->options()); 2814 EXPECT_EQ(expected_options, channel1->options());
2814 2815
2815 // unset AGC 2816 // unset AGC
2816 cricket::AudioSendParameters parameters_options_no_agc = send_parameters_; 2817 cricket::AudioSendParameters parameters_options_no_agc = send_parameters_;
2817 parameters_options_no_agc.options.auto_gain_control = rtc::Maybe<bool>(false); 2818 parameters_options_no_agc.options.auto_gain_control =
2819 rtc::Optional<bool>(false);
2818 ASSERT_TRUE(channel2->SetSendParameters(parameters_options_no_agc)); 2820 ASSERT_TRUE(channel2->SetSendParameters(parameters_options_no_agc));
2819 expected_options.echo_cancellation = rtc::Maybe<bool>(true); 2821 expected_options.echo_cancellation = rtc::Optional<bool>(true);
2820 expected_options.auto_gain_control = rtc::Maybe<bool>(false); 2822 expected_options.auto_gain_control = rtc::Optional<bool>(false);
2821 expected_options.noise_suppression = rtc::Maybe<bool>(true); 2823 expected_options.noise_suppression = rtc::Optional<bool>(true);
2822 EXPECT_EQ(expected_options, channel2->options()); 2824 EXPECT_EQ(expected_options, channel2->options());
2823 2825
2824 ASSERT_TRUE(engine_.SetOptions(parameters_options_all.options)); 2826 ASSERT_TRUE(engine_.SetOptions(parameters_options_all.options));
2825 bool ec_enabled; 2827 bool ec_enabled;
2826 webrtc::EcModes ec_mode; 2828 webrtc::EcModes ec_mode;
2827 bool agc_enabled; 2829 bool agc_enabled;
2828 webrtc::AgcModes agc_mode; 2830 webrtc::AgcModes agc_mode;
2829 bool ns_enabled; 2831 bool ns_enabled;
2830 webrtc::NsModes ns_mode; 2832 webrtc::NsModes ns_mode;
2831 voe_.GetEcStatus(ec_enabled, ec_mode); 2833 voe_.GetEcStatus(ec_enabled, ec_mode);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
2865 voe_.GetNsStatus(ns_enabled, ns_mode); 2867 voe_.GetNsStatus(ns_enabled, ns_mode);
2866 EXPECT_TRUE(ec_enabled); 2868 EXPECT_TRUE(ec_enabled);
2867 EXPECT_TRUE(agc_enabled); 2869 EXPECT_TRUE(agc_enabled);
2868 EXPECT_TRUE(ns_enabled); 2870 EXPECT_TRUE(ns_enabled);
2869 2871
2870 // Make sure settings take effect while we are sending. 2872 // Make sure settings take effect while we are sending.
2871 ASSERT_TRUE(engine_.SetOptions(parameters_options_all.options)); 2873 ASSERT_TRUE(engine_.SetOptions(parameters_options_all.options));
2872 cricket::AudioSendParameters parameters_options_no_agc_nor_ns = 2874 cricket::AudioSendParameters parameters_options_no_agc_nor_ns =
2873 send_parameters_; 2875 send_parameters_;
2874 parameters_options_no_agc_nor_ns.options.auto_gain_control = 2876 parameters_options_no_agc_nor_ns.options.auto_gain_control =
2875 rtc::Maybe<bool>(false); 2877 rtc::Optional<bool>(false);
2876 parameters_options_no_agc_nor_ns.options.noise_suppression = 2878 parameters_options_no_agc_nor_ns.options.noise_suppression =
2877 rtc::Maybe<bool>(false); 2879 rtc::Optional<bool>(false);
2878 channel2->SetSend(cricket::SEND_MICROPHONE); 2880 channel2->SetSend(cricket::SEND_MICROPHONE);
2879 channel2->SetSendParameters(parameters_options_no_agc_nor_ns); 2881 channel2->SetSendParameters(parameters_options_no_agc_nor_ns);
2880 expected_options.echo_cancellation = rtc::Maybe<bool>(true); 2882 expected_options.echo_cancellation = rtc::Optional<bool>(true);
2881 expected_options.auto_gain_control = rtc::Maybe<bool>(false); 2883 expected_options.auto_gain_control = rtc::Optional<bool>(false);
2882 expected_options.noise_suppression = rtc::Maybe<bool>(false); 2884 expected_options.noise_suppression = rtc::Optional<bool>(false);
2883 EXPECT_EQ(expected_options, channel2->options()); 2885 EXPECT_EQ(expected_options, channel2->options());
2884 voe_.GetEcStatus(ec_enabled, ec_mode); 2886 voe_.GetEcStatus(ec_enabled, ec_mode);
2885 voe_.GetAgcStatus(agc_enabled, agc_mode); 2887 voe_.GetAgcStatus(agc_enabled, agc_mode);
2886 voe_.GetNsStatus(ns_enabled, ns_mode); 2888 voe_.GetNsStatus(ns_enabled, ns_mode);
2887 EXPECT_TRUE(ec_enabled); 2889 EXPECT_TRUE(ec_enabled);
2888 EXPECT_FALSE(agc_enabled); 2890 EXPECT_FALSE(agc_enabled);
2889 EXPECT_FALSE(ns_enabled); 2891 EXPECT_FALSE(ns_enabled);
2890 } 2892 }
2891 2893
2892 // This test verifies DSCP settings are properly applied on voice media channel. 2894 // This test verifies DSCP settings are properly applied on voice media channel.
2893 TEST_F(WebRtcVoiceEngineTestFake, TestSetDscpOptions) { 2895 TEST_F(WebRtcVoiceEngineTestFake, TestSetDscpOptions) {
2894 EXPECT_TRUE(SetupEngineWithSendStream()); 2896 EXPECT_TRUE(SetupEngineWithSendStream());
2895 rtc::scoped_ptr<cricket::VoiceMediaChannel> channel( 2897 rtc::scoped_ptr<cricket::VoiceMediaChannel> channel(
2896 engine_.CreateChannel(&call_, cricket::AudioOptions())); 2898 engine_.CreateChannel(&call_, cricket::AudioOptions()));
2897 rtc::scoped_ptr<cricket::FakeNetworkInterface> network_interface( 2899 rtc::scoped_ptr<cricket::FakeNetworkInterface> network_interface(
2898 new cricket::FakeNetworkInterface); 2900 new cricket::FakeNetworkInterface);
2899 channel->SetInterface(network_interface.get()); 2901 channel->SetInterface(network_interface.get());
2900 cricket::AudioSendParameters parameters = send_parameters_; 2902 cricket::AudioSendParameters parameters = send_parameters_;
2901 parameters.options.dscp = rtc::Maybe<bool>(true); 2903 parameters.options.dscp = rtc::Optional<bool>(true);
2902 EXPECT_TRUE(channel->SetSendParameters(parameters)); 2904 EXPECT_TRUE(channel->SetSendParameters(parameters));
2903 EXPECT_EQ(rtc::DSCP_EF, network_interface->dscp()); 2905 EXPECT_EQ(rtc::DSCP_EF, network_interface->dscp());
2904 // Verify previous value is not modified if dscp option is not set. 2906 // Verify previous value is not modified if dscp option is not set.
2905 EXPECT_TRUE(channel->SetSendParameters(send_parameters_)); 2907 EXPECT_TRUE(channel->SetSendParameters(send_parameters_));
2906 EXPECT_EQ(rtc::DSCP_EF, network_interface->dscp()); 2908 EXPECT_EQ(rtc::DSCP_EF, network_interface->dscp());
2907 parameters.options.dscp = rtc::Maybe<bool>(false); 2909 parameters.options.dscp = rtc::Optional<bool>(false);
2908 EXPECT_TRUE(channel->SetSendParameters(parameters)); 2910 EXPECT_TRUE(channel->SetSendParameters(parameters));
2909 EXPECT_EQ(rtc::DSCP_DEFAULT, network_interface->dscp()); 2911 EXPECT_EQ(rtc::DSCP_DEFAULT, network_interface->dscp());
2910 } 2912 }
2911 2913
2912 TEST_F(WebRtcVoiceEngineTestFake, TestGetReceiveChannelId) { 2914 TEST_F(WebRtcVoiceEngineTestFake, TestGetReceiveChannelId) {
2913 EXPECT_TRUE(SetupEngine()); 2915 EXPECT_TRUE(SetupEngine());
2914 cricket::WebRtcVoiceMediaChannel* media_channel = 2916 cricket::WebRtcVoiceMediaChannel* media_channel =
2915 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); 2917 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_);
2916 EXPECT_EQ(-1, media_channel->GetReceiveChannelId(0)); 2918 EXPECT_EQ(-1, media_channel->GetReceiveChannelId(0));
2917 EXPECT_TRUE(channel_->AddRecvStream( 2919 EXPECT_TRUE(channel_->AddRecvStream(
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
3006 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size()); 3008 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size());
3007 3009
3008 // Combined BWE should be disabled. 3010 // Combined BWE should be disabled.
3009 for (uint32_t ssrc : ssrcs) { 3011 for (uint32_t ssrc : ssrcs) {
3010 const auto* s = call_.GetAudioReceiveStream(ssrc); 3012 const auto* s = call_.GetAudioReceiveStream(ssrc);
3011 EXPECT_NE(nullptr, s); 3013 EXPECT_NE(nullptr, s);
3012 EXPECT_FALSE(s->GetConfig().combined_audio_video_bwe); 3014 EXPECT_FALSE(s->GetConfig().combined_audio_video_bwe);
3013 } 3015 }
3014 3016
3015 // Enable combined BWE option - now it should be set up. 3017 // Enable combined BWE option - now it should be set up.
3016 send_parameters_.options.combined_audio_video_bwe = rtc::Maybe<bool>(true); 3018 send_parameters_.options.combined_audio_video_bwe = rtc::Optional<bool>(true);
3017 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_)); 3019 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_));
3018 for (uint32_t ssrc : ssrcs) { 3020 for (uint32_t ssrc : ssrcs) {
3019 const auto* s = call_.GetAudioReceiveStream(ssrc); 3021 const auto* s = call_.GetAudioReceiveStream(ssrc);
3020 EXPECT_NE(nullptr, s); 3022 EXPECT_NE(nullptr, s);
3021 EXPECT_EQ(true, s->GetConfig().combined_audio_video_bwe); 3023 EXPECT_EQ(true, s->GetConfig().combined_audio_video_bwe);
3022 } 3024 }
3023 3025
3024 // Disable combined BWE option - should be disabled again. 3026 // Disable combined BWE option - should be disabled again.
3025 send_parameters_.options.combined_audio_video_bwe = rtc::Maybe<bool>(false); 3027 send_parameters_.options.combined_audio_video_bwe =
3028 rtc::Optional<bool>(false);
3026 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_)); 3029 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_));
3027 for (uint32_t ssrc : ssrcs) { 3030 for (uint32_t ssrc : ssrcs) {
3028 const auto* s = call_.GetAudioReceiveStream(ssrc); 3031 const auto* s = call_.GetAudioReceiveStream(ssrc);
3029 EXPECT_NE(nullptr, s); 3032 EXPECT_NE(nullptr, s);
3030 EXPECT_FALSE(s->GetConfig().combined_audio_video_bwe); 3033 EXPECT_FALSE(s->GetConfig().combined_audio_video_bwe);
3031 } 3034 }
3032 3035
3033 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size()); 3036 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size());
3034 } 3037 }
3035 3038
3036 TEST_F(WebRtcVoiceEngineTestFake, ConfigureCombinedBweForNewRecvStreams) { 3039 TEST_F(WebRtcVoiceEngineTestFake, ConfigureCombinedBweForNewRecvStreams) {
3037 // Test that adding receive streams after enabling combined bandwidth 3040 // Test that adding receive streams after enabling combined bandwidth
3038 // estimation will correctly configure each channel. 3041 // estimation will correctly configure each channel.
3039 EXPECT_TRUE(SetupEngineWithSendStream()); 3042 EXPECT_TRUE(SetupEngineWithSendStream());
3040 cricket::WebRtcVoiceMediaChannel* media_channel = 3043 cricket::WebRtcVoiceMediaChannel* media_channel =
3041 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); 3044 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_);
3042 send_parameters_.options.combined_audio_video_bwe = rtc::Maybe<bool>(true); 3045 send_parameters_.options.combined_audio_video_bwe = rtc::Optional<bool>(true);
3043 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_)); 3046 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_));
3044 3047
3045 static const uint32_t kSsrcs[] = {1, 2, 3, 4}; 3048 static const uint32_t kSsrcs[] = {1, 2, 3, 4};
3046 for (unsigned int i = 0; i < ARRAY_SIZE(kSsrcs); ++i) { 3049 for (unsigned int i = 0; i < ARRAY_SIZE(kSsrcs); ++i) {
3047 EXPECT_TRUE(media_channel->AddRecvStream( 3050 EXPECT_TRUE(media_channel->AddRecvStream(
3048 cricket::StreamParams::CreateLegacy(kSsrcs[i]))); 3051 cricket::StreamParams::CreateLegacy(kSsrcs[i])));
3049 EXPECT_NE(nullptr, call_.GetAudioReceiveStream(kSsrcs[i])); 3052 EXPECT_NE(nullptr, call_.GetAudioReceiveStream(kSsrcs[i]));
3050 } 3053 }
3051 EXPECT_EQ(ARRAY_SIZE(kSsrcs), call_.GetAudioReceiveStreams().size()); 3054 EXPECT_EQ(ARRAY_SIZE(kSsrcs), call_.GetAudioReceiveStreams().size());
3052 } 3055 }
3053 3056
3054 TEST_F(WebRtcVoiceEngineTestFake, ConfiguresAudioReceiveStreamRtpExtensions) { 3057 TEST_F(WebRtcVoiceEngineTestFake, ConfiguresAudioReceiveStreamRtpExtensions) {
3055 // Test that setting the header extensions results in the expected state 3058 // Test that setting the header extensions results in the expected state
3056 // changes on an associated Call. 3059 // changes on an associated Call.
3057 std::vector<uint32_t> ssrcs; 3060 std::vector<uint32_t> ssrcs;
3058 ssrcs.push_back(223); 3061 ssrcs.push_back(223);
3059 ssrcs.push_back(224); 3062 ssrcs.push_back(224);
3060 3063
3061 EXPECT_TRUE(SetupEngineWithSendStream()); 3064 EXPECT_TRUE(SetupEngineWithSendStream());
3062 cricket::WebRtcVoiceMediaChannel* media_channel = 3065 cricket::WebRtcVoiceMediaChannel* media_channel =
3063 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); 3066 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_);
3064 send_parameters_.options.combined_audio_video_bwe = rtc::Maybe<bool>(true); 3067 send_parameters_.options.combined_audio_video_bwe = rtc::Optional<bool>(true);
3065 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_)); 3068 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_));
3066 for (uint32_t ssrc : ssrcs) { 3069 for (uint32_t ssrc : ssrcs) {
3067 EXPECT_TRUE(media_channel->AddRecvStream( 3070 EXPECT_TRUE(media_channel->AddRecvStream(
3068 cricket::StreamParams::CreateLegacy(ssrc))); 3071 cricket::StreamParams::CreateLegacy(ssrc)));
3069 } 3072 }
3070 3073
3071 // Combined BWE should be set up, but with no configured extensions. 3074 // Combined BWE should be set up, but with no configured extensions.
3072 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size()); 3075 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size());
3073 for (uint32_t ssrc : ssrcs) { 3076 for (uint32_t ssrc : ssrcs) {
3074 const auto* s = call_.GetAudioReceiveStream(ssrc); 3077 const auto* s = call_.GetAudioReceiveStream(ssrc);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
3113 0x80, 0xc9, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 3116 0x80, 0xc9, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02,
3114 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 3117 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
3115 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3118 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3116 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 3119 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
3117 }; 3120 };
3118 rtc::Buffer kRtcpPacket(kRtcp, sizeof(kRtcp)); 3121 rtc::Buffer kRtcpPacket(kRtcp, sizeof(kRtcp));
3119 3122
3120 EXPECT_TRUE(SetupEngineWithSendStream()); 3123 EXPECT_TRUE(SetupEngineWithSendStream());
3121 cricket::WebRtcVoiceMediaChannel* media_channel = 3124 cricket::WebRtcVoiceMediaChannel* media_channel =
3122 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); 3125 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_);
3123 send_parameters_.options.combined_audio_video_bwe = rtc::Maybe<bool>(true); 3126 send_parameters_.options.combined_audio_video_bwe = rtc::Optional<bool>(true);
3124 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 3127 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
3125 EXPECT_TRUE(media_channel->AddRecvStream( 3128 EXPECT_TRUE(media_channel->AddRecvStream(
3126 cricket::StreamParams::CreateLegacy(kAudioSsrc))); 3129 cricket::StreamParams::CreateLegacy(kAudioSsrc)));
3127 3130
3128 EXPECT_EQ(1, call_.GetAudioReceiveStreams().size()); 3131 EXPECT_EQ(1, call_.GetAudioReceiveStreams().size());
3129 const cricket::FakeAudioReceiveStream* s = 3132 const cricket::FakeAudioReceiveStream* s =
3130 call_.GetAudioReceiveStream(kAudioSsrc); 3133 call_.GetAudioReceiveStream(kAudioSsrc);
3131 EXPECT_EQ(0, s->received_packets()); 3134 EXPECT_EQ(0, s->received_packets());
3132 channel_->OnPacketReceived(&kPcmuPacket, rtc::PacketTime()); 3135 channel_->OnPacketReceived(&kPcmuPacket, rtc::PacketTime());
3133 EXPECT_EQ(1, s->received_packets()); 3136 EXPECT_EQ(1, s->received_packets());
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
3315 cricket::WebRtcVoiceEngine engine; 3318 cricket::WebRtcVoiceEngine engine;
3316 EXPECT_TRUE(engine.Init(rtc::Thread::Current())); 3319 EXPECT_TRUE(engine.Init(rtc::Thread::Current()));
3317 rtc::scoped_ptr<webrtc::Call> call( 3320 rtc::scoped_ptr<webrtc::Call> call(
3318 webrtc::Call::Create(webrtc::Call::Config())); 3321 webrtc::Call::Create(webrtc::Call::Config()));
3319 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::AudioOptions(), 3322 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::AudioOptions(),
3320 call.get()); 3323 call.get());
3321 cricket::AudioRecvParameters parameters; 3324 cricket::AudioRecvParameters parameters;
3322 parameters.codecs = engine.codecs(); 3325 parameters.codecs = engine.codecs();
3323 EXPECT_TRUE(channel.SetRecvParameters(parameters)); 3326 EXPECT_TRUE(channel.SetRecvParameters(parameters));
3324 } 3327 }
OLDNEW
« no previous file with comments | « talk/media/webrtc/webrtcvoiceengine.cc ('k') | talk/session/media/channel.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698