New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 793305 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 1
Type: Bug



Sign in to add a comment

The coupling render delay buffer scheme in AEC3 may cause end up in a noncausal state

Project Member Reported by peah@chromium.org, Dec 8 2017

Issue description

The newly modified render delay buffer scheme in AEC3 may in scenarios with audio pipeline issues end up in a noncausal state in which a situation with unrecoverable echo may occur.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Dec 11 2017

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072

commit c59a576c860a2f9cbbeeaac6fb18ced2c5a59072
Author: Per Åhgren <peah@webrtc.org>
Date: Mon Dec 11 21:09:56 2017

Corrections of the render buffering scheme in AEC3 to ensure causality

This CL modifies the refactored render buffering scheme in AEC3
so that:
-A non-causal state can never occur which means that situations with
 nonrecoverable echo should not occur.
-For a stable audio pipeline with a predefined API call jitter,
 render overruns and underruns can never occur.

Bug:  webrtc:8629 , chromium:793305 
Change-Id: I06ba1c368f92db95274090b08475dd02dbb85145
Reviewed-on: https://webrtc-review.googlesource.com/29861
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21215}
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/adaptive_fir_filter_unittest.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/aec3_common.h
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/aec_state_unittest.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/block_processor.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/block_processor_unittest.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/downsampled_render_buffer.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/downsampled_render_buffer.h
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/echo_path_delay_estimator_unittest.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/echo_remover.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/echo_remover.h
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/echo_remover_unittest.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/fft_buffer.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/fft_buffer.h
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/main_filter_update_gain_unittest.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/matched_filter_unittest.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/matrix_buffer.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/matrix_buffer.h
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/mock/mock_echo_remover.h
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/mock/mock_render_delay_buffer.h
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/mock/mock_render_delay_controller.h
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/render_buffer.h
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/render_delay_buffer.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/render_delay_buffer.h
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/render_delay_buffer_unittest.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/render_delay_controller.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/render_delay_controller.h
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/render_delay_controller_unittest.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/render_signal_analyzer_unittest.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/residual_echo_estimator_unittest.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/shadow_filter_update_gain_unittest.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/subtractor_unittest.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/suppression_gain_unittest.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/vector_buffer.cc
[modify] https://crrev.com/c59a576c860a2f9cbbeeaac6fb18ced2c5a59072/modules/audio_processing/aec3/vector_buffer.h

Comment 2 by peah@chromium.org, Jan 8 2018

Labels: M-65
Status: Fixed (was: Assigned)

Sign in to add a comment