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

Reply via email to