Chromium Code Reviews

Side by Side Diff: webrtc/modules/audio_processing/aec3/render_delay_controller.cc

Issue 2644123002: Adding full initial version of delay estimation functionality in echo canceller 3 (Closed)
Patch Set: Rebase Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2017 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 #include "webrtc/modules/audio_processing/aec3/render_delay_controller.h" 10 #include "webrtc/modules/audio_processing/aec3/render_delay_controller.h"
(...skipping 97 matching lines...)
108 int RenderDelayControllerImpl::instance_count_ = 0; 108 int RenderDelayControllerImpl::instance_count_ = 0;
109 109
110 RenderDelayControllerImpl::RenderDelayControllerImpl( 110 RenderDelayControllerImpl::RenderDelayControllerImpl(
111 int sample_rate_hz, 111 int sample_rate_hz,
112 const RenderDelayBuffer& render_delay_buffer) 112 const RenderDelayBuffer& render_delay_buffer)
113 : data_dumper_( 113 : data_dumper_(
114 new ApmDataDumper(rtc::AtomicOps::Increment(&instance_count_))), 114 new ApmDataDumper(rtc::AtomicOps::Increment(&instance_count_))),
115 max_delay_(render_delay_buffer.MaxDelay()), 115 max_delay_(render_delay_buffer.MaxDelay()),
116 delay_(render_delay_buffer.Delay()), 116 delay_(render_delay_buffer.Delay()),
117 render_buffer_(render_delay_buffer.MaxApiJitter() + 1), 117 render_buffer_(render_delay_buffer.MaxApiJitter() + 1),
118 delay_estimator_(data_dumper_.get(), sample_rate_hz) { 118 delay_estimator_(data_dumper_.get()) {
119 RTC_DCHECK(sample_rate_hz == 8000 || sample_rate_hz == 16000 || 119 RTC_DCHECK(ValidFullBandRate(sample_rate_hz));
120 sample_rate_hz == 32000 || sample_rate_hz == 48000);
121 } 120 }
122 121
123 RenderDelayControllerImpl::~RenderDelayControllerImpl() = default; 122 RenderDelayControllerImpl::~RenderDelayControllerImpl() = default;
124 123
125 size_t RenderDelayControllerImpl::GetDelay( 124 size_t RenderDelayControllerImpl::GetDelay(
126 rtc::ArrayView<const float> capture) { 125 rtc::ArrayView<const float> capture) {
127 RTC_DCHECK_EQ(kBlockSize, capture.size()); 126 RTC_DCHECK_EQ(kBlockSize, capture.size());
128 if (render_buffer_.Size() == 0) { 127 if (render_buffer_.Size() == 0) {
129 return delay_; 128 return delay_;
130 } 129 }
(...skipping 35 matching lines...)
166 165
167 } // namespace 166 } // namespace
168 167
169 RenderDelayController* RenderDelayController::Create( 168 RenderDelayController* RenderDelayController::Create(
170 int sample_rate_hz, 169 int sample_rate_hz,
171 const RenderDelayBuffer& render_delay_buffer) { 170 const RenderDelayBuffer& render_delay_buffer) {
172 return new RenderDelayControllerImpl(sample_rate_hz, render_delay_buffer); 171 return new RenderDelayControllerImpl(sample_rate_hz, render_delay_buffer);
173 } 172 }
174 173
175 } // namespace webrtc 174 } // namespace webrtc
OLDNEW

Powered by Google App Engine