Contact emails
Spec
https://w3c.github.io/mediacapture-main/
Tag review:https://github.com/w3ctag/spec-reviews/issues/57
Summary
Chromium currently supports two different syntaxes for specifying video and audio constraints for the getUserMedia function. The old syntax has support for one set of constraints, including several nonstandard ones, and the new syntax has support for a different set of constraints, all of which are standardized. The new syntax gives developers more flexibility to control how their application will work, but the old syntax provides access to many more features. The intersection between the two sets is not empty, but neither set is a superset of the other.
This intent covers allowing the new syntax to support all the constraints supported by the old syntax.
Motivation
There are several features in Chromium that are available through nonstandard constraints (often prefixed by "goog" or "chrome"). By forcing developers to use the old syntax to access these, we are depriving them of the benefits of using the new syntax. To make matters worse, neither set of constraints is a superset of the other. For example, it is currently impossible for a developer to use the facingMode constraint to select front/back camera, and at the same time apply noise reduction to the resulting video track by using the googNoiseReduction constraint.
Ideally, we would like all constraints to be standardized and to support only the standard syntax, but the reality is that many applications take advantage of the nonstandard constraints and it is probably better to let those applications use the new syntax, so that we can start the process of deprecating the old syntax.
Note that this intent largely amounts to adding the following fields to the MediaTrackConstraintSet and MediaTrackSupportedConstraints dictionaries:
Audio and video
ConstraintDOMString chromeMediaSource
Video only
ConstraintLong googPowerLineFrequency
ConstraintBool googNoiseReduction
Audio only:
ConstraintBool chromeRenderToAssociatedSink
ConstraintBool googAutoGainControl
ConstraintBool googExperimentalAutoGainControl
ConstraintBool googNoiseSuppression
ConstraintBool googExperimentalNoiseSuppression
ConstraintBool googHighpassFilter
ConstraintBool googTypingNoiseDetection
ConstraintBool googBeamforming
ConstraintBool googArrayGeometry
ConstraintBool googAudioMirroring
Note: in MediaTrackSupportedConstraints the fields are of type bool.
Our plan is to first add support for video constraints, for which spec-compliant algorithm support exists; and add support for audio constraints when the corresponding spec-compliant algorithm is supported.
Interoperability and Compatibility Risk
This intent does not improve or worsen interoperability with other browsers. Applications that use nonstandard constraints can continue to do so with the old syntax. Migrating those uses to the new syntax may actually improve interoperability since all other major engines that support getUserMedia are committed to supporting the standard syntax, while not all of them (e.g., Edge) support the old syntax.
If an application tries to use an unsupported constraint (standard or not) on any browser with the new syntax, the unsupported constraint would just be ignored.
A polyfill like adapter.js may be used to map nonstandard constraints across browsers. Note that Firefox supports nonstandard prefixed constraints such as mozNoiseSupression and mozAutoGainControl.
In terms of compatibility with existing applications, this change does not introduce any additional risk since such applications will have the same existing support regardless of whether this feature ships or not.
Ongoing technical constraints
None.
Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
Yes.
OWP launch tracking bug
Link to entry on the feature dashboard
https://www.chromestatus.com/feature/5838698172121088
Requesting approval to ship?
Yes.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
☆PhistucK
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
☆PhistucK
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
I meant if mediacapture-main at some point decides to stop accepting new proposals; a place to house further attempts at standardization.
Again, I don't see this qualifying as web compat, unless we mean keeping the old mandatory/optional syntax around? (I hope not)
> next my upthread list would be googHighpassFilter. Does Firefox have anything like that?No we don't have a constraint like that. Is the intent to be able to disable a high-pass filter feature of a hardware mic? Beyond that, I don't see much use for this since a highpass filter is trivial to do in Web Audio.
FWIW I actually like Chrome's existing approach of inferring intent from the other constraints, like echoCancellation, because people who want raw audio will curse every time we add a new constraint otherwise.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/326e5e1a-fd0e-4e7b-98b2-606993c84e44%40chromium.org.
fitness distance
", where fitness distance is a well-defined algorithm.