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 af83367fc4ab10057c351c2d1a002220e5a940cc..7d69f7fba4cd91fe108818d26b9fbb7b785b10b2 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/output_rate_calculator.h" |
#include "webrtc/modules/audio_processing/include/audio_processing.h" |
#include "webrtc/modules/include/module_common_types.h" |
#include "webrtc/system_wrappers/include/critical_section_wrapper.h" |
@@ -45,9 +46,10 @@ class AudioMixerImpl : public AudioMixer { |
// AudioProcessing only accepts 10 ms frames. |
static const int kFrameDurationInMs = 10; |
static const int kMaximumAmountOfMixedAudioSources = 3; |
- static const int kDefaultFrequency = 48000; |
static rtc::scoped_refptr<AudioMixerImpl> Create(); |
+ static rtc::scoped_refptr<AudioMixerImpl> CreateWithOutputRateCalculator( |
+ std::unique_ptr<OutputRateCalculator> output_rate_calculator); |
~AudioMixerImpl() override; |
@@ -64,11 +66,13 @@ class AudioMixerImpl : public AudioMixer { |
bool GetAudioSourceMixabilityStatusForTest(Source* audio_source) const; |
protected: |
- explicit AudioMixerImpl(std::unique_ptr<AudioProcessing> limiter); |
+ AudioMixerImpl(std::unique_ptr<AudioProcessing> limiter, |
+ std::unique_ptr<OutputRateCalculator> output_rate_calculator); |
private: |
- // Set/get mix frequency |
- void SetOutputFrequency(int frequency); |
+ // Set mixing frequency through OutputFrequencyCalculator. |
+ void CalculateOutputFrequency(); |
+ // Get mixing frequency. |
int OutputFrequency() const; |
// Compute what audio sources to mix from audio_source_list_. Ramp |
@@ -91,6 +95,7 @@ class AudioMixerImpl : public AudioMixer { |
rtc::CriticalSection crit_; |
rtc::RaceChecker race_checker_; |
+ std::unique_ptr<OutputRateCalculator> output_rate_calculator_; |
// The current sample frequency and sample size when mixing. |
int output_frequency_ GUARDED_BY(race_checker_); |
size_t sample_size_ GUARDED_BY(race_checker_); |