New issue
Advanced search Search tips

Issue 717920 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , iOS , All , Chrome , Mac
Pri: 2
Type: Bug



Sign in to add a comment

The WebRTC echo canceller 3 introduces signal artefacts when there are buffering issues

Project Member Reported by peah@chromium.org, May 3 2017

Issue description

When there are buffering issues in the audio pipeline, the echo canceller 3 needs to take an appropriate action to manage to cancel the echoes. For some such issues, that action causes an artificial signal to be added to the microphone signal.
 

Comment 1 by peah@chromium.org, May 3 2017

Status: Assigned (was: Untriaged)
Project Member

Comment 2 by bugdroid1@chromium.org, May 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/debaa442ed0317e215706c8c7d91c880e6bd6051

commit debaa442ed0317e215706c8c7d91c880e6bd6051
Author: peah <peah@webrtc.org>
Date: Wed May 03 12:39:09 2017

Corrected the behavior in AEC3 during buffer overruns and underruns

This CL corrects the behavior in AEC3 during buffer overruns
and underruns in three ways.
1) When there is no render signal available (due to a buffering
 issues, a zero block is inserted instead of the previous render
 block. This avoids the same block being repeatedly inserted when
 there are many back-to-back calls.
2) The internal counters in the main adaptive filter gain are also
 reset when the filter is reset.
3) The internal counters in the shadow adaptive filter gain are
 reset when the filter is reset.

BUG= chromium:717920 , webrtc:7559 

Review-Url: https://codereview.webrtc.org/2862533002
Cr-Commit-Position: refs/heads/master@{#17991}

[modify] https://crrev.com/debaa442ed0317e215706c8c7d91c880e6bd6051/webrtc/modules/audio_processing/aec3/main_filter_update_gain.cc
[modify] https://crrev.com/debaa442ed0317e215706c8c7d91c880e6bd6051/webrtc/modules/audio_processing/aec3/render_delay_buffer.cc
[modify] https://crrev.com/debaa442ed0317e215706c8c7d91c880e6bd6051/webrtc/modules/audio_processing/aec3/shadow_filter_update_gain.cc
[modify] https://crrev.com/debaa442ed0317e215706c8c7d91c880e6bd6051/webrtc/modules/audio_processing/aec3/shadow_filter_update_gain.h
[modify] https://crrev.com/debaa442ed0317e215706c8c7d91c880e6bd6051/webrtc/modules/audio_processing/aec3/subtractor.cc

Project Member

Comment 3 by bugdroid1@chromium.org, May 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/debaa442ed0317e215706c8c7d91c880e6bd6051

commit debaa442ed0317e215706c8c7d91c880e6bd6051
Author: peah <peah@webrtc.org>
Date: Wed May 03 12:39:09 2017

Corrected the behavior in AEC3 during buffer overruns and underruns

This CL corrects the behavior in AEC3 during buffer overruns
and underruns in three ways.
1) When there is no render signal available (due to a buffering
 issues, a zero block is inserted instead of the previous render
 block. This avoids the same block being repeatedly inserted when
 there are many back-to-back calls.
2) The internal counters in the main adaptive filter gain are also
 reset when the filter is reset.
3) The internal counters in the shadow adaptive filter gain are
 reset when the filter is reset.

BUG= chromium:717920 , webrtc:7559 

