HbbTV-Association / ReferenceApplication

MIT License
80 stars 33 forks source link

Question on Validity of 6.1 (and 6.3) Tests #88

Open MikeKav opened 1 week ago

MikeKav commented 1 week ago

Hi

We have a couple of devices (Sony TV) that do not play the 6.1 and 6.3 Multi-period dash examples. After debugging and discussion with the device vendor they have diagnosed the issue as a problem with the manifest parsing:

As MPD@minimumUpdatePeriod is missing, the @mediaPresentationDuration or the Period@duration of the last Period needs to be present

Looking at the text of some specifications:

From MPEG DASH ISO/IEC 23009-1, chapter 5.4.1: "If the attribute MPD@minimumUpdatePeriod is not present, no update to the MPD is expected, the attribute MPD@mediaPresentationDuration or the Period@duration of the last Period shall be present and the MPD shall remain valid until the Media Presentation end time."

From MPEG DASH DVB profile: TS 103 285 - V1.3.1, chapter 9.1.4: "Note that even if expiration events are intended to be used exclusively, the MPD@minimumUpdatePeriod attribute has to still be present in accordance with ISO/IEC 23009-1 [1]. Typically, it would be set to a low value."

In the case of 6.1 and 6.3 of the HbbTV tests there is no MPD@minimumUpdatePeriod or MPD@mediaPresentationDuration, and there is no Period@duration, all durations including the last period are within AdaptationSets.

Is it possible the HbbTV manifest is out of specification, or has Sony misinterpreted the specifications in some way?

Murmur commented 1 week ago

@MikeKav Tests MultiPeriod: 6.1 Live | 6.3 Live(playready) has an event "MpdReload" in the last period, this is to instruct players to refresh a manifest.

You are correct this is a feature some terminals do not support or support only as an EMSG inband event. We do not have a dynamic segment-emsg-inserter at runtime in place. This MpdReload(expiration of current mpd) emsg event needs a MPD@publishTime value from the current playback manifest so it needs a some sort of session-aware generation as well.

>> Typically, it would be set to a low value. | The MPD@minimumUpdatePeriod should be set to a small number, preferably 0. "
It do seems a manifest(6.1,6.3) should still write a @minimumUpdatePeriod="PT0S" attribute, considering this a bug in a current test.

This is a feature most don't use in a live content, they just use a simple to understand MPD@minimumUpdatePeriod every N seconds. See MultiPeriod: 6.2 Live | 6.4 Live(playready) tests.

**MpdReload Event**
<EventStream schemeIdUri="urn:mpeg:dash:event:2012" value="1" timescale="1000">
      <Event presentationTime="27720" id="1731665684"/>
</EventStream>
MikeKav commented 1 day ago

Thanks @Murmur,

We've moved to using 6.2 and 6.4 for these devices and advising not to use 6.1 and 6.3 for validity testing.

Shall we close this?

jpiesing commented 1 day ago

Has it been resolved whether 6.1 and 6.3 are valid? If they're not valid then IMHO they should either be fixed or removed. If they're kept as-is then a health warning would need to be added.