[mediacapture-image] The (bool or ConstrainDouble) case for pan/tilt/zoom is unclear (#225)

guidou has just created a new issue for https://github.com/w3c/mediacapture-image:

== The (bool or ConstrainDouble) case for pan/tilt/zoom is unclear ==
It says true is mapped to an "empty" constraint and false means null.
What is the difference here?
I am assuming empty constraint here means unconstrained (i.e., same as not explicitly given constraint) and null means the same as saying pan: null. But this means unconstrained too, so both  true and false appear to mean the same thing. 
It looks simpler to just leave it unconstrained.

Note that the constraints model is not based on setting values to properties.
A constraint is a set of values for a property (where unconstrained means all possible values/similar to an universal set), a device capability is another set of values, and constraints processing is basically finding the intersection between these two sets.
If the intersection is empty, the request is rejected if it's a basic constraint, or ignored if it's an advanced constraint.
If the intersection is nonempty, the UA should configure the device using any value from the intersection. If an ideal is provided, then the value from the intersection closest to the ideal should be used. 

It looks to me that the intent is to have a way to force the request of the PTZ permission, but this could be specified in other ways. For example, by saying that if any of the PTZ constraints is not unconstrained or has an ideal value, the permission must be requested.
But you have to be careful in how you specify this permission request, because there are different permission models. For example, Firefox uses a per-device model, while Chrome uses a per-class-of-device model. The language should be compatible with both models.

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

Received on Tuesday, 28 April 2020 09:36:23 UTC