Commit Graph

3764 Commits

Author SHA1 Message Date
Joey Parrish 4a87b11ed3 Fix case-sensitive scheme URI check
Change-Id: I000190afa4803441a64f70e769dafacaa1d90eea
2015-07-03 08:30:18 -07:00
Joey Parrish 70e370c7eb Add Porting and Browser Support tutorial
Also:
 - removes outdated isBrowserSupported() check for Node.children
 - adds mention of polyfill.installAll() to polyfill tutorial

Closes #66

Change-Id: I8a633858d2536ecf6110aac1326f58c17ccc5672
2015-06-30 22:44:17 +00:00
Vasantha Rao Polipelli bbd2dd0e28 Add server certificate support to DrmSchemeInfo.
Closes #84

Change-Id: Ifb6144f6cb0b6d3a68dd816a255aa04369fabeef
2015-06-26 20:27:09 +00:00
Timothy Drews 4d96b30ba5 Use @startNumber as specified in new MPD spec.
Reflect modifications made in ISO/IEC 23009-1:2014/Cor 1:2015:
allow @startNumber to be 0 and compute the $Time$ placeholder using
the segment number relative to the start of the Period.

Closes #10

Change-Id: I4a9b0e4e3593c01e2e8d42a74572e78b9fba50d9
2015-06-26 18:46:37 +00:00
Joey Parrish ccb3ed5ae3 Merge pull request #110 from ustudio/old-ie
Load without errors in IE 9
2015-06-26 09:36:37 -07:00
Thomas Stephens 0f914cf953 Removing unnecessary @type annotation 2015-06-26 10:23:10 -05:00
Thomas Stephens 2c7196ca07 Removing unnecessary @type annotation 2015-06-26 09:13:54 -05:00
Timothy Drews e8fdcc2eb3 Enable BandwidthEstimators to allow caching.
Adds an API to IBandwithEstimator to enable BandwithEstimator
implementations to allow/disallow caching.

Issue #76

Change-Id: I842994981a0821e22de412478f094850414b6289
2015-06-26 03:41:18 +00:00
Timothy Drews 1a5612d813 Fix broken MpdProcessor unit tests for Location.
Change-Id: Id6667a4d77729aa5c5f25635af43e253a8465f49
2015-06-25 10:49:48 -07:00
Thomas Stephens 5abe5b59df Adding missing docs and type annotations 2015-06-25 09:23:20 -05:00
Thomas Stephens 6a235a107e Code review comments 2015-06-24 22:08:14 -05:00
Joey Parrish 5687014795 Add Karma config
This should make testing in Karma easier, and in particular, easier
for use in automated systems.  We will not package Karma into
third_party at this time, but may reevaluate that decision later.

Change-Id: Idf407c6ec0b3b876284768f2bc37e0edd032c32e
2015-06-24 21:19:33 +00:00
Natalie Harris 49f72245a5 Split integrations tests into a separate runner. Closes #104.
Change-Id: I14b88d0bdc63b7cc3b42cfe56587d9a812a94bc0
2015-06-24 12:01:28 -07:00
Natalie Harris 7e0dd04bcf Document trick play functionality. Closes #54.
Change-Id: If752a614bc3cd710e42322adc6879c692f63d125
2015-06-24 11:58:16 -07:00
Timothy Drews 76c0743b17 Enable code coverage stats through a URL param.
It's easier to debug without code coverage stats, so disable
them by default. They can be enabled by specifying
'enableCodeCoverage' as a URL parameter, for example,
http://localhost/shaka/spec_runner?enableCodeCoverage
Also works when specifying specific sets of tests, for example,
http://localhost/shaka/spec_runner?enableCodeCoverage&spec=mpd

Closes #105

Change-Id: I59ba1c7c3cc01557ac3eb4eb7b72e6c49e8ea70d
2015-06-24 17:50:02 +00:00
Timothy Drews e8cabb6029 Use the Location element for MPD updates.
Closes #65

Change-Id: I92790ba3502cde5899085f02c6a80a48ba093ee2
2015-06-24 00:59:36 +00:00
Thomas Stephens d5b4499e65 Updating authors and contributors, now that we've signed the CLA 2015-06-23 16:28:01 -05:00
Joey Parrish ce77c47c69 Add a brief error event tutorial
Closes #106.

