Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(529)

Unified Diff: webrtc/modules/audio_mixer/audio_mixer_impl.h

Issue 2692333002: Optionally disable APM limiter in AudioMixer. (Closed)
Patch Set: Fix int16_t <-> size_t compilation warnings. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/modules/audio_mixer/BUILD.gn ('k') | webrtc/modules/audio_mixer/audio_mixer_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
};
« no previous file with comments | « webrtc/modules/audio_mixer/BUILD.gn ('k') | webrtc/modules/audio_mixer/audio_mixer_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698