shaka-player 3.1.0 → 3.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AUTHORS +8 -2
- package/CHANGELOG.md +209 -0
- package/CONTRIBUTORS +10 -3
- package/README.md +3 -0
- package/build/apps.py +2 -2
- package/build/check.py +2 -2
- package/build/conformance.textproto +0 -9
- package/build/generateExterns.js +1 -1
- package/build/misspellings.txt +1 -0
- package/build/shakaBuildHelpers.py +6 -5
- package/build/subprocessWindowsPatch.py +103 -0
- package/demo/common/asset.js +11 -0
- package/demo/common/assets.js +1 -1
- package/demo/common/message_ids.js +5 -0
- package/demo/config.js +2 -1
- package/demo/custom.js +84 -3
- package/demo/demo.less +13 -1
- package/demo/demo_utils.js +1 -0
- package/demo/input.js +31 -12
- package/demo/input_container.js +24 -1
- package/demo/locales/en.json +6 -1
- package/demo/locales/source.json +20 -0
- package/demo/main.js +5 -1
- package/dist/controls.css +2 -2
- package/dist/controls.css.map +1 -1
- package/dist/demo.compiled.debug.js +99 -91
- package/dist/demo.compiled.debug.map +3 -3
- package/dist/demo.compiled.js +99 -91
- package/dist/demo.compiled.map +3 -3
- package/dist/demo.css +1 -1
- package/dist/demo.css.map +1 -1
- package/dist/deps.js +9 -9
- package/dist/locales.js +36 -34
- package/dist/receiver.compiled.debug.js +74 -70
- package/dist/receiver.compiled.debug.map +3 -3
- package/dist/receiver.compiled.js +74 -70
- package/dist/receiver.compiled.map +3 -3
- package/dist/shaka-player.compiled.d.ts +165 -9
- package/dist/shaka-player.compiled.debug.d.ts +165 -9
- package/dist/shaka-player.compiled.debug.externs.js +179 -11
- package/dist/shaka-player.compiled.debug.js +367 -339
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +179 -11
- package/dist/shaka-player.compiled.js +818 -807
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +165 -9
- package/dist/shaka-player.ui.debug.d.ts +165 -9
- package/dist/shaka-player.ui.debug.externs.js +181 -13
- package/dist/shaka-player.ui.debug.js +459 -429
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +181 -13
- package/dist/shaka-player.ui.js +973 -961
- package/dist/shaka-player.ui.map +4 -4
- package/docs/tutorials/fairplay.md +1 -1
- package/docs/tutorials/faq.md +25 -0
- package/docs/tutorials/index.json +2 -2
- package/docs/tutorials/upgrade-v3.md +38 -0
- package/docs/tutorials/upgrade.md +3 -3
- package/externs/ima.js +4 -0
- package/externs/media_capabilities.js +16 -0
- package/externs/shaka/ads.js +2 -0
- package/externs/shaka/net.js +2 -2
- package/externs/shaka/player.js +6 -0
- package/karma.conf.js +1 -0
- package/lib/abr/simple_abr_manager.js +1 -1
- package/lib/ads/ad_manager.js +29 -11
- package/lib/ads/client_side_ad_manager.js +76 -86
- package/lib/ads/server_side_ad_manager.js +26 -11
- package/lib/cast/cast_proxy.js +3 -2
- package/lib/cast/cast_receiver.js +2 -1
- package/lib/cast/cast_sender.js +2 -2
- package/lib/cea/sei_processor.js +24 -17
- package/lib/dash/dash_parser.js +107 -4
- package/lib/dash/segment_list.js +1 -1
- package/lib/dash/segment_template.js +45 -15
- package/lib/dependencies/all.js +15 -15
- package/lib/hls/hls_parser.js +46 -18
- package/lib/media/closed_caption_parser.js +3 -1
- package/lib/media/content_workarounds.js +18 -0
- package/lib/media/drm_engine.js +20 -1
- package/lib/media/gap_jumping_controller.js +8 -4
- package/lib/media/media_source_engine.js +1 -2
- package/lib/media/playhead.js +1 -1
- package/lib/media/presentation_timeline.js +3 -1
- package/lib/media/segment_index.js +38 -12
- package/lib/media/segment_reference.js +8 -0
- package/lib/media/streaming_engine.js +30 -21
- package/lib/net/http_fetch_plugin.js +2 -2
- package/lib/net/networking_engine.js +3 -2
- package/lib/offline/storage.js +4 -0
- package/lib/player.js +113 -56
- package/lib/polyfill/encryption_scheme.js +2 -0
- package/lib/polyfill/fullscreen.js +2 -0
- package/lib/polyfill/mathround.js +2 -0
- package/lib/polyfill/media_capabilities.js +62 -23
- package/lib/polyfill/mediasource.js +8 -0
- package/lib/polyfill/orientation.js +3 -1
- package/lib/polyfill/patchedmediakeys_apple.js +6 -4
- package/lib/polyfill/patchedmediakeys_ms.js +6 -4
- package/lib/polyfill/patchedmediakeys_nop.js +2 -0
- package/lib/polyfill/patchedmediakeys_webkit.js +6 -4
- package/lib/polyfill/pip_webkit.js +2 -0
- package/lib/polyfill/storage_estimate.js +2 -0
- package/lib/polyfill/video_play_promise.js +2 -0
- package/lib/polyfill/videoplaybackquality.js +2 -0
- package/lib/polyfill/vttcue.js +2 -0
- package/lib/text/cue.js +11 -0
- package/lib/text/mp4_ttml_parser.js +3 -0
- package/lib/text/text_engine.js +14 -2
- package/lib/text/ttml_text_parser.js +52 -30
- package/lib/text/ui_text_displayer.js +255 -82
- package/lib/text/vtt_text_parser.js +4 -2
- package/lib/util/error.js +1 -4
- package/lib/util/fake_event.js +53 -7
- package/lib/util/mime_utils.js +33 -0
- package/lib/util/mp4_box_parsers.js +1 -1
- package/lib/util/mp4_parser.js +14 -0
- package/lib/util/networking.js +1 -1
- package/lib/util/periods.js +132 -37
- package/lib/util/platform.js +13 -1
- package/lib/util/stream_utils.js +46 -7
- package/package.json +3 -3
- package/test/cast/cast_proxy_unit.js +12 -6
- package/test/cast/cast_receiver_integration.js +1 -1
- package/test/cast/cast_utils_unit.js +1 -1
- package/test/cea/mp4_cea_parser_unit.js +26 -0
- package/test/dash/dash_parser_live_unit.js +1 -0
- package/test/dash/dash_parser_manifest_unit.js +187 -1
- package/test/dash/dash_parser_segment_template_unit.js +3 -3
- package/test/demo/demo_unit.js +0 -1
- package/test/hls/hls_parser_unit.js +45 -1
- package/test/media/closed_caption_parser_unit.js +20 -0
- package/test/media/drm_engine_unit.js +59 -3
- package/test/media/playhead_unit.js +27 -1
- package/test/media/presentation_timeline_unit.js +19 -0
- package/test/media/segment_index_unit.js +76 -3
- package/test/media/streaming_engine_unit.js +3 -3
- package/test/player_integration.js +38 -0
- package/test/player_unit.js +125 -6
- package/test/test/assets/3675/chunk-stream0-00001.m4s +0 -0
- package/test/test/assets/3675/chunk-stream0-00002.m4s +0 -0
- package/test/test/assets/3675/chunk-stream0-00003.m4s +0 -0
- package/test/test/assets/3675/chunk-stream0-00004.m4s +0 -0
- package/test/test/assets/3675/chunk-stream0-00005.m4s +0 -0
- package/test/test/assets/3675/chunk-stream0-00006.m4s +0 -0
- package/test/test/assets/3675/chunk-stream0-00007.m4s +0 -0
- package/test/test/assets/3675/dash_0.mpd +30 -0
- package/test/test/assets/3675/dash_1.mpd +30 -0
- package/test/test/assets/3675/dash_2.mpd +30 -0
- package/test/test/assets/3675/dash_3.mpd +30 -0
- package/test/test/assets/3675/dash_4.mpd +30 -0
- package/test/test/assets/3675/dash_5.mpd +26 -0
- package/test/test/assets/3675/init-stream0.m4s +0 -0
- package/test/test/assets/empty_caption_video_init.mp4 +0 -0
- package/test/test/assets/empty_caption_video_segment.mp4 +0 -0
- package/test/test/util/fake_ad_manager.js +4 -1
- package/test/test/util/simple_fakes.js +5 -3
- package/test/test/util/waiter.js +36 -2
- package/test/text/ttml_text_parser_unit.js +55 -0
- package/test/text/ui_text_displayer_unit.js +95 -18
- package/test/text/vtt_text_parser_unit.js +17 -1
- package/test/ui/localization_unit.js +15 -14
- package/test/ui/text_displayer_layout_unit.js +52 -1
- package/test/ui/ui_unit.js +4 -0
- package/test/util/mp4_box_parsers_unit.js +28 -0
- package/test/util/periods_unit.js +190 -2
- package/test/util/stream_utils_unit.js +56 -5
- package/ui/airplay_button.js +5 -0
- package/ui/big_play_button.js +10 -0
- package/ui/cast_button.js +2 -3
- package/ui/controls.js +9 -7
- package/ui/less/containers.less +10 -5
- package/ui/locales/en.json +1 -0
- package/ui/locales/ru.json +6 -6
- package/ui/locales/source.json +4 -0
- package/ui/localization.js +28 -51
- package/ui/pip_button.js +2 -3
- package/ui/play_button.js +10 -10
- package/ui/small_play_button.js +12 -0
- package/ui/ui.js +1 -1
- package/docs/tutorials/upgrade-v2-4.md +0 -481
|
@@ -32,9 +32,9 @@ shaka.offline = {};
|
|
|
32
32
|
/** @const */
|
|
33
33
|
shaka.text = {};
|
|
34
34
|
/** @const */
|
|
35
|
-
shaka.util = {};
|
|
36
|
-
/** @const */
|
|
37
35
|
shaka.ui = {};
|
|
36
|
+
/** @const */
|
|
37
|
+
shaka.util = {};
|
|
38
38
|
|
|
39
39
|
/**
|
|
40
40
|
* @summary Create an Event work-alike object based on the provided dictionary.
|
|
@@ -44,7 +44,7 @@ shaka.ui = {};
|
|
|
44
44
|
shaka.util.FakeEvent = class {
|
|
45
45
|
/**
|
|
46
46
|
* @param {string} type
|
|
47
|
-
* @param {Object
|
|
47
|
+
* @param {Map.<string, Object>=} dict
|
|
48
48
|
*/
|
|
49
49
|
constructor(type, dict) {}
|
|
50
50
|
};
|
|
@@ -109,10 +109,7 @@ shaka.util.FakeEventTarget.ListenerType;
|
|
|
109
109
|
* <ul>
|
|
110
110
|
* <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaError">MediaError</a>
|
|
111
111
|
* <li><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Status">HTTP Codes</a>
|
|
112
|
-
* <li>
|
|
113
|
-
* <a href="https://docs.microsoft.com/en-us/windows/win32/wmdm/error-codes">PlayReady errors</a>
|
|
114
|
-
* or
|
|
115
|
-
* <a href="https://github.com/tpn/winsdk-10/blob/master/Include/10.0.16299.0/winrt/Windows.Media.Protection.PlayReadyErrors.h">more PlayReady errors</a>
|
|
112
|
+
* <li><a href="https://hresult.info">Edge/PlayReady errors</a>
|
|
116
113
|
* </ul>
|
|
117
114
|
* @implements {shaka.extern.Error}
|
|
118
115
|
* @extends {Error}
|
|
@@ -1107,12 +1104,12 @@ shaka.dependencies = class {
|
|
|
1107
1104
|
/**
|
|
1108
1105
|
* Registers a new dependency.
|
|
1109
1106
|
* @param {shaka.dependencies.Allowed} key which is used for retrieving a
|
|
1110
|
-
*
|
|
1107
|
+
* dependency
|
|
1111
1108
|
* @param {?} dep a dependency
|
|
1112
1109
|
*/
|
|
1113
1110
|
static add(key, dep) {}
|
|
1114
1111
|
/**
|
|
1115
|
-
* Check if we have a dependency for the key
|
|
1112
|
+
* Check if we have a dependency for the key.
|
|
1116
1113
|
* @param {shaka.dependencies.Allowed} key key
|
|
1117
1114
|
* @return {boolean}
|
|
1118
1115
|
*/
|
|
@@ -1438,7 +1435,7 @@ shaka.net.NetworkingEngine = class extends shaka.util.FakeEventTarget {
|
|
|
1438
1435
|
* Makes a simple network request for the given URIs.
|
|
1439
1436
|
* @param {!Array.<string>} uris
|
|
1440
1437
|
* @param {shaka.extern.RetryParameters} retryParams
|
|
1441
|
-
* @param {?function(BufferSource)=} streamDataCallback
|
|
1438
|
+
* @param {?function(BufferSource):!Promise=} streamDataCallback
|
|
1442
1439
|
* @return {shaka.extern.Request}
|
|
1443
1440
|
*/
|
|
1444
1441
|
static makeRequest(uris, retryParams, streamDataCallback) {}
|
|
@@ -1884,13 +1881,16 @@ shaka.media.SegmentIndex = class {
|
|
|
1884
1881
|
offset(offset) {}
|
|
1885
1882
|
/**
|
|
1886
1883
|
* Merges the given SegmentReferences. Supports extending the original
|
|
1887
|
-
* references only. Will
|
|
1884
|
+
* references only. Will replace old references with equivalent new ones, and
|
|
1885
|
+
* keep any unique old ones.
|
|
1888
1886
|
* Used, for example, by the DASH and HLS parser, where manifests may not list
|
|
1889
1887
|
* all available references, so we must keep available references in memory to
|
|
1890
1888
|
* fill the availability window.
|
|
1891
1889
|
* @param {!Array.<!shaka.media.SegmentReference>} references The list of
|
|
1892
1890
|
* SegmentReferences, which must be sorted first by their start times
|
|
1893
1891
|
* (ascending) and second by their end times (ascending).
|
|
1892
|
+
* @deprecated Not used directly by our own parsers, so will become private in
|
|
1893
|
+
* v4. Use mergeAndEvict() instead.
|
|
1894
1894
|
*/
|
|
1895
1895
|
merge(references) {}
|
|
1896
1896
|
/**
|
|
@@ -1934,9 +1934,10 @@ shaka.media.SegmentIndex = class {
|
|
|
1934
1934
|
/**
|
|
1935
1935
|
* Returns a new iterator that initially points to the segment that contains
|
|
1936
1936
|
* the given time. Like the normal iterator, next() must be called first to
|
|
1937
|
-
* get to the first element.
|
|
1937
|
+
* get to the first element. Returns null if we do not find a segment at the
|
|
1938
|
+
* requested time.
|
|
1938
1939
|
* @param {number} time
|
|
1939
|
-
* @return {
|
|
1940
|
+
* @return {?shaka.media.SegmentIterator}
|
|
1940
1941
|
*/
|
|
1941
1942
|
getIteratorForTime(time) {}
|
|
1942
1943
|
/**
|
|
@@ -2822,6 +2823,7 @@ shaka.ads.ServerSideAd = class {
|
|
|
2822
2823
|
/**
|
|
2823
2824
|
* A class responsible for ad-related interactions.
|
|
2824
2825
|
* @implements {shaka.extern.IAdManager}
|
|
2826
|
+
* @implements {shaka.util.IReleasable}
|
|
2825
2827
|
*/
|
|
2826
2828
|
shaka.ads.AdManager = class extends shaka.util.FakeEventTarget {
|
|
2827
2829
|
/** */
|
|
@@ -2834,6 +2836,10 @@ shaka.ads.AdManager = class extends shaka.util.FakeEventTarget {
|
|
|
2834
2836
|
* @override
|
|
2835
2837
|
*/
|
|
2836
2838
|
initClientSide(adContainer, video) {}
|
|
2839
|
+
/**
|
|
2840
|
+
* @override
|
|
2841
|
+
*/
|
|
2842
|
+
release() {}
|
|
2837
2843
|
/**
|
|
2838
2844
|
* @override
|
|
2839
2845
|
*/
|
|
@@ -3472,6 +3478,168 @@ shaka.polyfill = class {
|
|
|
3472
3478
|
*/
|
|
3473
3479
|
static register(polyfill, priority) {}
|
|
3474
3480
|
};
|
|
3481
|
+
/**
|
|
3482
|
+
* @summary A polyfill to add support for EncryptionScheme queries in EME.
|
|
3483
|
+
* @see https://wicg.github.io/encrypted-media-encryption-scheme/
|
|
3484
|
+
* @see https://github.com/w3c/encrypted-media/pull/457
|
|
3485
|
+
* @see https://github.com/google/eme-encryption-scheme-polyfill
|
|
3486
|
+
*/
|
|
3487
|
+
shaka.polyfill.EncryptionScheme = class {
|
|
3488
|
+
/**
|
|
3489
|
+
* Install the polyfill if needed.
|
|
3490
|
+
* @suppress {missingRequire}
|
|
3491
|
+
*/
|
|
3492
|
+
static install() {}
|
|
3493
|
+
};
|
|
3494
|
+
/**
|
|
3495
|
+
* @summary A polyfill to unify fullscreen APIs across browsers.
|
|
3496
|
+
* Many browsers have prefixed fullscreen methods on Element and document.
|
|
3497
|
+
* See {@link https://mzl.la/2K0xcHo Using fullscreen mode} on MDN for more
|
|
3498
|
+
* information.
|
|
3499
|
+
*/
|
|
3500
|
+
shaka.polyfill.Fullscreen = class {
|
|
3501
|
+
/**
|
|
3502
|
+
* Install the polyfill if needed.
|
|
3503
|
+
*/
|
|
3504
|
+
static install() {}
|
|
3505
|
+
};
|
|
3506
|
+
/**
|
|
3507
|
+
* @summary A polyfill to patch math round bug on some browsers.
|
|
3508
|
+
* @see https://stackoverflow.com/q/12830742
|
|
3509
|
+
*/
|
|
3510
|
+
shaka.polyfill.MathRound = class {
|
|
3511
|
+
/**
|
|
3512
|
+
* Install the polyfill if needed.
|
|
3513
|
+
*/
|
|
3514
|
+
static install() {}
|
|
3515
|
+
};
|
|
3516
|
+
/**
|
|
3517
|
+
* @summary A polyfill to provide navigator.mediaCapabilities on all browsers.
|
|
3518
|
+
* This is necessary for Tizen 3, Xbox One and possibly others we have yet to
|
|
3519
|
+
* discover.
|
|
3520
|
+
*/
|
|
3521
|
+
shaka.polyfill.MediaCapabilities = class {
|
|
3522
|
+
/**
|
|
3523
|
+
* Install the polyfill if needed.
|
|
3524
|
+
* @suppress {const}
|
|
3525
|
+
*/
|
|
3526
|
+
static install() {}
|
|
3527
|
+
};
|
|
3528
|
+
/**
|
|
3529
|
+
* @summary A polyfill to patch MSE bugs.
|
|
3530
|
+
*/
|
|
3531
|
+
shaka.polyfill.MediaSource = class {
|
|
3532
|
+
/**
|
|
3533
|
+
* Install the polyfill if needed.
|
|
3534
|
+
*/
|
|
3535
|
+
static install() {}
|
|
3536
|
+
};
|
|
3537
|
+
/**
|
|
3538
|
+
* @summary A polyfill for systems that do not implement screen.orientation.
|
|
3539
|
+
* For now, this only handles systems that implement the deprecated
|
|
3540
|
+
* window.orientation feature... e.g. iPad.
|
|
3541
|
+
*/
|
|
3542
|
+
shaka.polyfill.Orientation = class {
|
|
3543
|
+
/**
|
|
3544
|
+
* Install the polyfill if needed.
|
|
3545
|
+
*/
|
|
3546
|
+
static install() {}
|
|
3547
|
+
};
|
|
3548
|
+
/**
|
|
3549
|
+
* @summary A polyfill to implement modern, standardized EME on top of Apple's
|
|
3550
|
+
* prefixed EME in Safari.
|
|
3551
|
+
*/
|
|
3552
|
+
shaka.polyfill.PatchedMediaKeysApple = class {
|
|
3553
|
+
/**
|
|
3554
|
+
* Installs the polyfill if needed.
|
|
3555
|
+
*/
|
|
3556
|
+
static install() {}
|
|
3557
|
+
};
|
|
3558
|
+
/**
|
|
3559
|
+
* @summary A polyfill to implement
|
|
3560
|
+
* {@link https://bit.ly/EmeMar15 EME draft 12 March 2015}
|
|
3561
|
+
* on top of ms-prefixed
|
|
3562
|
+
* {@link https://www.w3.org/TR/2014/WD-encrypted-media-20140218/ EME v20140218}
|
|
3563
|
+
*/
|
|
3564
|
+
shaka.polyfill.PatchedMediaKeysMs = class {
|
|
3565
|
+
/**
|
|
3566
|
+
* Installs the polyfill if needed.
|
|
3567
|
+
*/
|
|
3568
|
+
static install() {}
|
|
3569
|
+
};
|
|
3570
|
+
/**
|
|
3571
|
+
* @summary A polyfill to stub out
|
|
3572
|
+
* {@link https://bit.ly/EmeMar15 EME draft 12 March 2015} on browsers without
|
|
3573
|
+
* EME.
|
|
3574
|
+
* All methods will fail.
|
|
3575
|
+
*/
|
|
3576
|
+
shaka.polyfill.PatchedMediaKeysNop = class {
|
|
3577
|
+
/**
|
|
3578
|
+
* Installs the polyfill if needed.
|
|
3579
|
+
*/
|
|
3580
|
+
static install() {}
|
|
3581
|
+
};
|
|
3582
|
+
/**
|
|
3583
|
+
* @summary A polyfill to implement
|
|
3584
|
+
* {@link https://bit.ly/EmeMar15 EME draft 12 March 2015} on top of
|
|
3585
|
+
* webkit-prefixed {@link https://bit.ly/Eme01b EME v0.1b}.
|
|
3586
|
+
*/
|
|
3587
|
+
shaka.polyfill.PatchedMediaKeysWebkit = class {
|
|
3588
|
+
/**
|
|
3589
|
+
* Installs the polyfill if needed.
|
|
3590
|
+
*/
|
|
3591
|
+
static install() {}
|
|
3592
|
+
};
|
|
3593
|
+
/**
|
|
3594
|
+
* @summary A polyfill to provide PiP support in Safari.
|
|
3595
|
+
* Note that Safari only supports PiP on video elements, not audio.
|
|
3596
|
+
*/
|
|
3597
|
+
shaka.polyfill.PiPWebkit = class {
|
|
3598
|
+
/**
|
|
3599
|
+
* Install the polyfill if needed.
|
|
3600
|
+
*/
|
|
3601
|
+
static install() {}
|
|
3602
|
+
};
|
|
3603
|
+
/**
|
|
3604
|
+
* @summary A polyfill to provide navigator.storage.estimate in old
|
|
3605
|
+
* webkit browsers.
|
|
3606
|
+
* See: https://developers.google.com/web/updates/2017/08/estimating-available-storage-space#the-present
|
|
3607
|
+
*/
|
|
3608
|
+
shaka.polyfill.StorageEstimate = class {
|
|
3609
|
+
/**
|
|
3610
|
+
* Install the polyfill if needed.
|
|
3611
|
+
*/
|
|
3612
|
+
static install() {}
|
|
3613
|
+
};
|
|
3614
|
+
/**
|
|
3615
|
+
* @summary A polyfill to silence the play() Promise in HTML5 video.
|
|
3616
|
+
*/
|
|
3617
|
+
shaka.polyfill.VideoPlayPromise = class {
|
|
3618
|
+
/**
|
|
3619
|
+
* Install the polyfill if needed.
|
|
3620
|
+
*/
|
|
3621
|
+
static install() {}
|
|
3622
|
+
};
|
|
3623
|
+
/**
|
|
3624
|
+
* @summary A polyfill to provide MSE VideoPlaybackQuality metrics.
|
|
3625
|
+
* Many browsers do not yet provide this API, and Chrome currently provides
|
|
3626
|
+
* similar data through individual prefixed attributes on HTMLVideoElement.
|
|
3627
|
+
*/
|
|
3628
|
+
shaka.polyfill.VideoPlaybackQuality = class {
|
|
3629
|
+
/**
|
|
3630
|
+
* Install the polyfill if needed.
|
|
3631
|
+
*/
|
|
3632
|
+
static install() {}
|
|
3633
|
+
};
|
|
3634
|
+
/**
|
|
3635
|
+
* @summary A polyfill to provide VTTCue.
|
|
3636
|
+
*/
|
|
3637
|
+
shaka.polyfill.VTTCue = class {
|
|
3638
|
+
/**
|
|
3639
|
+
* Install the polyfill if needed.
|
|
3640
|
+
*/
|
|
3641
|
+
static install() {}
|
|
3642
|
+
};
|
|
3475
3643
|
/**
|
|
3476
3644
|
* LRC file format: https://en.wikipedia.org/wiki/LRC_(file_format)
|
|
3477
3645
|
* @implements {shaka.extern.TextParser}
|