Also adds:
- Missing details on a deprecated config field in the v2.2 => v2.3
upgrade guide & changelog
- Missing details about new language/role APIs in the v2.2 => v2.3
upgrade guide
Closes#1183
Change-Id: I57e8bf4e56ffb1d741b691cdeaeb22e435c26e41
README.md duplicated some information from welcome.md, included other
details better left to welcome.md, and did not provide clear enough
information about support and features.
This moves some parts of README.md to welcome.md, drops others, adds
some details about feature set, and reformats some of the existing
support information into tables.
Change-Id: Ic863bc47fd46d01ca57d126654b2c9902a4b17bb
This change include the offline tutorial to show users how to set up
storage and use offline playback.
Change-Id: I470bfc6761a433116a766d338ac2a87eee1bde28
We moved TextEngine to a new namespace between v2.1 and v2.2, but
forgot to update the relevant docs.
Closes#1046
Change-Id: Ifddbe03931b2e76cc4778aaa4c3c70695a2dce62
ABR should be disabled before selecting a new track. The demo app
does it right, but the upgrade docs had it in the wrong order.
Closes#962
Change-Id: I57020098f24401c7d56acfe050cf2363cd22621f
While I set out to fix failing assertions during playback, I found
many more changes necessary to clean up the code and make things more
consistent.
When we changed switch history to include variants instead of streams,
we broke the filtering logic that is applied to the history. This
caused assertions at runtime that were not caught by the tests.
This moves the filtering logic to addToSwitchHistory_ and makes it
aware of variants. It also adds a regression test that would have
caught the assertions.
This fix affected many other tests, though, which necessitated other
API changes and cleanup.
Many interfaces are simplified, as is switching logic in Player. The
data flow is also easier to follow, since there are fewer transitions
between variant and stream. Everything up to StreamingEngine uses
Variants, and StreamingEngine uses Streams internally.
- All stream-based interfaces on AbrManager replaced
- switch callback takes a variant
- chooseStreams replaced with chooseVariant
- setTextStreams has been dropped
- Player maintains compatibility with old interfaces until v2.3
- Most stream-based interfaces on StreamingEngine replaced
- onChooseStreams callback to Player returns variant & text
instead of a stream map
- switch was replaced with switchVariant and switchTextStream,
both of which delegate to switchInternal_, which is largely
unchanged from the original switch method
- still has getActiveStreams, which I hope some day can become
getActiveVariant and getActiveTextStream so Player no longer
has to convert anything
- Most stream-based logic in Player replaced
- deferred switches map broken into variant and text members
- switch history logging broken into simpler variant and text
methods
- simplified manual and automatic track selection logic using
new AbrManager and StreamingEngine APIs
- player no longer filters duplicate selections, StreamingEngine
handles that
- replaced one case of deferred switches with an assertion
Closes#954
Change-Id: Ia49f6ffb9c5fa13ed8790dd03eeeded5122f7683
This reverts commit 478fb1a473
("Detect and attempt to correct timeline sync issues") and commit
4334b6ea90 ("Add mediaSegmentReferences
to shakaExtern.Stream").
Timeline correction only addresses one class of broken live content,
while actually making it more difficult to diagnose other classes of
broken live content.
Issue #933
Change-Id: Ie71b8a45600ed0994626f53268fb90e336c3c62b
This will allow us, in many cases, to detect time sync issues in
content by comparing the media segment references to the presentation
timeline. If the references are outside the timeline, it may indicate
a common form of bad content, and we may be able to attempt to correct
it.
In some cases, the references are not available upfront. We can't
detect time sync issues in DASH with SegmentTemplate+duration, because
the references are not explicitly described by the manifest. We can't
detect time sync issues in DASH with SegmentBase, because the segment
index requires additional fetching and parsing. (SegmentBase is not
used with live content, so this should be a non-issue.)
This only introduces the new data, but does not use it for detection
or correction yet.
Issue #933
Change-Id: If70b1bdbd3b08a7c8b7ae296da209737492dfe17
- Move the note about EME and HTTP to the top of the DRM config
tutorial
- Reference this note in both the server authentication and license
wrapping tutorials
Closes#928
Change-Id: Ibb47053c6ce5db1e1b120e0bb810c1f9f9069a82
Update HLS TS question in FAQ to include info about our ongoing
effort on transmuxing TS to fMP4. This will let people know that
the solution is coming and subscribe to the issue on github.
Change-Id: I9b90e4c355834573a0d23472a2ffd369847ddb16
The FAQ file had to be moved into the tutorials folder to make this
work for some reason. JSDoc did not want to take "../faq" as a name.
Closes#865
Change-Id: I63ff5b181f494d72c04eaa054111d9fdc866064c
NPM released a new version which no longer work with the version
of Node we install in the docs. By updating NPM and Node they
play nicely with each other and no longer need the symlink.
Tested on a clean VM using:
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
Change-Id: Ie4a2cce194944ea57b542b01d072dfff8a8b40b3
Do not infinitely retry on top of the retry-policy already defined by
RetryParameters, especially for VOD. For live video the previous retry
logic is still useful to be robust against clock-sync or asset
availability issues. This commit adds a boolean configuration parameter,
infiniteRetriesForLiveStreams, to allow the user to turn this behavior
off even for live video.
Fixes#830 and #762
Add a note that language configs affect the next load.
Change the example in build customization to one that works.
Change-Id: I3baa962fdb0d31c57c195385c9ab9da309fe9c29
Also changes the jsdoc template for tutorials with children, to give
the tutorial content itself control over how the links to children are
formatted.
Also fixes annotations for the TextParser interface.
Change-Id: I99502f38bf711b74a596ad804d8abdddee5d6f4d
This allows network responses to have an X-Shaka-From-Cache header to
indicate that the response was somehow from a cache and should be
ignored for bandwidth calculations. For example, this can be from a
service worker intercepting the request.
Change-Id: I4dfdf4211921b7205febb58f1e80967f0c4841cd
By exporting StringUtils and Uint8ArrayUtils, we can simplify the
process of wrapping, unwrapping, and parsing requests and responses
in NetworkingEngine filters.
This makes it easier to write filters that deal with text-based
data, as it is no longer the job of the application developer to
deal with subtle conversions between string and ArrayBuffer.
We will also fill in requests with defaults if needed. This allows
developers to omit fields when initiating extra requests at the
application level.
Closes#667
Change-Id: Ie6a0f23b4d46e7e458d996759eac6cd85a36b741
This updates the debugging tutorial to clarify a few things:
- Formatting in the sample console output is not exact
- Log level should be set in the top of initApp() before we construct
the Player object
- Verbose messages are only seen after we change the log level and
reload
Closes#653
Change-Id: Id0d7dabff225c3d82a9c54c05bb356a0bfa9b241