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

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: 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 /* 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 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 117
118 RenderDelayControllerImpl::RenderDelayControllerImpl( 118 RenderDelayControllerImpl::RenderDelayControllerImpl(
119 int sample_rate_hz, 119 int sample_rate_hz,
120 const RenderDelayBuffer& render_delay_buffer) 120 const RenderDelayBuffer& render_delay_buffer)
121 : data_dumper_( 121 : data_dumper_(
122 new ApmDataDumper(rtc::AtomicOps::Increment(&instance_count_))), 122 new ApmDataDumper(rtc::AtomicOps::Increment(&instance_count_))),
123 max_delay_(render_delay_buffer.MaxDelay()), 123 max_delay_(render_delay_buffer.MaxDelay()),
124 delay_(render_delay_buffer.Delay()), 124 delay_(render_delay_buffer.Delay()),
125 render_buffer_(render_delay_buffer.MaxApiJitter() + 1), 125 render_buffer_(render_delay_buffer.MaxApiJitter() + 1),
126 delay_estimator_(data_dumper_.get(), sample_rate_hz) { 126 delay_estimator_(data_dumper_.get(), sample_rate_hz) {
127 RTC_DCHECK(sample_rate_hz == 8000 || sample_rate_hz == 16000 || 127 RTC_DCHECK(ValidFullBandRate(sample_rate_hz));
128 sample_rate_hz == 32000 || sample_rate_hz == 48000);
129 } 128 }
130 129
131 RenderDelayControllerImpl::~RenderDelayControllerImpl() = default; 130 RenderDelayControllerImpl::~RenderDelayControllerImpl() = default;
132 131
133 size_t RenderDelayControllerImpl::GetDelay( 132 size_t RenderDelayControllerImpl::GetDelay(
134 rtc::ArrayView<const float> capture) { 133 rtc::ArrayView<const float> capture) {
135 RTC_DCHECK_EQ(kBlockSize, capture.size()); 134 RTC_DCHECK_EQ(kBlockSize, capture.size());
136 if (render_buffer_.Size() == 0) { 135 if (render_buffer_.Size() == 0) {
137 return delay_; 136 return delay_;
138 } 137 }
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 173
175 } // namespace 174 } // namespace
176 175
177 RenderDelayController* RenderDelayController::Create( 176 RenderDelayController* RenderDelayController::Create(
178 int sample_rate_hz, 177 int sample_rate_hz,
179 const RenderDelayBuffer& render_delay_buffer) { 178 const RenderDelayBuffer& render_delay_buffer) {
180 return new RenderDelayControllerImpl(sample_rate_hz, render_delay_buffer); 179 return new RenderDelayControllerImpl(sample_rate_hz, render_delay_buffer);
181 } 180 }
182 181
183 } // namespace webrtc 182 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698