Commit Graph

3764 Commits

Author SHA1 Message Date
Joey Parrish 630745ee83 Remove audio type hack.
This hack seems to work around a piece of broken content, but disables
audio on some legitimate content.

Change-Id: Ia559391ac4446bda2392feb00e3285834792c026
2015-03-22 21:48:19 -07:00
Timothy Drews 7606e3349b Remove unnecessary Stream.getCurrentTime().
Change-Id: I0c9d11d9b74b3d3ecc6317df8194f3e294f3b370
2015-03-20 16:55:09 +00:00
Timothy Drews ac95cdfe14 Correct treatment of StreamInfo.timestampOffset.
* Set SourceBuffer.timestampOffset to StreamInfo.timestampOffset
  directly.
* Compute StreamInfo.timestampOffset in MpdProcessor.

Change-Id: Iea5621bc29df3de29d378e58720d6f71452274cd
2015-03-19 14:55:34 -07:00
Timothy Drews 49f4542bec Fix two integration tests.
DashVideoSource no longer delegates to StreamVideoSource.

Change-Id: I2ac46a316d068d764768fc338e1054b362ffddc4
2015-03-19 20:52:40 +00:00
Joey Parrish d481fdc7ec Best-effort clock synchronization.
The clock will be synced, when possible, to the server hosting the
MPD.  The synced clock will only be used in places where accurate
time matters, such as in loggable player stats and in live streaming.

Relates to #21

Change-Id: Id9da1cf23a781f2ce07a46e0936695d512a65133
2015-03-19 18:05:20 +00:00
Oskar Arvidsson c3bf78e8b6 Add Oskar Arvidsson to contributors 2015-03-19 17:28:26 +01:00
Oskar Arvidsson 65634d4b5f Don't decode query parameters when copying it to uri 2015-03-19 17:24:01 +01:00
Timothy Drews ffa39364ba Cleanup promise chain in DashVideoSource.load().
Change-Id: Ib4ab189722b688b89be6ec380c639b5484df1ed1
2015-03-19 00:03:20 +00:00
Timothy Drews a1e2e1ddf7 Use MultiMap for streamSetsByType.
* Annotate MultiMap with @struct to catch misuses at compile-time.

Change-Id: I060390862723ce3e2c10aa512f97131b53c69a23
2015-03-18 13:35:20 -07:00
Joey Parrish 8149193e52 Correct polyfill treatment of generateRequest/load.
Once generateRequest() or load() have been called on a session,
neither can be called on that session again.

Change-Id: Ieedc0cf0fddfcf8df042479e6203a082fbc17c0a
2015-03-18 18:20:06 +00:00
Joey Parrish 6238fdda06 Support playbackRate of 0.
User agents support 0, so we should, too.  We even use it during
rewind already.

Change-Id: Ief8ce29172d095120c22ddcb995338740a78c941
2015-03-18 18:12:54 +00:00
Joey Parrish cbd3bbd565 Fix self-closing tags in test app HTML.
The link and input tags are not supposed to have closing tags.

Change-Id: I66cd32ce5f8c45a17398b917230d98c3350a847a
2015-03-18 10:29:41 -07:00
Timothy Drews 44af1e4518 Implement initial support for live streams.
* Implement an update() method on StreamVideoSource that merges
  a new manifest into its existing one.
* Re-fetch and re-process MPDs from DashVideoSource to generate new
  SegmentReferences.
* Compute last available segment numbers and times in MpdProcessor
  when generating SegmentLists.
* Re-work Period computation in MpdProcessor.
* Handle stream EOF differently for live content.

Additional work is required to handle all "styles" of manifests.

Issue #21

