Adding support for using system loopback as AEC reference behind a flag Run with --enable-features=SystemLoopbackAsAecReference:added_delay_ms/100 This CL introduces SystemLoopbackListener. This class is an implementation of DeviceOutputListener, which is used to provide a reference signal to the AudioProcessor for chrome-wide echo cancellation. Whenever SystemLoopbackListener has at least one listener, it opens a system loopback input stream with a callback that forwards the system audio to all the listeners. There is one SystemLoopbackListener in the whole AudioService, and it is owned by StreamFactory, similar to OutputDeviceMixerManager (which is the existing implementation of DeviceOutputListener, which provides a mix of all output streams for an audio device). This is intended for testing, so the CL leaves out error handling and proper logging for now. We also log the stream as an InputController so that it will show up in media-internals, this should be changed to its own category later. Bug: 412581642 Change-Id: I991c971701b1a0cd840326903ac6a9887a01194d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6432456 Auto-Submit: Fredrik Hernqvist <fhernqvist@google.com> Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Commit-Queue: Fredrik Hernqvist <fhernqvist@google.com> Reviewed-by: Olga Sharonova <olka@chromium.org> Cr-Commit-Position: refs/heads/main@{#1451852}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure.
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.