OLD | NEW |
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...) Loading... |
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...) Loading... |
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 |
OLD | NEW |