Dash-Industry-Forum / Guidelines-TimingModel

DASH-IF implementation guidelines: the DASH timing model
9 stars 1 forks source link

Clarification of resolution of $Time$ placeholder in SegmentTemplate #59

Open komar007 opened 3 years ago

komar007 commented 3 years ago

In 18.3, just before Example 8, there is a statement:

If using $Time$ addressing, the value for each segment reference is the segment start point on the sample timeline, in timescale units ([DASH] 5.3.9.5.3).

This is clearly in line with ISO/IEC 23009-1:2012, which explicitly states (5.3.9.6.1):

The Segment URL for a Media Segment is obtained by replacing the $Time$ identifier by the earliest presentation time obtained from the SegmentTimeline.

However, there seems to be a change of the specification occurring gradually in 2014 and 2019 versions of the norm, where for example ISO/IEC 23009-1:2019, 5.3.9.5.3 says:

If the Representation contains or inherits a SegmentTemplate element with $Time$ then the URL of the media segment at position k is determined by replacing the $Time$ identifier by MPD start time of this segment, as described below.

and the term MPD start time is described in 5.3.9.6.1:

The value of the @t attribute minus the value of the @presentationTimeOffset specifies the MPD start time of the first Segment in the series

which implies that the substitution value for $Time$ should be @t - @presentationTimeOffset.

It is important to note that the 2019 version of the norm describes the resolution of the segment URLs in more places and these instances seem to contradict each other, at least according to some interpretations. I also have concerns with respect to the definition of the term MPD start time and whether it is defined in terms of MPD timeline or sample timeline.

This issue is not to suggest a change in the Guidelines document, quite the opposite, I believe that the earlier description in 2012 norm is correct. This is more to raise awareness of the changes in the norm and discuss their correctness and/or clarity.