Change-Id: Ifdacd0f54c81052940ac00fa69c31cca322c415a
2015-06-23 14:27:03 -07:00
Natalie Harris cdb2934a0f Add trick play to the test app. Issue #54.
Change-Id: Icb90675f1f8e7409f53b5a0d9aa50ad92c1e1f12
2015-06-23 14:16:36 -07:00
Joey Parrish b306a9d7cd Document the fact that autoplay is a non-starter for mobile.
Change-Id: I4ca26c27bef1d59efc0aaa3270150da3ae91ba44
2015-06-19 13:50:10 -07:00
Joey Parrish 30672d65a0 Jump to live when clicking on time code
Change-Id: I5b6a7157e5551f5d50495c0f184a54dbb21e0c77
2015-06-19 13:20:10 -07:00
Joey Parrish 233e3351ee Revert "Do not assign currentTime of video unless MetaData is available."
This reverts commit 93aa2ed0e8,
which broke live streaming.

To reproduce, use: spec_runner.html?spec=Player%20live

Change-Id: I734f36cfc1226d34058e70b723e53d607664fb53
2015-06-19 13:09:44 -07:00
Joey Parrish ffb9839c16 Icons for trick play controls
Change-Id: I5871796b2f8d7fbc6a36d8267d94170d46eff938
2015-06-19 11:51:14 -07:00
Joey Parrish 4dd0559b0b Re-sort the CONTRIBUTORS and update AUTHORS
Roi Lipman was left out of AUTHORS before.

Change-Id: I8b3f6761501241801dbe6593cf1feeb5cd364386
2015-06-19 09:57:50 -07:00
Joey Parrish 472ec24eb9 Merge pull request #103 from nickdesaulniers/firefox
defer assigning to video.currentTime Fixes #101
2015-06-19 09:54:28 -07:00
Nick Desaulniers e443927416 Add Nick Desaulniers to AUTHORS/CONTRIBUTORS 2015-06-19 09:49:43 -07:00
Thomas Stephens 72608396da Check for Uint8Array in isBrowserSupported 2015-06-19 11:27:33 -05:00
Thomas Stephens 4e14ff8a6f Code review comments 2015-06-19 11:27:18 -05:00
Thomas Stephens c10a63d469 Check for Uint8Array in support.js 2015-06-19 10:30:21 -05:00
Thomas Stephens 411c738f67 In IE 9, document.body does not exist yet when the document is in the 'interactive' state, or on DOMContentLoaded. Instead, wait for 'window.onload' 2015-06-19 10:17:01 -05:00
Thomas Stephens 56df639d24 Replace const with var, since const isn't supported on old IE 2015-06-19 09:50:54 -05:00
Thomas Stephens b0a8017866 Style fixes 2015-06-19 09:50:12 -05:00
Natalie Harris a966ee2a23 Use checkboxes for test app cycle buttons.
Closes #46.

Change-Id: Ic325d2a816995f49d6083f7ef2da04766ca0d941
2015-06-18 22:10:56 +00:00
Thomas Stephens 2ed347862e Patching console.assert when it does not exist, or when bind is not implemented on it (IE 9 with F12 Developer Tools open) 2015-06-18 16:47:29 -05:00
Thomas Stephens ec623c6d38 Patching console logging functions when they do not exist, or when bind is not implemented on them (IE 9 with F12 Developer Tools open) 2015-06-18 16:47:09 -05:00
Thomas Stephens b1baaaf33c IE 9 has window.performance, but not window.performance.now, so explicitly checking for it 2015-06-18 16:18:19 -05:00
Nick Desaulniers 93aa2ed0e8 Do not assign currentTime of video unless MetaData is available.
Fixes #101
Required for Firefox's and IE's MediaElement implementations.
2015-06-18 13:58:56 -07:00
Timothy Drews fbea2279b3 Re-work stream switching.
* Allow segments from different streams (Representations) to coexist
  in buffer.
* Only fetch a single segment at a time.
* Remove id field from SegmentReference and remove SegmentRange.
* Only start the Streams once the buffer is "full".
* Stop DashVideoSource from triggering an extra resync during startup.
* Make Task.abort call order deterministic.

A follow-up patch is required to handle certain seek patterns in
live streams.

Issue #51

Change-Id: Ib7c9021471f1ed89323f19764463202b119cb491
2015-06-18 12:54:25 -07:00
Timothy Drews 77e04e9a49 Destroy ManifestInfos during test tear-down.
Without destroying ManifestInfos some SegmentIndexes may
persist outside the tests they were created in, which may
cause spurious test failures.

