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

Unified Diff: webrtc/modules/audio_processing/include/audio_processing.h

Issue 2334583002: Revert of Introduced new scheme for controlling the functionality inside the audio processing module (Closed)
Patch Set: Created 4 years, 3 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
Index: webrtc/modules/audio_processing/include/audio_processing.h
diff --git a/webrtc/modules/audio_processing/include/audio_processing.h b/webrtc/modules/audio_processing/include/audio_processing.h
index 035fa32c7ad22121eb56d832ffc599a5602659d9..44ff7327ffeb849184869c7bfadc921438093821 100644
--- a/webrtc/modules/audio_processing/include/audio_processing.h
+++ b/webrtc/modules/audio_processing/include/audio_processing.h
@@ -91,6 +91,14 @@
bool enabled;
};
+// Enables the adaptive level controller.
+struct LevelControl {
+ LevelControl() : enabled(false) {}
+ explicit LevelControl(bool enabled) : enabled(enabled) {}
+ static const ConfigOptionID identifier = ConfigOptionID::kLevelControl;
+ bool enabled;
+};
+
// Enables delay-agnostic echo cancellation. This feature relies on internally
// estimated delays between the process and reverse streams, thus not relying
// on reported system delays. This configuration only applies to
@@ -197,10 +205,6 @@
// Usage example, omitting error checking:
// AudioProcessing* apm = AudioProcessing::Create(0);
//
-// AudioProcessing::Config config;
-// config.level_controller.enabled = true;
-// apm->ApplyConfig(config)
-//
// apm->high_pass_filter()->Enable(true);
//
// apm->echo_cancellation()->enable_drift_compensation(false);
@@ -240,29 +244,14 @@
//
class AudioProcessing {
public:
- // The struct below constitutes the new parameter scheme for the audio
- // processing. It is being introduced gradually and until it is fully
- // introduced, it is prone to change.
- // TODO(peah): Remove this comment once the new config scheme is fully rolled
- // out.
- //
- // The parameters and behavior of the audio processing module are controlled
- // by changing the default values in the AudioProcessing::Config struct.
- // The config is applied by passing the struct to the ApplyConfig method.
- struct Config {
- struct LevelController {
- bool enabled = false;
- } level_controller;
- };
-
// TODO(mgraczyk): Remove once all methods that use ChannelLayout are gone.
enum ChannelLayout {
kMono,
// Left, right.
kStereo,
- // Mono, keyboard, and mic.
+ // Mono, keyboard mic.
kMonoAndKeyboard,
- // Left, right, keyboard, and mic.
+ // Left, right, keyboard mic.
kStereoAndKeyboard
};
@@ -273,9 +262,9 @@
// be one instance for every incoming stream.
static AudioProcessing* Create();
// Allows passing in an optional configuration at create-time.
- static AudioProcessing* Create(const webrtc::Config& config);
+ static AudioProcessing* Create(const Config& config);
// Only for testing.
- static AudioProcessing* Create(const webrtc::Config& config,
+ static AudioProcessing* Create(const Config& config,
NonlinearBeamformer* beamformer);
virtual ~AudioProcessing() {}
@@ -311,13 +300,9 @@
ChannelLayout output_layout,
ChannelLayout reverse_layout) = 0;
- // TODO(peah): This method is a temporary solution used to take control
- // over the parameters in the audio processing module and is likely to change.
- virtual void ApplyConfig(const Config& config) = 0;
-
// Pass down additional options which don't have explicit setters. This
// ensures the options are applied immediately.
- virtual void SetExtraOptions(const webrtc::Config& config) = 0;
+ virtual void SetExtraOptions(const Config& config) = 0;
// TODO(ajm): Only intended for internal use. Make private and friend the
// necessary classes?

Powered by Google App Engine
This is Rietveld 408576698