Line data Source code
1 : /*
2 : * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
3 : *
4 : * Use of this source code is governed by a BSD-style license
5 : * that can be found in the LICENSE file in the root of the source
6 : * tree. An additional intellectual property rights grant can be found
7 : * in the file PATENTS. All contributing project authors may
8 : * be found in the AUTHORS file in the root of the source tree.
9 : */
10 :
11 : #ifndef WEBRTC_MODULES_AUDIO_PROCESSING_LEVEL_CONTROLLER_NOISE_SPECTRUM_ESTIMATOR_H_
12 : #define WEBRTC_MODULES_AUDIO_PROCESSING_LEVEL_CONTROLLER_NOISE_SPECTRUM_ESTIMATOR_H_
13 :
14 : #include "webrtc/base/array_view.h"
15 : #include "webrtc/base/constructormagic.h"
16 :
17 : namespace webrtc {
18 :
19 : class ApmDataDumper;
20 :
21 : class NoiseSpectrumEstimator {
22 : public:
23 : explicit NoiseSpectrumEstimator(ApmDataDumper* data_dumper);
24 : void Initialize();
25 : void Update(rtc::ArrayView<const float> spectrum, bool first_update);
26 :
27 0 : rtc::ArrayView<const float> GetNoiseSpectrum() const {
28 0 : return rtc::ArrayView<const float>(noise_spectrum_);
29 : }
30 :
31 : private:
32 : ApmDataDumper* data_dumper_;
33 : float noise_spectrum_[65];
34 :
35 : RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(NoiseSpectrumEstimator);
36 : };
37 :
38 : } // namespace webrtc
39 :
40 : #endif // WEBRTC_MODULES_AUDIO_PROCESSING_LEVEL_CONTROLLER_NOISE_SPECTRUM_ESTIMATOR_H_
|