Index: webrtc/modules/audio_mixer/audio_mixer_impl.h |
diff --git a/webrtc/modules/audio_mixer/audio_mixer_impl.h b/webrtc/modules/audio_mixer/audio_mixer_impl.h |
index 63bc7404d4f822119caaf3f3ed626a2ca1abb31f..8e6144b195783b5825dc621a953bb66953f69db3 100644 |
--- a/webrtc/modules/audio_mixer/audio_mixer_impl.h |
+++ b/webrtc/modules/audio_mixer/audio_mixer_impl.h |
@@ -18,6 +18,7 @@ |
#include "webrtc/base/scoped_ref_ptr.h" |
#include "webrtc/base/thread_annotations.h" |
#include "webrtc/base/race_checker.h" |
+#include "webrtc/modules/audio_mixer/frame_combiner.h" |
#include "webrtc/modules/audio_mixer/output_rate_calculator.h" |
#include "webrtc/modules/audio_processing/include/audio_processing.h" |
#include "webrtc/modules/include/module_common_types.h" |
@@ -48,9 +49,18 @@ class AudioMixerImpl : public AudioMixer { |
static const int kMaximumAmountOfMixedAudioSources = 3; |
static rtc::scoped_refptr<AudioMixerImpl> Create(); |
- static rtc::scoped_refptr<AudioMixerImpl> CreateWithOutputRateCalculator( |
+ |
+ // TODO(aleloi): remove this when dependencies have updated to |
+ // use Create..AndLimiter instead. See bugs.webrtc.org/7167. |
+ RTC_DEPRECATED static rtc::scoped_refptr<AudioMixerImpl> |
+ CreateWithOutputRateCalculator( |
std::unique_ptr<OutputRateCalculator> output_rate_calculator); |
+ static rtc::scoped_refptr<AudioMixerImpl> |
+ CreateWithOutputRateCalculatorAndLimiter( |
+ std::unique_ptr<OutputRateCalculator> output_rate_calculator, |
+ bool use_limiter); |
+ |
~AudioMixerImpl() override; |
// AudioMixer functions |
@@ -66,8 +76,8 @@ class AudioMixerImpl : public AudioMixer { |
bool GetAudioSourceMixabilityStatusForTest(Source* audio_source) const; |
protected: |
- AudioMixerImpl(std::unique_ptr<AudioProcessing> limiter, |
- std::unique_ptr<OutputRateCalculator> output_rate_calculator); |
+ AudioMixerImpl(std::unique_ptr<OutputRateCalculator> output_rate_calculator, |
+ bool use_limiter); |
private: |
// Set mixing frequency through OutputFrequencyCalculator. |
@@ -87,8 +97,6 @@ class AudioMixerImpl : public AudioMixer { |
bool RemoveAudioSourceFromList(Source* remove_audio_source, |
SourceStatusList* audio_source_list) const; |
- bool LimitMixedAudio(AudioFrame* mixed_audio) const; |
- |
// The critical section lock guards audio source insertion and |
// removal, which can be done from any thread. The race checker |
// checks that mixing is done sequentially. |
@@ -103,14 +111,8 @@ class AudioMixerImpl : public AudioMixer { |
// List of all audio sources. Note all lists are disjunct |
SourceStatusList audio_source_list_ GUARDED_BY(crit_); // May be mixed. |
- // Determines if we will use a limiter for clipping protection during |
- // mixing. |
- bool use_limiter_ GUARDED_BY(race_checker_); |
- |
- uint32_t time_stamp_ GUARDED_BY(race_checker_); |
- |
- // Used for inhibiting saturation in mixing. |
- std::unique_ptr<AudioProcessing> limiter_ GUARDED_BY(race_checker_); |
+ // Component that handles actual adding of audio frames. |
+ FrameCombiner frame_combiner_ GUARDED_BY(race_checker_); |
RTC_DISALLOW_COPY_AND_ASSIGN(AudioMixerImpl); |
}; |