-
Notifications
You must be signed in to change notification settings - Fork 6
AvailabilityTimeOffset
The MPD attribute `availabilityTimeOffset´ (ato) can be used to signal that segments are available at an offst time compared to the value derived from the the normal attributes in the MPD.
A positive value ato=X
means that the segment is available X
seconds earlier.
A particular use case is for (chunked) low-latency segments where a positive ato
value is used
together with availabilityTimeComplete="false"
in the MPD to signal that a partial segments are
available X
seconds earlier than the full segments.
In livesim2
a typical signaling to generate a low-latency source is
ato_1.5/chunkdur_0.5/
which results in a source with
availabilityTimeOffset = 1.5s
chunk duration = 0.5s
availabilityTimeComplete = false (implicit)
For an MPD with SegmentTimeline
, the manifest is changed to be updated as soon as the partial
segment is available, and the publishTime@MPD
is updated to signal that time.
Another use case is for full segments. This is specified by not having a chunk duration set in the
URL. In this case, full segments are made available earlier, and the MPD is changed to reflect that
by publishing segments at a shifted time, as also reflected by publishTime@MPD
value.
A special case is an infinite
value of availabilityTimeOffset
. This means that all segments
are available. In livesim2
, that value can only be used together with SegmentTemplate with $Number$
,
and not with SegmentTimeline
.
An infinite availabilitityTimeOffset
is signaled in the URL as
ato_inf/
The interpretation of this is that all segments are available, both in the future and in the past.
For live content, there is no way of knowing the future segments unless there is a formula to generate
their URLs. The usage of ato_inf
is therefore limited to SegmentTemplate with $Number$
.
availabilityTimeOffset
can be signaled at multiple values in the MPD. In livesim2
, it is
only signaled at the SegmentTemplate
level.