Add new fast mode for NetEq's Accelerate operation

This change instroduces a mode where the Accelerate operation will be
more aggressive. When enabled, it will allow acceleration at lower
correlation levels, and possibly remove multiple pitch periods at
once.

The feature is enabled through NetEq::Config, and is off by
default. This means that bit-exactness tests are currently not
affected.

A unit test was added for the Accelerate class, with and without fast
mode enabled.

BUG=4691
R=minyue@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/50039004

Cr-Commit-Position: refs/heads/master@{#9295}
This commit is contained in:
Henrik Lundin
2015-05-27 14:33:29 +02:00
parent cbe408aa11
commit cf808d2366
13 changed files with 172 additions and 58 deletions

View File

@ -80,7 +80,8 @@ class NetEq {
// |max_delay_ms| has the same effect as calling SetMaximumDelay().
max_delay_ms(2000),
background_noise_mode(kBgnOff),
playout_mode(kPlayoutOn) {}
playout_mode(kPlayoutOn),
enable_fast_accelerate(false) {}
std::string ToString() const;
@ -90,6 +91,7 @@ class NetEq {
int max_delay_ms;
BackgroundNoiseMode background_noise_mode;
NetEqPlayoutMode playout_mode;
bool enable_fast_accelerate;
};
enum ReturnCodes {