Previously, the exit was always zero, which is not very useful as part
of a continuous integration system.
Change-Id: I3fd5e9061f605950c48240419c2a093c74005144
This will help with porting to IE11. Chrome, Firefox, Safari, and
Edge all have native Promises.
This polyfill does not support thenables because Shaka does not use
them. Other than tests related to thenables, this polyfill passes
the A+ test suite.
It is also worth noting that this polyfill is incompatible with
native Promises, so it should not be used to replace a native
implementation or mixed with browser APIs that may use a native
implementation internally.
To safely test in Chrome, force prefixed EME (to avoid native
Promises), set window.Promise to null, then load some content in
the test app. If using a verison of Chrome after prefixed EME
was dropped, use unencrypted content.
To run the A+ test suite, compile the library, install nodejs and the
module 'promises-aplus-tests', then run ./test_promise_polyfill.js.
Inspired by pull #176
Change-Id: I0d25049f162ff7f3b57bbc795403fcdedf927262
These keys cannot always be used as keys, for example on IE11 where
very large init datas are found in PlayReady content. Since there
should not be a large number of unique init datas, a linear
suppression pass and a quadratic removeDuplicates should not be a
problem in practice.
Related to pull #176
Change-Id: I9dd9b5e45422544c86dd95686766625a0b336963
* Supports live streams of a fixed length.
* Live streams that stop now correctly end the video.
* Only uses local MPD when @availabilityStartTime is in the future.
* Added configuration option liveStreamEndTimeout.
A live stream is considered "ended" when the play-head moves past
the last segment for liveStreamEndTimeout amount of time. This allows
the MPD to be updated with new segments.
Closes#139Closes#140Closes#145
Issue #172
Change-Id: I0675203931f35ca3e0dee60a87c54ba74cbdbaea
* Document timestamp correction better.
* Add additional API details to Stream.
* Tidy-up and make comments/docs more consistent.
Change-Id: I41d873967a930634fa48c83fe65b6e9cf512d782
When the availabilityStartTime is in the future, the
StreamVideoSource will re-process the local MPD once the
availabilityStartTime passes.
Closes#172
Change-Id: I1432ae06fbff6c4978ed93bc51263f7cac37e136
* Renamed mpd_* files to mpd_parser_* where applicable.
* Gave the mpd test groups more descriptive names.
* Split mpd_processor_spec into several files.
* Cleaned up the createStreamInfoFromSegmentTemplate_ tests.
Closes#189
Change-Id: I71daa1600e944b53937030ff87b53a3dbca3948e
* Split player_integration into several files.
* Moved some helper methods from player_integration to
integration_util.
Closes#188
Change-Id: I14cb2eda8375fc24ef0419e7993027b90e881d5b
For static content that uses SegmentTemplate + @duration, compress
the last SegmentReference so that it does not go beyond the
Period's duration.
Issue #173Closes#187
Change-Id: Ifb9404ddfe267915541c035a5d6286f63f7bc032
* License errors in store() are reported as a failed promise.
* store() cleans up after errors.
* Added argument to deleteGroup to ignore session errors.
Change-Id: I8030d89a7f99cabb6ecb7840a854a0452a2f2ef2
* Give key status errors type 'drm' for both DASH and HTTP.
* Include the EME key status code for HTTP for testing
purposes.
* Make error reporting between DASH and HTTP more consistent.
Change-Id: I8c42dbf08257cc88c6e089d817f55f0caa575473
* Ensure AdaptationSets with different languages but with the same group
end up in different StreamSetInfos.
* Set the main flag in a StreamSetInfo if any one of the source
AdaptationSets has their main flag set (commit
689c2a47aa broke Role 'main' support).
Closes#182
Change-Id: Ia017e294e0b359c62133adc42a8d701d614f3b0d
* Fire an error event when all audio/video tracks are restricted
during playback.
* Fire an error event and fail gracefully when all audio/video tracks
are restricted before playback (requires calling player.unload() when
the VideoSource's attach promise gets rejected).
* Rework AbrManager so that getInitialVideoTrack() can be called before
starting bandwidth monitoring.
Closes#170
Issue #179
Change-Id: I4ac6cdf2a4c862e0d0560dff2f2d7bb6801bbc38
The manifest didn't declare an XML namespace. Firefox and IE are
very strict about this, whereas Chrome is not.
Change-Id: I96fd44bb2debb974d7587603732965982681eadd