| Index: webrtc/modules/audio_processing/intelligibility/intelligibility_utils.cc
|
| diff --git a/webrtc/modules/audio_processing/intelligibility/intelligibility_utils.cc b/webrtc/modules/audio_processing/intelligibility/intelligibility_utils.cc
|
| index 6e641a23325984bee6daab921a67c9acc959a489..fa8d1704c6775e31673c07a460d2e835fa5f1a58 100644
|
| --- a/webrtc/modules/audio_processing/intelligibility/intelligibility_utils.cc
|
| +++ b/webrtc/modules/audio_processing/intelligibility/intelligibility_utils.cc
|
| @@ -66,6 +66,27 @@ void GainApplier::Apply(const std::complex<float>* in_block,
|
| }
|
| }
|
|
|
| +DelayBuffer::DelayBuffer(size_t delay, size_t num_channels)
|
| + : buffer_(num_channels, std::vector<float>(delay, 0.f)), read_index_(0u) {}
|
| +
|
| +DelayBuffer::~DelayBuffer() {}
|
| +
|
| +void DelayBuffer::Delay(float* const* data, size_t length) {
|
| + size_t sample_index = read_index_;
|
| + for (size_t i = 0u; i < buffer_.size(); ++i) {
|
| + sample_index = read_index_;
|
| + for (size_t j = 0u; j < length; ++j) {
|
| + float swap = data[i][j];
|
| + data[i][j] = buffer_[i][sample_index];
|
| + buffer_[i][sample_index] = swap;
|
| + if (++sample_index == buffer_.size()) {
|
| + sample_index = 0u;
|
| + }
|
| + }
|
| + }
|
| + read_index_ = sample_index;
|
| +}
|
| +
|
| } // namespace intelligibility
|
|
|
| } // namespace webrtc
|
|
|