This removes reliance on MediaKeys.isTypeSupported and instead uses the
supportedConfigurations parameter of requestMediaKeySystemAccess.
A lot of refactoring went into this effort, particularly around
StreamVideoSource, StreamSetInfo, and StreamInfoProcessor.
Closes#2, b/19354928.
Change-Id: Ibf81da909b8207b5babaec5ef0422dd1293d130d
* Stretch/compress segments within a SegmentTimeline to align them
to the beginning of the next segment.
This does not allow playback of content with actual gaps in it, but
allows MPDs with inaccurate SegmentTimelines to be used.
Closes#24, b/19144876
Change-Id: I183935db23fe26e1d6295e099b201a6af487d53b
* 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
* Move internal non-DASH specific code into the 'media' namespace.
* Remove DASH references from generic stream code.
The documentation is not changed as a follow-up patch will factor out
DASH functionality from StreamVideoSource back into a new
DashVideoSource class.
b/18903621
Change-Id: I78d6e4f2824d4983619f17872828d95655fcfe50
* 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