Assume a year is 365 days and a month is 30 days. Supporting years and
months is useful as some MPDs that describe live content specify
@minimumUpdatePeriod in terms of years; here, an accurate number of
seconds is not needed, but the duration string should not be treated as
invalid.
Change-Id: Ic4ea26f5a7572711e047c237dced33d80a698840
* Instead of overriding SegmentBase, SegmentList, etc. between
levels (e.g., from Period to AdaptationSet) merge them, but
prefer elements and attributes from inner levels.
* Refactor MPD parsing unit tests into separate files.
* Rewrite SegmentBase unit tests, add SegmentList, and
SegmentTemplate unit tests.
Change-Id: I3fdb7657bb9f468e10f63e47e9a52fbf8ebbd40b
* Revert 5c7fca90b6, which intended
to allow startNumber to be 0, and maintain the previous behavior,
which requires startNumber to begin at 1 (this appears to be in-line
with the MPD spec).
* Correctly compute the $Time$ placeholder.
* Rename firstSegmentNumber to startNumber to clarify code.
Closes#10
Change-Id: I9b565edc9e23b9ad7c6bc62829d6b0ab565008a4
* Adjust SourceBuffer timestamps forward by the Period's
start time and backwards by the Representation's
presentationTimeOffset.
* Incorporate the start time of a Representation's first
segment in the calculation of a Period's duration.
* Seek to the latest start time before starting playback.
Further adjustments will be required to support live playback.
Closes#17, b/19130302
Change-Id: Ia9fe6d8bbe5a69488130de2d8b146ce54dfff50e
AdaptationSets are sorted by language (audio-only), then by those with
the "main" role. Main sets are preferred when there are multiple to
choose from.
Closes#20, b/19214703.
Change-Id: I4fdd601c0bd7c7d29801084199123311ab9dbec3
Most of these StringUtils were either operating on Uint8Arrays directly
or using strings to move around Uint8Array data anyhow.
Change-Id: I71efe6ede34210ca721d46acd53452344efff5bb
* Create generic stream description classes to represent
Representations, AdaptationSets, and Periods.
* Move generic stream selection logic out of MpdProcessor and
into StreamInfoProcessor.
* Refactor DashVideoSource and DashStream to use the generic
stream description classes.
A follow-up patch is required to re-organize files and namespaces.
b/18903621
b/18948677
Change-Id: I8bbb87ebf0242b31541199d0d1d3c40767c93a29