Closed andrewstarks closed 1 year ago
Note that the numbering above is kind of confusing in that the deeper levels are not being read correctly
@andrewstarks What's the current status of this issue (including taking into account recent terminology changes)?
I went through this text and that's my opinion.
Such baseband scenarios as changing video mode on a source, plugging/unplugging a monitor and video mode negotiation between a source and a monitor are covered in the current text of IS-11.
The Terms are obsolete. All these concepts live under other names now.
Native modes are covered in BCP-005-01. An NMOS Controller works with Constraint Sets and their preference
s which is not the same but lets the NMOS Controller to apply Proposed Rules to native modes of a monitor and other modes preferred by a Receiver for some reason.
The bottom line of Handling Native Modes in Multicast as I understood it is that the user says the last word. I believe https://specs.amwa.tv/is-11/branches/v1.0-dev/docs/Behaviour_-_Client_Side.html states the same.
So I think it can be closed but I surely would like to hear what @andrewstarks thinks about it.
We may need to consider certain scenarios that involve mismatched capabilities in multicast. This is a cut and paste of a work-in-progress document that I've been working on internally. I've decided to include the entire document (except the part that is discussed in Issue #32). The section that is not background material and is relevant to policy starts with Handling Native Modes in Multicast.
EDID Policy Notes for Default Behavior
EDID, Hot Plug Detect (HPD), and InfoFrames (in HDMI at least) are the primary mechanisms that baseband devices and monitors use to establish an optimal and compatible video flow upon connection. These methods are also used to change video modes, should the device request it, e.g. user changes video modes or the device requires it due to content change or an application request.
IPMX operates on IP networks with uni and multicast flows. This introduces many scenarios that were not contemplated when VESA was designing EDID. Therefore, we must:
Terms
IPMX Source: A device that supports IPMX as a sender. This could be a source device (streaming box, DVD, computer) or an IPMX Gateway between baseband and IPMX.
IPMX Sink: A device that supports IPMX receiving. This could be a monitor, capture device, or an IPMX Gateway between Baseband Sinks and an IPMX system.
Baseband Source: A source that supports HDMI, DisplayPort, DVI, or another baseband signal. In this document, this is the device that is typically plugged into an IPMX Gateway.
Baseband Sink: A monitor or other receiving device that supports HDMI, DisplayPort, DVI, or another baseband signal. In this document, this is the device that is typically plugged into an IPMX gateway.
IPMX Gateway: A device that receives or sends IPMX flows and supports IPMX APIs to represent and support Baseband Sources and Sinks. Specifically, this includes the MPA1000 and ME10.
Baseband Connections (EDID, Normally)
Normally, a baseband connection is one output device sending to one display/sink device and EDID is designed for this scenario:
Note that the source is the sole decider for what the video should be. The monitor cannot request a specific setting or change what it reports, apart from special circumstances regarding latency, which involves CEC control.
Preferred Timing and the Nominal Case
EDID structures define the first mode listed as preferred or native. In addition, Video Data Blocks may contain one or more Short Video Descriptors (SVDs), which may mark the resolution as native.
Whether it is the first mode or listed as native, each communicates that these video modes will be produced with the best quality on the given display device. Typically, it's expected that the connected source will use one of these modes unless it cannot support it, or the user overrides that choice by selecting a different, yet still compatible mode.
IPMX Connections
For AV over IP generally, and IPMX in particular, there are additional use cases and issues to consider. Most notably, it is more often the case that there is a one-to-many relationship between source and receivers in the IP world. This was always possible with EDID, especially with HDMI distribution amplifiers (DA), but it was never handled well because EDID was not designed to handle DAs and switchers. With IPMX, we intend to give the user more deterministic access and control over how the video profile is selected in scenarios with multiple monitors/sink devices.
Furthermore, since EDID was designed for baseband connections, it does not include all of the relevant information relevant to making a connection. There may be constraints related to the network capabilities of each device, or potentially network bandwidth available between devices. Also, supported codecs (or no codec at all), supported profile codecs, and other similar data are relevant to the connection in the same way as EDID data.
Finally, HDCP support is not represented in EDID but is relevant in the same way as EDID is and should also be included in the information communicated to the sender and receiver.
For IPMX, we need to include all of the relevant data to make a connection, including EDID, and establish reasonable default behaviors so that users of IPMX systems can come to expect a certain behavior in their devices.
What is that behavior?
In 1:1 connections
A connection between a monitor and a source should result in the same resolution being selected, regardless of whether the connection is DisplayPort, HDMI, or IPMX, accepting that each transport is capable of the same set of timing and profiles.
In One to Many connections
When more than one EDID is present, only the modes supported by all EDID representations (XOR) shall be used to determine the set of legal modes.
When no legal modes are possible, an error is returned.
Handling Native Modes in Multicast
Handling multiple EDID structures with different sets of native modes presents a challenge when multiple monitors of different makes and models are used. There are multiple reasonable approaches to handling some of these scenarios and it's assumed that others may have their own opinions. Some things to consider:
EDID has only one level native. It may be interpreted that the first mode listed is more native than the modes listed in SVDs, but the specification is not defined that way.
Should the best native mode be used, if it's supported by all but is native in only a minority?
Should the majority always win out? What if 20 monitors support 3840 by 2160 natively and one projector supports 4096 x2160 natively?
What if some modes are native to all and some are supported by all, but native to only some?
What if no modes are native to all?
What if no modes are supported by a majority of monitors? (all tied)
Proposed Rules
The following rules shall apply to modes that are supported by all connected monitors:
Adding Monitors to an Existing Multicast Group
When adding monitors to an existing multicast group, there are scenarios that need consideration. Below is a list of scenarios and proposed default actions:
Removing Monitors from an Existing Multicast Group
Similar issues arise when removing monitors from a multicast group. In each case, the monitor is removed, but whether or not the connection must be reset is answered:
Other Capabilities
Beyond the default behavior, the user may wish to force certain behavior. For example, a laptop and a monitor may otherwise negotiate a certain profile, but because a projector is calibrated in a particular way, the user may choose to force a certain timing or video mode using a controller or the gateway's web interface. Also, the above logic might not be ideal in certain scenarios and the user's preferences might be difficult to achieve by manipulating the source.
Depending on the policy established by the IPMX Controller and the connection and disconnection (HPD) events it receives, the controller may do any of the following:
Because it's impossible to guess what may be the "correct" policy, it should be possible to replace the default policy with customized versions and to override policy by specifying profiles or new constraints within the web interface.