On Mon, 17 Nov 2014, Martin Storsjö wrote:
If one stream doesn't start exactly at time 0 (as signaled via
the SegmentTimeline) while the Period says playback starts at 0,
dash.js won't be able to start playing it, since it doesn't find
any segment corresponding to time 0.
Currently this isn't needed yet, when segment timestamps are based
on dts (which by default are adjusted to start at zero), but will
become necessary later.
---
libavformat/dashenc.c | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
Actually, I don't think this is correct. dash.js seems to have problems
with nonzero start times, and this is a workaround for that (which only
works on the current 1.2.0 release, not on the latest git version). After
thinking more about it, the workaround itself is incorrect as well.
It is only required if writing timelines based on pts (for dts, the start
timestamp is forced to zero anyway).
We do however already do the same in sidxindex, since a player reading the
sidx boxes does get the presentation timestamps which don't start from
zero. (That corner case doesn't work currently on the next dash.js
development version as well.)
So this patchset is deferred for now. The patch for using pts instead of
dts in the timeline is correct as far as I know, except that it breaks
playback in dash.js with anything that uses b-frames, so I'll hold off
that one for now, at least until the situation has been sorted out on
their side.
// Martin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel