diff options
Diffstat (limited to 'webrtc/modules/audio_processing/agc/agc.h')
-rw-r--r-- | webrtc/modules/audio_processing/agc/agc.h | 31 |
1 files changed, 12 insertions, 19 deletions
diff --git a/webrtc/modules/audio_processing/agc/agc.h b/webrtc/modules/audio_processing/agc/agc.h index 08c287f..b9bd5ea 100644 --- a/webrtc/modules/audio_processing/agc/agc.h +++ b/webrtc/modules/audio_processing/agc/agc.h @@ -8,29 +8,25 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AGC_AGC_H_ -#define WEBRTC_MODULES_AUDIO_PROCESSING_AGC_AGC_H_ +#ifndef MODULES_AUDIO_PROCESSING_AGC_AGC_H_ +#define MODULES_AUDIO_PROCESSING_AGC_AGC_H_ -#include "webrtc/base/scoped_ptr.h" -#include "webrtc/modules/audio_processing/vad/voice_activity_detector.h" -#include "webrtc/typedefs.h" +#include <memory> + +#include "modules/audio_processing/vad/voice_activity_detector.h" namespace webrtc { -class AudioFrame; -class Histogram; +class LoudnessHistogram; class Agc { public: Agc(); virtual ~Agc(); - // Returns the proportion of samples in the buffer which are at full-scale - // (and presumably clipped). - virtual float AnalyzePreproc(const int16_t* audio, size_t length); // |audio| must be mono; in a multi-channel stream, provide the first (usually // left) channel. - virtual int Process(const int16_t* audio, size_t length, int sample_rate_hz); + virtual void Process(const int16_t* audio, size_t length, int sample_rate_hz); // Retrieves the difference between the target RMS level and the current // signal RMS level in dB. Returns true if an update is available and false @@ -39,20 +35,17 @@ class Agc { virtual void Reset(); virtual int set_target_level_dbfs(int level); - virtual int target_level_dbfs() const { return target_level_dbfs_; } - - virtual float voice_probability() const { - return vad_.last_voice_probability(); - } + virtual int target_level_dbfs() const; + virtual float voice_probability() const; private: double target_level_loudness_; int target_level_dbfs_; - rtc::scoped_ptr<Histogram> histogram_; - rtc::scoped_ptr<Histogram> inactive_histogram_; + std::unique_ptr<LoudnessHistogram> histogram_; + std::unique_ptr<LoudnessHistogram> inactive_histogram_; VoiceActivityDetector vad_; }; } // namespace webrtc -#endif // WEBRTC_MODULES_AUDIO_PROCESSING_AGC_AGC_H_ +#endif // MODULES_AUDIO_PROCESSING_AGC_AGC_H_ |