We were not able to get our externs generated by the Closure compiler.
There were many issues with the Closure-generated externs, including
the order of the externs and the replacement of record types and enums
with their underlying types.
We made a few attempts to patch the compiler, but could not get our
patches accepted upstream.
This change introduces a new script to generate our externs from
scratch. It uses a JavaScript parser called 'esprima'.
Some interfaces need to be exported to the generated externs, but are
not actually attached to the namespace by the compiler. For this, we
introduce a new annotation. These are the currently-supported export
annotations:
- @export: truly exported (attached to namespace) by the compiler
- @expose: truly exposed (not renamed) by the compiler
- @exportDoc: considered part of the exports in the docs
- @exportInterface: considered part of the exports in generated externs
These annotations are now documented in docs/design/export.md
Change-Id: I33bf7384889c14c9edb0fa5f11caa7c4f4d79af6
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
In the tutorial, I mentioned clicking the error. That is a feature of
the demo app and does not apply in context.
This reverts the tutorial part of Change-Id
I988a40c882adf7c3c9da856e7c850649efecadcf
Change-Id: I782a5ebc2fc7bf744e2cb67890aae28a7817029a
When an error is shown by the demo app, that error is now a link to
the docs for that specific error code.
Also updates the debugging tutorial to mention that this is clickable.
Closes#553
Change-Id: I988a40c882adf7c3c9da856e7c850649efecadcf
Since we no longer clear ahead of the playhead, the only way to assure
responsive visual upgrade is not to buffer too far ahead. Therefore
our new default buffering goal is 10 seconds instead of 30 seconds.
Manual testing using Chrome's network throttling feature has shown
no increase in buffering rates, so 10 seconds seems to be enough for
stable connections.
For situations in which 10 seconds is not enough, the bufferingGoal
setting can still be customized by the application.
Closes#520
Change-Id: I248c1c93dd4cdd037e6e3ca12bb207ba54845836
* Add tutorial tag to shakaExtern.RetryParameters
Properties like `backoffFactor` or `fuzzFactor` is a little difficult to
understand for new users. Link to the tutorial to explain.
* Additional Description to Sample Code
Explains why request.uris is an array.
This should be less awkward and artificial, and focuses more on the
debugging tools available than trying to solve a fictional problem.
Change-Id: Idc451115b777cea3ba84f68d489fe817f8bf0350
This introduces Chromecast support directly in the v2 library, as well
as in the demo app.
See the included design doc for details.
Issue #261
Change-Id: I26a707e7fa6bd829c3ebc70e4c9345ec25eed000
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
- Add prereqs section
- Add architecture diagrams
- Adjust doc margins
- Change some wording and fix typos
- Convert alert() to console.error() in basic usage tutorial
- Expand prose in debugging tutorial
- Add comments about asynchronous methods
- Expand description of Closure base
- Change some links to source rather than API docs
- Clarify some vague language
- Refactor some of the plugin text
Modified jsdoc to add a new 'linksource' tag to link directly to the
source code for an entity.
Change-Id: I6b879050fc59917ce98954a4fabd8afca60af456
Now, the default bandwidth estimate used is configurable and can be
set using Player.configure.
This also moves enableAdaptation and abrManager configuration values
to a subcategory 'abr'.
Closes#268
Change-Id: I11ab30452b20dc4fd9385210811185fe2969821e
- Update tutorial link in README
- Fix python version in README
- Move jsdoc conf to docs/ folder
- Add API docs main page
- Change style of inline code blocks
- Don't repeat tutorial title in jsdoc template
- (makes it easier to read tutorials on github as MD)
- Add tutorials for:
- Welcome to Shaka
- Basic Usage
- Debugging
- Configuration
- Networking and Buffering Configuration
- DRM Configuration
- License Server Authentication
- Plugins
- Tutorials still to come:
- License Headers and Track Restrictions
- Special Considerations for Live
- v2 Upgrade Guide
Change-Id: I16401c216cf4023d9097750ac7f6090c68bf3c9b
The receipt buffer mechanism allowed us use byte-based
eviction; however, it increased the complexity of StreamingEngine
and required us to make strict assumptions about the manifest.
With the receipt buffer gone, we will now do time-based eviction.
Applications can specify a maximum "buffer tail" length instead of a
maximum byte limit.
Change-Id: Iafdbe2e71516ea0ae18254b9767ecfc1d6813644
This changes the text APIs to correctly handle buffered ranges of
segmented text.
b/25517444
Related to issue #150
Change-Id: I3a11b87e8d93376a5012566deb3bf0d015f52391
* Move redesign docs to docs/design/
* Put all build output (including closure deps) in dist/
* Restore doc-building scripts
* Fix small doc error in MPD utils
Change-Id: I930f4f976370885b3c3c37c59f1ae7fcc5522413