Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add "adjust_to_caps" query parameter #134

Merged
merged 3 commits into from
Jul 31, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions APIs/StreamCompatibilityManagementAPI.raml
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,16 @@ mediaType: application/json
403:
put:
description: Set Base EDID
queryParameters:
adjust_to_caps:
description: >
Sets the value of "adjust_to_caps" Input's property.
If omitted, the value of the property is preserved.
If an implementation doesn't support the property,
this query parameter is always ignored.
type: boolean
required: false
example: true
body:
application/octet-stream:
type: file
Expand Down
4 changes: 4 additions & 0 deletions APIs/schemas/input.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@
"device_id"
],
"properties": {
"adjust_to_caps": {
"description": "Whether the Input is configured to adjust Base EDID to internal capabilities. The property exists if the Input supports this feature",
"type": "boolean"
},
"base_edid_support": {
"description": "Whether the Input supports Base EDID",
"type": "boolean"
Expand Down
10 changes: 8 additions & 2 deletions docs/Behaviour - Server Side.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,13 +86,19 @@ The `/properties` endpoint shows properties of the Input.

An Input MAY support Base EDID and MUST indicate it via `base_edid_support` property. The API documentation reflects how responses from `/edid/base` depend on this property.

Inputs that support Base EDID MAY additionally support adjusting Base EDID to internal capabilities (e.g. capabilities of an Input itself and Senders associated with this Input) via `adjust_to_caps` query parameter of a `PUT /edid/base` request. An Input MUST indicate support of `adjust_to_caps` query parameter via `adjust_to_caps` property presence in `GET /properties` responses.

There is no Base EDID at the initial state. If the Base EDID for an Input changes, then all Senders associated with this Input MUST update their versions (in registered mode this MUST update the registered resources).

### Effective EDID

Effective EDID is such combination of Base EDID and Active Constraints of all Senders associated with this Input that the baseband signal from the Input can be transmitted by the Senders without breaking Active Constraints.
If Active Constraints of all Senders associated with this Input are empty and `adjust_to_caps` is equal to `false` or not supported, the Effective EDID is equal to the Base EDID.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume "the Effective EDID is equal to the Base EDID" is a shorthand for the actual behaviour, given further down "If the Base EDID is not set, the Effective EDID is built on the basis of a default EDID defined for the Input by the manufacturer."

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm, these two clauses seems not duplicating each other if you meant it. The first three paragraphs of the section describe how the Effective EDID should be built using the Base EDID and the fourth one describes what "If the Base EDID is not set".


If Active Constraints of all Senders associated with this Input are empty and `adjust_to_caps` is supported and equal to `true`, the Effective EDID is a combination of the Base EDID and the internal capabilities.

If Active Constraints of at least one Sender associated with this Input are not empty, the Effective EDID is a combination of the Base EDID, internal capabilities and Active Constraints of all Senders associated with this Input such that the baseband signal from the Input can be transmitted by the Senders without breaking Active Constraints.

If Base EDID is not set, Effective EDID is built on the basis of a default EDID defined for the Input by the manufacturer.
If the Base EDID is not set, the Effective EDID is built on the basis of a default EDID defined for the Input by the manufacturer.

The `/edid/effective` endpoint allows a client to download the Effective EDID if it exists. If the Effective EDID for the Input changes and it is associated with any Senders, then all of the Senders in question MUST update their versions (in registered mode this MUST update the registered resources).

Expand Down