* Updates all Copyright years to 2015.
* Adds licenses annotations to all JS.
* Makes all licenses identical to avoid repeated appearance in the
compiled output.
* Drops fileoverview annotations, which do not affect docs output.
* The linter still requires fileoverview on externs.
This patch required a newer closure compiler, since the previous
version we used had a bug regarding license annotations that caused
the license comment block to appear in the output once per file
regardless of uniqueness.
Change-Id: I2e9272db680cba7ecc4613d97f1d3a94ac2244cc
This reverts commit 8cb24652cb, due to
the fact that the new annotations caused our binary size to jump
by 52%.
The compiler preserves all 'unique' licenses, which causes trouble
since the comment blocks with the license annotations are not unique
and contain file overview comments as well.
We can re-examine this once we have restructured the license headers.
Change-Id: I418e407a0e0253630633697f30cf496a7fc2ddfc
Use 'keystatuseschange' events from EME together with cenc:default_KID
from the MPD so StreamVideoSource can determine if the key system
can/will decrypt a stream before it attempts to play it. This enables
the Player to safely (and automatically) switch between streams that
are encrypted with different keys.
Support AdaptationSet @group, which is the preferred approach to safely
use multiple encryption keys over multiple Representations.
* Squash AdaptationSets from the same group into one StreamSetInfo.
This enables support for @group without introducing special case code
into StreamVideoSource and EmeManager.
* Fire 'trackchanged' events when tracks becomes available/unavailable
either from application restrictions or key status changes.
* Pull key IDs out of DrmInfo and put them into StreamInfo so key status
changes can drive per stream availability instead of per StreamSet
(AdaptationSet) availability.
Closes#67
Issue #160
Change-Id: Ife0814deb65715923a572b45880137a99b378035
* Further clarify DrmInfo documentation and provide basic examples for
license pre/post processing.
* Update the tutorials to use DrmInfo instead of DrmSchemeInfo.
* Use @exportDoc instead of @expose where applicable.
Issue #137
Change-Id: I9e931623a137004566123073447ccd71d8532e38
Add new ContentProtection interpretation API that allows applications to
return multiple DRM configurations for each ContentProtection element
and to parse raw ContentProtection XML elements.
This patch deprecates DrmSchemeInfo in favor of DrmInfo. Furthermore,
DrmSchemeInfo will be removed post v1.5.0.
* Replace DrmSchemeInfo with DrmInfo.
* Move Restrictions class definition into its own file.
* Populate initData values from explicit PSSHs without application
intervention.
* Allow explicit PSSHs to differ between Representations
Issue #71
Issue #137
Closes b/23428584
Change-Id: Ib8d6ba630b930ee64f923a3f4a3e518abacccf88
* Add an optional parameter to Player.selectAudioTrack to clear
the buffer like selectVideoTrack.
Closes#119
Change-Id: I40c4c1969115826890fe9719a988315b51e5b28c
Previously, you couldn't use question marks or equals signs in params,
which made passing asset and license params more difficult.
Change-Id: I472f94d0a48cfd9b53f25e0e0ee9fdc7f0f9bed8
Allow applications to pre-process license requests; also makes
the license post-processor an optional parameter.
Closes#62
Change-Id: Idb57f101c3a5f08da85d37ec7e252ffca886a6ae
* Enable overriding a WV license server URL from the UI with a
PSSH override in an MPD.
Closes b/21441806
Change-Id: I01aa462c82b0fe2a6ade63dffd6803891cbab90f
This was broken when we switched to childNodes, which unlike
node.children, can contain whitespace nodes as well as elements.
Change-Id: Icf546774c04ec4df8c4dabe51bcf8b994ab0cfde
Update the currentTime UI while dragging the seek bar.
Defer seek-bar-initiated changes to avoid spamming video.currentTime
with seeks.
Change-Id: I8f8f6e52d05f4b94d671e30ab7423014bcbb8e13
This interfered with key rotation, and was not widely used. Removing
the feature is the more general approach, and the worst that will
happen is that some applications will see more sessions than they
strictly need.
Change-Id: Ide2238433af296e729e4401711672fb17257093e
The button state is calculated by onMpdChange(), but requires offline
groups to be populated first. The button state should also be updated
when the custom MPD field is used.
Issue #22.
Change-Id: I58009a4833c61d2db3b176b2f9868b3ae73725a1
Because localStorage is shared between pages on the same domain,
the way the test app used an arbitrary number and set of keys
causes a conflict with the documentation, which uses localStorage
to remember preferences. This manifests in the appearance of an
unusable MPD in the offline list called "show", since this is the
localStorage key used by the docs.
Change-Id: Ie906f9d2f3259dae33d3682ce61e942e27531d26
If a postprocessor wants to impose restrictions, it will now have to
talk directly to the Player to do so.
Also closes#41.
Change-Id: Ic5acf63c2572bb440cc53026561b9e98ffb752ec
The initData here is a single key ID, which is the webm format.
The cenc format would be one or more concatenated PSSH boxes.
Change-Id: Ia71e8fabdc5d843154999d1ef76d9f7caf8c2078
* Rename the bear clip to reflect the fact that it is actually a webm
clip, not an mp4.
* Rename the sidx, cues, and headers files so that karma does not treat
them as text. See also: karma-runner/karma#1070.
Change-Id: Ia73c233b32a34c57d45021d1cc130c0e0672bda0
Most of these StringUtils were either operating on Uint8Arrays directly
or using strings to move around Uint8Array data anyhow.
Change-Id: I71efe6ede34210ca721d46acd53452344efff5bb
* Move internal non-DASH specific code into the 'media' namespace.
* Remove DASH references from generic stream code.
The documentation is not changed as a follow-up patch will factor out
DASH functionality from StreamVideoSource back into a new
DashVideoSource class.
b/18903621
Change-Id: I78d6e4f2824d4983619f17872828d95655fcfe50