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

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

Issue 1982183002: Pull out the PostFilter to its own NonlinearBeamformer API (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Drop Beamformer Interface Created 4 years, 6 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
(...skipping 13 matching lines...) Expand all
24 #include "webrtc/common.h" 24 #include "webrtc/common.h"
25 #include "webrtc/modules/audio_processing/beamformer/array_util.h" 25 #include "webrtc/modules/audio_processing/beamformer/array_util.h"
26 #include "webrtc/typedefs.h" 26 #include "webrtc/typedefs.h"
27 27
28 namespace webrtc { 28 namespace webrtc {
29 29
30 struct AecCore; 30 struct AecCore;
31 31
32 class AudioFrame; 32 class AudioFrame;
33 33
34 template<typename T> 34 class NonlinearBeamformer;
35 class Beamformer;
36 35
37 class StreamConfig; 36 class StreamConfig;
38 class ProcessingConfig; 37 class ProcessingConfig;
39 38
40 class EchoCancellation; 39 class EchoCancellation;
41 class EchoControlMobile; 40 class EchoControlMobile;
42 class GainControl; 41 class GainControl;
43 class HighPassFilter; 42 class HighPassFilter;
44 class LevelEstimator; 43 class LevelEstimator;
45 class NoiseSuppression; 44 class NoiseSuppression;
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 // Creates an APM instance. Use one instance for every primary audio stream 261 // Creates an APM instance. Use one instance for every primary audio stream
263 // requiring processing. On the client-side, this would typically be one 262 // requiring processing. On the client-side, this would typically be one
264 // instance for the near-end stream, and additional instances for each far-end 263 // instance for the near-end stream, and additional instances for each far-end
265 // stream which requires processing. On the server-side, this would typically 264 // stream which requires processing. On the server-side, this would typically
266 // be one instance for every incoming stream. 265 // be one instance for every incoming stream.
267 static AudioProcessing* Create(); 266 static AudioProcessing* Create();
268 // Allows passing in an optional configuration at create-time. 267 // Allows passing in an optional configuration at create-time.
269 static AudioProcessing* Create(const Config& config); 268 static AudioProcessing* Create(const Config& config);
270 // Only for testing. 269 // Only for testing.
271 static AudioProcessing* Create(const Config& config, 270 static AudioProcessing* Create(const Config& config,
272 Beamformer<float>* beamformer); 271 NonlinearBeamformer* beamformer);
273 virtual ~AudioProcessing() {} 272 virtual ~AudioProcessing() {}
274 273
275 // Initializes internal states, while retaining all user settings. This 274 // Initializes internal states, while retaining all user settings. This
276 // should be called before beginning to process a new audio stream. However, 275 // should be called before beginning to process a new audio stream. However,
277 // it is not necessary to call before processing the first stream after 276 // it is not necessary to call before processing the first stream after
278 // creation. 277 // creation.
279 // 278 //
280 // It is also not necessary to call if the audio parameters (sample 279 // It is also not necessary to call if the audio parameters (sample
281 // rate and number of channels) have changed. Passing updated parameters 280 // rate and number of channels) have changed. Passing updated parameters
282 // directly to |ProcessStream()| and |ProcessReverseStream()| is permissible. 281 // directly to |ProcessStream()| and |ProcessReverseStream()| is permissible.
(...skipping 697 matching lines...) Expand 10 before | Expand all | Expand 10 after
980 // This does not impact the size of frames passed to |ProcessStream()|. 979 // This does not impact the size of frames passed to |ProcessStream()|.
981 virtual int set_frame_size_ms(int size) = 0; 980 virtual int set_frame_size_ms(int size) = 0;
982 virtual int frame_size_ms() const = 0; 981 virtual int frame_size_ms() const = 0;
983 982
984 protected: 983 protected:
985 virtual ~VoiceDetection() {} 984 virtual ~VoiceDetection() {}
986 }; 985 };
987 } // namespace webrtc 986 } // namespace webrtc
988 987
989 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_INCLUDE_AUDIO_PROCESSING_H_ 988 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_INCLUDE_AUDIO_PROCESSING_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698