| Index: webrtc/media/engine/fakewebrtcvoiceengine.h
|
| diff --git a/webrtc/media/engine/fakewebrtcvoiceengine.h b/webrtc/media/engine/fakewebrtcvoiceengine.h
|
| index 3b992f1e2c0f963410430c135c063825ad8bd8b7..18c77663a2c407f17d2a3eeaccdba8bf49cbbbf7 100644
|
| --- a/webrtc/media/engine/fakewebrtcvoiceengine.h
|
| +++ b/webrtc/media/engine/fakewebrtcvoiceengine.h
|
| @@ -27,6 +27,12 @@
|
| #include "webrtc/modules/audio_coding/acm2/rent_a_codec.h"
|
| #include "webrtc/modules/audio_processing/include/audio_processing.h"
|
|
|
| +namespace webrtc {
|
| +namespace voe {
|
| +class TransmitMixer;
|
| +} // namespace voe
|
| +} // namespace webrtc
|
| +
|
| namespace cricket {
|
|
|
| static const int kOpusBandwidthNb = 4000;
|
| @@ -53,8 +59,7 @@ static const int kOpusBandwidthFb = 20000;
|
| #define WEBRTC_FUNC(method, args) int method args override
|
|
|
| class FakeWebRtcVoiceEngine
|
| - : public webrtc::VoEAudioProcessing,
|
| - public webrtc::VoEBase, public webrtc::VoECodec,
|
| + : public webrtc::VoEBase, public webrtc::VoECodec,
|
| public webrtc::VoEHardware,
|
| public webrtc::VoEVolumeControl {
|
| public:
|
| @@ -64,15 +69,14 @@ class FakeWebRtcVoiceEngine
|
| bool neteq_fast_accelerate = false;
|
| };
|
|
|
| - explicit FakeWebRtcVoiceEngine(webrtc::AudioProcessing* apm) : apm_(apm) {
|
| - memset(&agc_config_, 0, sizeof(agc_config_));
|
| + explicit FakeWebRtcVoiceEngine(webrtc::AudioProcessing* apm,
|
| + webrtc::voe::TransmitMixer* transmit_mixer)
|
| + : apm_(apm), transmit_mixer_(transmit_mixer) {
|
| }
|
| ~FakeWebRtcVoiceEngine() override {
|
| RTC_CHECK(channels_.empty());
|
| }
|
|
|
| - bool ec_metrics_enabled() const { return ec_metrics_enabled_; }
|
| -
|
| bool IsInited() const { return inited_; }
|
| int GetLastChannel() const { return last_channel_; }
|
| int GetNumChannels() const { return static_cast<int>(channels_.size()); }
|
| @@ -104,6 +108,9 @@ class FakeWebRtcVoiceEngine
|
| webrtc::AudioDeviceModule* audio_device_module() override {
|
| return nullptr;
|
| }
|
| + webrtc::voe::TransmitMixer* transmit_mixer() override {
|
| + return transmit_mixer_;
|
| + }
|
| WEBRTC_FUNC(CreateChannel, ()) {
|
| return CreateChannel(webrtc::VoEBase::ChannelConfig());
|
| }
|
| @@ -233,98 +240,6 @@ class FakeWebRtcVoiceEngine
|
| WEBRTC_STUB(SetOutputVolumePan, (int channel, float left, float right));
|
| WEBRTC_STUB(GetOutputVolumePan, (int channel, float& left, float& right));
|
|
|
| - // webrtc::VoEAudioProcessing
|
| - WEBRTC_FUNC(SetNsStatus, (bool enable, webrtc::NsModes mode)) {
|
| - ns_enabled_ = enable;
|
| - ns_mode_ = mode;
|
| - return 0;
|
| - }
|
| - WEBRTC_FUNC(GetNsStatus, (bool& enabled, webrtc::NsModes& mode)) {
|
| - enabled = ns_enabled_;
|
| - mode = ns_mode_;
|
| - return 0;
|
| - }
|
| - WEBRTC_FUNC(SetAgcStatus, (bool enable, webrtc::AgcModes mode)) {
|
| - agc_enabled_ = enable;
|
| - agc_mode_ = mode;
|
| - return 0;
|
| - }
|
| - WEBRTC_FUNC(GetAgcStatus, (bool& enabled, webrtc::AgcModes& mode)) {
|
| - enabled = agc_enabled_;
|
| - mode = agc_mode_;
|
| - return 0;
|
| - }
|
| - WEBRTC_FUNC(SetAgcConfig, (webrtc::AgcConfig config)) {
|
| - agc_config_ = config;
|
| - return 0;
|
| - }
|
| - WEBRTC_FUNC(GetAgcConfig, (webrtc::AgcConfig& config)) {
|
| - config = agc_config_;
|
| - return 0;
|
| - }
|
| - WEBRTC_FUNC(SetEcStatus, (bool enable, webrtc::EcModes mode)) {
|
| - ec_enabled_ = enable;
|
| - ec_mode_ = mode;
|
| - return 0;
|
| - }
|
| - WEBRTC_FUNC(GetEcStatus, (bool& enabled, webrtc::EcModes& mode)) {
|
| - enabled = ec_enabled_;
|
| - mode = ec_mode_;
|
| - return 0;
|
| - }
|
| - WEBRTC_STUB(EnableDriftCompensation, (bool enable))
|
| - WEBRTC_BOOL_STUB(DriftCompensationEnabled, ())
|
| - WEBRTC_VOID_STUB(SetDelayOffsetMs, (int offset))
|
| - WEBRTC_STUB(DelayOffsetMs, ());
|
| - WEBRTC_FUNC(SetAecmMode, (webrtc::AecmModes mode, bool enableCNG)) {
|
| - aecm_mode_ = mode;
|
| - cng_enabled_ = enableCNG;
|
| - return 0;
|
| - }
|
| - WEBRTC_FUNC(GetAecmMode, (webrtc::AecmModes& mode, bool& enabledCNG)) {
|
| - mode = aecm_mode_;
|
| - enabledCNG = cng_enabled_;
|
| - return 0;
|
| - }
|
| - WEBRTC_STUB(VoiceActivityIndicator, (int channel));
|
| - WEBRTC_FUNC(SetEcMetricsStatus, (bool enable)) {
|
| - ec_metrics_enabled_ = enable;
|
| - return 0;
|
| - }
|
| - WEBRTC_STUB(GetEcMetricsStatus, (bool& enabled));
|
| - 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;
|
| - }
|
| - WEBRTC_FUNC(GetTypingDetectionStatus, (bool& enabled)) {
|
| - enabled = typing_detection_enabled_;
|
| - return 0;
|
| - }
|
| - WEBRTC_STUB(TimeSinceLastTyping, (int& seconds));
|
| - WEBRTC_STUB(SetTypingDetectionParameters, (int timeWindow,
|
| - int costPerTyping,
|
| - int reportingThreshold,
|
| - int penaltyDecay,
|
| - int typeEventDelay));
|
| - int EnableHighPassFilter(bool enable) override {
|
| - highpass_filter_enabled_ = enable;
|
| - return 0;
|
| - }
|
| - bool IsHighPassFilterEnabled() override {
|
| - return highpass_filter_enabled_;
|
| - }
|
| - bool IsStereoChannelSwappingEnabled() override {
|
| - return stereo_swapping_enabled_;
|
| - }
|
| - void EnableStereoChannelSwapping(bool enable) override {
|
| - stereo_swapping_enabled_ = enable;
|
| - }
|
| size_t GetNetEqCapacity() const {
|
| auto ch = channels_.find(last_channel_);
|
| RTC_DCHECK(ch != channels_.end());
|
| @@ -341,20 +256,8 @@ class FakeWebRtcVoiceEngine
|
| int last_channel_ = -1;
|
| std::map<int, Channel*> channels_;
|
| bool fail_create_channel_ = false;
|
| - bool ec_enabled_ = false;
|
| - bool ec_metrics_enabled_ = false;
|
| - bool cng_enabled_ = false;
|
| - bool ns_enabled_ = false;
|
| - bool agc_enabled_ = false;
|
| - bool highpass_filter_enabled_ = false;
|
| - bool stereo_swapping_enabled_ = false;
|
| - bool typing_detection_enabled_ = false;
|
| - webrtc::EcModes ec_mode_ = webrtc::kEcDefault;
|
| - webrtc::AecmModes aecm_mode_ = webrtc::kAecmSpeakerphone;
|
| - webrtc::NsModes ns_mode_ = webrtc::kNsDefault;
|
| - webrtc::AgcModes agc_mode_ = webrtc::kAgcDefault;
|
| - webrtc::AgcConfig agc_config_;
|
| webrtc::AudioProcessing* apm_ = nullptr;
|
| + webrtc::voe::TransmitMixer* transmit_mixer_ = nullptr;
|
|
|
| RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(FakeWebRtcVoiceEngine);
|
| };
|
|
|