| Index: webrtc/modules/audio_coding/neteq/dsp_helper.cc
|
| diff --git a/webrtc/modules/audio_coding/neteq/dsp_helper.cc b/webrtc/modules/audio_coding/neteq/dsp_helper.cc
|
| index 4188914c86c9bec701c40d92de3ee11be43569bc..32756650942240e65d7f07b5656dc304d6a22ab6 100644
|
| --- a/webrtc/modules/audio_coding/neteq/dsp_helper.cc
|
| +++ b/webrtc/modules/audio_coding/neteq/dsp_helper.cc
|
| @@ -80,6 +80,22 @@ int DspHelper::RampSignal(int16_t* signal,
|
| return RampSignal(signal, length, factor, increment, signal);
|
| }
|
|
|
| +int DspHelper::RampSignal(AudioVector* signal,
|
| + size_t start_index,
|
| + size_t length,
|
| + int factor,
|
| + int increment) {
|
| + int factor_q20 = (factor << 6) + 32;
|
| + // TODO(hlundin): Add 32 to factor_q20 when converting back to Q14?
|
| + for (size_t i = start_index; i < start_index + length; ++i) {
|
| + (*signal)[i] = (factor * (*signal)[i] + 8192) >> 14;
|
| + factor_q20 += increment;
|
| + factor_q20 = std::max(factor_q20, 0); // Never go negative.
|
| + factor = std::min(factor_q20 >> 6, 16384);
|
| + }
|
| + return factor;
|
| +}
|
| +
|
| int DspHelper::RampSignal(AudioMultiVector* signal,
|
| size_t start_index,
|
| size_t length,
|
| @@ -94,7 +110,7 @@ int DspHelper::RampSignal(AudioMultiVector* signal,
|
| // Loop over the channels, starting at the same |factor| each time.
|
| for (size_t channel = 0; channel < signal->Channels(); ++channel) {
|
| end_factor =
|
| - RampSignal(&(*signal)[channel][start_index], length, factor, increment);
|
| + RampSignal(&(*signal)[channel], start_index, length, factor, increment);
|
| }
|
| return end_factor;
|
| }
|
|
|