Reflect modifications made in ISO/IEC 23009-1:2014/Cor 1:2015:
allow @startNumber to be 0 and compute the $Time$ placeholder using
the segment number relative to the start of the Period.
Closes#10
Change-Id: I4a9b0e4e3593c01e2e8d42a74572e78b9fba50d9
Adds an API to IBandwithEstimator to enable BandwithEstimator
implementations to allow/disallow caching.
Issue #76
Change-Id: I842994981a0821e22de412478f094850414b6289
This should make testing in Karma easier, and in particular, easier
for use in automated systems. We will not package Karma into
third_party at this time, but may reevaluate that decision later.
Change-Id: Idf407c6ec0b3b876284768f2bc37e0edd032c32e
This reverts commit 93aa2ed0e8,
which broke live streaming.
To reproduce, use: spec_runner.html?spec=Player%20live
Change-Id: I734f36cfc1226d34058e70b723e53d607664fb53
* Allow segments from different streams (Representations) to coexist
in buffer.
* Only fetch a single segment at a time.
* Remove id field from SegmentReference and remove SegmentRange.
* Only start the Streams once the buffer is "full".
* Stop DashVideoSource from triggering an extra resync during startup.
* Make Task.abort call order deterministic.
A follow-up patch is required to handle certain seek patterns in
live streams.
Issue #51
Change-Id: Ib7c9021471f1ed89323f19764463202b119cb491
Without destroying ManifestInfos some SegmentIndexes may
persist outside the tests they were created in, which may
cause spurious test failures.
Change-Id: Ia6c2fe312b7bd6cd2dcd338dd43c20ce0a5715d6
* Check each member in DrmSchemeInfo.combine().
* Modify the resulting DrmSchemeInfo in-place.
Closes#96
Change-Id: I5eddb29966c4b2ad39f4140c3c87dca96aee28f8
Promise.reject() was causing error.type to be undefined in
the final catch block of StreamVideoSource.onUpdateManifest_().
Change-Id: Id5ddf8901e38559889e41d389b96c620b3dfaaa7
This patch reworks SegmentIndexes so that any SegmentReference they
contain is guaranteed to be available. This makes SegmentIndexes work
consistently between static content and live content (specifically
content specified using SegmentTemplate with @duration).
* Rework StreamInfo to use a ISegmentIndexSource and a ISegmentInitSource,
which construct a SegmentIndex and an intiailization segment
respectively.
* Make ManifestInfo destructible and various async operations in
StreamVideoSource safer.
* Introduce LiveSegmentIndex, which manages SegmentReference eviction.
* Introduce DynamicLiveSegmentIndex, which manages SegmentReference
eviction and generation.
* Implement improved segment availability logic for segment eviction.
* Move SegmentIndex construction from MpdProcessor to several
ISegmentIndexSource implementations.
* Use a SegmentIndex to represent subtitles to simplify Stream creation
in StreamVideoSource.
* Move manifest update code from StreamVideoSource to ManifestUpdater.
* Move PeriodInfo.duration determination in MpdProcessor to StreamVideoSource.
* Since "forced" manifest updates are no longer required for content
specified using SegmentTemplate with @duration, simplify manifest update
code in DashVideoSource.
* Make Stream continue to update even if it runs out of
SegmentReferences, this simplifies previous resync logic and makes
DynamicLiveSegmentIndex work seamlessly.
* Refactor SegmentIndex and initialization fetch code in ContentDatabase.
* Download all SegmentIndexes in the background after the initial streams
have started.
Follow up work is required to remove seek range logic from
DashVideoSource.
Change-Id: I4a908195aba632a911a6e55213fc41d41428162b
Allow applications to pre-process license requests; also makes
the license post-processor an optional parameter.
Closes#62
Change-Id: Idb57f101c3a5f08da85d37ec7e252ffca886a6ae
* Enable overriding a WV license server URL from the UI with a
PSSH override in an MPD.
Closes b/21441806
Change-Id: I01aa462c82b0fe2a6ade63dffd6803891cbab90f