* Remove warnings for incorrect argument counts in configure.
* Duration incorrect for multi-Period.
* Multi-Period does not always work with multi-codec.
* Progress meter visible from start and after done.
* Offline buttons enable while storing if asset is switched.
b/29777213
Change-Id: I934bec0e6b5be2d69a908629b187459a6289f7a7
This fixes failures on Edge, where the poorly-performing test event
loop takes 2.6 seconds each time (compared to 0.1 seconds elsewhere).
Change-Id: Ie17859d5bd7e5174a6a8a45ca0d29561499adcc9
This fixes test failures in StreamingEngine on Safari 9. Safari does
not completely remove ranges from buffer, even if the range
encompasses all buffered data.
Change-Id: If6c810655ab11632b10f8706f8ef0657679174c4
* Decrease Promise delay to reduce timeouts on Safari.
* Stop timedout tests from running their fake
event loops after the tests have actually ended.
Change-Id: I5104396e916cfbca8b2e796f9bc8f2dcb8149042
Instead of filling the URI templates when parsing the manifest,
wait until the request is made to fill it. This reduces the time
it takes to parse the manifest.
This was tested using a stream with a 24-hour timeShiftBufferDepth.
Using a Chromebook pixel running Chrome 51. The average manifest
parse time was about 1 second before, now it is about 200ms.
Issue #405
Change-Id: I89f36085441f6c6b7d6281b24b671dc668f23fe5
We are working around an Edge EME bug, but the workaround is
negatively impacting IE11. Be more selective about applying the
workaround.
Closes#393
Change-Id: Ibf1f2dd3295e1e1e6162b149d5abdc20610b31b8
Before, we did not use suggestedPresentationDelay in the seek range.
This meant that seeking to the live edge would usually lead to a
buffering state because the seek range is the same as the availability
window. Now the seek range is handled differently from the
availability window.
b/28938315
Change-Id: Iacfffe30778f7c63734fe24eeb95634611da86be
Otherwise, we fail to play manifests containing TTML. Without a TTML
parser, TTML streams should be ignored and not cause failures.
Issue #111
Change-Id: I982ad04083e40a3f5c5023f0059fa4ae1604ab07
Promise resolution on Edge is slower than elsewhere, so we must
increase delays in these unit tests to deflake them on Edge.
Change-Id: I1845b6b55e8811e372b9684d90d229992d816c40
Now the Storage class can store protected content and play it back.
When deleting it, the offline EME sessions will be removed. Also
now offline support appears in Player.support().
Closes#343
Change-Id: Ic5b5a0e0854d80f7821e04e751275abf40ee6eb6
Because Windows uses '\' for paths while Linux uses '/', the previous
fix to use relative paths in the source map did not work. Now
we use relative paths for all platforms.
Closes#413
Change-Id: Ie83f8343e2dab725ce4af59f66af19d4fb8ff036
This contains two major parts: the Storage class, which manages
storing, listing, and deleting the stored content, and the offline
manifest parser, which loads the stored content into a manifest so the
Player can play it.
This does not include support for storing encrypted content. The
EME sessions will not be stored properly and will fail to play.
Issue #343
Change-Id: I7ecb3400391ec8100155aa972f9b09bb7ae24d9d
player.load() now uses our new CancelableChain abstraction for its
chain of events. player.unload() and player.destroy() will both
cancel that chain. player.unload() will wait on the cancelation to
complete before resetting the streaming system, to avoid a race.
Change-Id: I37fcbacde33f253982c3dd5ed246855d4e363c79
This adds a new abstraction to cancel simple Promise chains.
It is intended to help resolve load/unload/destroy issues. At this
time, only player.load() is cancelable, and only by destroy(),
unload(), or other calls to load().
Change-Id: Ib82dbef863cb2edc6881a8d433d5a02096e06aed
Before, the same error was used for no available configurations or
key systems and for missing key system URI. Now there are two
different errors. Also elaborated on the error in the documentation.
Closes#371
Change-Id: I9b72daa0a99b4761714a74c3ceba60c873c89a77
Now there is a new synchronous method Player.isBrowserSupported. This
will detect basic support and return a boolean. The support() method
has been renamed to probeSupport() and should only be used for
diagnostics.
Also added a plugin system to Player support testing. Now a plugin
(e.g. offline) can add extra info to the output of probeSupport().
Closes#388Closes#389
Change-Id: I313a41d9f123871272f1395aeb99c980df1f4bae
Some streams have the same mime type, but incompatible codecs. For
example, mp4a.40.2 and ec-3. Once a stream has been selected, filter
out incompatible codecs.
Closes#391
Change-Id: Id3f5521cb3f995d88d93255c0bc5cfda8e239fcd
Representations without Segment* elements or which do not
specify "text" as their type are now ignored instead of causing
failure.
Issue #368
Change-Id: Ica6490442dc38c7fdbc778eb0650dd7909d764c5
This improves the code in support.html that stringifies a JavaScript
object. Before, it assumed a specific layout. This adds a more
general stringify method that will support nested objects correctly.
Change-Id: Ie59747d0ce634ef028c4819b92fc2fd61552f724
This is part of the v2 equivalent of the ContentDatabase. This only
manages low-level interactions with the IndexedDB and wraps all
actions in Promises.
This also adds an in-memory version that is used for testing.
Issue #343
Change-Id: I0d296639e74c1d4cab232ce7248b03a353b38b3c
Before, Player.configure would check the number of arguments for
the functions being set and reject those with an incorrect count.
However, this does not work with jasmine spies. So instead allow
it but log a warning.
Change-Id: I0f03ae9a22bf6a6e427c2a26a6f055dcaa40b3ec