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

Issue 895338 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Oct 16
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 2
Type: Bug

Blocking:
issue 905083



Sign in to add a comment

AEC3: Delay estimator delays the capture signal

Project Member Reported by gustaf@chromium.org, Oct 15

Issue description

In order to handle call jitter, the delay estimator delays the capture signal by 208 ms (two time the worst assumed jitter).
This comes at the cost of finding the delay (initially and after a delay change) ~200 ms later than without a delayed captured signal.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 15

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

commit 11539f0b29462bfc3e92a4ade65cb295b191cd09
Author: Gustaf Ullberg <gustaf@webrtc.org>
Date: Mon Oct 15 13:31:50 2018

AEC3: Simplify render buffering

This CL simplifies the buffering of render data. Instead of making assumptions
about the worst possible platform, it leverages recent improvements in
the delay estimator to quickly adapt when the conditions change.

Pros:
- No capture delay, delay is found ~200 ms faster.
- Cleaner code that makes the concept of delay more clear.
- Allows for removal of one matched filter because of the jitter headroom
removal.

Cons:
- Delay estimator needs to re-adapt when the call jitter increases.

The code can be deactivated by a kill switch. When the kill switch is
pulled the CL is bit exact.

Bug:  webrtc:9726 , chromium:895338 
Change-Id: Ie2f9c8c5ce5b5a4510b4bdb95db2b970b57cd5d0
Reviewed-on: https://webrtc-review.googlesource.com/c/96920
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Per Ã…hgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25169}
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/api/audio/echo_canceller3_config.h
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/api/audio/echo_canceller3_config_json.cc
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/BUILD.gn
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/aec_state_unittest.cc
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/block_processor.cc
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/block_processor.h
[add] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/block_processor2.cc
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/block_processor_unittest.cc
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/echo_canceller3.cc
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/echo_path_delay_estimator_unittest.cc
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/echo_remover_unittest.cc
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/main_filter_update_gain_unittest.cc
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/matched_filter_unittest.cc
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/render_delay_buffer.h
[add] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/render_delay_buffer2.cc
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/render_delay_buffer_unittest.cc
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/render_delay_controller.h
[add] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/render_delay_controller2.cc
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/render_delay_controller_unittest.cc
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/render_signal_analyzer_unittest.cc
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/residual_echo_estimator_unittest.cc
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/shadow_filter_update_gain_unittest.cc
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/subtractor_unittest.cc
[modify] https://crrev.com/11539f0b29462bfc3e92a4ade65cb295b191cd09/modules/audio_processing/aec3/suppression_gain_unittest.cc

Project Member

Comment 2 by bugdroid1@chromium.org, Oct 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5826ca3ce2a627c12fd2a1c79cb4f8a07365d5f7

commit 5826ca3ce2a627c12fd2a1c79cb4f8a07365d5f7
Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Date: Tue Oct 16 06:08:25 2018

Roll src/third_party/webrtc f7fee39547d8..c9e6b969a452 (42 commits)

https://webrtc.googlesource.com/src.git/+log/f7fee39547d8..c9e6b969a452