Change-Id: Ia6c2fe312b7bd6cd2dcd338dd43c20ce0a5715d6
2015-06-18 11:03:04 -07:00
Natalie Harris e2b355fe1f Timestamp correction test for segment duration template.
Change-Id: I676e0c8bad4af85c9e78491fc9acf28c4c89e4b2
2015-06-16 13:06:02 -07:00
Joey Parrish 4114342cba Enhance FakeEvent assert output
This makes it easier to see which key is failing when debugging.

Change-Id: I236219d93c833d2de2a92a232414309e20f09b15
2015-06-13 18:50:37 +00:00
Timothy Drews 9e0b48b3a1 Add tests for license pre/post processor.
Change-Id: I052b3b44cd0521b5a4f73e24f6698bac4e82a04c
2015-06-12 22:48:16 +00:00
Timothy Drews ee6b3942af Use all members in DrmSchemeInfo.combine().
* Check each member in DrmSchemeInfo.combine().
* Modify the resulting DrmSchemeInfo in-place.

Closes #96

Change-Id: I5eddb29966c4b2ad39f4140c3c87dca96aee28f8
2015-06-12 22:44:11 +00:00
Joey Parrish 8efe577459 Fix offline percentage
This was broken by a bad reduce, in which the initial value of "sum"
was an object.

Change-Id: I3ce2d723e9274dd7c3c86340d321ef8e3d030792
2015-06-12 22:12:55 +00:00
Timothy Drews 61f2c4f2a9 Re-organize SegmentIndex tests.
Change-Id: I0bd6664a1ab467856f2a6a5fe9195454b167331f
2015-06-12 10:48:25 -07:00
Timothy Drews 96b369e3fa Use a fake error to avoid exceptions in tests.
Promise.reject() was causing error.type to be undefined in
the final catch block of StreamVideoSource.onUpdateManifest_().

Change-Id: Id5ddf8901e38559889e41d389b96c620b3dfaaa7
2015-06-09 12:17:14 -07:00
Timothy Drews 22c57e99e4 Rework SegmentIndex functionality.
This patch reworks SegmentIndexes so that any SegmentReference they
contain is guaranteed to be available. This makes SegmentIndexes work
consistently between static content and live content (specifically
content specified using SegmentTemplate with @duration).

* Rework StreamInfo to use a ISegmentIndexSource and a ISegmentInitSource,
  which construct a SegmentIndex and an intiailization segment
  respectively.
* Make ManifestInfo destructible and various async operations in
  StreamVideoSource safer.
* Introduce LiveSegmentIndex, which manages SegmentReference eviction.
* Introduce DynamicLiveSegmentIndex, which manages SegmentReference
  eviction and generation.
* Implement improved segment availability logic for segment eviction.
* Move SegmentIndex construction from MpdProcessor to several
  ISegmentIndexSource implementations.
* Use a SegmentIndex to represent subtitles to simplify Stream creation
  in StreamVideoSource.
* Move manifest update code from StreamVideoSource to ManifestUpdater.
* Move PeriodInfo.duration determination in MpdProcessor to StreamVideoSource.
* Since "forced" manifest updates are no longer required for content
  specified using SegmentTemplate with @duration, simplify manifest update
  code in DashVideoSource.
* Make Stream continue to update even if it runs out of
  SegmentReferences, this simplifies previous resync logic and makes
  DynamicLiveSegmentIndex work seamlessly.
* Refactor SegmentIndex and initialization fetch code in ContentDatabase.
* Download all SegmentIndexes in the background after the initial streams
  have started.

Follow up work is required to remove seek range logic from
DashVideoSource.

Change-Id: I4a908195aba632a911a6e55213fc41d41428162b
2015-06-09 11:46:40 -07:00
Timothy Drews 6d08f0b97a Add a license pre-processor.
Allow applications to pre-process license requests; also makes
the license post-processor an optional parameter.

Closes #62

Change-Id: Idb57f101c3a5f08da85d37ec7e252ffca886a6ae
2015-06-09 15:58:14 +00:00
Joey Parrish 071ee2dd06 Test buffering on startup.
Closes #77

Change-Id: Ib48ffef45825b86ce59fb7fa17e8e390ac8678b3
2015-06-09 04:42:07 +00:00
Timothy Drews 822bacd2a8 Allow PSSH override with custom WV license server.
* Enable overriding a WV license server URL from the UI with a
  PSSH override in an MPD.

Closes b/21441806

Change-Id: I01aa462c82b0fe2a6ade63dffd6803891cbab90f
2015-06-08 22:18:22 +00:00