From 059fb4480b4bc402c2dd52c04c5028db50802f58 Mon Sep 17 00:00:00 2001 From: solenberg Date: Wed, 26 Oct 2016 05:12:24 -0700 Subject: [PATCH] - Replace FakeAudioProcessing in WVoE unittest with MockAudioProcessing. - Update MockAudioProcessing to current APM interface. - Replace calls to VoEAudioProcessing::Start/StopAecDump with direct calls on APM. - Add AudioProcessing* in WVoE, get it from VoE, so we can call directly on APM. BUG=webrtc:4690 Review-Url: https://codereview.webrtc.org/2446143002 Cr-Commit-Position: refs/heads/master@{#14786} --- webrtc/media/engine/fakewebrtcvoiceengine.h | 101 +---- webrtc/media/engine/webrtcvoiceengine.cc | 39 +- webrtc/media/engine/webrtcvoiceengine.h | 3 + .../engine/webrtcvoiceengine_unittest.cc | 368 ++++++++++-------- .../agc/agc_manager_direct_unittest.cc | 2 +- .../include/mock_audio_processing.h | 336 ++++++---------- 6 files changed, 358 insertions(+), 491 deletions(-) diff --git a/webrtc/media/engine/fakewebrtcvoiceengine.h b/webrtc/media/engine/fakewebrtcvoiceengine.h index 1568729cd8..26419040f1 100644 --- a/webrtc/media/engine/fakewebrtcvoiceengine.h +++ b/webrtc/media/engine/fakewebrtcvoiceengine.h @@ -45,99 +45,11 @@ static const int kOpusBandwidthFb = 20000; #define WEBRTC_BOOL_STUB(method, args) \ bool method args override { return true; } -#define WEBRTC_BOOL_STUB_CONST(method, args) \ - bool method args const override { return true; } - #define WEBRTC_VOID_STUB(method, args) \ void method args override {} #define WEBRTC_FUNC(method, args) int method args override -#define WEBRTC_VOID_FUNC(method, args) void method args override - -class FakeAudioProcessing : public webrtc::AudioProcessing { - public: - FakeAudioProcessing() : experimental_ns_enabled_(false) {} - - WEBRTC_STUB(Initialize, ()) - WEBRTC_STUB(Initialize, ( - int input_sample_rate_hz, - int output_sample_rate_hz, - int reverse_sample_rate_hz, - webrtc::AudioProcessing::ChannelLayout input_layout, - webrtc::AudioProcessing::ChannelLayout output_layout, - webrtc::AudioProcessing::ChannelLayout reverse_layout)); - WEBRTC_STUB(Initialize, ( - const webrtc::ProcessingConfig& processing_config)); - - WEBRTC_VOID_STUB(ApplyConfig, (const AudioProcessing::Config& config)); - WEBRTC_VOID_FUNC(SetExtraOptions, (const webrtc::Config& config)) { - experimental_ns_enabled_ = config.Get().enabled; - } - - WEBRTC_STUB_CONST(proc_sample_rate_hz, ()); - WEBRTC_STUB_CONST(proc_split_sample_rate_hz, ()); - size_t num_input_channels() const override { return 0; } - size_t num_proc_channels() const override { return 0; } - size_t num_output_channels() const override { return 0; } - size_t num_reverse_channels() const override { return 0; } - WEBRTC_VOID_STUB(set_output_will_be_muted, (bool muted)); - WEBRTC_STUB(ProcessStream, (webrtc::AudioFrame* frame)); - WEBRTC_STUB(ProcessStream, ( - const float* const* src, - size_t samples_per_channel, - int input_sample_rate_hz, - webrtc::AudioProcessing::ChannelLayout input_layout, - int output_sample_rate_hz, - webrtc::AudioProcessing::ChannelLayout output_layout, - float* const* dest)); - WEBRTC_STUB(ProcessStream, - (const float* const* src, - const webrtc::StreamConfig& input_config, - const webrtc::StreamConfig& output_config, - float* const* dest)); - WEBRTC_STUB(ProcessReverseStream, (webrtc::AudioFrame * frame)); - WEBRTC_STUB(AnalyzeReverseStream, ( - const float* const* data, - size_t samples_per_channel, - int sample_rate_hz, - webrtc::AudioProcessing::ChannelLayout layout)); - WEBRTC_STUB(ProcessReverseStream, - (const float* const* src, - const webrtc::StreamConfig& reverse_input_config, - const webrtc::StreamConfig& reverse_output_config, - float* const* dest)); - WEBRTC_STUB(set_stream_delay_ms, (int delay)); - WEBRTC_STUB_CONST(stream_delay_ms, ()); - WEBRTC_BOOL_STUB_CONST(was_stream_delay_set, ()); - WEBRTC_VOID_STUB(set_stream_key_pressed, (bool key_pressed)); - WEBRTC_VOID_STUB(set_delay_offset_ms, (int offset)); - WEBRTC_STUB_CONST(delay_offset_ms, ()); - WEBRTC_STUB(StartDebugRecording, - (const char filename[kMaxFilenameSize], int64_t max_size_bytes)); - WEBRTC_STUB(StartDebugRecording, (FILE * handle, int64_t max_size_bytes)); - WEBRTC_STUB(StartDebugRecording, (FILE * handle)); - WEBRTC_STUB(StartDebugRecordingForPlatformFile, (rtc::PlatformFile handle)); - WEBRTC_STUB(StopDebugRecording, ()); - WEBRTC_VOID_STUB(UpdateHistogramsOnCallEnd, ()); - webrtc::EchoCancellation* echo_cancellation() const override { return NULL; } - webrtc::EchoControlMobile* echo_control_mobile() const override { - return NULL; - } - webrtc::GainControl* gain_control() const override { return NULL; } - webrtc::HighPassFilter* high_pass_filter() const override { return NULL; } - webrtc::LevelEstimator* level_estimator() const override { return NULL; } - webrtc::NoiseSuppression* noise_suppression() const override { return NULL; } - webrtc::VoiceDetection* voice_detection() const override { return NULL; } - - bool experimental_ns_enabled() { - return experimental_ns_enabled_; - } - - private: - bool experimental_ns_enabled_; -}; - class FakeWebRtcVoiceEngine : public webrtc::VoEAudioProcessing, public webrtc::VoEBase, public webrtc::VoECodec, @@ -151,7 +63,7 @@ class FakeWebRtcVoiceEngine bool neteq_fast_accelerate = false; }; - FakeWebRtcVoiceEngine() { + explicit FakeWebRtcVoiceEngine(webrtc::AudioProcessing* apm) : apm_(apm) { memset(&agc_config_, 0, sizeof(agc_config_)); } ~FakeWebRtcVoiceEngine() override { @@ -190,7 +102,7 @@ class FakeWebRtcVoiceEngine return 0; } webrtc::AudioProcessing* audio_processing() override { - return &audio_processing_; + return apm_; } webrtc::AudioDeviceModule* audio_device_module() override { return nullptr; @@ -344,7 +256,6 @@ class FakeWebRtcVoiceEngine mode = ns_mode_; return 0; } - WEBRTC_FUNC(SetAgcStatus, (bool enable, webrtc::AgcModes mode)) { agc_enabled_ = enable; agc_mode_ = mode; @@ -355,7 +266,6 @@ class FakeWebRtcVoiceEngine mode = agc_mode_; return 0; } - WEBRTC_FUNC(SetAgcConfig, (webrtc::AgcConfig config)) { agc_config_ = config; return 0; @@ -397,11 +307,9 @@ class FakeWebRtcVoiceEngine WEBRTC_STUB(GetEchoMetrics, (int& ERL, int& ERLE, int& RERL, int& A_NLP)); WEBRTC_STUB(GetEcDelayMetrics, (int& delay_median, int& delay_std, float& fraction_poor_delays)); - WEBRTC_STUB(StartDebugRecording, (const char* fileNameUTF8)); WEBRTC_STUB(StartDebugRecording, (FILE* handle)); WEBRTC_STUB(StopDebugRecording, ()); - WEBRTC_FUNC(SetTypingDetectionStatus, (bool enable)) { typing_detection_enabled_ = enable; return 0; @@ -410,7 +318,6 @@ class FakeWebRtcVoiceEngine enabled = typing_detection_enabled_; return 0; } - WEBRTC_STUB(TimeSinceLastTyping, (int& seconds)); WEBRTC_STUB(SetTypingDetectionParameters, (int timeWindow, int costPerTyping, @@ -459,7 +366,9 @@ class FakeWebRtcVoiceEngine webrtc::NsModes ns_mode_ = webrtc::kNsDefault; webrtc::AgcModes agc_mode_ = webrtc::kAgcDefault; webrtc::AgcConfig agc_config_; - FakeAudioProcessing audio_processing_; + webrtc::AudioProcessing* apm_ = nullptr; + + RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(FakeWebRtcVoiceEngine); }; } // namespace cricket diff --git a/webrtc/media/engine/webrtcvoiceengine.cc b/webrtc/media/engine/webrtcvoiceengine.cc index 4f6166556a..ebcd161394 100644 --- a/webrtc/media/engine/webrtcvoiceengine.cc +++ b/webrtc/media/engine/webrtcvoiceengine.cc @@ -553,6 +553,9 @@ WebRtcVoiceEngine::WebRtcVoiceEngine( } RTC_DCHECK(adm_); + apm_ = voe_wrapper_->base()->audio_processing(); + RTC_DCHECK(apm_); + // Save the default AGC configuration settings. This must happen before // calling ApplyOptions or the default will be overwritten. int error = voe_wrapper_->processing()->GetAgcConfig(default_agc_config_); @@ -877,13 +880,8 @@ bool WebRtcVoiceEngine::ApplyOptions(const AudioOptions& options_in) { } } - // We check audioproc for the benefit of tests, since FakeWebRtcVoiceEngine - // returns NULL on audio_processing(). - webrtc::AudioProcessing* audioproc = voe_wrapper_->base()->audio_processing(); - if (audioproc) { - audioproc->SetExtraOptions(config); - audioproc->ApplyConfig(apm_config); - } + apm()->SetExtraOptions(config); + apm()->ApplyConfig(apm_config); if (options.recording_sample_rate) { LOG(LS_INFO) << "Recording sample rate is " @@ -916,10 +914,8 @@ void WebRtcVoiceEngine::SetDefaultDevices() { LOG_RTCERR1(SetRecordingDevice, in_id); ret = false; } - webrtc::AudioProcessing* ap = voe()->base()->audio_processing(); - if (ap) { - ap->Initialize(); - } + + apm()->Initialize(); if (voe_wrapper_->hw()->SetPlayoutDevice(out_id) == -1) { LOG_RTCERR1(SetPlayoutDevice, out_id); @@ -1040,8 +1036,7 @@ bool WebRtcVoiceEngine::StartAecDump(rtc::PlatformFile file, return false; } StopAecDump(); - if (voe_wrapper_->base()->audio_processing()->StartDebugRecording( - aec_dump_file_stream, max_size_bytes) != + if (apm()->StartDebugRecording(aec_dump_file_stream, max_size_bytes) != webrtc::AudioProcessing::kNoError) { LOG_RTCERR0(StartDebugRecording); fclose(aec_dump_file_stream); @@ -1055,8 +1050,8 @@ void WebRtcVoiceEngine::StartAecDump(const std::string& filename) { RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); if (!is_dumping_aec_) { // Start dumping AEC when we are not dumping. - if (voe_wrapper_->base()->audio_processing()->StartDebugRecording( - filename.c_str(), -1) != webrtc::AudioProcessing::kNoError) { + if (apm()->StartDebugRecording(filename.c_str(), -1) != + webrtc::AudioProcessing::kNoError) { LOG_RTCERR1(StartDebugRecording, filename.c_str()); } else { is_dumping_aec_ = true; @@ -1068,8 +1063,7 @@ void WebRtcVoiceEngine::StopAecDump() { RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); if (is_dumping_aec_) { // Stop dumping AEC when we are dumping. - if (voe_wrapper_->base()->audio_processing()->StopDebugRecording() != - webrtc::AudioProcessing::kNoError) { + if (apm()->StopDebugRecording() != webrtc::AudioProcessing::kNoError) { LOG_RTCERR0(StopDebugRecording); } is_dumping_aec_ = false; @@ -1087,6 +1081,12 @@ webrtc::AudioDeviceModule* WebRtcVoiceEngine::adm() { return adm_; } +webrtc::AudioProcessing* WebRtcVoiceEngine::apm() { + RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); + RTC_DCHECK(apm_); + return apm_; +} + AudioCodecs WebRtcVoiceEngine::CollectRecvCodecs() const { PayloadTypeMapper mapper; AudioCodecs out; @@ -2378,11 +2378,8 @@ bool WebRtcVoiceMediaChannel::MuteStream(uint32_t ssrc, bool muted) { for (const auto& kv : send_streams_) { all_muted = all_muted && kv.second->muted(); } + engine()->apm()->set_output_will_be_muted(all_muted); - webrtc::AudioProcessing* ap = engine()->voe()->base()->audio_processing(); - if (ap) { - ap->set_output_will_be_muted(all_muted); - } return true; } diff --git a/webrtc/media/engine/webrtcvoiceengine.h b/webrtc/media/engine/webrtcvoiceengine.h index b675284e55..cd832a1c08 100644 --- a/webrtc/media/engine/webrtcvoiceengine.h +++ b/webrtc/media/engine/webrtcvoiceengine.h @@ -101,6 +101,7 @@ class WebRtcVoiceEngine final : public webrtc::TraceCallback { void StartAecDump(const std::string& filename); int CreateVoEChannel(); webrtc::AudioDeviceModule* adm(); + webrtc::AudioProcessing* apm(); AudioCodecs CollectRecvCodecs() const; @@ -110,6 +111,8 @@ class WebRtcVoiceEngine final : public webrtc::TraceCallback { // The audio device manager. rtc::scoped_refptr adm_; rtc::scoped_refptr decoder_factory_; + // Reference to the APM, owned by VoE. + webrtc::AudioProcessing* apm_ = nullptr; // The primary instance of WebRtc VoiceEngine. std::unique_ptr voe_wrapper_; rtc::scoped_refptr audio_state_; diff --git a/webrtc/media/engine/webrtcvoiceengine_unittest.cc b/webrtc/media/engine/webrtcvoiceengine_unittest.cc index b6f3eae0a2..aa041dda37 100644 --- a/webrtc/media/engine/webrtcvoiceengine_unittest.cc +++ b/webrtc/media/engine/webrtcvoiceengine_unittest.cc @@ -28,6 +28,7 @@ #include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h" #include "webrtc/modules/audio_coding/codecs/mock/mock_audio_decoder_factory.h" #include "webrtc/modules/audio_device/include/mock_audio_device.h" +#include "webrtc/modules/audio_processing/include/mock_audio_processing.h" using testing::Return; using testing::StrictMock; @@ -74,7 +75,11 @@ TEST(WebRtcVoiceEngineTestStubLibrary, StartupShutdown) { EXPECT_CALL(adm, BuiltInAECIsAvailable()).WillOnce(Return(false)); EXPECT_CALL(adm, BuiltInAGCIsAvailable()).WillOnce(Return(false)); EXPECT_CALL(adm, BuiltInNSIsAvailable()).WillOnce(Return(false)); - cricket::FakeWebRtcVoiceEngine voe; + StrictMock apm; + EXPECT_CALL(apm, ApplyConfig(testing::_)); + EXPECT_CALL(apm, SetExtraOptions(testing::_)); + EXPECT_CALL(apm, Initialize()).WillOnce(Return(0)); + cricket::FakeWebRtcVoiceEngine voe(&apm); EXPECT_FALSE(voe.IsInited()); { cricket::WebRtcVoiceEngine engine( @@ -99,7 +104,7 @@ class WebRtcVoiceEngineTestFake : public testing::Test { WebRtcVoiceEngineTestFake() : WebRtcVoiceEngineTestFake("") {} explicit WebRtcVoiceEngineTestFake(const char* field_trials) - : call_(webrtc::Call::Config(&event_log_)), + : call_(webrtc::Call::Config(&event_log_)), voe_(&apm_), override_field_trials_(field_trials) { auto factory = webrtc::MockAudioDecoderFactory::CreateUnusedFactory(); EXPECT_CALL(adm_, AddRef()).WillOnce(Return(0)); @@ -107,6 +112,9 @@ class WebRtcVoiceEngineTestFake : public testing::Test { EXPECT_CALL(adm_, BuiltInAECIsAvailable()).WillOnce(Return(false)); EXPECT_CALL(adm_, BuiltInAGCIsAvailable()).WillOnce(Return(false)); EXPECT_CALL(adm_, BuiltInNSIsAvailable()).WillOnce(Return(false)); + EXPECT_CALL(apm_, ApplyConfig(testing::_)); + EXPECT_CALL(apm_, SetExtraOptions(testing::_)); + EXPECT_CALL(apm_, Initialize()).WillOnce(Return(0)); engine_.reset(new cricket::WebRtcVoiceEngine(&adm_, factory, new FakeVoEWrapper(&voe_))); send_parameters_.codecs.push_back(kPcmuCodec); @@ -114,6 +122,8 @@ class WebRtcVoiceEngineTestFake : public testing::Test { } bool SetupChannel() { + EXPECT_CALL(apm_, ApplyConfig(testing::_)); + EXPECT_CALL(apm_, SetExtraOptions(testing::_)); channel_ = engine_->CreateChannel(&call_, cricket::MediaConfig(), cricket::AudioOptions()); return (channel_ != nullptr); @@ -133,6 +143,7 @@ class WebRtcVoiceEngineTestFake : public testing::Test { if (!channel_->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc1))) { return false; } + EXPECT_CALL(apm_, set_output_will_be_muted(false)); return channel_->SetAudioSend(kSsrc1, true, nullptr, &fake_source_); } @@ -179,14 +190,29 @@ class WebRtcVoiceEngineTestFake : public testing::Test { return GetRecvStream(ssrc).GetConfig(); } - void SetSend(cricket::VoiceMediaChannel* channel, bool enable) { - ASSERT_TRUE(channel); + void SetSend(bool enable) { + ASSERT_TRUE(channel_); if (enable) { EXPECT_CALL(adm_, RecordingIsInitialized()).WillOnce(Return(false)); EXPECT_CALL(adm_, Recording()).WillOnce(Return(false)); EXPECT_CALL(adm_, InitRecording()).WillOnce(Return(0)); + EXPECT_CALL(apm_, ApplyConfig(testing::_)); + EXPECT_CALL(apm_, SetExtraOptions(testing::_)); } - channel->SetSend(enable); + channel_->SetSend(enable); + } + + void SetSendParameters(const cricket::AudioSendParameters& params) { + EXPECT_CALL(apm_, ApplyConfig(testing::_)); + EXPECT_CALL(apm_, SetExtraOptions(testing::_)); + ASSERT_TRUE(channel_); + EXPECT_TRUE(channel_->SetSendParameters(params)); + } + + void SetAudioSend(uint32_t ssrc, bool enable, cricket::AudioSource* source) { + EXPECT_CALL(apm_, set_output_will_be_muted(!enable)); + ASSERT_TRUE(channel_); + EXPECT_TRUE(channel_->SetAudioSend(ssrc, enable, nullptr, source)); } void TestInsertDtmf(uint32_t ssrc, bool caller) { @@ -199,12 +225,12 @@ class WebRtcVoiceEngineTestFake : public testing::Test { } // Test we can only InsertDtmf when the other side supports telephone-event. - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); - SetSend(channel_, true); + SetSendParameters(send_parameters_); + SetSend(true); EXPECT_FALSE(channel_->CanInsertDtmf()); EXPECT_FALSE(channel_->InsertDtmf(ssrc, 1, 111)); send_parameters_.codecs.push_back(kTelephoneEventCodec); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); EXPECT_TRUE(channel_->CanInsertDtmf()); if (!caller) { @@ -240,7 +266,11 @@ class WebRtcVoiceEngineTestFake : public testing::Test { cricket::AudioSendParameters parameters; parameters.codecs.push_back(codec); parameters.max_bandwidth_bps = max_bitrate; - EXPECT_EQ(expected_result, channel_->SetSendParameters(parameters)); + if (expected_result) { + SetSendParameters(parameters); + } else { + EXPECT_FALSE(channel_->SetSendParameters(parameters)); + } EXPECT_EQ(expected_bitrate, GetCodecBitrate(kSsrc1)); } @@ -253,11 +283,11 @@ class WebRtcVoiceEngineTestFake : public testing::Test { return channel_->SetRtpSendParameters(ssrc, parameters); } - bool SetGlobalMaxBitrate(const cricket::AudioCodec& codec, int bitrate) { + void SetGlobalMaxBitrate(const cricket::AudioCodec& codec, int bitrate) { cricket::AudioSendParameters send_parameters; send_parameters.codecs.push_back(codec); send_parameters.max_bandwidth_bps = bitrate; - return channel_->SetSendParameters(send_parameters); + SetSendParameters(send_parameters); } void CheckSendCodec(int32_t ssrc, @@ -299,7 +329,7 @@ class WebRtcVoiceEngineTestFake : public testing::Test { EXPECT_TRUE(SetMaxBitrateForStream(kSsrc1, -1)); // Attempt to set the requested bitrate limits. - EXPECT_TRUE(SetGlobalMaxBitrate(codec, global_max)); + SetGlobalMaxBitrate(codec, global_max); EXPECT_EQ(expected_result, SetMaxBitrateForStream(kSsrc1, stream_max)); // Verify that reading back the parameters gives results @@ -323,18 +353,18 @@ class WebRtcVoiceEngineTestFake : public testing::Test { // Ensure unknown extensions won't cause an error. send_parameters_.extensions.push_back( webrtc::RtpExtension("urn:ietf:params:unknownextention", 1)); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); // Ensure extensions stay off with an empty list of headers. send_parameters_.extensions.clear(); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); // Ensure extension is set properly. const int id = 1; send_parameters_.extensions.push_back(webrtc::RtpExtension(ext, id)); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); EXPECT_EQ(1u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); EXPECT_EQ(ext, GetSendStreamConfig(kSsrc1).rtp.extensions[0].uri); EXPECT_EQ(id, GetSendStreamConfig(kSsrc1).rtp.extensions[0].id); @@ -351,7 +381,7 @@ class WebRtcVoiceEngineTestFake : public testing::Test { // Ensure all extensions go back off with an empty list. send_parameters_.codecs.push_back(kPcmuCodec); send_parameters_.extensions.clear(); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); EXPECT_EQ(0u, GetSendStreamConfig(kSsrc2).rtp.extensions.size()); } @@ -513,6 +543,7 @@ class WebRtcVoiceEngineTestFake : public testing::Test { protected: StrictMock adm_; + StrictMock apm_; webrtc::RtcEventLogNullImpl event_log_; cricket::FakeCall call_; cricket::FakeWebRtcVoiceEngine voe_; @@ -863,7 +894,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetMaxSendBandwidthMultiRateAsCallee) { cricket::AudioSendParameters parameters; parameters.codecs = engine_->send_codecs(); parameters.max_bandwidth_bps = kDesiredBitrate; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_TRUE(channel_->AddSendStream( cricket::StreamParams::CreateLegacy(kSsrc1))); @@ -878,11 +909,11 @@ TEST_F(WebRtcVoiceEngineTestFake, SetMaxSendBandwidthCbr) { EXPECT_TRUE(SetupSendStream()); // PCMU, default bitrate == 64000. - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); EXPECT_EQ(64000, GetCodecBitrate(kSsrc1)); send_parameters_.max_bandwidth_bps = 128000; - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); EXPECT_EQ(64000, GetCodecBitrate(kSsrc1)); send_parameters_.max_bandwidth_bps = 128; @@ -947,7 +978,7 @@ TEST_F(WebRtcVoiceEngineTestFake, // inactive through SetRtpSendParameters. TEST_F(WebRtcVoiceEngineTestFake, SetRtpParametersEncodingsActive) { EXPECT_TRUE(SetupSendStream()); - SetSend(channel_, true); + SetSend(true); EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); // Get current parameters and change "active" to false. webrtc::RtpParameters parameters = channel_->GetRtpSendParameters(kSsrc1); @@ -975,7 +1006,7 @@ TEST_F(WebRtcVoiceEngineTestFake, RtpParametersArePerStream) { // Configure one stream to be limited by the stream config, another to be // limited by the global max, and the third one with no per-stream limit // (still subject to the global limit). - EXPECT_TRUE(SetGlobalMaxBitrate(kOpusCodec, 64000)); + SetGlobalMaxBitrate(kOpusCodec, 64000); EXPECT_TRUE(SetMaxBitrateForStream(kSsrcs4[0], 48000)); EXPECT_TRUE(SetMaxBitrateForStream(kSsrcs4[1], 96000)); EXPECT_TRUE(SetMaxBitrateForStream(kSsrcs4[2], -1)); @@ -986,7 +1017,7 @@ TEST_F(WebRtcVoiceEngineTestFake, RtpParametersArePerStream) { // Remove the global cap; the streams should switch to their respective // maximums (or remain unchanged if there was no other limit on them.) - EXPECT_TRUE(SetGlobalMaxBitrate(kOpusCodec, -1)); + SetGlobalMaxBitrate(kOpusCodec, -1); EXPECT_EQ(48000, GetCodecBitrate(kSsrcs4[0])); EXPECT_EQ(96000, GetCodecBitrate(kSsrcs4[1])); EXPECT_EQ(64000, GetCodecBitrate(kSsrcs4[2])); @@ -998,7 +1029,7 @@ TEST_F(WebRtcVoiceEngineTestFake, GetRtpSendParametersCodecs) { cricket::AudioSendParameters parameters; parameters.codecs.push_back(kIsacCodec); parameters.codecs.push_back(kPcmuCodec); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); webrtc::RtpParameters rtp_parameters = channel_->GetRtpSendParameters(kSsrc1); ASSERT_EQ(2u, rtp_parameters.codecs.size()); @@ -1012,7 +1043,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetAndGetRtpSendParameters) { cricket::AudioSendParameters parameters; parameters.codecs.push_back(kIsacCodec); parameters.codecs.push_back(kPcmuCodec); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); webrtc::RtpParameters initial_params = channel_->GetRtpSendParameters(kSsrc1); @@ -1069,7 +1100,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecs) { parameters.codecs[0].id = 96; parameters.codecs[0].bitrate = 48000; const int initial_num = call_.GetNumCreatedSendStreams(); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(initial_num + 1, call_.GetNumCreatedSendStreams()); const auto& send_codec_spec = GetSendStreamConfig(kSsrc1).send_codec_spec; EXPECT_EQ(96, send_codec_spec.codec_inst.pltype); @@ -1092,11 +1123,11 @@ TEST_F(WebRtcVoiceEngineTestFake, DontResetSetSendCodec) { parameters.codecs[0].id = 96; parameters.codecs[0].bitrate = 48000; const int initial_num = call_.GetNumCreatedSendStreams(); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(initial_num + 1, call_.GetNumCreatedSendStreams()); // Calling SetSendCodec again with same codec which is already set. // In this case media channel shouldn't send codec to VoE. - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(initial_num + 1, call_.GetNumCreatedSendStreams()); } @@ -1105,7 +1136,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecG722) { EXPECT_TRUE(SetupSendStream()); cricket::AudioSendParameters parameters; parameters.codecs.push_back(kG722CodecSdp); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; EXPECT_STREQ("G722", gcodec.plname); EXPECT_EQ(1, gcodec.channels); @@ -1182,7 +1213,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusGood0BitrateNoStereo) { cricket::AudioSendParameters parameters; parameters.codecs.push_back(kOpusCodec); parameters.codecs[0].bitrate = 0; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); CheckSendCodec(kSsrc1, "opus", 1, 32000); } @@ -1194,7 +1225,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusGood0Bitrate0Stereo) { parameters.codecs.push_back(kOpusCodec); parameters.codecs[0].bitrate = 0; parameters.codecs[0].params["stereo"] = "0"; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); CheckSendCodec(kSsrc1, "opus", 1, 32000); } @@ -1207,11 +1238,11 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusGoodXBitrate0Stereo) { parameters.codecs[0].params["stereo"] = "0"; // bitrate that's out of the range between 6000 and 510000 will be clamped. parameters.codecs[0].bitrate = 5999; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); CheckSendCodec(kSsrc1, "opus", 1, 6000); parameters.codecs[0].bitrate = 510001; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); CheckSendCodec(kSsrc1, "opus", 1, 510000); } @@ -1223,7 +1254,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusGood0Bitrate1Stereo) { parameters.codecs.push_back(kOpusCodec); parameters.codecs[0].bitrate = 0; parameters.codecs[0].params["stereo"] = "1"; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); CheckSendCodec(kSsrc1, "opus", 2, 64000); } @@ -1236,11 +1267,11 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusGoodXBitrate1Stereo) { parameters.codecs[0].params["stereo"] = "1"; // bitrate that's out of the range between 6000 and 510000 will be clamped. parameters.codecs[0].bitrate = 5999; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); CheckSendCodec(kSsrc1, "opus", 2, 6000); parameters.codecs[0].bitrate = 510001; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); CheckSendCodec(kSsrc1, "opus", 2, 510000); } @@ -1251,7 +1282,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusGoodNBitrateNoStereo) { cricket::AudioSendParameters parameters; parameters.codecs.push_back(kOpusCodec); parameters.codecs[0].bitrate = 96000; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; EXPECT_EQ(111, gcodec.pltype); EXPECT_EQ(96000, gcodec.rate); @@ -1268,7 +1299,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusGoodNBitrate0Stereo) { parameters.codecs.push_back(kOpusCodec); parameters.codecs[0].bitrate = 30000; parameters.codecs[0].params["stereo"] = "0"; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); CheckSendCodec(kSsrc1, "opus", 1, 30000); } @@ -1279,7 +1310,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusGoodNBitrateNoParameters) { cricket::AudioSendParameters parameters; parameters.codecs.push_back(kOpusCodec); parameters.codecs[0].bitrate = 30000; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); CheckSendCodec(kSsrc1, "opus", 1, 30000); } @@ -1291,7 +1322,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusGoodNBitrate1Stereo) { parameters.codecs.push_back(kOpusCodec); parameters.codecs[0].bitrate = 30000; parameters.codecs[0].params["stereo"] = "1"; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); CheckSendCodec(kSsrc1, "opus", 2, 30000); } @@ -1305,16 +1336,16 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusMaxAverageBitrate) { parameters.codecs[0].bitrate = 30000; // Ignore if less than 6000. parameters.codecs[0].params["maxaveragebitrate"] = "5999"; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(6000, GetCodecBitrate(kSsrc1)); // Ignore if larger than 510000. parameters.codecs[0].params["maxaveragebitrate"] = "510001"; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(510000, GetCodecBitrate(kSsrc1)); parameters.codecs[0].params["maxaveragebitrate"] = "200000"; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(200000, GetCodecBitrate(kSsrc1)); } @@ -1327,7 +1358,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecEnableNackAsCaller) { cricket::FeedbackParam(cricket::kRtcpFbParamNack, cricket::kParamValueEmpty)); EXPECT_EQ(0, GetSendStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); } @@ -1340,7 +1371,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecEnableNackAsCallee) { cricket::FeedbackParam(cricket::kRtcpFbParamNack, cricket::kParamValueEmpty)); EXPECT_EQ(0, GetRecvStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); // NACK should be enabled even with no send stream. EXPECT_EQ(kRtpHistoryMs, GetRecvStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); @@ -1360,7 +1391,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecEnableNackRecvStreams) { cricket::kParamValueEmpty)); EXPECT_EQ(0, GetSendStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); EXPECT_EQ(0, GetRecvStreamConfig(kSsrc2).rtp.nack.rtp_history_ms); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); EXPECT_EQ(kRtpHistoryMs, GetRecvStreamConfig(kSsrc2).rtp.nack.rtp_history_ms); } @@ -1373,12 +1404,12 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecDisableNack) { parameters.codecs[0].AddFeedbackParam( cricket::FeedbackParam(cricket::kRtcpFbParamNack, cricket::kParamValueEmpty)); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); parameters.codecs.clear(); parameters.codecs.push_back(kOpusCodec); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(0, GetSendStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); } @@ -1391,13 +1422,13 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecDisableNackRecvStreams) { parameters.codecs[0].AddFeedbackParam( cricket::FeedbackParam(cricket::kRtcpFbParamNack, cricket::kParamValueEmpty)); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); EXPECT_EQ(kRtpHistoryMs, GetRecvStreamConfig(kSsrc2).rtp.nack.rtp_history_ms); parameters.codecs.clear(); parameters.codecs.push_back(kOpusCodec); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(0, GetSendStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); EXPECT_EQ(0, GetRecvStreamConfig(kSsrc2).rtp.nack.rtp_history_ms); } @@ -1411,7 +1442,7 @@ TEST_F(WebRtcVoiceEngineTestFake, AddRecvStreamEnableNack) { parameters.codecs[0].AddFeedbackParam( cricket::FeedbackParam(cricket::kRtcpFbParamNack, cricket::kParamValueEmpty)); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(kRtpHistoryMs, GetSendStreamConfig(kSsrc1).rtp.nack.rtp_history_ms); EXPECT_TRUE(AddRecvStream(kSsrc2)); @@ -1425,7 +1456,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecNoOpusFec) { EXPECT_TRUE(SetupSendStream()); cricket::AudioSendParameters parameters; parameters.codecs.push_back(kOpusCodec); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_FALSE(GetCodecFec(kSsrc1)); } @@ -1436,7 +1467,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusDisableFec) { parameters.codecs.push_back(kOpusCodec); parameters.codecs[0].bitrate = 0; parameters.codecs[0].params["useinbandfec"] = "0"; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); CheckSendCodec(kSsrc1, "opus", 1, 32000); } @@ -1447,7 +1478,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusEnableFec) { parameters.codecs.push_back(kOpusCodec); parameters.codecs[0].bitrate = 0; parameters.codecs[0].params["useinbandfec"] = "1"; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_TRUE(GetCodecFec(kSsrc1)); CheckSendCodec(kSsrc1, "opus", 1, 32000); } @@ -1460,7 +1491,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecOpusEnableFecStereo) { parameters.codecs[0].bitrate = 0; parameters.codecs[0].params["stereo"] = "1"; parameters.codecs[0].params["useinbandfec"] = "1"; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_TRUE(GetCodecFec(kSsrc1)); CheckSendCodec(kSsrc1, "opus", 2, 64000); } @@ -1470,7 +1501,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecIsacNoFec) { EXPECT_TRUE(SetupSendStream()); cricket::AudioSendParameters parameters; parameters.codecs.push_back(kIsacCodec); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_FALSE(GetCodecFec(kSsrc1)); } @@ -1480,7 +1511,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecIsacWithParamNoFec) { cricket::AudioSendParameters parameters; parameters.codecs.push_back(kIsacCodec); parameters.codecs[0].params["useinbandfec"] = "1"; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_FALSE(GetCodecFec(kSsrc1)); } @@ -1489,11 +1520,11 @@ TEST_F(WebRtcVoiceEngineTestFake, ChangeOpusFecStatus) { EXPECT_TRUE(SetupSendStream()); cricket::AudioSendParameters parameters; parameters.codecs.push_back(kOpusCodec); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_FALSE(GetCodecFec(kSsrc1)); parameters.codecs[0].params["useinbandfec"] = "1"; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_TRUE(GetCodecFec(kSsrc1)); } @@ -1502,7 +1533,7 @@ TEST_F(WebRtcVoiceEngineTestFake, TransportCcCanBeEnabledAndDisabled) { cricket::AudioSendParameters send_parameters; send_parameters.codecs.push_back(kOpusCodec); EXPECT_TRUE(send_parameters.codecs[0].feedback_params.params().empty()); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters)); + SetSendParameters(send_parameters); cricket::AudioRecvParameters recv_parameters; recv_parameters.codecs.push_back(kIsacCodec); @@ -1513,7 +1544,7 @@ TEST_F(WebRtcVoiceEngineTestFake, TransportCcCanBeEnabledAndDisabled) { call_.GetAudioReceiveStream(kSsrc1)->GetConfig().rtp.transport_cc); send_parameters.codecs = engine_->send_codecs(); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters)); + SetSendParameters(send_parameters); ASSERT_TRUE(call_.GetAudioReceiveStream(kSsrc1) != nullptr); EXPECT_TRUE( call_.GetAudioReceiveStream(kSsrc1)->GetConfig().rtp.transport_cc); @@ -1526,12 +1557,12 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOpusMaxPlaybackRateNb) { parameters.codecs.push_back(kOpusCodec); parameters.codecs[0].bitrate = 0; parameters.codecs[0].SetParam(cricket::kCodecParamMaxPlaybackRate, 8000); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(8000, GetOpusMaxPlaybackRate(kSsrc1)); EXPECT_EQ(12000, GetCodecBitrate(kSsrc1)); parameters.codecs[0].SetParam(cricket::kCodecParamStereo, "1"); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(24000, GetCodecBitrate(kSsrc1)); } @@ -1542,12 +1573,12 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOpusMaxPlaybackRateMb) { parameters.codecs.push_back(kOpusCodec); parameters.codecs[0].bitrate = 0; parameters.codecs[0].SetParam(cricket::kCodecParamMaxPlaybackRate, 8001); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(8001, GetOpusMaxPlaybackRate(kSsrc1)); EXPECT_EQ(20000, GetCodecBitrate(kSsrc1)); parameters.codecs[0].SetParam(cricket::kCodecParamStereo, "1"); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(40000, GetCodecBitrate(kSsrc1)); } @@ -1558,12 +1589,12 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOpusMaxPlaybackRateWb) { parameters.codecs.push_back(kOpusCodec); parameters.codecs[0].bitrate = 0; parameters.codecs[0].SetParam(cricket::kCodecParamMaxPlaybackRate, 12001); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(12001, GetOpusMaxPlaybackRate(kSsrc1)); EXPECT_EQ(20000, GetCodecBitrate(kSsrc1)); parameters.codecs[0].SetParam(cricket::kCodecParamStereo, "1"); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(40000, GetCodecBitrate(kSsrc1)); } @@ -1574,12 +1605,12 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOpusMaxPlaybackRateSwb) { parameters.codecs.push_back(kOpusCodec); parameters.codecs[0].bitrate = 0; parameters.codecs[0].SetParam(cricket::kCodecParamMaxPlaybackRate, 16001); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(16001, GetOpusMaxPlaybackRate(kSsrc1)); EXPECT_EQ(32000, GetCodecBitrate(kSsrc1)); parameters.codecs[0].SetParam(cricket::kCodecParamStereo, "1"); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(64000, GetCodecBitrate(kSsrc1)); } @@ -1590,12 +1621,12 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOpusMaxPlaybackRateFb) { parameters.codecs.push_back(kOpusCodec); parameters.codecs[0].bitrate = 0; parameters.codecs[0].SetParam(cricket::kCodecParamMaxPlaybackRate, 24001); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(24001, GetOpusMaxPlaybackRate(kSsrc1)); EXPECT_EQ(32000, GetCodecBitrate(kSsrc1)); parameters.codecs[0].SetParam(cricket::kCodecParamStereo, "1"); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(64000, GetCodecBitrate(kSsrc1)); } @@ -1604,7 +1635,7 @@ TEST_F(WebRtcVoiceEngineTestFake, DefaultOpusMaxPlaybackRate) { EXPECT_TRUE(SetupSendStream()); cricket::AudioSendParameters parameters; parameters.codecs.push_back(kOpusCodec); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(48000, GetOpusMaxPlaybackRate(kSsrc1)); } @@ -1614,7 +1645,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetNonOpusMaxPlaybackRate) { cricket::AudioSendParameters parameters; parameters.codecs.push_back(kIsacCodec); parameters.codecs[0].SetParam(cricket::kCodecParamMaxPlaybackRate, 32000); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(0, GetOpusMaxPlaybackRate(kSsrc1)); } @@ -1623,11 +1654,11 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOpusMaxPlaybackRateOnTwoStreams) { EXPECT_TRUE(SetupSendStream()); cricket::AudioSendParameters parameters; parameters.codecs.push_back(kOpusCodec); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(48000, GetOpusMaxPlaybackRate(kSsrc1)); parameters.codecs[0].SetParam(cricket::kCodecParamMaxPlaybackRate, 8000); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(8000, GetOpusMaxPlaybackRate(kSsrc1)); channel_->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc2)); @@ -1640,7 +1671,7 @@ TEST_F(WebRtcVoiceEngineTestFake, DisableOpusDtxOnOpus) { cricket::AudioSendParameters parameters; parameters.codecs.push_back(kOpusCodec); parameters.codecs[0].params["usedtx"] = "0"; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_FALSE(GetOpusDtx(kSsrc1)); } @@ -1650,7 +1681,7 @@ TEST_F(WebRtcVoiceEngineTestFake, EnableOpusDtxOnOpus) { cricket::AudioSendParameters parameters; parameters.codecs.push_back(kOpusCodec); parameters.codecs[0].params["usedtx"] = "1"; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_TRUE(GetOpusDtx(kSsrc1)); } @@ -1661,7 +1692,7 @@ TEST_F(WebRtcVoiceEngineTestFake, EnableOpusDtxOnOpusStereo) { parameters.codecs.push_back(kOpusCodec); parameters.codecs[0].params["usedtx"] = "1"; parameters.codecs[0].params["stereo"] = "1"; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_TRUE(GetOpusDtx(kSsrc1)); } @@ -1671,7 +1702,7 @@ TEST_F(WebRtcVoiceEngineTestFake, CannotEnableOpusDtxOnNonOpus) { cricket::AudioSendParameters parameters; parameters.codecs.push_back(kIsacCodec); parameters.codecs[0].params["usedtx"] = "1"; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_FALSE(GetOpusDtx(kSsrc1)); } @@ -1681,7 +1712,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsIsacOpusSwitching) { cricket::AudioSendParameters opus_parameters; opus_parameters.codecs.push_back(kOpusCodec); - EXPECT_TRUE(channel_->SetSendParameters(opus_parameters)); + SetSendParameters(opus_parameters); { const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; EXPECT_EQ(111, gcodec.pltype); @@ -1692,14 +1723,14 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsIsacOpusSwitching) { isac_parameters.codecs.push_back(kIsacCodec); isac_parameters.codecs.push_back(kCn16000Codec); isac_parameters.codecs.push_back(kOpusCodec); - EXPECT_TRUE(channel_->SetSendParameters(isac_parameters)); + SetSendParameters(isac_parameters); { const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; EXPECT_EQ(103, gcodec.pltype); EXPECT_STREQ("ISAC", gcodec.plname); } - EXPECT_TRUE(channel_->SetSendParameters(opus_parameters)); + SetSendParameters(opus_parameters); { const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; EXPECT_EQ(111, gcodec.pltype); @@ -1712,7 +1743,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsBitrate) { EXPECT_TRUE(SetupSendStream()); cricket::AudioSendParameters parameters; parameters.codecs.push_back(kIsacCodec); // bitrate == 32000 - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); { const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; EXPECT_EQ(103, gcodec.pltype); @@ -1721,7 +1752,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsBitrate) { } parameters.codecs[0].bitrate = 0; // bitrate == default - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); { const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; EXPECT_EQ(103, gcodec.pltype); @@ -1729,7 +1760,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsBitrate) { EXPECT_EQ(-1, gcodec.rate); } parameters.codecs[0].bitrate = 28000; // bitrate == 28000 - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); { const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; EXPECT_EQ(103, gcodec.pltype); @@ -1738,7 +1769,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsBitrate) { } parameters.codecs[0] = kPcmuCodec; // bitrate == 64000 - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); { const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; EXPECT_EQ(0, gcodec.pltype); @@ -1747,7 +1778,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsBitrate) { } parameters.codecs[0].bitrate = 0; // bitrate == default - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); { const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; EXPECT_EQ(0, gcodec.pltype); @@ -1757,7 +1788,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsBitrate) { parameters.codecs[0] = kOpusCodec; parameters.codecs[0].bitrate = 0; // bitrate == default - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); { const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; EXPECT_EQ(111, gcodec.pltype); @@ -1772,26 +1803,26 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsPTimeAsPacketSize) { cricket::AudioSendParameters parameters; parameters.codecs.push_back(kOpusCodec); parameters.codecs[0].SetParam(cricket::kCodecParamPTime, 40); // Within range. - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(1920, GetCodecPacSize(kSsrc1)); // Opus gets 40ms. parameters.codecs[0].SetParam(cricket::kCodecParamPTime, 5); // Below range. - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(480, GetCodecPacSize(kSsrc1)); // Opus gets 10ms. parameters.codecs[0].SetParam(cricket::kCodecParamPTime, 80); // Beyond range. - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(2880, GetCodecPacSize(kSsrc1)); // Opus gets 60ms. parameters.codecs[0] = kIsacCodec; // Also try Isac, with unsupported size. parameters.codecs[0].SetParam(cricket::kCodecParamPTime, 40); // Within range. - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(480, GetCodecPacSize( kSsrc1)); // Isac gets 30ms as the next smallest value. parameters.codecs[0] = kG722CodecSdp; // Try G722 @8kHz as negotiated in SDP. parameters.codecs[0].SetParam(cricket::kCodecParamPTime, 40); - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_EQ(640, GetCodecPacSize( kSsrc1)); // G722 gets 40ms @16kHz as defined in VoE. } @@ -1813,7 +1844,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsDTMFOnTop) { parameters.codecs.push_back(kPcmuCodec); parameters.codecs[0].id = 98; // DTMF parameters.codecs[1].id = 96; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; EXPECT_EQ(96, gcodec.pltype); EXPECT_STREQ("ISAC", gcodec.plname); @@ -1828,13 +1859,13 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsDTMFPayloadTypeOutOfRange) { parameters.codecs.push_back(kIsacCodec); parameters.codecs[0].id = 0; // DTMF parameters.codecs[1].id = 96; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_TRUE(channel_->CanInsertDtmf()); parameters.codecs[0].id = 128; // DTMF EXPECT_FALSE(channel_->SetSendParameters(parameters)); EXPECT_FALSE(channel_->CanInsertDtmf()); parameters.codecs[0].id = 127; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_TRUE(channel_->CanInsertDtmf()); parameters.codecs[0].id = -1; // DTMF EXPECT_FALSE(channel_->SetSendParameters(parameters)); @@ -1851,7 +1882,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCNOnTop) { parameters.codecs.push_back(kPcmuCodec); parameters.codecs[0].id = 98; // wideband CN parameters.codecs[1].id = 96; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); const auto& send_codec_spec = GetSendStreamConfig(kSsrc1).send_codec_spec; EXPECT_EQ(96, send_codec_spec.codec_inst.pltype); EXPECT_STREQ("ISAC", send_codec_spec.codec_inst.plname); @@ -1872,7 +1903,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCNandDTMFAsCaller) { parameters.codecs[0].id = 96; parameters.codecs[2].id = 97; // wideband CN parameters.codecs[4].id = 98; // DTMF - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); const auto& send_codec_spec = GetSendStreamConfig(kSsrc1).send_codec_spec; EXPECT_EQ(96, send_codec_spec.codec_inst.pltype); EXPECT_STREQ("ISAC", send_codec_spec.codec_inst.plname); @@ -1896,7 +1927,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCNandDTMFAsCallee) { parameters.codecs[0].id = 96; parameters.codecs[2].id = 97; // wideband CN parameters.codecs[4].id = 98; // DTMF - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); EXPECT_TRUE(channel_->AddSendStream( cricket::StreamParams::CreateLegacy(kSsrc1))); @@ -1919,7 +1950,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCNNoMatch) { parameters.codecs.push_back(kIsacCodec); parameters.codecs.push_back(kCn16000Codec); parameters.codecs[1].id = 97; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); { const auto& send_codec_spec = GetSendStreamConfig(kSsrc1).send_codec_spec; EXPECT_STREQ("ISAC", send_codec_spec.codec_inst.plname); @@ -1930,7 +1961,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCNNoMatch) { } // Set PCMU(8K) and CN(16K). VAD should not be activated. parameters.codecs[0] = kPcmuCodec; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); { const auto& send_codec_spec = GetSendStreamConfig(kSsrc1).send_codec_spec; EXPECT_STREQ("PCMU", send_codec_spec.codec_inst.plname); @@ -1938,7 +1969,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCNNoMatch) { } // Set PCMU(8K) and CN(8K). VAD should be activated. parameters.codecs[1] = kCn8000Codec; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); { const auto& send_codec_spec = GetSendStreamConfig(kSsrc1).send_codec_spec; EXPECT_STREQ("PCMU", send_codec_spec.codec_inst.plname); @@ -1949,7 +1980,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCNNoMatch) { } // Set ISAC(16K) and CN(8K). VAD should not be activated. parameters.codecs[0] = kIsacCodec; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); { const auto& send_codec_spec = GetSendStreamConfig(kSsrc1).send_codec_spec; EXPECT_STREQ("ISAC", send_codec_spec.codec_inst.plname); @@ -1970,7 +2001,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCaseInsensitive) { parameters.codecs[0].id = 96; parameters.codecs[2].id = 97; // wideband CN parameters.codecs[4].id = 98; // DTMF - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); const auto& send_codec_spec = GetSendStreamConfig(kSsrc1).send_codec_spec; EXPECT_EQ(96, send_codec_spec.codec_inst.pltype); EXPECT_STREQ("ISAC", send_codec_spec.codec_inst.plname); @@ -2020,10 +2051,10 @@ TEST_F(WebRtcVoiceEngineTestFake, RecvAbsoluteSendTimeHeaderExtensions) { // Test that we can create a channel and start sending on it. TEST_F(WebRtcVoiceEngineTestFake, Send) { EXPECT_TRUE(SetupSendStream()); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); - SetSend(channel_, true); + SetSendParameters(send_parameters_); + SetSend(true); EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); - SetSend(channel_, false); + SetSend(false); EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); } @@ -2031,24 +2062,24 @@ TEST_F(WebRtcVoiceEngineTestFake, Send) { // for sending. TEST_F(WebRtcVoiceEngineTestFake, SendStateWithAndWithoutSource) { EXPECT_TRUE(SetupSendStream()); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); - EXPECT_TRUE(channel_->SetAudioSend(kSsrc1, true, nullptr, nullptr)); - SetSend(channel_, true); + SetSendParameters(send_parameters_); + SetAudioSend(kSsrc1, true, nullptr); + SetSend(true); EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); - EXPECT_TRUE(channel_->SetAudioSend(kSsrc1, true, nullptr, &fake_source_)); + SetAudioSend(kSsrc1, true, &fake_source_); EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); - EXPECT_TRUE(channel_->SetAudioSend(kSsrc1, true, nullptr, nullptr)); + SetAudioSend(kSsrc1, true, nullptr); EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); } // Test that a channel is muted/unmuted. TEST_F(WebRtcVoiceEngineTestFake, SendStateMuteUnmute) { EXPECT_TRUE(SetupSendStream()); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); EXPECT_FALSE(GetSendStream(kSsrc1).muted()); - EXPECT_TRUE(channel_->SetAudioSend(kSsrc1, true, nullptr, nullptr)); + SetAudioSend(kSsrc1, true, nullptr); EXPECT_FALSE(GetSendStream(kSsrc1).muted()); - EXPECT_TRUE(channel_->SetAudioSend(kSsrc1, false, nullptr, nullptr)); + SetAudioSend(kSsrc1, false, nullptr); EXPECT_TRUE(GetSendStream(kSsrc1).muted()); } @@ -2058,22 +2089,22 @@ TEST_F(WebRtcVoiceEngineTestFake, SendStateWhenStreamsAreRecreated) { EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); // Turn on sending. - SetSend(channel_, true); + SetSend(true); EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); // Changing RTP header extensions will recreate the AudioSendStream. send_parameters_.extensions.push_back( webrtc::RtpExtension(webrtc::RtpExtension::kAudioLevelUri, 12)); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); // Turn off sending. - SetSend(channel_, false); + SetSend(false); EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); // Changing RTP header extensions will recreate the AudioSendStream. send_parameters_.extensions.clear(); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); } @@ -2092,12 +2123,12 @@ TEST_F(WebRtcVoiceEngineTestFake, CreateAndDeleteMultipleSendStreams) { SetupForMultiSendStream(); // Set the global state for sending. - SetSend(channel_, true); + SetSend(true); for (uint32_t ssrc : kSsrcs4) { EXPECT_TRUE(channel_->AddSendStream( cricket::StreamParams::CreateLegacy(ssrc))); - EXPECT_TRUE(channel_->SetAudioSend(ssrc, true, nullptr, &fake_source_)); + SetAudioSend(ssrc, true, &fake_source_); // Verify that we are in a sending state for all the created streams. EXPECT_TRUE(GetSendStream(ssrc).IsSending()); } @@ -2127,7 +2158,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsWithMultipleSendStreams) { parameters.codecs.push_back(kIsacCodec); parameters.codecs.push_back(kCn16000Codec); parameters.codecs[1].id = 97; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); // Verify ISAC and VAD are corrected configured on all send channels. for (uint32_t ssrc : kSsrcs4) { @@ -2143,7 +2174,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsWithMultipleSendStreams) { // Change to PCMU(8K) and CN(16K). parameters.codecs[0] = kPcmuCodec; - EXPECT_TRUE(channel_->SetSendParameters(parameters)); + SetSendParameters(parameters); for (uint32_t ssrc : kSsrcs4) { ASSERT_TRUE(call_.GetAudioSendStream(ssrc) != nullptr); const auto& send_codec_spec = @@ -2163,19 +2194,19 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendWithMultipleSendStreams) { for (uint32_t ssrc : kSsrcs4) { EXPECT_TRUE(channel_->AddSendStream( cricket::StreamParams::CreateLegacy(ssrc))); - EXPECT_TRUE(channel_->SetAudioSend(ssrc, true, nullptr, &fake_source_)); + SetAudioSend(ssrc, true, &fake_source_); EXPECT_FALSE(GetSendStream(ssrc).IsSending()); } // Set the global state for starting sending. - SetSend(channel_, true); + SetSend(true); for (uint32_t ssrc : kSsrcs4) { // Verify that we are in a sending state for all the send streams. EXPECT_TRUE(GetSendStream(ssrc).IsSending()); } // Set the global state for stopping sending. - SetSend(channel_, false); + SetSend(false); for (uint32_t ssrc : kSsrcs4) { // Verify that we are in a stop state for all the send streams. EXPECT_FALSE(GetSendStream(ssrc).IsSending()); @@ -2197,7 +2228,7 @@ TEST_F(WebRtcVoiceEngineTestFake, GetStatsWithMultipleSendStreams) { EXPECT_TRUE(AddRecvStream(kSsrc2)); // We need send codec to be set to get all stats. - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); SetAudioSendStreamStats(); @@ -2245,12 +2276,12 @@ TEST_F(WebRtcVoiceEngineTestFake, PlayoutWithMultipleStreams) { EXPECT_TRUE(SetupSendStream()); // Start playout without a receive stream. - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); channel_->SetPlayout(true); // Adding another stream should enable playout on the new stream only. EXPECT_TRUE(AddRecvStream(kSsrc2)); - SetSend(channel_, true); + SetSend(true); EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); // Make sure only the new stream is played out. @@ -2262,7 +2293,7 @@ TEST_F(WebRtcVoiceEngineTestFake, PlayoutWithMultipleStreams) { EXPECT_TRUE(GetRecvStream(kSsrc3).started()); // Stop sending. - SetSend(channel_, false); + SetSend(false); EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); // Stop playout. @@ -2290,12 +2321,12 @@ TEST_F(WebRtcVoiceEngineTestFake, CodianSend) { EXPECT_EQ(0, voe_.GetAgcConfig(agc_config)); EXPECT_EQ(0, agc_config.targetLeveldBOv); send_parameters_.options = options_adjust_agc; - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); - SetSend(channel_, true); + SetSendParameters(send_parameters_); + SetSend(true); EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); EXPECT_EQ(0, voe_.GetAgcConfig(agc_config)); EXPECT_EQ(agc_config.targetLeveldBOv, 10); // level was attenuated - SetSend(channel_, false); + SetSend(false); EXPECT_FALSE(GetSendStream(kSsrc1).IsSending()); EXPECT_EQ(0, voe_.GetAgcConfig(agc_config)); } @@ -2312,7 +2343,7 @@ TEST_F(WebRtcVoiceEngineTestFake, TxAgcConfigViaOptions) { rtc::Optional(9); send_parameters_.options.tx_agc_limiter = rtc::Optional(true); send_parameters_.options.auto_gain_control = rtc::Optional(true); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); EXPECT_EQ(0, voe_.GetAgcConfig(agc_config)); EXPECT_EQ(3, agc_config.targetLeveldBOv); EXPECT_EQ(9, agc_config.digitalCompressionGaindB); @@ -2321,7 +2352,7 @@ TEST_F(WebRtcVoiceEngineTestFake, TxAgcConfigViaOptions) { // Check interaction with adjust_agc_delta. Both should be respected, for // backwards compatibility. send_parameters_.options.adjust_agc_delta = rtc::Optional(-10); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); EXPECT_EQ(0, voe_.GetAgcConfig(agc_config)); EXPECT_EQ(13, agc_config.targetLeveldBOv); } @@ -2333,7 +2364,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SampleRatesViaOptions) { send_parameters_.options.recording_sample_rate = rtc::Optional(48000); send_parameters_.options.playout_sample_rate = rtc::Optional(44100); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); } // Test that we can set the outgoing SSRC properly. @@ -2349,7 +2380,7 @@ TEST_F(WebRtcVoiceEngineTestFake, GetStats) { // SetupSendStream adds a send stream with kSsrc1, so the receive // stream has to use a different SSRC. EXPECT_TRUE(AddRecvStream(kSsrc2)); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); SetAudioSendStreamStats(); @@ -2369,7 +2400,7 @@ TEST_F(WebRtcVoiceEngineTestFake, GetStats) { // Start sending - this affects some reported stats. { cricket::VoiceMediaInfo info; - SetSend(channel_, true); + SetSend(true); EXPECT_EQ(true, channel_->GetStats(&info)); VerifyVoiceSenderInfo(info.senders[0], true); } @@ -2595,7 +2626,7 @@ TEST_F(WebRtcVoiceEngineTestFake, AddRecvStreamUnsupportedCodec) { // not explicitly removed. TEST_F(WebRtcVoiceEngineTestFake, StreamCleanup) { EXPECT_TRUE(SetupSendStream()); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); EXPECT_TRUE(AddRecvStream(1)); EXPECT_TRUE(AddRecvStream(2)); EXPECT_EQ(3, voe_.GetNumChannels()); // default channel + 2 added @@ -2687,7 +2718,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetAudioOptions) { // Nothing set in AudioOptions, so everything should be as default. send_parameters_.options = cricket::AudioOptions(); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); voe_.GetEcStatus(ec_enabled, ec_mode); voe_.GetAecmMode(aecm_mode, cng_enabled); voe_.GetAgcStatus(agc_enabled, agc_mode); @@ -2712,14 +2743,14 @@ TEST_F(WebRtcVoiceEngineTestFake, SetAudioOptions) { // Turn echo cancellation off send_parameters_.options.echo_cancellation = rtc::Optional(false); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); voe_.GetEcStatus(ec_enabled, ec_mode); EXPECT_FALSE(ec_enabled); // Turn echo cancellation back on, with settings, and make sure // nothing else changed. send_parameters_.options.echo_cancellation = rtc::Optional(true); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); voe_.GetEcStatus(ec_enabled, ec_mode); voe_.GetAecmMode(aecm_mode, cng_enabled); voe_.GetAgcStatus(agc_enabled, agc_mode); @@ -2742,7 +2773,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetAudioOptions) { // Turn on delay agnostic aec and make sure nothing change w.r.t. echo // control. send_parameters_.options.delay_agnostic_aec = rtc::Optional(true); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); voe_.GetEcStatus(ec_enabled, ec_mode); voe_.GetAecmMode(aecm_mode, cng_enabled); EXPECT_TRUE(ec_enabled); @@ -2753,12 +2784,12 @@ TEST_F(WebRtcVoiceEngineTestFake, SetAudioOptions) { send_parameters_.options.delay_agnostic_aec = rtc::Optional(false); send_parameters_.options.extended_filter_aec = rtc::Optional(false); send_parameters_.options.echo_cancellation = rtc::Optional(false); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); voe_.GetEcStatus(ec_enabled, ec_mode); EXPECT_FALSE(ec_enabled); // Turning delay agnostic aec back on should also turn on echo cancellation. send_parameters_.options.delay_agnostic_aec = rtc::Optional(true); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); voe_.GetEcStatus(ec_enabled, ec_mode); EXPECT_TRUE(ec_enabled); EXPECT_TRUE(voe_.ec_metrics_enabled()); @@ -2766,14 +2797,14 @@ TEST_F(WebRtcVoiceEngineTestFake, SetAudioOptions) { // Turn off AGC send_parameters_.options.auto_gain_control = rtc::Optional(false); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); voe_.GetAgcStatus(agc_enabled, agc_mode); EXPECT_FALSE(agc_enabled); // Turn AGC back on send_parameters_.options.auto_gain_control = rtc::Optional(true); send_parameters_.options.adjust_agc_delta = rtc::Optional(); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); voe_.GetAgcStatus(agc_enabled, agc_mode); EXPECT_TRUE(agc_enabled); voe_.GetAgcConfig(agc_config); @@ -2784,7 +2815,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetAudioOptions) { send_parameters_.options.highpass_filter = rtc::Optional(false); send_parameters_.options.typing_detection = rtc::Optional(false); send_parameters_.options.stereo_swapping = rtc::Optional(true); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); voe_.GetNsStatus(ns_enabled, ns_mode); highpass_filter_enabled = voe_.IsHighPassFilterEnabled(); stereo_swapping_enabled = voe_.IsStereoChannelSwappingEnabled(); @@ -2795,7 +2826,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetAudioOptions) { EXPECT_TRUE(stereo_swapping_enabled); // Set options again to ensure it has no impact. - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); voe_.GetEcStatus(ec_enabled, ec_mode); voe_.GetNsStatus(ns_enabled, ns_mode); EXPECT_TRUE(ec_enabled); @@ -2854,6 +2885,12 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOptionOverridesViaChannels) { BuiltInAGCIsAvailable()).Times(9).WillRepeatedly(Return(false)); EXPECT_CALL(adm_, BuiltInNSIsAvailable()).Times(9).WillRepeatedly(Return(false)); + EXPECT_CALL(adm_, + RecordingIsInitialized()).Times(2).WillRepeatedly(Return(false)); + EXPECT_CALL(adm_, Recording()).Times(2).WillRepeatedly(Return(false)); + EXPECT_CALL(adm_, InitRecording()).Times(2).WillRepeatedly(Return(0)); + EXPECT_CALL(apm_, ApplyConfig(testing::_)).Times(10); + EXPECT_CALL(apm_, SetExtraOptions(testing::_)).Times(10); std::unique_ptr channel1( static_cast(engine_->CreateChannel( @@ -2875,16 +2912,16 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOptionOverridesViaChannels) { parameters_options_all.options.echo_cancellation = rtc::Optional(true); parameters_options_all.options.auto_gain_control = rtc::Optional(true); parameters_options_all.options.noise_suppression = rtc::Optional(true); - ASSERT_TRUE(channel1->SetSendParameters(parameters_options_all)); + EXPECT_TRUE(channel1->SetSendParameters(parameters_options_all)); EXPECT_EQ(parameters_options_all.options, channel1->options()); - ASSERT_TRUE(channel2->SetSendParameters(parameters_options_all)); + EXPECT_TRUE(channel2->SetSendParameters(parameters_options_all)); EXPECT_EQ(parameters_options_all.options, channel2->options()); // unset NS cricket::AudioSendParameters parameters_options_no_ns = send_parameters_; parameters_options_no_ns.options.noise_suppression = rtc::Optional(false); - ASSERT_TRUE(channel1->SetSendParameters(parameters_options_no_ns)); + EXPECT_TRUE(channel1->SetSendParameters(parameters_options_no_ns)); cricket::AudioOptions expected_options = parameters_options_all.options; expected_options.echo_cancellation = rtc::Optional(true); expected_options.auto_gain_control = rtc::Optional(true); @@ -2895,13 +2932,13 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOptionOverridesViaChannels) { cricket::AudioSendParameters parameters_options_no_agc = send_parameters_; parameters_options_no_agc.options.auto_gain_control = rtc::Optional(false); - ASSERT_TRUE(channel2->SetSendParameters(parameters_options_no_agc)); + EXPECT_TRUE(channel2->SetSendParameters(parameters_options_no_agc)); expected_options.echo_cancellation = rtc::Optional(true); expected_options.auto_gain_control = rtc::Optional(false); expected_options.noise_suppression = rtc::Optional(true); EXPECT_EQ(expected_options, channel2->options()); - ASSERT_TRUE(channel_->SetSendParameters(parameters_options_all)); + EXPECT_TRUE(channel_->SetSendParameters(parameters_options_all)); bool ec_enabled; webrtc::EcModes ec_mode; bool agc_enabled; @@ -2915,7 +2952,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOptionOverridesViaChannels) { EXPECT_TRUE(agc_enabled); EXPECT_TRUE(ns_enabled); - SetSend(channel1.get(), true); + channel1->SetSend(true); voe_.GetEcStatus(ec_enabled, ec_mode); voe_.GetAgcStatus(agc_enabled, agc_mode); voe_.GetNsStatus(ns_enabled, ns_mode); @@ -2923,7 +2960,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOptionOverridesViaChannels) { EXPECT_TRUE(agc_enabled); EXPECT_FALSE(ns_enabled); - SetSend(channel2.get(), true); + channel2->SetSend(true); voe_.GetEcStatus(ec_enabled, ec_mode); voe_.GetAgcStatus(agc_enabled, agc_mode); voe_.GetNsStatus(ns_enabled, ns_mode); @@ -2932,7 +2969,9 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOptionOverridesViaChannels) { EXPECT_TRUE(ns_enabled); // Make sure settings take effect while we are sending. - ASSERT_TRUE(channel_->SetSendParameters(parameters_options_all)); + EXPECT_TRUE(channel_->SetSendParameters(parameters_options_all)); + EXPECT_CALL(apm_, ApplyConfig(testing::_)); + EXPECT_CALL(apm_, SetExtraOptions(testing::_)); cricket::AudioSendParameters parameters_options_no_agc_nor_ns = send_parameters_; parameters_options_no_agc_nor_ns.options.auto_gain_control = @@ -2940,7 +2979,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOptionOverridesViaChannels) { parameters_options_no_agc_nor_ns.options.noise_suppression = rtc::Optional(false); channel2->SetSend(true); - channel2->SetSendParameters(parameters_options_no_agc_nor_ns); + EXPECT_TRUE(channel2->SetSendParameters(parameters_options_no_agc_nor_ns)); expected_options.echo_cancellation = rtc::Optional(true); expected_options.auto_gain_control = rtc::Optional(false); expected_options.noise_suppression = rtc::Optional(false); @@ -2960,6 +2999,9 @@ TEST_F(WebRtcVoiceEngineTestFake, TestSetDscpOptions) { cricket::MediaConfig config; std::unique_ptr channel; + EXPECT_CALL(apm_, ApplyConfig(testing::_)).Times(3); + EXPECT_CALL(apm_, SetExtraOptions(testing::_)).Times(3); + channel.reset( engine_->CreateChannel(&call_, config, cricket::AudioOptions())); channel->SetInterface(&network_interface); @@ -3068,11 +3110,9 @@ TEST_F(WebRtcVoiceEngineTestFake, ConfiguresAudioReceiveStreamRtpExtensions) { ssrcs.push_back(224); EXPECT_TRUE(SetupSendStream()); - cricket::WebRtcVoiceMediaChannel* media_channel = - static_cast(channel_); - EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); for (uint32_t ssrc : ssrcs) { - EXPECT_TRUE(media_channel->AddRecvStream( + EXPECT_TRUE(channel_->AddRecvStream( cricket::StreamParams::CreateLegacy(ssrc))); } @@ -3127,7 +3167,7 @@ TEST_F(WebRtcVoiceEngineTestFake, DeliverAudioPacket_Call) { EXPECT_TRUE(SetupSendStream()); cricket::WebRtcVoiceMediaChannel* media_channel = static_cast(channel_); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); EXPECT_TRUE(media_channel->AddRecvStream( cricket::StreamParams::CreateLegacy(kAudioSsrc))); @@ -3145,7 +3185,7 @@ TEST_F(WebRtcVoiceEngineTestFake, DeliverAudioPacket_Call) { // since they do not send RTCP SR. TEST_F(WebRtcVoiceEngineTestFake, AssociateFirstSendChannel) { EXPECT_TRUE(SetupSendStream()); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); int default_channel = voe_.GetLastChannel(); EXPECT_TRUE(AddRecvStream(1)); int recv_ch = voe_.GetLastChannel(); @@ -3161,7 +3201,7 @@ TEST_F(WebRtcVoiceEngineTestFake, AssociateFirstSendChannel) { TEST_F(WebRtcVoiceEngineTestFake, AssociateChannelResetUponDeleteChannnel) { EXPECT_TRUE(SetupSendStream()); - EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); + SetSendParameters(send_parameters_); EXPECT_TRUE(AddRecvStream(1)); int recv_ch = voe_.GetLastChannel(); diff --git a/webrtc/modules/audio_processing/agc/agc_manager_direct_unittest.cc b/webrtc/modules/audio_processing/agc/agc_manager_direct_unittest.cc index d19d190428..0a3ba84e59 100644 --- a/webrtc/modules/audio_processing/agc/agc_manager_direct_unittest.cc +++ b/webrtc/modules/audio_processing/agc/agc_manager_direct_unittest.cc @@ -92,7 +92,7 @@ class AgcManagerDirectTest : public ::testing::Test { } MockAgc* agc_; - MockGainControl gctrl_; + test::MockGainControl gctrl_; TestVolumeCallbacks volume_; AgcManagerDirect manager_; test::TraceToStderr trace_to_stderr; diff --git a/webrtc/modules/audio_processing/include/mock_audio_processing.h b/webrtc/modules/audio_processing/include/mock_audio_processing.h index 998153deaa..8acb83ba23 100644 --- a/webrtc/modules/audio_processing/include/mock_audio_processing.h +++ b/webrtc/modules/audio_processing/include/mock_audio_processing.h @@ -14,257 +14,174 @@ #include #include "webrtc/modules/audio_processing/include/audio_processing.h" +#include "webrtc/test/gmock.h" namespace webrtc { +namespace test { + class MockEchoCancellation : public EchoCancellation { public: - MOCK_METHOD1(Enable, - int(bool enable)); - MOCK_CONST_METHOD0(is_enabled, - bool()); - MOCK_METHOD1(enable_drift_compensation, - int(bool enable)); - MOCK_CONST_METHOD0(is_drift_compensation_enabled, - bool()); - MOCK_METHOD1(set_stream_drift_samples, - void(int drift)); - MOCK_CONST_METHOD0(stream_drift_samples, - int()); - MOCK_METHOD1(set_suppression_level, - int(SuppressionLevel level)); - MOCK_CONST_METHOD0(suppression_level, - SuppressionLevel()); - MOCK_CONST_METHOD0(stream_has_echo, - bool()); - MOCK_METHOD1(enable_metrics, - int(bool enable)); - MOCK_CONST_METHOD0(are_metrics_enabled, - bool()); - MOCK_METHOD1(GetMetrics, - int(Metrics* metrics)); - MOCK_METHOD1(enable_delay_logging, - int(bool enable)); - MOCK_CONST_METHOD0(is_delay_logging_enabled, - bool()); - MOCK_METHOD2(GetDelayMetrics, - int(int* median, int* std)); - MOCK_METHOD3(GetDelayMetrics, - int(int* median, int* std, float* fraction_poor_delays)); - MOCK_CONST_METHOD0(aec_core, - struct AecCore*()); + virtual ~MockEchoCancellation() {} + MOCK_METHOD1(Enable, int(bool enable)); + MOCK_CONST_METHOD0(is_enabled, bool()); + MOCK_METHOD1(enable_drift_compensation, int(bool enable)); + MOCK_CONST_METHOD0(is_drift_compensation_enabled, bool()); + MOCK_METHOD1(set_stream_drift_samples, void(int drift)); + MOCK_CONST_METHOD0(stream_drift_samples, int()); + MOCK_METHOD1(set_suppression_level, int(SuppressionLevel level)); + MOCK_CONST_METHOD0(suppression_level, SuppressionLevel()); + MOCK_CONST_METHOD0(stream_has_echo, bool()); + MOCK_METHOD1(enable_metrics, int(bool enable)); + MOCK_CONST_METHOD0(are_metrics_enabled, bool()); + MOCK_METHOD1(GetMetrics, int(Metrics* metrics)); + MOCK_METHOD1(enable_delay_logging, int(bool enable)); + MOCK_CONST_METHOD0(is_delay_logging_enabled, bool()); + MOCK_METHOD2(GetDelayMetrics, int(int* median, int* std)); + MOCK_METHOD3(GetDelayMetrics, int(int* median, int* std, + float* fraction_poor_delays)); + MOCK_CONST_METHOD0(aec_core, struct AecCore*()); }; class MockEchoControlMobile : public EchoControlMobile { public: - MOCK_METHOD1(Enable, - int(bool enable)); - MOCK_CONST_METHOD0(is_enabled, - bool()); - MOCK_METHOD1(set_routing_mode, - int(RoutingMode mode)); - MOCK_CONST_METHOD0(routing_mode, - RoutingMode()); - MOCK_METHOD1(enable_comfort_noise, - int(bool enable)); - MOCK_CONST_METHOD0(is_comfort_noise_enabled, - bool()); - MOCK_METHOD2(SetEchoPath, - int(const void* echo_path, size_t size_bytes)); - MOCK_CONST_METHOD2(GetEchoPath, - int(void* echo_path, size_t size_bytes)); + virtual ~MockEchoControlMobile() {} + MOCK_METHOD1(Enable, int(bool enable)); + MOCK_CONST_METHOD0(is_enabled, bool()); + MOCK_METHOD1(set_routing_mode, int(RoutingMode mode)); + MOCK_CONST_METHOD0(routing_mode, RoutingMode()); + MOCK_METHOD1(enable_comfort_noise, int(bool enable)); + MOCK_CONST_METHOD0(is_comfort_noise_enabled, bool()); + MOCK_METHOD2(SetEchoPath, int(const void* echo_path, size_t size_bytes)); + MOCK_CONST_METHOD2(GetEchoPath, int(void* echo_path, size_t size_bytes)); }; class MockGainControl : public GainControl { public: - MOCK_METHOD1(Enable, - int(bool enable)); - MOCK_CONST_METHOD0(is_enabled, - bool()); - MOCK_METHOD1(set_stream_analog_level, - int(int level)); - MOCK_METHOD0(stream_analog_level, - int()); - MOCK_METHOD1(set_mode, - int(Mode mode)); - MOCK_CONST_METHOD0(mode, - Mode()); - MOCK_METHOD1(set_target_level_dbfs, - int(int level)); - MOCK_CONST_METHOD0(target_level_dbfs, - int()); - MOCK_METHOD1(set_compression_gain_db, - int(int gain)); - MOCK_CONST_METHOD0(compression_gain_db, - int()); - MOCK_METHOD1(enable_limiter, - int(bool enable)); - MOCK_CONST_METHOD0(is_limiter_enabled, - bool()); - MOCK_METHOD2(set_analog_level_limits, - int(int minimum, int maximum)); - MOCK_CONST_METHOD0(analog_level_minimum, - int()); - MOCK_CONST_METHOD0(analog_level_maximum, - int()); - MOCK_CONST_METHOD0(stream_is_saturated, - bool()); + virtual ~MockGainControl() {} + MOCK_METHOD1(Enable, int(bool enable)); + MOCK_CONST_METHOD0(is_enabled, bool()); + MOCK_METHOD1(set_stream_analog_level, int(int level)); + MOCK_METHOD0(stream_analog_level, int()); + MOCK_METHOD1(set_mode, int(Mode mode)); + MOCK_CONST_METHOD0(mode, Mode()); + MOCK_METHOD1(set_target_level_dbfs, int(int level)); + MOCK_CONST_METHOD0(target_level_dbfs, int()); + MOCK_METHOD1(set_compression_gain_db, int(int gain)); + MOCK_CONST_METHOD0(compression_gain_db, int()); + MOCK_METHOD1(enable_limiter, int(bool enable)); + MOCK_CONST_METHOD0(is_limiter_enabled, bool()); + MOCK_METHOD2(set_analog_level_limits, int(int minimum, int maximum)); + MOCK_CONST_METHOD0(analog_level_minimum, int()); + MOCK_CONST_METHOD0(analog_level_maximum, int()); + MOCK_CONST_METHOD0(stream_is_saturated, bool()); }; class MockHighPassFilter : public HighPassFilter { public: - MOCK_METHOD1(Enable, - int(bool enable)); - MOCK_CONST_METHOD0(is_enabled, - bool()); + virtual ~MockHighPassFilter() {} + MOCK_METHOD1(Enable, int(bool enable)); + MOCK_CONST_METHOD0(is_enabled, bool()); }; class MockLevelEstimator : public LevelEstimator { public: - MOCK_METHOD1(Enable, - int(bool enable)); - MOCK_CONST_METHOD0(is_enabled, - bool()); - MOCK_METHOD0(RMS, - int()); + virtual ~MockLevelEstimator() {} + MOCK_METHOD1(Enable, int(bool enable)); + MOCK_CONST_METHOD0(is_enabled, bool()); + MOCK_METHOD0(RMS, int()); }; class MockNoiseSuppression : public NoiseSuppression { public: - MOCK_METHOD1(Enable, - int(bool enable)); - MOCK_CONST_METHOD0(is_enabled, - bool()); - MOCK_METHOD1(set_level, - int(Level level)); - MOCK_CONST_METHOD0(level, - Level()); - MOCK_CONST_METHOD0(speech_probability, - float()); + virtual ~MockNoiseSuppression() {} + MOCK_METHOD1(Enable, int(bool enable)); + MOCK_CONST_METHOD0(is_enabled, bool()); + MOCK_METHOD1(set_level, int(Level level)); + MOCK_CONST_METHOD0(level, Level()); + MOCK_CONST_METHOD0(speech_probability, float()); MOCK_METHOD0(NoiseEstimate, std::vector()); }; class MockVoiceDetection : public VoiceDetection { public: - MOCK_METHOD1(Enable, - int(bool enable)); - MOCK_CONST_METHOD0(is_enabled, - bool()); - MOCK_CONST_METHOD0(stream_has_voice, - bool()); - MOCK_METHOD1(set_stream_has_voice, - int(bool has_voice)); - MOCK_METHOD1(set_likelihood, - int(Likelihood likelihood)); - MOCK_CONST_METHOD0(likelihood, - Likelihood()); - MOCK_METHOD1(set_frame_size_ms, - int(int size)); - MOCK_CONST_METHOD0(frame_size_ms, - int()); + virtual ~MockVoiceDetection() {} + MOCK_METHOD1(Enable, int(bool enable)); + MOCK_CONST_METHOD0(is_enabled, bool()); + MOCK_CONST_METHOD0(stream_has_voice, bool()); + MOCK_METHOD1(set_stream_has_voice, int(bool has_voice)); + MOCK_METHOD1(set_likelihood, int(Likelihood likelihood)); + MOCK_CONST_METHOD0(likelihood, Likelihood()); + MOCK_METHOD1(set_frame_size_ms, int(int size)); + MOCK_CONST_METHOD0(frame_size_ms, int()); }; class MockAudioProcessing : public AudioProcessing { public: MockAudioProcessing() - : echo_cancellation_(new MockEchoCancellation), - echo_control_mobile_(new MockEchoControlMobile), - gain_control_(new MockGainControl), - high_pass_filter_(new MockHighPassFilter), - level_estimator_(new MockLevelEstimator), - noise_suppression_(new MockNoiseSuppression), - voice_detection_(new MockVoiceDetection) { + : echo_cancellation_(new testing::NiceMock()), + echo_control_mobile_(new testing::NiceMock()), + gain_control_(new testing::NiceMock()), + high_pass_filter_(new testing::NiceMock()), + level_estimator_(new testing::NiceMock()), + noise_suppression_(new testing::NiceMock()), + voice_detection_(new testing::NiceMock()) { } - virtual ~MockAudioProcessing() { - } + virtual ~MockAudioProcessing() {} - MOCK_METHOD0(Initialize, - int()); - MOCK_METHOD6(Initialize, - int(int capture_input_sample_rate_hz, - int capture_output_sample_rate_hz, - int render_sample_rate_hz, - ChannelLayout capture_input_layout, - ChannelLayout capture_output_layout, - ChannelLayout render_input_layout)); - MOCK_METHOD1(Initialize, - int(const ProcessingConfig& processing_config)); + MOCK_METHOD0(Initialize, int()); + MOCK_METHOD6(Initialize, int(int capture_input_sample_rate_hz, + int capture_output_sample_rate_hz, + int render_sample_rate_hz, + ChannelLayout capture_input_layout, + ChannelLayout capture_output_layout, + ChannelLayout render_input_layout)); + MOCK_METHOD1(Initialize, int(const ProcessingConfig& processing_config)); MOCK_METHOD1(ApplyConfig, void(const Config& config)); MOCK_METHOD1(SetExtraOptions, void(const webrtc::Config& config)); - MOCK_METHOD1(set_sample_rate_hz, - int(int rate)); - MOCK_CONST_METHOD0(input_sample_rate_hz, - int()); - MOCK_CONST_METHOD0(sample_rate_hz, - int()); - MOCK_CONST_METHOD0(proc_sample_rate_hz, - int()); - MOCK_CONST_METHOD0(proc_split_sample_rate_hz, - int()); - MOCK_CONST_METHOD0(num_input_channels, - size_t()); - MOCK_CONST_METHOD0(num_output_channels, - size_t()); - MOCK_CONST_METHOD0(num_reverse_channels, - size_t()); - MOCK_METHOD1(set_output_will_be_muted, - void(bool muted)); - MOCK_CONST_METHOD0(output_will_be_muted, - bool()); - MOCK_METHOD1(ProcessStream, - int(AudioFrame* frame)); - MOCK_METHOD7(ProcessStream, - int(const float* const* src, - size_t samples_per_channel, - int input_sample_rate_hz, - ChannelLayout input_layout, - int output_sample_rate_hz, - ChannelLayout output_layout, - float* const* dest)); - MOCK_METHOD4(ProcessStream, - int(const float* const* src, - const StreamConfig& input_config, - const StreamConfig& output_config, - float* const* dest)); - MOCK_METHOD1(AnalyzeReverseStream, - int(AudioFrame* frame)); + MOCK_CONST_METHOD0(proc_sample_rate_hz, int()); + MOCK_CONST_METHOD0(proc_split_sample_rate_hz, int()); + MOCK_CONST_METHOD0(num_input_channels, size_t()); + MOCK_CONST_METHOD0(num_proc_channels, size_t()); + MOCK_CONST_METHOD0(num_output_channels, size_t()); + MOCK_CONST_METHOD0(num_reverse_channels, size_t()); + MOCK_METHOD1(set_output_will_be_muted, void(bool muted)); + MOCK_METHOD1(ProcessStream, int(AudioFrame* frame)); + MOCK_METHOD7(ProcessStream, int(const float* const* src, + size_t samples_per_channel, + int input_sample_rate_hz, + ChannelLayout input_layout, + int output_sample_rate_hz, + ChannelLayout output_layout, + float* const* dest)); + MOCK_METHOD4(ProcessStream, int(const float* const* src, + const StreamConfig& input_config, + const StreamConfig& output_config, + float* const* dest)); MOCK_METHOD1(ProcessReverseStream, int(AudioFrame* frame)); - MOCK_METHOD4(AnalyzeReverseStream, - int(const float* const* data, - size_t samples_per_channel, - int sample_rate_hz, - ChannelLayout layout)); - MOCK_METHOD4(ProcessReverseStream, - int(const float* const* src, - const StreamConfig& input_config, - const StreamConfig& output_config, - float* const* dest)); - MOCK_METHOD1(set_stream_delay_ms, - int(int delay)); - MOCK_CONST_METHOD0(stream_delay_ms, - int()); - MOCK_CONST_METHOD0(was_stream_delay_set, - bool()); - MOCK_METHOD1(set_stream_key_pressed, - void(bool key_pressed)); - MOCK_CONST_METHOD0(stream_key_pressed, - bool()); - MOCK_METHOD1(set_delay_offset_ms, - void(int offset)); - MOCK_CONST_METHOD0(delay_offset_ms, - int()); - MOCK_METHOD2(StartDebugRecording, - int(const char filename[kMaxFilenameSize], - int64_t max_log_size_bytes)); - MOCK_METHOD2(StartDebugRecording, - int(FILE* handle, int64_t max_log_size_bytes)); - MOCK_METHOD1(StartDebugRecording, - int (FILE* handle)); - MOCK_METHOD1(StartDebugRecording, + MOCK_METHOD4(AnalyzeReverseStream, int(const float* const* data, + size_t samples_per_channel, + int sample_rate_hz, + ChannelLayout layout)); + MOCK_METHOD4(ProcessReverseStream, int(const float* const* src, + const StreamConfig& input_config, + const StreamConfig& output_config, + float* const* dest)); + MOCK_METHOD1(set_stream_delay_ms, int(int delay)); + MOCK_CONST_METHOD0(stream_delay_ms, int()); + MOCK_CONST_METHOD0(was_stream_delay_set, bool()); + MOCK_METHOD1(set_stream_key_pressed, void(bool key_pressed)); + MOCK_METHOD1(set_delay_offset_ms, void(int offset)); + MOCK_CONST_METHOD0(delay_offset_ms, int()); + MOCK_METHOD2(StartDebugRecording, int(const char filename[kMaxFilenameSize], + int64_t max_log_size_bytes)); + MOCK_METHOD2(StartDebugRecording, int(FILE* handle, + int64_t max_log_size_bytes)); + MOCK_METHOD1(StartDebugRecording, int (FILE* handle)); + MOCK_METHOD1(StartDebugRecordingForPlatformFile, int(rtc::PlatformFile handle)); - MOCK_METHOD0(StopDebugRecording, - int()); + MOCK_METHOD0(StopDebugRecording, int()); MOCK_METHOD0(UpdateHistogramsOnCallEnd, void()); virtual MockEchoCancellation* echo_cancellation() const { return echo_cancellation_.get(); @@ -298,6 +215,7 @@ class MockAudioProcessing : public AudioProcessing { std::unique_ptr voice_detection_; }; +} // namespace test } // namespace webrtc #endif // WEBRTC_MODULES_AUDIO_PROCESSING_INCLUDE_MOCK_AUDIO_PROCESSING_H_