Intent to Implement: Picking echo canceller for getUserMedia

58 views
Skip to first unread message

os...@chromium.org

unread,
May 23, 2018, 8:14:42 AM5/23/18
to blink-dev

Contact emails

os...@chromium.org, gru...@chromium.org


Explainer

Link


Summary

Extend Chrome's support for system-level echo cancellation on Windows and macOS, including adding a constraint to allow the web application to chose which echo canceler to use.
This new constraint will also be visible in MediaTrackSettings, enabling experiments to correlate performance with implementation. All of this will be put behind an Origin Trial.

This trial is in many ways an extension of the "Experimental support for native AEC" trial initiated a while back. Since we will change the API surface and extend support to the Windows platform, we were asked to start a new trial.

Motivation

For experimental usage, this feature allows browser vendors (such as Chrome) to evaluate the performance of new, experimental echo cancelers in the wild. Letting the web application control which echo canceler is being used allows them a way to easily switch away from a new implementation, were it to prove problematic.


Outside of pure experimentation, the echoCancellationType constraint will allow applications to black list system-level echo cancelers, for example on specific models or when used with specific input devices. Building such a blacklist within each browser would be a terribly slow process, not least due to long release cycles and duplicated effort. An application-level blacklist can be built up communally and be released publicly, e.g. on github. 


Risks

Interoperability and Compatibility

Applications can check MediaTrackSupportedConstraints and/or MediaTrackCapabilities before using this new constraint. If it's unavailable, or has only a limited set of options (e.g. only 'browser' or 'system'), the application can adapt.


Ergonomics

Performance should not be affected.


Activation

Using the new constraint in an experiment, to access the new system-level echo cancelers, is very straightforward.

To get the full benefits of this new functionality, a blacklist/whitelist will have to be created. As mentioned, this can be a communal effort.


Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?

The experimental echo canceler support will only be available on macOS 10.12+ and on Windows. The constraint itself will be available on all platforms. 


Link to entry on the feature dashboard

I'm not sure if this requires a feature just yet. I'll create one if needed.


Requesting approval to ship?

No



Reply all
Reply to author
Forward
0 new messages