git log f7fee39547d8..c9e6b969a452 --date=short --no-merges --format='%ad %ae %s'
2018-10-15 ouj@fb.com Add necessary frameworks to sdk objc audio targets.
2018-10-15 mbonadei@webrtc.org Export symbols needed by the Chromium component build (part 2).
2018-10-15 benwright@webrtc.org Formatting and style guide improvements for opensslstreamadapter.cc
2018-10-15 mbonadei@webrtc.org Revert "Deprecates legacy transport feedback adapter."
2018-10-15 srte@webrtc.org Deprecates legacy transport feedback adapter.
2018-10-15 srte@webrtc.org Removes analyzer dependency on legacy congestion controller.
2018-10-15 niklas.enbom@webrtc.org Revert "Modernize rtc::SSLCertificate"
2018-10-15 eladalon@webrtc.org Fix force_fieldtrials documentation in video_loopback
2018-10-15 srte@webrtc.org Removing forward declarations in paced_sender.h.
2018-10-15 srte@webrtc.org Adds unit test for RTT based backoff.
2018-10-15 srte@webrtc.org Merges ControlHandler and PacerController.
2018-10-15 srte@webrtc.org Moves functionality to TransportFeedbackAdapter.
2018-10-15 ivoc@webrtc.org Stop simulations when a LOG_END event is reached.
2018-10-15 henrik.lundin@webrtc.org NetEq fuzzer: Restrict fuzzer input to 90000 bytes
2018-10-15 ivoc@webrtc.org Make ivoc owner of audio_coding.
2018-10-15 mbonadei@webrtc.org Revert "Reland: Use unique_ptr and ArrayView in SSLFingerprint"
2018-10-15 titovartem@webrtc.org Extract functionality of test_main into separate library.
2018-10-15 ivoc@webrtc.org Add command-line flag for setting the max number of packets in the buffer.
2018-10-15 sprang@webrtc.org Move MockVideoDecoder to api/test.
2018-10-15 gustaf@webrtc.org AEC3: Simplify render buffering
2018-10-15 srte@webrtc.org Moves rtc::SentPacket to separate target.
2018-10-15 crodbro@webrtc.org New method for precise packet reception time measurement.
2018-10-15 asapersson@webrtc.org Add field trial to disable unsignalled video.
2018-10-15 ilnik@webrtc.org Fix FakeEncoder to produce correct bitrate for several temporal layers
2018-10-15 ssilkin@webrtc.org Set frame duration per spatial layer.
2018-10-15 kron@webrtc.org Refactor of extmap-allow-mixed in SessionDescription
2018-10-15 phoglund@webrtc.org Delete force_mic_volume_max.
2018-10-15 jakobi@webrtc.org Add field trials for configuring Opus encoder packet loss rate.
2018-10-15 danilchap@webrtc.org in RtpPacketizers separate case 'frame fits into single packet'.
2018-10-15 asapersson@webrtc.org Add field trial for normalized simulcast size.
2018-10-15 mbonadei@webrtc.org Remove ios32_sim_ios9_dbg from CQ.
2018-10-15 oprypin@webrtc.org cq: explicitly mark presubmit tryjob as not re-usable in CQ.
2018-10-15 mbonadei@webrtc.org Remove rtc_base/Dummy.java.
2018-10-15 chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com Roll chromium_revision 03013c95df..0df2607f98 (599460:599562)
2018-10-14 oprypin@webrtc.org Revert "Propagate media transport to media channel."
2018-10-13 chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com Roll chromium_revision 3b54b6aa8b..03013c95df (599343:599460)
2018-10-12 sukhanov@google.com Propagate media transport to media channel.
2018-10-12 chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com Roll chromium_revision c12ec9eedc..3b54b6aa8b (599188:599343)
2018-10-12 steveanton@webrtc.org Modernize rtc::SSLCertificate
2018-10-12 steveanton@webrtc.org Reland: Use unique_ptr and ArrayView in SSLFingerprint
2018-10-12 benwright@webrtc.org Removes backwards compatability CryptoOptions support.
2018-10-12 terelius@webrtc.org Move expectations from eventlog unittests to helper functions.


Created with:
  gclient setdep -r src/third_party/webrtc@c9e6b969a452

The AutoRoll server is located here: https://autoroll.skia.org/r/webrtc-chromium-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=luci.chromium.try:linux_chromium_archive_rel_ng;luci.chromium.try:mac_chromium_archive_rel_ng

BUG=chromium:None,chromium:895082,chromium:None,chromium:895338,chromium:none,chromium:880074,chromium:none,chromium:893955,chromium:None,chromium:None,chromium:None
TBR=webrtc-chromium-sheriffs-robots@google.com

Change-Id: I91bb7f65d2d749ab95ddcc51e5391973e6c6deca
Reviewed-on: https://chromium-review.googlesource.com/c/1282323
Reviewed-by: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#599886}
[modify] https://crrev.com/5826ca3ce2a627c12fd2a1c79cb4f8a07365d5f7/DEPS

Status: Fixed (was: Started)
Blocking: 905083
Cc: huib@chromium.org hlundin@chromium.org peah@chromium.org
Labels: Merge-Request-71
We kindly ask for approval for merging this CL to M71.
This CL has been verified to fix a P1 issue (chromium:905083).

The code is considered stable and well tested. It has been running in Canary since October 15th.
It can be disabled remotely in the unlikely event that it would be causing issues.

The CL we would like to merge:
https://webrtc-review.googlesource.com/c/src/+/96920


Project Member

Comment 5 by sheriffbot@chromium.org, Nov 15

Labels: -Merge-Request-71 Hotlist-Merge-Review Merge-Review-71
This bug requires manual review: DEPS changes referenced in bugdroid comments.
Please contact the milestone owner if you have questions.
Owners: benmason@(Android), kariahda@(iOS), kbleicher@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Merge-Review-71 Merge-Approved-71
Approving merge to M71 branch 3578 based on comment #4. Please merge ASAP. Thank you.
Labels: -Merge-Approved-71 Merge-Merged
Merge done. Thanks.

Labels: -Merge-Merged Merge-Merged-71
Pls add merge cl link here.
Thank you peah@.

Sign in to add a comment