| 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);
|
| };
|
|
|