[mediacapture-screen-share] Constraint to exclude application audio (echo)

henbos has just created a new issue for https://github.com/w3c/mediacapture-screen-share:

== Constraint to exclude application audio (echo) ==
If I screen share in a presentation that is also a conference with remote participants, and my screen sharing includes audio (e.g. I want to show a media clip as part of the presentation) we have a risk of echo.
- If screen share contains remote participants talking, when this stream arrives at a remote participant for playout, they will hear themselves AND other remote participants twice (once because they are receiving a stream from them directly and once more because of the screen share).
- We can't just throw "echo cancellation" on the problem.

Constraints are currently not allowed to limit the user's choice, and this is generally a good thing; which sources are present are are none of the application's business. However, the application need to be able to constrain the user agent not to include audio from the application that performed the getDisplayMedia() request to avoid echo. Otherwise these applications would end up presenting the user with _false choices_. Options that, if chosen, would seemingly cause "echo bugs".

**Proposal:** `{audio:{excludeApplicationAudio:true}}` limits user agent to provide a stream that does not contain the application audio. Note that this does not say what audio the user agent must provide - the implementation/user is still very much has freedom of choice - it only specifies that a particular audio source must not be present. This constrain can be fulfilled in multiple ways, e.g:
1. Exclude choices from the user. For example, "tab audio" or "window audio" are still valid choices, as long as the "tab" chosen is not the application tab. "System audio" is not a valid choice.
2. "No audio" is a valid choice.
3. Manipulate the audio sources to subtract the application audio.

1 and 2 are easy to implement. 3 is likely infeasible for most platforms, but conceivable. In any case, the application should not have to care about user agent capabilities - as long as the application gets a stream that does not produce echo it is happy.

Please view or discuss this issue at https://github.com/w3c/mediacapture-screen-share/issues/79 using your GitHub account

Received on Wednesday, 3 October 2018 11:48:23 UTC