Change-Id: I38be9513dc73e4683d1079b4dedb489e8206043d
2015-03-18 09:11:52 -07:00
Joey Parrish 11739c1619 Merge remote-tracking branch 'github/master' 2015-03-17 17:04:48 -07:00
Joey Parrish d6126a2e26 Fix compile failure in OfflineVideoSource.
This resolves a compile-time conflict between changes to EmeManager
(commit a4e9bc3, merge of pull request #36) and OfflineVideoSource
(commit 18a843e), merged together in f204c8d to create a compiler
error:

offline_video_source.js:81: ERROR - actual parameter 1 of EmeManager
                                    does not match formal parameter
found   : shaka.player.OfflineVideoSource
required: shaka.player.Player
            new shaka.media.EmeManager(this, fakeVideoElement, this);

Change-Id: I6b263ef0e443bb305f96928b0d0c5019056d7014
2015-03-17 16:40:11 -07:00
Joey Parrish 7908229fa7 Merge pull request #37 from palmerj3/contrib
Added Jason Palmer to CONTRIBUTORS and AUTHORS
2015-03-17 16:15:35 -07:00
Jason Palmer 4349d39056 Added Jason Palmer to CONTRIBUTORA and AUTHORS after PR /pull/35 was merged
Change-Id: If5878056ef799875bd39ad13e0f0ec2654d742fc
2015-03-17 19:11:12 -04:00
Joey Parrish f204c8dfe2 Merge remote-tracking branch 'github/master' 2015-03-17 11:22:37 -07:00
Joey Parrish d10a51264a Merge pull request #35 from palmerj3/addModuleExports
feat(build system): Added step to build process that creates index.js in...
2015-03-17 11:12:44 -07:00
Joey Parrish a4e9bc3e6e Merge pull request #36 from sanbornhnewyyz/feature/restrictions
Feature/restrictions
2015-03-17 11:11:25 -07:00
Sanborn Hilland 5672caeaa0 Change setRestrictions to throw TypeError 2015-03-17 10:23:15 -04:00
Sanborn Hilland 3c333135e6 Modify restrictions clone() method to replace @struct on Restrictions 2015-03-16 17:56:29 -04:00
Sanborn Hilland f3d76e8cf6 Call setRestrictions() from player reference 2015-03-16 17:49:12 -04:00
Sanborn Hilland b9f921a1fd Correct emeManager argument order 2015-03-16 16:11:14 -04:00
Joey Parrish eb660e89c6 Update EME polyfill to the latest draft spec.
Fixes the session type strings for persistent sessions.
Adds a comment about the key statuses we deliberately ignore.

Change-Id: I698bc91e46b863cc8cccd0e7509c503d1410d814
2015-03-16 19:03:27 +00:00
Natalie Harris 18a843eef7 OfflineVideoSource store functionality. Issue #22
Change-Id: Ib55ce40619929f7139a0651f0e0874a0bd4fc054
2015-03-16 17:22:50 +00:00
Sanborn Hilland 97715f78d6 Remove restrictions arg from eme instantiation 2015-03-13 15:50:48 -04:00
Sanborn Hilland 56cb4a2d2c Refactor emeManager to accept player as arg 2015-03-13 15:49:22 -04:00
Sanborn Hilland c1f6ed89ae Refactor player.setRestrictions() 2015-03-13 15:38:18 -04:00
Sanborn Hilland dca4474aaf Refactor getRestrictions to use clone method 2015-03-12 18:14:04 -04:00
Sanborn Hilland 7e84509766 Add getter and setter for restrictions 2015-03-12 12:27:26 -04:00
Sanborn Hilland 2d47d3d64d Correct contstructor documentation 2015-03-12 12:26:14 -04:00
Sanborn Hilland ce9ee3a06c Declare restrictions object on player 2015-03-12 11:42:19 -04:00
Sanborn Hilland a7fa082213 Pass restrictions object into emeManager 2015-03-12 11:41:43 -04:00
Sanborn Hilland 07a7824d2b Add check for min and max Bandwidth in setRestrictions 2015-03-12 11:29:16 -04:00
Sanborn Hilland d1995d380c Add max and min bandwidth properties to restrictions 2015-03-12 11:26:38 -04:00
Jason Palmer e4f8881957 Added index.js generated file to .gitignore
Change-Id: Ife5365fa334b72c682a7da9666df2487e800083e
2015-03-11 22:38:25 -04:00
Jason Palmer 41805f7cb7 feat(build system): Added step to build process that creates index.js in the root folder and exports all the main classes for CommonJS support
Change-Id: I53e0bcf483f6e3d46e9d9a28a4881fad7b6be13c
2015-03-11 19:45:49 -04:00
Joey Parrish e2f31dd268 Add a script to check versions.
This script checks for versioning mistakes and will prevent npm
publication if any of the checks fail.

This also drops the check.sh script, which nobody was using.

Related to #30

Change-Id: Ic8e504515ac31beb7833207aa2ac463d40cfae88
2015-03-11 16:19:06 -07:00
Joey Parrish 56650d6820 Make DashVideoSource inherit from StreamVideoSource.
Change-Id: I1cb18e779721695333dd510ecb62119b9420d7ae
2015-03-11 15:10:36 -07:00
Joey Parrish 627803d718 Update changelog for v1.2.2
Change-Id: I0e162ac2d0b9d96a32c5c1b8314753e57fe2481a
2015-03-11 12:21:10 -07:00
Joey Parrish 4fa805d43a Fix version derivation from unannotated tags.
Related to #30

Change-Id: I6f4175a6a2edeca9422cc4cf07a01356c305e9e1
2015-03-11 12:21:10 -07:00
Sanborn Hilland 1590035fea Add getter for state of automatic adaptation
Closes #29
2015-03-11 12:15:45 -07:00
Sanborn Hilland 756d22851c Add name to AUTHORS and CONTRIBUTORS files 2015-03-11 12:15:45 -07:00
Joey Parrish 1b87e220a7 Update changelog for v1.2.1 bugfixes.
Change-Id: Iff6fbe76598296129eca45385f028312707eedd7
2015-03-10 16:00:41 -07:00
Joey Parrish 60f186dcd4 Update clearkey test license.
This fixes the clearkey test license for Chrome 42+.

Also drops the test license generator script, which is out-of-date,
never used, and rotting a bit.

Change-Id: I87f9b0780d97a9054672612c02584178007d868f
2015-03-10 13:40:01 -07:00
Joey Parrish 033a3f4c53 Broaden test app support for init data overrides.
Init data overrides will now be honored by the test app for all but
YT clearkey content.

Change-Id: Ie1cb0209e7b374812e6023fdaabe0f452f8dc424
2015-03-10 13:40:01 -07:00
Joey Parrish b796e9a55a Create custom player controls.
Also deprecates several methods on Player that are better accessed
directly on the video element.

Change-Id: I11e41ec7025aa2bc63e14febcadf42a1acc510eb
2015-03-10 19:40:57 +00:00
Joey Parrish c67e6555e8 Allow EME events to start before video.src set.
In the latest unprefixed EME implementation, sessions can be created
and manipulated independently of video tags.  This simplifies the EME
manager somewhat, and requires a slightly trickier prefixed EME
polyfill to emulate this behavior on Chrome 40 & 41.

Change-Id: Ia5e942449b27cd57b54c92a8b40c0fb5c95577c0
2015-03-10 16:53:13 +00:00
Joey Parrish 9bcf504078 Try to recover from a streaming failure.
Closes #28.

Change-Id: I09df3e2fbb631ca1215e5d44baa9ada67ede9cee
2015-03-09 15:23:26 -07:00