On Mon, 30 Jan 2017, Anton Schubert wrote:
On 01/27/2017 09:04 PM, Martin Storsjö wrote:
But I started wondering, is there any actual use for this, when we
explicitly list all the segments (either as individual segment
filenames or via the template). As far as I can see, this is mostly
necessary if you implicitly calculate the live edge based on
availabilityStartTime and the segment length. So is there actually any
gain from using it in our configuration?
Yes, because the players will always try to calculate the live-edge, as they
don't know
whether the segment they are requesting is available yet.
Yes, I know that you need to do this if you use the implicit mechanism
where you don't list the individual segments. But you can also list them
explicitly, which we do by default.
There's (at least) three different ways of indicating the available
segments:
1) Via <SegmentList> and <SegmentURL>, explicitly listing the segments
(-use_template 0)
2) Via <SegmentTemplate> and <SegmentTimeline>, explicitly describing all
individual segments via the timeline. (This is the default, parameters
-use_template 1 -use_timeline 1.)
3) Impcliitly, via <SegmentTemplate> and via availabilityStartTime. In
this case, I can understand that the UTCTiming element is needed to
actually sync clocks; otherwise the availabilityStartTime is hard to
interpret correctly.
Now when I wrote the previous mail, I didn't even remember that we did
support case 3) - sorry about that. In that case, I do see that it is
needed.
My question is, for cases 1) and 2), the way you guys interpret the spec,
should the player ignore the actual list of segments (via <SegmentURL> or
<SegmentTimeline>) and use availabilityStartTime to guess which ones
really are available, or can the player just assume that all explicitly
listed segments really are available?
They can't trust the browsers localtime
Yes, that goes without saying
and they don't know whether the availabilityStartTime is ok for
synchronization.
That's also why Shaka-player now gives a warning if there is no UTCTiming tag
present
in live-manifests.
https://github.com/google/shaka-player/commit/1fb78929c1551a3e4f1a07323ce67ee622503273
Ok, so I can see that Shaka warns if the tag isn't available - that should
be reason enough to add it. This was kinda what I wanted to hear to
understand the patch better.
I'm still quite interested to know, though, does Shaka actually use
availabilityStartTime in cases 1) and 2) above?
// Martin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel