Commit Graph

105 Commits

Author SHA1 Message Date
Jacob Trimble 62a4735343 Add document describing DASH manifests.
Closes #1233
Issue #1265

Change-Id: I3f207bedd4a943ca49ddc580f152e92e33d7e89a
2018-03-01 17:23:58 +00:00
Joey Parrish 86b323d6a1 Simplify linux prereqs process with a script
This adds a new script which should simplify the process of installing
prereqs on Debian and Ubuntu-based Linux distributions.  This also
updates the required versions of NodeJS and Git.

Closes #1175

Change-Id: If298cc46650bfd0ebe726c8fa3184dd0d063bfaf
2018-02-26 18:03:09 +00:00
Joey Parrish abb0e7e4d1 Recommend the use of the debug library
Instead of using the uncompiled library, which some app developers
have been confused about, recommend the use of the much simpler debug
library, which offers many of the same advantages.

Thanks to @jpmedley for pointing out the complexities of using the
uncompiled build.

Change-Id: I771a2b5a98152a67807629538d8537721177399f
2018-02-22 12:27:03 -08:00
theodab b4ca4bf51c Adds an HTTP/s scheme plugin using Fetch
This plugin is preferred over the XHR plugin, if available.
This plugin requires AbortController, which is only present on
Firefox 57 and Edge 16, so this will not be active on every platform.

This also adds a simple mock for the Fetch API for use with Jasmine.

Closes #829

Change-Id: Ifb79d29334fbfcfd175afe0706da5a3d5e452e2f
2018-02-08 23:11:53 +00:00
Joey Parrish 2f00ffba8c Turn warnings into errors in jsdoc
This will help us avoid accidents like having certain tags ignored.

Change-Id: If31e7d2f9d704af041fc5bb357396aeb797bc48b
2018-02-07 20:25:35 +00:00
Joey Parrish 5061631f29 Sort jsdoc tutorials according to the config file
This feature is based on a forked version of jsdoc which we hope to
land https://github.com/jsdoc3/jsdoc/pull/1502 upstream.

Closes #1259

Change-Id: I48e07ffd8ae9fc2c07cd48b3e02b85e87694d341
2018-02-02 14:51:40 -08:00
Joey Parrish 3dbf28ce39 Fix jsdoc linksource error on bad markdown escape
Issue #1259

Change-Id: I34fb3514b04087fb1389f64e3cb91eaf852af648
2018-02-01 21:55:01 +00:00
Joey Parrish 75d9767983 Show more verbose functions and records in docs
Replace generic "function" and "record" types with their original types.
With this, we see, for example:
   "function(string):number" instead of just "function"
   "{{ foo: string, bar: number }}" instead of just "Object"

Issue #1259

Change-Id: Icd5ddbacadb7ec799e025b67f311792dd590b310
2018-02-01 21:55:01 +00:00
Joey Parrish c2472dcffc Allow the user to show/hide parts of the docs
This adds custom CSS classes and a widget to show/hide various parts
of the docs.  By default, we show exported interfaces only.  The user
can also select "public" (all public interfaces, even those not
exported), and "everything" (even private members).

Issue #1259

Change-Id: Iff8f4d84658a3d19ad8f2f979ab37b256393589f
2018-02-01 21:55:01 +00:00
Joey Parrish df0d34ccf5 Add linksource tag to jsdoc
This is a customization that allows us to link to the source code of
a thing, rather than its documentation.

Redoing this in a clean way caught some bad links, which have now been
fixed.

Issue #1259

Change-Id: I4c63aa10ddad8f8f21b224668c3529c70a1c6756
2018-01-31 14:05:13 -08:00
Joey Parrish 5f8fe9de65 Show jsdoc enum values and allow focus from URL
We now show enum values in the generated documentation.  Further, a
URL fragment of "value:6001", for example, would highlight and scroll
directly to the row in which value 6001 is described.  This is used
by the demo app to take users directly to the appropriate docs for a
given error code.

Issue #1259

Change-Id: Iae47e661db2bba43eb16a4f3fd1476adea59aecb
2018-01-31 22:04:48 +00:00
Joey Parrish a324958f2c Tweak jsdoc formatting
- always show Constructor heading for class constructors
 - hide top-level header that just repeats information from elsewhere
 - show namespace descriptions as a "class description" at the top
 - remove 2 redundant headers from tutorials that repeat the title
 - use a gray background for inline code, as github does
 - put more space between headings within a tutorial

Issue #1259

Change-Id: I7eedd69b7a732da0f3292912ec07d97eccb44eed
2018-01-31 22:04:48 +00:00
Joey Parrish b0d6a3e23d Add jsdoc metadata for interface implementations
The docs template already shows this, but for some reason, it is not
populated anywhere.  Our plugin takes care of this.

Issue #1259

Change-Id: Ifd4233e5b7b9ca5abb1aec681ae1b12c8a895d44
2018-01-31 22:04:48 +00:00
Joey Parrish af26b4f965 Add jsdoc output for base classes
Now we can see when one class extends or inherits from another.

Issue #1259

Change-Id: I14fc6361ed6c967d87e8aa9da0fc7c12e4177faa
2018-01-31 22:04:48 +00:00
Joey Parrish 91ad9b6464 Add custom tag support to jsdoc
This uses a plugin to customize certain tags in jsdoc.

In some cases, we have invented new tags in our build system.
In others, we want to the docs to treat things differently than the
build.

Issue #1259

Change-Id: I934ad578cf7479572cb807c5b3aee489c332343a
2018-01-31 22:04:48 +00:00
Joey Parrish 0ed16c6caa Use long names in all jsdoc headers
For example, instead of "Class: Ewma", we want "Class: shaka.abr.Ewma".

Issue #1259

Change-Id: Id6918b508d1bde4a6b3be16805a63e673b58d0e4
2018-01-31 22:04:48 +00:00
Joey Parrish 5bd6a80c14 Customize jsdoc nav order
We can now specify in a config file what order the nav elements should
be in, and which nav elements should appear.

Issue #1259

Change-Id: I4caa3a0585b4140e76a66f1c5bed0c20c82ca5a4
2018-01-31 22:04:48 +00:00
Joey Parrish ed54199260 Upgrade and unfork jsdoc
This updates jsdoc to the latest version from npm and forks a copy of
the default jsdoc template.

In subsequent commits, we will reapply our customizations to the
template and to a jsdoc plugin.

This also fixes several bad annotations that the new jsdoc failed to
parse.

Issue #1259

Change-Id: I00a47270ea4754e1c96c43ca900d5cf889ab72e6
2018-01-31 22:04:48 +00:00
Joey Parrish 82357486a6 Replace buggy Promise polyfill
A bug in our Promise polyfill caused issues with the recently-added
AbortableOperation class on IE11.  Since external polyfills for this
are smaller, it is easier to remove ours in favor of a third-party
polyfill.  Applications that wish to support IE11 must now load this
additional polyfill.

We are using the "es6-promise-polyfill" module from npm, but any
compliant polyfill should suffice.

One feature our own polyfill offered was the ability to flush all
Promises, which allowed us to write synchronous unit tests that
simulated async processes.  To get this ability back, we are now
using the "promise-mock" module in our tests.

Getting "promise-mock" to load correctly involved switching from
"requirejs" to "cajon", which builds on requirejs and supports
AMD modules more directly.

Closes #1260

Change-Id: I5de48e88a910736ae5c1897a7a509bc5641acb70
2018-01-30 23:10:04 +00:00
theodab abf9f5ed08 Min bound bufferBehind with max segment size
When playing manifests with segments longer than bufferBehind, while
gap jumping is enabled, there can be issues where the streaming engine
evicts the frames of the segment currently playing, thus creating a
gap that is then jumped.
This change makes the streaming engine use bufferBehind or
maxSegmentSize, whichever is larger, when choosing when to evict
segments.
It also adds a getter for maxSegmentSize on presentationTimeline.

Closes #1123

Change-Id: I83459c5eb3ebb1d6dff031e2bc244ac9fc3b5763
2018-01-30 22:04:14 +00:00
Joey Parrish 2f55d2a3bd Use AbortableOperation in networking
This uses AbortableOperation in all networking, from the scheme
plugins all the way to the request interface.

This also updates all default scheme plugins, docs, and sample code.

Backward compatibility is provided for scheme plugins and the
request API in NetworkingEngine.  This compatibility will be
removed in v2.5.

Two cancelation-related tests have been disabled in
player_integration until the new abort interface has been adopted
in the manifest parsers.

Issue #829

Change-Id: I91c8e6efe97798d111e8ddca5655cddc1f6bcbf3
2018-01-29 19:23:47 +00:00
Joey Parrish e298fb60fc Update muxjs to use new keepOriginalTimestamps option
Depended on issue videojs/mux.js#168

Issue #1194

Change-Id: Ia2ad5c17ad82a2c53215d34fbfec7be1d119df95
2018-01-18 20:18:09 +00:00
theodab 27ffe4d23a Add an FAQ entry for handling file:// requests
Closes #1222

Change-Id: I5cb9dcb07d65d839aa4809faaea9bf2273c69c68
2018-01-16 15:03:55 -08:00
Aaron Vaage d8cc658606 Removed Extra </span>
In the offline tutorial there was an extra closing tag for
a span tag.

Change-Id: I4ac2691b362bcd2c8c9ff61d8faf4770a3e428e6
2018-01-05 10:47:38 -08:00
Joey Parrish 1a2c88745e Upgrade the Closure compiler to v20171203
Change-Id: Id0dd4619db0c3a141d60e9e38757739e0697e6f0
2018-01-03 15:07:02 -08:00
Darío Hereñú b7f783d3c7 Fixing Typo in upgrade-v1 docs
Fixing a typo in docs/tutorials/upgrade-v1.md
2018-01-02 09:24:27 -08:00
Joey Parrish 9a69e26a86 Fix upgrade guide links
Change-Id: Ia5427a5b50850e820b04dbf5ba66b2146820f3a1
2017-12-22 15:15:54 -08:00
Joey Parrish ab0db55d27 Update upgrade tutorials to target v2.3
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
2017-12-20 15:56:35 -08:00
Joey Parrish 918a122a57 Update service worker caching docs
Issue #1183

Change-Id: If6eb7add692e31efa99008773f4107ea45cc3013
2017-12-20 03:02:52 +00:00
Joey Parrish e23bfb3a24 Update manifest parser tutorial
Issue #1183

Change-Id: Ic16e84f98cb45f2ecbba6da985f310e8f55b6b42
2017-12-20 03:02:52 +00:00
Joey Parrish 3f65d1c8a7 Update plugin tutorial
Issue #1183

Change-Id: If7024cbfabb7d85299162cb6488b5f44ed07febd
2017-12-20 03:02:52 +00:00
Joey Parrish 62e77876fa Update offline storage tutorial.
Issue #1183

Change-Id: I0ac267b2c620b9d28c3cf4a28c103e8ef772c368
2017-12-20 03:02:52 +00:00
Joey Parrish a17e904261 Add upgrade guide for v2.2 => v2.3
Issue #1183

Change-Id: Ib933603dd5ea35e1aa2c600970ce71a9a0a37b2e
2017-12-20 03:02:52 +00:00
Joey Parrish cd04cca269 Update config tutorial examples
Issue #1183

Change-Id: If3f9eb587c87babe7a8b43b5ced7d1b80205b1c1
2017-12-18 22:14:42 +00:00
Joey Parrish 1f58664d6b Update architecture diagrams
Issue #1183

Change-Id: If68b6aca71cb09756af2bbb0836c381397741508
2017-12-18 22:14:42 +00:00
Joey Parrish 4372d482b2 Update FAQ
Issue #1183

Change-Id: I1830b1343b11567643ef1994113265c037662701
2017-12-16 10:41:44 -08:00
Joey Parrish 08601defc8 Refactor README.md and welcome.md
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
2017-11-28 00:14:32 +00:00
Joe Medley 1cf25d433a Correct name of init function. (#1124) 2017-11-14 11:58:49 -08:00
Joey Parrish 5f81a464bd Update address of Widevine proxy to UAT
The appspot proxy address has been deprecated. UAT is now preferred.

Change-Id: I7a5f5eac554ec70eec83218d79f4927becd23828
2017-10-31 09:12:05 -07:00
Joey Parrish 9e571b3938 Update docs with regard to users list
The users list is now for announcements only.

Issue #1095

Change-Id: I4d86bfda5c116e88b950e2139a1c3d42afc91693
2017-10-30 15:28:16 -07:00
Aaron Vaage d85abe86da Offline Tutorial
This change include the offline tutorial to show users how to set up
storage and use offline playback.

Change-Id: I470bfc6761a433116a766d338ac2a87eee1bde28
2017-10-18 18:45:19 +00:00
Joey Parrish 37753aaa9a Update docs with regard to text namespace
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
2017-10-03 20:48:41 +00:00
Tim Plummer 775d755259 Remove deprecated @expose annotations.
Added externs for error.js and removed the @expose declarations from the
actual error.js file. Updated the jscompiler flags and docs.

Change-Id: I2aa95ef1c82fc7bd349c637cca3141d5a003b646
2017-09-26 13:51:36 -07:00
Jacob Trimble c9aca1aeb9 Add CORS explanations to tutorial.
Closes #1018

Change-Id: I0ec915fe37b3cc62aff0184f2306297b388db701
2017-09-26 17:17:23 +00:00
Joey Parrish c7cd714b0d Fix FAQ typo
Change-Id: I6f2cd0b383ab849e7b4b0d14929b7c4b16dfa8e4
2017-08-31 20:05:37 +00:00
Joey Parrish 16f3965496 Update FAQ with regard to error codes
We no longer use UNPLAYABLE_PERIOD when TS is unsupported.

Change-Id: Ic6278e8eda62d8fd55697c64226a4ac868078a1e
2017-08-14 15:04:30 -07:00
Joey Parrish 7d42496a59 Fix upgrade guide titles and links
Change-Id: Ie6f5abde281ae7f2f1c6552f749a82d91694c736
2017-08-11 16:04:33 -07:00
Joey Parrish 2af0de2adb Move streaming retry logic into callback
Closes #960

Change-Id: Ieeacbf2e25f53a5af25a1de1935085e43457a092
2017-08-10 20:27:53 +00:00
Joey Parrish 53c3ad776c Fix order of operations in ABR upgrade docs
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
2017-08-10 18:32:24 +00:00
Joey Parrish 37ebcffbfe Add player.retryStreaming()
This method will allow applications to retry streaming after a
failure.

Issue #960

Change-Id: I2c97f6dea44dbc9431182172101f99d740ea177f
2017-08-10 10:54:34 -07:00