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

Side by Side Diff: webrtc/modules/audio_processing/aec3/echo_path_delay_estimator.h

Issue 2644123002: Adding full initial version of delay estimation functionality in echo canceller 3 (Closed)
Patch Set: Created 3 years, 11 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
hlundin-webrtc 2017/02/01 08:30:02 WAT?
peah-webrtc 2017/02/02 14:04:47 Done.
1 /* 2 /*
2 * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. 3 * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
3 * 4 *
4 * Use of this source code is governed by a BSD-style license 5 * 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 * 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 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 8 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 9 * be found in the AUTHORS file in the root of the source tree.
9 */ 10 */
10 11
11 #ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AEC3_ECHO_PATH_DELAY_ESTIMATOR_H_ 12 #ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AEC3_ECHO_PATH_DELAY_ESTIMATOR_H_
12 #define WEBRTC_MODULES_AUDIO_PROCESSING_AEC3_ECHO_PATH_DELAY_ESTIMATOR_H_ 13 #define WEBRTC_MODULES_AUDIO_PROCESSING_AEC3_ECHO_PATH_DELAY_ESTIMATOR_H_
13 14
14 #include <vector> 15 #include <vector>
15 16
16 #include "webrtc/base/constructormagic.h" 17 #include "webrtc/base/constructormagic.h"
17 #include "webrtc/base/optional.h" 18 #include "webrtc/base/optional.h"
19 #include "webrtc/modules/audio_processing/aec3/correlator_lag_aggregator.h"
20 #include "webrtc/modules/audio_processing/aec3/correlator.h"
21 #include "webrtc/modules/audio_processing/aec3/down_sampler_4khz.h"
18 22
19 namespace webrtc { 23 namespace webrtc {
20 24
21 class ApmDataDumper; 25 class ApmDataDumper;
22 26
27 // Estimates the delay of the echo path.
23 class EchoPathDelayEstimator { 28 class EchoPathDelayEstimator {
24 public: 29 public:
25 EchoPathDelayEstimator(ApmDataDumper* data_dumper, int sample_rate_hz); 30 EchoPathDelayEstimator(ApmDataDumper* data_dumper, int sample_rate_hz);
26 ~EchoPathDelayEstimator(); 31 ~EchoPathDelayEstimator();
32
33 // Produce a delay estimate if such is avaliable.
27 rtc::Optional<size_t> EstimateDelay(rtc::ArrayView<const float> render, 34 rtc::Optional<size_t> EstimateDelay(rtc::ArrayView<const float> render,
28 rtc::ArrayView<const float> capture); 35 rtc::ArrayView<const float> capture);
29 36
30 private: 37 private:
38 ApmDataDumper* const data_dumper_;
39 DownSampler4kHz render_down_sampler_;
40 DownSampler4kHz capture_down_sampler_;
41 const int down_sampling_factor_;
42 Correlator correlator_;
43 CorrelatorLagAggregator correlator_lag_aggregator_;
44
31 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(EchoPathDelayEstimator); 45 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(EchoPathDelayEstimator);
32 }; 46 };
33 } // namespace webrtc 47 } // namespace webrtc
34 48
35 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_AEC3_ECHO_PATH_DELAY_ESTIMATOR_H_ 49 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_AEC3_ECHO_PATH_DELAY_ESTIMATOR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698