Review-Url: https://codereview.webrtc.org/2862533002
Cr-Commit-Position: refs/heads/master@{#17991}

[modify] https://crrev.com/debaa442ed0317e215706c8c7d91c880e6bd6051/webrtc/modules/audio_processing/aec3/main_filter_update_gain.cc
[modify] https://crrev.com/debaa442ed0317e215706c8c7d91c880e6bd6051/webrtc/modules/audio_processing/aec3/render_delay_buffer.cc
[modify] https://crrev.com/debaa442ed0317e215706c8c7d91c880e6bd6051/webrtc/modules/audio_processing/aec3/shadow_filter_update_gain.cc
[modify] https://crrev.com/debaa442ed0317e215706c8c7d91c880e6bd6051/webrtc/modules/audio_processing/aec3/shadow_filter_update_gain.h
[modify] https://crrev.com/debaa442ed0317e215706c8c7d91c880e6bd6051/webrtc/modules/audio_processing/aec3/subtractor.cc

Comment 4 by peah@chromium.org, May 3 2017

Labels: Merge-Request-59
Can you please indicate which OS this fix is affecting?

Comment 6 by peah@chromium.org, May 3 2017

Labels: OS-Android OS-Chrome OS-iOS OS-Linux OS-Mac OS-Windows OS-All
The fix affects all OS variants. 
Even though buffering issues may be more or less common in different OS variants, the resulting artefacts happen on all OS versions, and the fix corrects that in all OS versions.
Project Member

Comment 7 by sheriffbot@chromium.org, May 3 2017

Labels: -Merge-Request-59 Hotlist-Merge-Approved Merge-Approved-59
Your change meets the bar and is auto-approved for M59. Please go ahead and merge the CL to branch 3071 manually. Please contact milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), gkihumba@(ChromeOS), Abdul Syed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 8 by bugdroid1@chromium.org, May 4 2017

Labels: merge-merged-59
The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/01b3df3c4dab1e3b2708fe16ddfada56ca9ccfec

commit 01b3df3c4dab1e3b2708fe16ddfada56ca9ccfec
Author: peah <peah@webrtc.org>
Date: Thu May 04 07:03:13 2017

Merge of Corrected the behavior in AEC3 during buffer overruns and underruns

This CL contains a merge of the cl debaa442ed0317e215706c8c7d91c880e6bd6051
into the branch M59.

This CL corrects the behavior in AEC3 during buffer overruns
and underruns in three ways.
1) When there is no render signal available (due to a buffering
 issues, a zero block is inserted instead of the previous render
 block. This avoids the same block being repeatedly inserted when
 there are many back-to-back calls.
2) The internal counters in the main adaptive filter gain are also
 reset when the filter is reset.
3) The internal counters in the shadow adaptive filter gain are
 reset when the filter is reset.

NOTRY=true
NOPRESUBMIT=true
BUG= chromium:717920 , webrtc:7559 

Review-Url: https://codereview.webrtc.org/2862533002
Cr-Commit-Position: refs/heads/master@{#17991}
(cherry picked from commit debaa442ed0317e215706c8c7d91c880e6bd6051)

Review-Url: https://codereview.webrtc.org/2862683002
Cr-Commit-Position: refs/branch-heads/59@{#7}
Cr-Branched-From: 10d095d4f743bc16f8e486e156c48a6d023b32c5-refs/heads/master@{#17657}

[modify] https://crrev.com/01b3df3c4dab1e3b2708fe16ddfada56ca9ccfec/webrtc/modules/audio_processing/aec3/main_filter_update_gain.cc
[modify] https://crrev.com/01b3df3c4dab1e3b2708fe16ddfada56ca9ccfec/webrtc/modules/audio_processing/aec3/render_delay_buffer.cc
[modify] https://crrev.com/01b3df3c4dab1e3b2708fe16ddfada56ca9ccfec/webrtc/modules/audio_processing/aec3/shadow_filter_update_gain.cc
[modify] https://crrev.com/01b3df3c4dab1e3b2708fe16ddfada56ca9ccfec/webrtc/modules/audio_processing/aec3/shadow_filter_update_gain.h
[modify] https://crrev.com/01b3df3c4dab1e3b2708fe16ddfada56ca9ccfec/webrtc/modules/audio_processing/aec3/subtractor.cc

Project Member

Comment 9 by sheriffbot@chromium.org, May 8 2017

This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 10 Deleted

Comment 11 Deleted

Comment 12 by peah@chromium.org, May 9 2017

Closing as the merge is completed.

Sign in to add a comment