From 17342e5092430c3893246077aee3b727298df117 Mon Sep 17 00:00:00 2001 From: "andrew@webrtc.org" Date: Wed, 12 Feb 2014 22:28:31 +0000 Subject: [PATCH] Add a method to inform AudioProcessing that its output will be muted. R=turaj@webrtc.org Review URL: https://webrtc-codereview.appspot.com/8559004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@5538 4adac7df-926f-26a2-2b94-8c16560cd09d --- webrtc/modules/audio_processing/audio_processing_impl.cc | 8 ++++++++ webrtc/modules/audio_processing/audio_processing_impl.h | 3 +++ .../modules/audio_processing/include/audio_processing.h | 7 +++++++ .../audio_processing/include/mock_audio_processing.h | 4 ++++ 4 files changed, 22 insertions(+) diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc index 3ca90a76dd..fd2316caa3 100644 --- a/webrtc/modules/audio_processing/audio_processing_impl.cc +++ b/webrtc/modules/audio_processing/audio_processing_impl.cc @@ -297,6 +297,14 @@ int AudioProcessingImpl::num_output_channels() const { return num_output_channels_; } +void AudioProcessingImpl::set_output_will_be_muted(bool muted) { + output_will_be_muted_ = muted; +} + +bool AudioProcessingImpl::output_will_be_muted() const { + return output_will_be_muted_; +} + int AudioProcessingImpl::MaybeInitializeLocked(int sample_rate_hz, int num_input_channels, int num_output_channels, int num_reverse_channels) { if (sample_rate_hz == sample_rate_hz_ && diff --git a/webrtc/modules/audio_processing/audio_processing_impl.h b/webrtc/modules/audio_processing/audio_processing_impl.h index 3b46ba8ccc..9c1de30aa9 100644 --- a/webrtc/modules/audio_processing/audio_processing_impl.h +++ b/webrtc/modules/audio_processing/audio_processing_impl.h @@ -70,6 +70,8 @@ class AudioProcessingImpl : public AudioProcessing { virtual int num_output_channels() const OVERRIDE; virtual int set_num_reverse_channels(int channels) OVERRIDE; virtual int num_reverse_channels() const OVERRIDE; + virtual void set_output_will_be_muted(bool muted) OVERRIDE; + virtual bool output_will_be_muted() const OVERRIDE; virtual int ProcessStream(AudioFrame* frame) OVERRIDE; virtual int AnalyzeReverseStream(AudioFrame* frame) OVERRIDE; virtual int set_stream_delay_ms(int delay) OVERRIDE; @@ -136,6 +138,7 @@ class AudioProcessingImpl : public AudioProcessing { int num_reverse_channels_; int num_input_channels_; int num_output_channels_; + bool output_will_be_muted_; bool key_pressed_; }; diff --git a/webrtc/modules/audio_processing/include/audio_processing.h b/webrtc/modules/audio_processing/include/audio_processing.h index 82e6e50fc8..d02b30d90b 100644 --- a/webrtc/modules/audio_processing/include/audio_processing.h +++ b/webrtc/modules/audio_processing/include/audio_processing.h @@ -186,6 +186,13 @@ class AudioProcessing : public Module { virtual int set_num_reverse_channels(int channels) = 0; virtual int num_reverse_channels() const = 0; + // Set to true when the output of AudioProcessing will be muted or in some + // other way not used. Ideally, the captured audio would still be processed, + // but some components may change behavior based on this information. + // Default false. + virtual void set_output_will_be_muted(bool muted) = 0; + virtual bool output_will_be_muted() const = 0; + // Processes a 10 ms |frame| of the primary audio stream. On the client-side, // this is the near-end (or captured) audio. // diff --git a/webrtc/modules/audio_processing/include/mock_audio_processing.h b/webrtc/modules/audio_processing/include/mock_audio_processing.h index 9ef790484f..0383448c77 100644 --- a/webrtc/modules/audio_processing/include/mock_audio_processing.h +++ b/webrtc/modules/audio_processing/include/mock_audio_processing.h @@ -201,6 +201,10 @@ class MockAudioProcessing : public AudioProcessing { int(int channels)); MOCK_CONST_METHOD0(num_reverse_channels, int()); + 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_METHOD1(AnalyzeReverseStream,