Closed robertbryer closed 3 years ago
MPD anchors of the form t=1234
are an offset from the start of the first period. Optionally a period
parameter can be used to indicate which period is the base.
The syntax t=posix:123456
indicates an offset from the Unix epoch.
Note also, there should be no "s" at the end of the value.
Ref MPEGDASH C.4 and IOP v4.3 chapter 4.3.3.5.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
This issue has been automatically closed because no further activity occurred. If you think this issue is still relevant please reopen it. Thank you for your contributions.
Steps to reproduce
Get a unix epoch from within the last 5 minutes and use it as the #t= anchor in this link: http://reference.dashif.org/dash.js/v2.9.3/samples/dash-if-reference-player/index.html?url=http://smp-scratch.tools.bbc.co.uk/bob/samples/livesim-1-minute-availability.mpd#t=1563886800s
And then load the stream.
This is a modified version of the livesim MPD to change the availabilityStartTime to +1 minute.
Observed behaviour
The playback starts 1 minute prior to the value you chose for the #t anchor. This is the value of the availabilityStartTime. The original livesim MPD has a value of 0 for the availabilityStartTime, so you won't notice this using the normal livesim manifest.
You can see exactly where the start time is modified here: https://github.com/Dash-Industry-Forum/dash.js/blob/3549b41141c345172b51e1513530c23705151f6f/src/streaming/controllers/PlaybackController.js#L371
It doesn't appear to make that much sense to have time anchors like this reference against the availability timeline - but it's been about 5 years since this code was written. Is it just that this hasn't been noticed because all our samples don't have an availabilityStartTime or is there some use case here I don't understand? Also is there any apparent danger to changing this behaviour after so long?