Corrected the delay agnostic AEC behavior during periods of silent farend signal.

Added conditional updating of the statistics and the delay estimate so that
updates are only done when the farend is non-stationary.

The reason for this is that all the values that go into the updating of the
statistics, and that in turn are also used to update the delay, are frozen
when the farend signal is non-stationary. Therefore, when the farend signal
is silent (stationary), the last estimates present before the silent (stationary)
period began are used to continue to update the statistics. This is a problem as
the updating is done in a manner that assumes that the estimates continue
to be updated.

This CL conditions the updating based on stationarity instead of silence
as both are treated in the same manner in the delay agnostic AEC.
This makes sense theoretically as the delay agnostic AEC operates on
analyzing power deviations (in bands) from a slowly updated average power and
therefore for a stationary signal will have no such deviations to base its analysis
on.

BUG=webrtc:5875, chromium:576624

NOTRY=True

Review-Url: https://codereview.webrtc.org/1967033002
Cr-Commit-Position: refs/heads/master@{#12700}
This commit is contained in:
peah
2016-05-12 05:08:45 -07:00
committed by Commit bot
parent 50b5c3be84
commit b1fc54d33e
3 changed files with 18 additions and 3 deletions