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

Side by Side Diff: webrtc/modules/audio_processing/noise_suppression_impl.h

Issue 1654443004: Surface the noise estimate of the NS to be used by other components (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Fix normalization factor Created 4 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 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 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 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #ifndef WEBRTC_MODULES_AUDIO_PROCESSING_NOISE_SUPPRESSION_IMPL_H_ 11 #ifndef WEBRTC_MODULES_AUDIO_PROCESSING_NOISE_SUPPRESSION_IMPL_H_
12 #define WEBRTC_MODULES_AUDIO_PROCESSING_NOISE_SUPPRESSION_IMPL_H_ 12 #define WEBRTC_MODULES_AUDIO_PROCESSING_NOISE_SUPPRESSION_IMPL_H_
13 13
14 #include <vector>
15
14 #include "webrtc/base/constructormagic.h" 16 #include "webrtc/base/constructormagic.h"
15 #include "webrtc/base/criticalsection.h" 17 #include "webrtc/base/criticalsection.h"
16 #include "webrtc/base/scoped_ptr.h" 18 #include "webrtc/base/scoped_ptr.h"
17 #include "webrtc/modules/audio_processing/include/audio_processing.h" 19 #include "webrtc/modules/audio_processing/include/audio_processing.h"
18 20
19 namespace webrtc { 21 namespace webrtc {
20 22
21 class AudioBuffer; 23 class AudioBuffer;
22 24
23 class NoiseSuppressionImpl : public NoiseSuppression { 25 class NoiseSuppressionImpl : public NoiseSuppression {
24 public: 26 public:
25 explicit NoiseSuppressionImpl(rtc::CriticalSection* crit); 27 explicit NoiseSuppressionImpl(rtc::CriticalSection* crit);
26 ~NoiseSuppressionImpl() override; 28 ~NoiseSuppressionImpl() override;
27 29
28 // TODO(peah): Fold into ctor, once public API is removed. 30 // TODO(peah): Fold into ctor, once public API is removed.
29 void Initialize(size_t channels, int sample_rate_hz); 31 void Initialize(size_t channels, int sample_rate_hz);
30 void AnalyzeCaptureAudio(AudioBuffer* audio); 32 void AnalyzeCaptureAudio(AudioBuffer* audio);
31 void ProcessCaptureAudio(AudioBuffer* audio); 33 void ProcessCaptureAudio(AudioBuffer* audio);
32 34
33 // NoiseSuppression implementation. 35 // NoiseSuppression implementation.
34 int Enable(bool enable) override; 36 int Enable(bool enable) override;
35 bool is_enabled() const override; 37 bool is_enabled() const override;
36 int set_level(Level level) override; 38 int set_level(Level level) override;
37 Level level() const override; 39 Level level() const override;
38 float speech_probability() const override; 40 float speech_probability() const override;
41 std::vector<float> NoiseEstimate() override;
39 42
40 private: 43 private:
41 class Suppressor; 44 class Suppressor;
42 rtc::CriticalSection* const crit_; 45 rtc::CriticalSection* const crit_;
43 bool enabled_ GUARDED_BY(crit_) = false; 46 bool enabled_ GUARDED_BY(crit_) = false;
44 Level level_ GUARDED_BY(crit_) = kModerate; 47 Level level_ GUARDED_BY(crit_) = kModerate;
45 size_t channels_ GUARDED_BY(crit_) = 0; 48 size_t channels_ GUARDED_BY(crit_) = 0;
46 int sample_rate_hz_ GUARDED_BY(crit_) = 0; 49 int sample_rate_hz_ GUARDED_BY(crit_) = 0;
47 std::vector<rtc::scoped_ptr<Suppressor>> suppressors_ GUARDED_BY(crit_); 50 std::vector<rtc::scoped_ptr<Suppressor>> suppressors_ GUARDED_BY(crit_);
48 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(NoiseSuppressionImpl); 51 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(NoiseSuppressionImpl);
49 }; 52 };
50 } // namespace webrtc 53 } // namespace webrtc
51 54
52 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_NOISE_SUPPRESSION_IMPL_H_ 55 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_NOISE_SUPPRESSION_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698