summaryrefslogtreecommitdiff
path: root/webrtc/modules/audio_processing/agc/agc.h
diff options
context:
space:
mode:
Diffstat (limited to 'webrtc/modules/audio_processing/agc/agc.h')
-rw-r--r--webrtc/modules/audio_processing/agc/agc.h31
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_