Dash-Industry-Forum / DASH-IF-IOP

DASH-IF Interoperability Points issue tracker and document source code
33 stars 8 forks source link

Default video Role is not 'main' #212

Open TanguyPerson opened 6 years ago

TanguyPerson commented 6 years ago

For video, default video Role is defined as 'main' in some parts of specifications [1] [2]. But other parts [3] [4] deny that default Role value and require explicit Role descriptor for video.

This is at least confusing. IMHO, is is even contradictory : the default value is not always applied !

Could we improve this ? Proposal for § 3.9.2 :

If not present, the role is assumed to be main for only one video Adaptation Set in the Period

Any better wording is welcome.

[1] Table 24 in § 3.9.2:

If not present, the role is assumed to be main

[2] §3.9.4.2

Main content is signaled by using the Role descriptor with Role scheme as defined by DASH in ISO/IEC 23009-1, 5.8.5.5, urn:mpeg:dash:role:2011 with value set to main. Alternative content is signaled by using the Role descriptor with Role scheme as defined by MPEG-DASH in ISO/IEC 23009-1, 5.8.5.5, urn:mpeg:dash:role:2011 with value set to alternative. If an Adaptation Set does not include either of the two signals, it is assumed to be main content.

[3] § 3.2.1

In case multiple Video Adaptation Sets as defined in 3.2.13 are offered, exactly one video Adaptation Set shall be signaled as the main one unless different Adaptation Sets contain the same content with different quality or different codecs. In the latter case, all Adaptation Sets with the same content shall be signaled as the main content. Signaling as main content shall be done by using the Role descriptor with @schemeIdUri="urn:mpeg:dash:role:2011" and @value="main".

[4] §3.2.2.1

If a Period contains multiple Video Adaptation Sets as defined in 3.2.13 then at least one Adaptation Set shall contain a Role element and each Adaptation Set containing such a Role element shall provide perceptually equivalent media streams.

TanguyPerson commented 6 years ago

Besides, it is still unclear to me why this explicit main Role signaling is required for video... and why it is not required for audio !

A typical use case would be where same audio is available in 2 codecs (e.g. AAC and E-AC-3). It requires using 2 separate Adaptation Sets (due to codec). If I follow the logic described for Video, I should not rely on default Role being 'main', and add explicit 'main' Role descriptors, to remove any ambiguity ?

Note: my typical use case for video is when having different video Representations (SD/HD/UHD) scrambled in CENC with different keys, which requires using one video Adaptation Set per key.

sandersaares commented 6 years ago

I believe the intent of the spec is to say that default is "main" and you don't have to signal "main".

In your described scenario, I would expect that you do not signal any role for any video adaptation set - they are all main content, which is the default role.

Agreed that the wording is quite confusing. I would clarify wording by:

  1. Making it clear that default lack of Role descriptor is always equivalent to signaling "main" role.
  2. Adjusting wording to accept default role as well as explicitly signaled role where main role is referenced.