shaka-player 3.3.4 → 4.0.1
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/.github/config.yml +1 -0
- package/.github/workflows/build-and-test.yaml +0 -1
- package/.github/workflows/demo-version-index.yaml +8 -0
- package/.github/workflows/release-please.yaml +19 -3
- package/.github/workflows/selenium-lab-tests.yaml +0 -1
- package/.github/workflows/sync-labels.yaml +33 -0
- package/.github/workflows/update-issues.yaml +29 -0
- package/.github/workflows/validate-pr-title.yaml +35 -0
- package/AUTHORS +1 -0
- package/CHANGELOG.md +209 -28
- package/CONTRIBUTORS +1 -0
- package/README.md +10 -7
- package/app-engine/demo-version-index/README.md +3 -3
- package/app-engine/demo-version-index/app.yaml +27 -1
- package/app-engine/demo-version-index/generate.py +164 -0
- package/app-engine/demo-version-index/main.py +4 -155
- package/app-engine/demo-version-index/requirements.txt +0 -1
- package/build/README.md +2 -2
- package/build/compiler.py +1 -1
- package/build/generateTsDefs.py +0 -2
- package/build/misspellings.txt +1 -0
- package/build/shaka-lab.yaml +0 -2
- package/build/test.py +7 -1
- package/build/types/core +0 -1
- package/build/types/polyfill +0 -3
- package/demo/common/asset.js +17 -1
- package/demo/common/assets.js +29 -0
- package/demo/common/message_ids.js +6 -3
- package/demo/config.js +10 -11
- package/demo/custom.js +39 -0
- package/demo/demo_utils.js +0 -1
- package/demo/locales/en.json +6 -3
- package/demo/locales/source.json +22 -10
- package/demo/main.js +9 -6
- package/demo/search.js +2 -1
- package/dist/controls.css +1 -1
- package/dist/demo.compiled.debug.js +71 -64
- package/dist/demo.compiled.debug.map +3 -3
- package/dist/demo.compiled.js +71 -64
- package/dist/demo.compiled.map +3 -3
- package/dist/demo.css +1 -1
- package/dist/demo.css.map +1 -1
- package/dist/deps.js +16 -20
- package/dist/locales.js +33 -31
- package/dist/receiver.compiled.debug.js +32 -28
- package/dist/receiver.compiled.debug.map +3 -3
- package/dist/receiver.compiled.js +32 -28
- package/dist/receiver.compiled.map +3 -3
- package/dist/shaka-player.compiled.d.ts +78 -82
- package/dist/shaka-player.compiled.debug.d.ts +78 -82
- package/dist/shaka-player.compiled.debug.externs.js +127 -126
- package/dist/shaka-player.compiled.debug.js +471 -523
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +127 -126
- package/dist/shaka-player.compiled.js +844 -858
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +80 -82
- package/dist/shaka-player.ui.debug.d.ts +80 -82
- package/dist/shaka-player.ui.debug.externs.js +135 -126
- package/dist/shaka-player.ui.debug.js +531 -581
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +135 -126
- package/dist/shaka-player.ui.js +991 -1001
- package/dist/shaka-player.ui.map +4 -4
- package/docs/tutorials/config.md +0 -2
- package/docs/tutorials/drm-config.md +5 -0
- package/docs/tutorials/fairplay.md +7 -22
- package/docs/tutorials/faq.md +0 -11
- package/docs/tutorials/index.json +2 -8
- package/docs/tutorials/plugins.md +1 -3
- package/docs/tutorials/upgrade.md +85 -11
- package/externs/polyfill.js +15 -0
- package/externs/shaka/manifest.js +5 -1
- package/externs/shaka/net.js +12 -0
- package/externs/shaka/offline.js +5 -1
- package/externs/shaka/player.js +39 -21
- package/externs/shaka/text.js +12 -12
- package/externs/sourcebuffer.js +15 -0
- package/karma.conf.js +4 -0
- package/lib/ads/client_side_ad.js +13 -2
- package/lib/ads/client_side_ad_manager.js +22 -4
- package/lib/cast/cast_utils.js +0 -1
- package/lib/dash/content_protection.js +85 -5
- package/lib/dash/dash_parser.js +3 -3
- package/lib/hls/hls_parser.js +391 -747
- package/lib/hls/manifest_text_parser.js +2 -3
- package/lib/media/drm_engine.js +102 -37
- package/lib/media/gap_jumping_controller.js +10 -45
- package/lib/media/media_source_engine.js +157 -31
- package/lib/media/playhead.js +2 -5
- package/lib/media/presentation_timeline.js +1 -2
- package/lib/media/segment_index.js +13 -46
- package/lib/media/segment_reference.js +47 -1
- package/lib/media/streaming_engine.js +28 -11
- package/lib/media/time_ranges_utils.js +4 -9
- package/lib/net/networking_engine.js +3 -0
- package/lib/offline/indexeddb/storage_mechanism.js +4 -2
- package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
- package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
- package/lib/offline/manifest_converter.js +1 -0
- package/lib/offline/storage.js +100 -132
- package/lib/player.js +181 -307
- package/lib/polyfill/media_capabilities.js +12 -6
- package/lib/polyfill/mediasource.js +0 -28
- package/lib/polyfill/patchedmediakeys_nop.js +2 -0
- package/lib/polyfill/patchedmediakeys_webkit.js +2 -0
- package/lib/text/cue.js +0 -6
- package/lib/text/lrc_text_parser.js +8 -0
- package/lib/text/mp4_ttml_parser.js +8 -0
- package/lib/text/mp4_vtt_parser.js +8 -0
- package/lib/text/sbv_text_parser.js +8 -0
- package/lib/text/simple_text_displayer.js +1 -7
- package/lib/text/srt_text_parser.js +8 -0
- package/lib/text/ssa_text_parser.js +8 -0
- package/lib/text/text_engine.js +19 -3
- package/lib/text/ttml_text_parser.js +8 -0
- package/lib/text/ui_text_displayer.js +1 -7
- package/lib/text/vtt_text_parser.js +27 -5
- package/lib/text/web_vtt_generator.js +1 -7
- package/lib/util/config_utils.js +25 -0
- package/lib/util/error.js +16 -13
- package/lib/util/fairplay_utils.js +109 -0
- package/lib/util/functional.js +0 -42
- package/lib/util/manifest_parser_utils.js +1 -1
- package/lib/util/mime_utils.js +50 -1
- package/lib/util/periods.js +5 -4
- package/lib/util/platform.js +45 -0
- package/lib/util/player_configuration.js +26 -20
- package/lib/util/pssh.js +23 -4
- package/lib/util/stream_utils.js +96 -24
- package/lib/util/uint8array_utils.js +0 -16
- package/lib/util/xml_utils.js +1 -1
- package/package.json +4 -1
- package/roadmap.md +19 -19
- package/shaka-player.uncompiled.js +0 -3
- package/test/cast/cast_utils_unit.js +1 -0
- package/test/dash/dash_parser_content_protection_unit.js +44 -0
- package/test/dash/dash_parser_manifest_unit.js +0 -24
- package/test/dash/dash_parser_segment_template_unit.js +3 -4
- package/test/demo/demo_unit.js +2 -1
- package/test/hls/hls_live_unit.js +121 -220
- package/test/hls/hls_parser_unit.js +515 -432
- package/test/hls/manifest_text_parser_unit.js +19 -0
- package/test/media/drm_engine_unit.js +86 -120
- package/test/media/media_source_engine_integration.js +26 -3
- package/test/media/media_source_engine_unit.js +7 -6
- package/test/media/playhead_unit.js +27 -191
- package/test/media/segment_index_unit.js +15 -25
- package/test/media/streaming_engine_integration.js +4 -39
- package/test/media/streaming_engine_unit.js +3 -2
- package/test/media/time_ranges_utils_unit.js +0 -5
- package/test/offline/indexeddb_storage_unit.js +1 -1
- package/test/offline/manifest_convert_unit.js +34 -4
- package/test/offline/offline_manifest_parser_unit.js +1 -0
- package/test/offline/storage_compatibility_unit.js +1 -1
- package/test/offline/storage_integration.js +5 -4
- package/test/player_external.js +7 -7
- package/test/player_integration.js +22 -10
- package/test/player_src_equals_integration.js +81 -83
- package/test/player_unit.js +124 -1
- package/test/test/boot.js +9 -0
- package/test/test/externs/filters.js +4 -0
- package/test/test/util/fake_media_source_engine.js +11 -4
- package/test/test/util/manifest_generator.js +3 -1
- package/test/test/util/manifest_parser_util.js +4 -1
- package/test/test/util/offline_utils.js +1 -0
- package/test/test/util/simple_fakes.js +31 -2
- package/test/test/util/streaming_engine_util.js +1 -0
- package/test/test/util/test_scheme.js +24 -1
- package/test/test/util/util.js +4 -4
- package/test/text/cue_integration.js +2 -2
- package/test/text/lrc_text_parser_unit.js +6 -7
- package/test/text/mp4_ttml_parser_unit.js +6 -4
- package/test/text/mp4_vtt_parser_unit.js +6 -5
- package/test/text/sbv_text_parser_unit.js +5 -6
- package/test/text/srt_text_parser_unit.js +5 -6
- package/test/text/ssa_text_parser_unit.js +17 -29
- package/test/text/text_engine_unit.js +45 -5
- package/test/text/ttml_text_parser_unit.js +77 -77
- package/test/text/vtt_text_parser_unit.js +116 -59
- package/test/ui/ui_integration.js +0 -16
- package/test/ui/ui_unit.js +27 -0
- package/test/util/cmcd_manager_unit.js +3 -0
- package/test/util/mime_utils_unit.js +54 -0
- package/test/util/periods_unit.js +79 -0
- package/test/util/stream_utils_unit.js +23 -7
- package/ui/controls.js +65 -40
- package/ui/fullscreen_button.js +26 -6
- package/ui/less/containers.less +3 -3
- package/ui/locales/en.json +1 -0
- package/ui/locales/source.json +5 -0
- package/ui/resolution_selection.js +31 -33
- package/ui/ui.js +0 -17
- package/docs/tutorials/gsoc-ideas-list.md +0 -3
- package/docs/tutorials/upgrade-v2-5.md +0 -441
- package/docs/tutorials/upgrade-v3.md +0 -38
- package/lib/polyfill/mathround.js +0 -49
- package/lib/polyfill/patchedmediakeys_apple.js +0 -744
- package/lib/polyfill/patchedmediakeys_ms.js +0 -698
- package/lib/util/mutex.js +0 -52
- package/test/util/functional_unit.js +0 -82
|
@@ -211,6 +211,7 @@ shaka.util.Error.Code = {
|
|
|
211
211
|
'CANNOT_ADD_EXTERNAL_TEXT_TO_SRC_EQUALS': 2012,
|
|
212
212
|
'TEXT_ONLY_WEBVTT_SRC_EQUALS': 2013,
|
|
213
213
|
'MISSING_TEXT_PLUGIN': 2014,
|
|
214
|
+
'CHAPTERS_TRACK_FAILED': 2015,
|
|
214
215
|
'BUFFER_READ_OUT_OF_BOUNDS': 3000,
|
|
215
216
|
'JS_INTEGER_OVERFLOW': 3001,
|
|
216
217
|
'EBML_OVERFLOW': 3002,
|
|
@@ -248,14 +249,12 @@ shaka.util.Error.Code = {
|
|
|
248
249
|
'HLS_INVALID_PLAYLIST_HIERARCHY': 4017,
|
|
249
250
|
'DASH_DUPLICATE_REPRESENTATION_ID': 4018,
|
|
250
251
|
'HLS_MULTIPLE_MEDIA_INIT_SECTIONS_FOUND': 4020,
|
|
251
|
-
'HLS_MASTER_PLAYLIST_NOT_PROVIDED': 4022,
|
|
252
252
|
'HLS_REQUIRED_ATTRIBUTE_MISSING': 4023,
|
|
253
253
|
'HLS_REQUIRED_TAG_MISSING': 4024,
|
|
254
254
|
'HLS_COULD_NOT_GUESS_CODECS': 4025,
|
|
255
255
|
'HLS_KEYFORMATS_NOT_SUPPORTED': 4026,
|
|
256
256
|
'DASH_UNSUPPORTED_XLINK_ACTUATE': 4027,
|
|
257
257
|
'DASH_XLINK_DEPTH_LIMIT': 4028,
|
|
258
|
-
'HLS_COULD_NOT_PARSE_SEGMENT_START_TIME': 4030,
|
|
259
258
|
'CONTENT_UNSUPPORTED_BY_BROWSER': 4032,
|
|
260
259
|
'CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM': 4033,
|
|
261
260
|
'HLS_AES_128_ENCRYPTION_NOT_SUPPORTED': 4034,
|
|
@@ -264,6 +263,7 @@ shaka.util.Error.Code = {
|
|
|
264
263
|
'PERIOD_FLATTENING_FAILED': 4037,
|
|
265
264
|
'INCONSISTENT_DRM_ACROSS_PERIODS': 4038,
|
|
266
265
|
'HLS_VARIABLE_NOT_FOUND': 4039,
|
|
266
|
+
'HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED': 4040,
|
|
267
267
|
'STREAMING_ENGINE_STARTUP_INVALID_STATE': 5006,
|
|
268
268
|
'NO_RECOGNIZED_KEY_SYSTEMS': 6000,
|
|
269
269
|
'REQUESTED_KEY_SYSTEM_CONFIG_UNAVAILABLE': 6001,
|
|
@@ -711,10 +711,6 @@ shaka.text.Cue.prototype.isContainer;
|
|
|
711
711
|
* @override
|
|
712
712
|
*/
|
|
713
713
|
shaka.text.Cue.prototype.lineBreak;
|
|
714
|
-
/**
|
|
715
|
-
* @override
|
|
716
|
-
*/
|
|
717
|
-
shaka.text.Cue.prototype.spacer;
|
|
718
714
|
/**
|
|
719
715
|
* @override
|
|
720
716
|
*/
|
|
@@ -1031,14 +1027,6 @@ shaka.util.StringUtils = class {
|
|
|
1031
1027
|
* @summary A set of Uint8Array utility functions.
|
|
1032
1028
|
*/
|
|
1033
1029
|
shaka.util.Uint8ArrayUtils = class {
|
|
1034
|
-
/**
|
|
1035
|
-
* Compare two Uint8Arrays for equality.
|
|
1036
|
-
* @param {Uint8Array} arr1
|
|
1037
|
-
* @param {Uint8Array} arr2
|
|
1038
|
-
* @return {boolean}
|
|
1039
|
-
* @deprecated
|
|
1040
|
-
*/
|
|
1041
|
-
static equal(arr1, arr2) {}
|
|
1042
1030
|
/**
|
|
1043
1031
|
* Convert a buffer to a base64 string. The output will be standard
|
|
1044
1032
|
* alphabet as opposed to base64url safe alphabet.
|
|
@@ -1081,6 +1069,19 @@ shaka.util.Uint8ArrayUtils = class {
|
|
|
1081
1069
|
*/
|
|
1082
1070
|
static concat(...varArgs) {}
|
|
1083
1071
|
};
|
|
1072
|
+
/**
|
|
1073
|
+
* @summary A set of utility functions for dealing with MIME types.
|
|
1074
|
+
*/
|
|
1075
|
+
shaka.util.MimeUtils = class {
|
|
1076
|
+
/**
|
|
1077
|
+
* Takes a MIME type and optional codecs string and produces the full MIME
|
|
1078
|
+
* type.
|
|
1079
|
+
* @param {string} mimeType
|
|
1080
|
+
* @param {string=} codecs
|
|
1081
|
+
* @return {string}
|
|
1082
|
+
*/
|
|
1083
|
+
static getFullType(mimeType, codecs) {}
|
|
1084
|
+
};
|
|
1084
1085
|
/**
|
|
1085
1086
|
* @summary Manages text parsers and cues.
|
|
1086
1087
|
* @implements {shaka.util.IDestroyable}
|
|
@@ -1521,35 +1522,6 @@ shaka.util.EventManager = class {
|
|
|
1521
1522
|
* @typedef {function(!Event)}
|
|
1522
1523
|
*/
|
|
1523
1524
|
shaka.util.EventManager.ListenerType;
|
|
1524
|
-
/**
|
|
1525
|
-
* @summary A set of FairPlay utility functions.
|
|
1526
|
-
*/
|
|
1527
|
-
shaka.util.FairPlayUtils = class {
|
|
1528
|
-
/**
|
|
1529
|
-
* Using the default method, extract a content ID from the init data. This is
|
|
1530
|
-
* based on the FairPlay example documentation.
|
|
1531
|
-
* @param {!BufferSource} initData
|
|
1532
|
-
* @return {string}
|
|
1533
|
-
*/
|
|
1534
|
-
static defaultGetContentId(initData) {}
|
|
1535
|
-
/**
|
|
1536
|
-
* Transforms the init data buffer using the given data. The format is:
|
|
1537
|
-
* <pre>
|
|
1538
|
-
* [4 bytes] initDataSize
|
|
1539
|
-
* [initDataSize bytes] initData
|
|
1540
|
-
* [4 bytes] contentIdSize
|
|
1541
|
-
* [contentIdSize bytes] contentId
|
|
1542
|
-
* [4 bytes] certSize
|
|
1543
|
-
* [certSize bytes] cert
|
|
1544
|
-
* </pre>
|
|
1545
|
-
* @param {!BufferSource} initData
|
|
1546
|
-
* @param {!BufferSource|string} contentId
|
|
1547
|
-
* @param {?BufferSource} cert The server certificate; this will throw if not
|
|
1548
|
-
* provided.
|
|
1549
|
-
* @return {!Uint8Array}
|
|
1550
|
-
*/
|
|
1551
|
-
static initDataTransform(initData, contentId, cert) {}
|
|
1552
|
-
};
|
|
1553
1525
|
/**
|
|
1554
1526
|
* @summary An interface to register manifest parsers.
|
|
1555
1527
|
*/
|
|
@@ -1825,8 +1797,14 @@ shaka.media.SegmentReference = class {
|
|
|
1825
1797
|
* The explicit duration of an individual tile within the tiles grid.
|
|
1826
1798
|
* If not provided, the duration should be automatically calculated based on
|
|
1827
1799
|
* the duration of the reference.
|
|
1800
|
+
* @param {?number=} syncTime
|
|
1801
|
+
* A time value, expressed in the same scale as the start and end time, which
|
|
1802
|
+
* is used to synchronize between streams.
|
|
1803
|
+
* @param {shaka.media.SegmentReference.Status=} status
|
|
1804
|
+
* The segment status is used to indicate that a segment does not exist or is
|
|
1805
|
+
* not available.
|
|
1828
1806
|
*/
|
|
1829
|
-
constructor(startTime, endTime, uris, startByte, endByte, initSegmentReference, timestampOffset, appendWindowStart, appendWindowEnd, partialReferences, tilesLayout, tileDuration) {}
|
|
1807
|
+
constructor(startTime, endTime, uris, startByte, endByte, initSegmentReference, timestampOffset, appendWindowStart, appendWindowEnd, partialReferences, tilesLayout, tileDuration, syncTime, status) {}
|
|
1830
1808
|
/**
|
|
1831
1809
|
* Creates and returns the URIs of the resource containing the segment.
|
|
1832
1810
|
* @return {!Array.<string>}
|
|
@@ -1866,6 +1844,25 @@ shaka.media.SegmentReference = class {
|
|
|
1866
1844
|
* @return {?number}
|
|
1867
1845
|
*/
|
|
1868
1846
|
getTileDuration() {}
|
|
1847
|
+
/**
|
|
1848
|
+
* Returns the segment's status.
|
|
1849
|
+
* @return {shaka.media.SegmentReference.Status}
|
|
1850
|
+
*/
|
|
1851
|
+
getStatus() {}
|
|
1852
|
+
/**
|
|
1853
|
+
* Mark the reference as unavailable.
|
|
1854
|
+
*/
|
|
1855
|
+
markAsUnavailable() {}
|
|
1856
|
+
};
|
|
1857
|
+
/**
|
|
1858
|
+
* Rather than using booleans to communicate what the state of the reference,
|
|
1859
|
+
* we have this enum.
|
|
1860
|
+
* @enum {number}
|
|
1861
|
+
*/
|
|
1862
|
+
shaka.media.SegmentReference.Status = {
|
|
1863
|
+
AVAILABLE: 0,
|
|
1864
|
+
UNAVAILABLE: 1,
|
|
1865
|
+
MISSING: 2
|
|
1869
1866
|
};
|
|
1870
1867
|
/**
|
|
1871
1868
|
* PresentationTimeline.
|
|
@@ -2041,13 +2038,6 @@ shaka.media.SegmentIndex = class {
|
|
|
2041
2038
|
* (ascending) and second by their end times (ascending).
|
|
2042
2039
|
*/
|
|
2043
2040
|
constructor(references) {}
|
|
2044
|
-
/**
|
|
2045
|
-
* SegmentIndex used to be an IDestroyable. Now it is an IReleasable.
|
|
2046
|
-
* This method is provided for backward compatibility.
|
|
2047
|
-
* @deprecated
|
|
2048
|
-
* @return {!Promise}
|
|
2049
|
-
*/
|
|
2050
|
-
destroy() {}
|
|
2051
2041
|
/**
|
|
2052
2042
|
* @override
|
|
2053
2043
|
*/
|
|
@@ -2082,20 +2072,6 @@ shaka.media.SegmentIndex = class {
|
|
|
2082
2072
|
* times.
|
|
2083
2073
|
*/
|
|
2084
2074
|
offset(offset) {}
|
|
2085
|
-
/**
|
|
2086
|
-
* Merges the given SegmentReferences. Supports extending the original
|
|
2087
|
-
* references only. Will replace old references with equivalent new ones, and
|
|
2088
|
-
* keep any unique old ones.
|
|
2089
|
-
* Used, for example, by the DASH and HLS parser, where manifests may not list
|
|
2090
|
-
* all available references, so we must keep available references in memory to
|
|
2091
|
-
* fill the availability window.
|
|
2092
|
-
* @param {!Array.<!shaka.media.SegmentReference>} references The list of
|
|
2093
|
-
* SegmentReferences, which must be sorted first by their start times
|
|
2094
|
-
* (ascending) and second by their end times (ascending).
|
|
2095
|
-
* @deprecated Not used directly by our own parsers, so will become private in
|
|
2096
|
-
* v4. Use mergeAndEvict() instead.
|
|
2097
|
-
*/
|
|
2098
|
-
merge(references) {}
|
|
2099
2075
|
/**
|
|
2100
2076
|
* Merges the given SegmentReferences and evicts the ones that end before the
|
|
2101
2077
|
* given time. Supports extending the original references only.
|
|
@@ -2164,13 +2140,6 @@ shaka.media.SegmentIterator = class {
|
|
|
2164
2140
|
* @param {number} partialSegmentIndex
|
|
2165
2141
|
*/
|
|
2166
2142
|
constructor(segmentIndex, index, partialSegmentIndex) {}
|
|
2167
|
-
/**
|
|
2168
|
-
* Move the iterator to a given timestamp in the underlying SegmentIndex.
|
|
2169
|
-
* @param {number} time
|
|
2170
|
-
* @return {shaka.media.SegmentReference}
|
|
2171
|
-
* @deprecated Use SegmentIndex.getIteratorForTime instead
|
|
2172
|
-
*/
|
|
2173
|
-
seek(time) {}
|
|
2174
2143
|
/**
|
|
2175
2144
|
* @return {shaka.media.SegmentReference}
|
|
2176
2145
|
*/
|
|
@@ -2370,6 +2339,10 @@ shaka.util.ConfigUtils = class {
|
|
|
2370
2339
|
* @final
|
|
2371
2340
|
*/
|
|
2372
2341
|
shaka.util.PlayerConfiguration = class {
|
|
2342
|
+
/**
|
|
2343
|
+
* @return {shaka.extern.PlayerConfiguration}
|
|
2344
|
+
*/
|
|
2345
|
+
static createDefault() {}
|
|
2373
2346
|
/**
|
|
2374
2347
|
* Merges the given configuration changes into the given destination. This
|
|
2375
2348
|
* uses the default Player configurations as the template.
|
|
@@ -2832,21 +2805,6 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
|
|
|
2832
2805
|
* @return {shaka.extern.Stats}
|
|
2833
2806
|
*/
|
|
2834
2807
|
getStats() {}
|
|
2835
|
-
/**
|
|
2836
|
-
* Adds the given text track to the loaded manifest. <code>load()</code> must
|
|
2837
|
-
* resolve before calling. The presentation must have a duration.
|
|
2838
|
-
* This returns the created track, which can immediately be selected by the
|
|
2839
|
-
* application. The track will not be automatically selected.
|
|
2840
|
-
* @param {string} uri
|
|
2841
|
-
* @param {string} language
|
|
2842
|
-
* @param {string} kind
|
|
2843
|
-
* @param {string=} mimeType
|
|
2844
|
-
* @param {string=} codec
|
|
2845
|
-
* @param {string=} label
|
|
2846
|
-
* @param {boolean=} forced
|
|
2847
|
-
* @return {shaka.extern.Track}
|
|
2848
|
-
*/
|
|
2849
|
-
addTextTrack(uri, language, kind, mimeType, codec, label, forced) {}
|
|
2850
2808
|
/**
|
|
2851
2809
|
* Adds the given text track to the loaded manifest. <code>load()</code> must
|
|
2852
2810
|
* resolve before calling. The presentation must have a duration.
|
|
@@ -2944,8 +2902,9 @@ shaka.ads.ClientSideAd = class {
|
|
|
2944
2902
|
/**
|
|
2945
2903
|
* @param {!google.ima.Ad} imaAd
|
|
2946
2904
|
* @param {!google.ima.AdsManager} imaAdManager
|
|
2905
|
+
* @param {HTMLMediaElement} video
|
|
2947
2906
|
*/
|
|
2948
|
-
constructor(imaAd, imaAdManager) {}
|
|
2907
|
+
constructor(imaAd, imaAdManager, video) {}
|
|
2949
2908
|
/**
|
|
2950
2909
|
* @override
|
|
2951
2910
|
*/
|
|
@@ -3722,12 +3681,6 @@ shaka.offline.Storage = class {
|
|
|
3722
3681
|
* AbortableOperation.
|
|
3723
3682
|
*/
|
|
3724
3683
|
store(uri, appMetadata, mimeType) {}
|
|
3725
|
-
/**
|
|
3726
|
-
* Returns true if an asset is currently downloading.
|
|
3727
|
-
* @return {boolean}
|
|
3728
|
-
* @deprecated
|
|
3729
|
-
*/
|
|
3730
|
-
getStoreInProgress() {}
|
|
3731
3684
|
/**
|
|
3732
3685
|
* Removes the given stored content. This will also attempt to release the
|
|
3733
3686
|
* licenses, if any.
|
|
@@ -3815,16 +3768,6 @@ shaka.polyfill.Fullscreen = class {
|
|
|
3815
3768
|
*/
|
|
3816
3769
|
static install() {}
|
|
3817
3770
|
};
|
|
3818
|
-
/**
|
|
3819
|
-
* @summary A polyfill to patch math round bug on some browsers.
|
|
3820
|
-
* @see https://stackoverflow.com/q/12830742
|
|
3821
|
-
*/
|
|
3822
|
-
shaka.polyfill.MathRound = class {
|
|
3823
|
-
/**
|
|
3824
|
-
* Install the polyfill if needed.
|
|
3825
|
-
*/
|
|
3826
|
-
static install() {}
|
|
3827
|
-
};
|
|
3828
3771
|
/**
|
|
3829
3772
|
* @summary A polyfill to provide navigator.mediaCapabilities on all browsers.
|
|
3830
3773
|
* This is necessary for Tizen 3, Xbox One and possibly others we have yet to
|
|
@@ -3864,28 +3807,6 @@ shaka.polyfill.Orientation = class {
|
|
|
3864
3807
|
*/
|
|
3865
3808
|
static install() {}
|
|
3866
3809
|
};
|
|
3867
|
-
/**
|
|
3868
|
-
* @summary A polyfill to implement modern, standardized EME on top of Apple's
|
|
3869
|
-
* prefixed EME in Safari.
|
|
3870
|
-
*/
|
|
3871
|
-
shaka.polyfill.PatchedMediaKeysApple = class {
|
|
3872
|
-
/**
|
|
3873
|
-
* Installs the polyfill if needed.
|
|
3874
|
-
*/
|
|
3875
|
-
static install() {}
|
|
3876
|
-
};
|
|
3877
|
-
/**
|
|
3878
|
-
* @summary A polyfill to implement
|
|
3879
|
-
* {@link https://bit.ly/EmeMar15 EME draft 12 March 2015}
|
|
3880
|
-
* on top of ms-prefixed
|
|
3881
|
-
* {@link https://www.w3.org/TR/2014/WD-encrypted-media-20140218/ EME v20140218}
|
|
3882
|
-
*/
|
|
3883
|
-
shaka.polyfill.PatchedMediaKeysMs = class {
|
|
3884
|
-
/**
|
|
3885
|
-
* Installs the polyfill if needed.
|
|
3886
|
-
*/
|
|
3887
|
-
static install() {}
|
|
3888
|
-
};
|
|
3889
3810
|
/**
|
|
3890
3811
|
* @summary A polyfill to stub out
|
|
3891
3812
|
* {@link https://bit.ly/EmeMar15 EME draft 12 March 2015} on browsers without
|
|
@@ -3987,6 +3908,10 @@ shaka.text.LrcTextParser = class {
|
|
|
3987
3908
|
* @override
|
|
3988
3909
|
*/
|
|
3989
3910
|
parseInit(data) {}
|
|
3911
|
+
/**
|
|
3912
|
+
* @override
|
|
3913
|
+
*/
|
|
3914
|
+
setSequenceMode(sequenceMode) {}
|
|
3990
3915
|
/**
|
|
3991
3916
|
* @override
|
|
3992
3917
|
*/
|
|
@@ -4000,6 +3925,10 @@ shaka.text.TtmlTextParser = class {
|
|
|
4000
3925
|
* @override
|
|
4001
3926
|
*/
|
|
4002
3927
|
parseInit(data) {}
|
|
3928
|
+
/**
|
|
3929
|
+
* @override
|
|
3930
|
+
*/
|
|
3931
|
+
setSequenceMode(sequenceMode) {}
|
|
4003
3932
|
/**
|
|
4004
3933
|
* @override
|
|
4005
3934
|
*/
|
|
@@ -4015,6 +3944,10 @@ shaka.text.Mp4TtmlParser = class {
|
|
|
4015
3944
|
* @override
|
|
4016
3945
|
*/
|
|
4017
3946
|
parseInit(data) {}
|
|
3947
|
+
/**
|
|
3948
|
+
* @override
|
|
3949
|
+
*/
|
|
3950
|
+
setSequenceMode(sequenceMode) {}
|
|
4018
3951
|
/**
|
|
4019
3952
|
* @override
|
|
4020
3953
|
*/
|
|
@@ -4024,10 +3957,16 @@ shaka.text.Mp4TtmlParser = class {
|
|
|
4024
3957
|
* @implements {shaka.extern.TextParser}
|
|
4025
3958
|
*/
|
|
4026
3959
|
shaka.text.VttTextParser = class {
|
|
3960
|
+
/** Constructs a VTT parser. */
|
|
3961
|
+
constructor() {}
|
|
4027
3962
|
/**
|
|
4028
3963
|
* @override
|
|
4029
3964
|
*/
|
|
4030
3965
|
parseInit(data) {}
|
|
3966
|
+
/**
|
|
3967
|
+
* @override
|
|
3968
|
+
*/
|
|
3969
|
+
setSequenceMode(sequenceMode) {}
|
|
4031
3970
|
/**
|
|
4032
3971
|
* @override
|
|
4033
3972
|
*/
|
|
@@ -4043,6 +3982,10 @@ shaka.text.Mp4VttParser = class {
|
|
|
4043
3982
|
* @override
|
|
4044
3983
|
*/
|
|
4045
3984
|
parseInit(data) {}
|
|
3985
|
+
/**
|
|
3986
|
+
* @override
|
|
3987
|
+
*/
|
|
3988
|
+
setSequenceMode(sequenceMode) {}
|
|
4046
3989
|
/**
|
|
4047
3990
|
* @override
|
|
4048
3991
|
*/
|
|
@@ -4056,6 +3999,10 @@ shaka.text.SbvTextParser = class {
|
|
|
4056
3999
|
* @override
|
|
4057
4000
|
*/
|
|
4058
4001
|
parseInit(data) {}
|
|
4002
|
+
/**
|
|
4003
|
+
* @override
|
|
4004
|
+
*/
|
|
4005
|
+
setSequenceMode(sequenceMode) {}
|
|
4059
4006
|
/**
|
|
4060
4007
|
* @override
|
|
4061
4008
|
*/
|
|
@@ -4071,6 +4018,10 @@ shaka.text.SrtTextParser = class {
|
|
|
4071
4018
|
* @override
|
|
4072
4019
|
*/
|
|
4073
4020
|
parseInit(data) {}
|
|
4021
|
+
/**
|
|
4022
|
+
* @override
|
|
4023
|
+
*/
|
|
4024
|
+
setSequenceMode(sequenceMode) {}
|
|
4074
4025
|
/**
|
|
4075
4026
|
* @override
|
|
4076
4027
|
*/
|
|
@@ -4092,11 +4043,61 @@ shaka.text.SsaTextParser = class {
|
|
|
4092
4043
|
* @override
|
|
4093
4044
|
*/
|
|
4094
4045
|
parseInit(data) {}
|
|
4046
|
+
/**
|
|
4047
|
+
* @override
|
|
4048
|
+
*/
|
|
4049
|
+
setSequenceMode(sequenceMode) {}
|
|
4095
4050
|
/**
|
|
4096
4051
|
* @override
|
|
4097
4052
|
*/
|
|
4098
4053
|
parseMedia(data, time) {}
|
|
4099
4054
|
};
|
|
4055
|
+
/**
|
|
4056
|
+
* @summary A set of FairPlay utility functions.
|
|
4057
|
+
*/
|
|
4058
|
+
shaka.util.FairPlayUtils = class {
|
|
4059
|
+
/**
|
|
4060
|
+
* Check if FairPlay is supported.
|
|
4061
|
+
* @return {!Promise.<boolean>}
|
|
4062
|
+
*/
|
|
4063
|
+
static isFairPlaySupported() {}
|
|
4064
|
+
/**
|
|
4065
|
+
* Using the default method, extract a content ID from the init data. This is
|
|
4066
|
+
* based on the FairPlay example documentation.
|
|
4067
|
+
* @param {!BufferSource} initData
|
|
4068
|
+
* @return {string}
|
|
4069
|
+
*/
|
|
4070
|
+
static defaultGetContentId(initData) {}
|
|
4071
|
+
/**
|
|
4072
|
+
* Transforms the init data buffer using the given data. The format is:
|
|
4073
|
+
* <pre>
|
|
4074
|
+
* [4 bytes] initDataSize
|
|
4075
|
+
* [initDataSize bytes] initData
|
|
4076
|
+
* [4 bytes] contentIdSize
|
|
4077
|
+
* [contentIdSize bytes] contentId
|
|
4078
|
+
* [4 bytes] certSize
|
|
4079
|
+
* [certSize bytes] cert
|
|
4080
|
+
* </pre>
|
|
4081
|
+
* @param {!BufferSource} initData
|
|
4082
|
+
* @param {!BufferSource|string} contentId
|
|
4083
|
+
* @param {?BufferSource} cert The server certificate; this will throw if not
|
|
4084
|
+
* provided.
|
|
4085
|
+
* @return {!Uint8Array}
|
|
4086
|
+
*/
|
|
4087
|
+
static initDataTransform(initData, contentId, cert) {}
|
|
4088
|
+
/**
|
|
4089
|
+
* SPC FairPlay request.
|
|
4090
|
+
* @param {shaka.net.NetworkingEngine.RequestType} type
|
|
4091
|
+
* @param {shaka.extern.Request} request
|
|
4092
|
+
*/
|
|
4093
|
+
static spcFairPlayRequest(type, request) {}
|
|
4094
|
+
/**
|
|
4095
|
+
* Common FairPlay response transform for some DRMs providers.
|
|
4096
|
+
* @param {shaka.net.NetworkingEngine.RequestType} type
|
|
4097
|
+
* @param {shaka.extern.Response} response
|
|
4098
|
+
*/
|
|
4099
|
+
static commonFairPlayResponse(type, response) {}
|
|
4100
|
+
};
|
|
4100
4101
|
/**
|
|
4101
4102
|
* @implements {shaka.extern.IUIElement}
|
|
4102
4103
|
* @abstract
|
|
@@ -4401,6 +4402,14 @@ shaka.ui.Controls = class extends shaka.util.FakeEventTarget {
|
|
|
4401
4402
|
anySettingsMenusAreOpen() {}
|
|
4402
4403
|
/** */
|
|
4403
4404
|
hideSettingsMenus() {}
|
|
4405
|
+
/**
|
|
4406
|
+
* @return {boolean}
|
|
4407
|
+
*/
|
|
4408
|
+
isFullScreenSupported() {}
|
|
4409
|
+
/**
|
|
4410
|
+
* @return {boolean}
|
|
4411
|
+
*/
|
|
4412
|
+
isFullScreenEnabled() {}
|
|
4404
4413
|
/** */
|
|
4405
4414
|
toggleFullScreen() {}
|
|
4406
4415
|
/** */
|