W3C home > Mailing lists > Public > public-media-capture@w3.org > February 2014

Re: Defining ConstraintSet and the constrainable algorithm in terms of it

From: Harald Alvestrand <harald@alvestrand.no>
Date: Fri, 07 Feb 2014 05:28:42 +0100
Message-ID: <52F460FA.9040905@alvestrand.no>
To: public-media-capture@w3.org
On 02/07/2014 12:52 AM, Jim Barnett wrote:
> I don't think that this definition captures the interactions between
> constraints.  If aspectRatio and width have already been constrained,
> it is not enough to check that the requested value  for width is
> within the range specified by the relevant Capability.  Your first
> four points are more precise than what's currently in the spec, but
> the last two have to be modified to talk of a set of property values
> satisfying a set of ConstraintSets.

You're right. The "intersection" has to be in terms of what's possible
given the already-satisfied constraints, not just what that particular
constraint has been constrained to.

> - Jim
> On 2/6/2014 5:49 PM, Harald Alvestrand wrote:
>> As promised, hashing out the language of ConstraintSet....
>> First, an admission: I don't understand how initialization of complex
>> argument types in WebIDL is supposed to work.
>> I tried to parse the WebIDL spec to figure out "here is how you
>> specify that an argument of type T can be constructed from a JS
>> Object O when O is passed as an argument to the function that takes
>> an argument of type T", but I did not find it. So I guess I'm left
>> with prose - and possibly supporting WebIDL.
>> The algorithm I have in mind, which is a making-more-precise of
>> section 11.1.2 of the current (abbreviated) draft, says:
>> WebIDL:
>> typedef object ConstraintSet;
>> The following operation is executed to figure out if the
>> Constrainable object O, which has capabilities CA, satisfies
>> ConstraintSet C:
>>    - For each immediate attribute A of C (as defined by HasOwnProperty):
>>      - If N, the name of A, is not a member of CA, fail.
>>      - If V, the value of A, cannot be interpreted as a
>> ConstraintValues, fail.
>>      - If V does not permit any of the allowed values for CA(N), fail.
>>      - Set the constraint of N in O to be the intersection of any
>> previous constraint
>>        and V. If the result of this intersection is empty, fail.
>>    - If satisfaction succeeded, return the newly-constrained object O.
>> Here's where the now-deleted definition of ConstraintSet may come in
>> useful:
>> In this algorithm specification, the access to C is done as if C had
>> the WebIDL definition:
>> [NoInterfaceObject]
>> interface ConstraintSetInternalRepresentation {
>>     ConstraintValues getter (DOMString name);
>> };
>> (this may need extension. I'm not sure how. Or it may have no value,
>> and should be deleted.)
>> Does this seem like a precise (and therefore implementable) algorithm?
>> -- 
>> Surveillance is pervasive. Go Dark.
> -- 
> Jim Barnett
> Genesys

Surveillance is pervasive. Go Dark.
Received on Friday, 7 February 2014 04:29:19 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:26:24 UTC