shaka-player 3.3.4 → 4.0.0

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.
Files changed (184) hide show
  1. package/.github/workflows/build-and-test.yaml +0 -1
  2. package/.github/workflows/demo-version-index.yaml +8 -0
  3. package/.github/workflows/release-please.yaml +23 -2
  4. package/.github/workflows/selenium-lab-tests.yaml +0 -1
  5. package/.github/workflows/sync-labels.yaml +33 -0
  6. package/.github/workflows/update-issues.yaml +29 -0
  7. package/.github/workflows/validate-pr-title.yaml +35 -0
  8. package/AUTHORS +1 -0
  9. package/CHANGELOG.md +198 -32
  10. package/CONTRIBUTORS +1 -0
  11. package/README.md +10 -7
  12. package/app-engine/demo-version-index/README.md +3 -3
  13. package/app-engine/demo-version-index/app.yaml +27 -1
  14. package/app-engine/demo-version-index/generate.py +164 -0
  15. package/app-engine/demo-version-index/main.py +4 -155
  16. package/app-engine/demo-version-index/requirements.txt +0 -1
  17. package/build/README.md +2 -2
  18. package/build/compiler.py +1 -1
  19. package/build/generateTsDefs.py +0 -2
  20. package/build/shaka-lab.yaml +0 -2
  21. package/build/test.py +7 -1
  22. package/build/types/core +0 -1
  23. package/build/types/polyfill +0 -3
  24. package/demo/common/asset.js +17 -1
  25. package/demo/common/assets.js +29 -0
  26. package/demo/common/message_ids.js +6 -3
  27. package/demo/config.js +10 -11
  28. package/demo/custom.js +39 -0
  29. package/demo/demo_utils.js +0 -1
  30. package/demo/locales/en.json +6 -3
  31. package/demo/locales/source.json +22 -10
  32. package/demo/main.js +9 -6
  33. package/demo/search.js +2 -1
  34. package/dist/controls.css +1 -1
  35. package/dist/demo.compiled.debug.js +71 -64
  36. package/dist/demo.compiled.debug.map +3 -3
  37. package/dist/demo.compiled.js +71 -64
  38. package/dist/demo.compiled.map +3 -3
  39. package/dist/demo.css +1 -1
  40. package/dist/demo.css.map +1 -1
  41. package/dist/deps.js +16 -20
  42. package/dist/locales.js +31 -29
  43. package/dist/receiver.compiled.debug.js +32 -28
  44. package/dist/receiver.compiled.debug.map +3 -3
  45. package/dist/receiver.compiled.js +32 -28
  46. package/dist/receiver.compiled.map +3 -3
  47. package/dist/shaka-player.compiled.d.ts +78 -83
  48. package/dist/shaka-player.compiled.debug.d.ts +78 -83
  49. package/dist/shaka-player.compiled.debug.externs.js +126 -126
  50. package/dist/shaka-player.compiled.debug.js +426 -483
  51. package/dist/shaka-player.compiled.debug.map +4 -4
  52. package/dist/shaka-player.compiled.externs.js +126 -126
  53. package/dist/shaka-player.compiled.js +838 -856
  54. package/dist/shaka-player.compiled.map +4 -4
  55. package/dist/shaka-player.ui.d.ts +80 -83
  56. package/dist/shaka-player.ui.debug.d.ts +80 -83
  57. package/dist/shaka-player.ui.debug.externs.js +134 -126
  58. package/dist/shaka-player.ui.debug.js +488 -543
  59. package/dist/shaka-player.ui.debug.map +4 -4
  60. package/dist/shaka-player.ui.externs.js +134 -126
  61. package/dist/shaka-player.ui.js +980 -994
  62. package/dist/shaka-player.ui.map +4 -4
  63. package/docs/tutorials/config.md +0 -2
  64. package/docs/tutorials/drm-config.md +5 -0
  65. package/docs/tutorials/fairplay.md +7 -22
  66. package/docs/tutorials/faq.md +0 -11
  67. package/docs/tutorials/index.json +2 -8
  68. package/docs/tutorials/plugins.md +1 -3
  69. package/docs/tutorials/upgrade.md +83 -11
  70. package/externs/polyfill.js +15 -0
  71. package/externs/shaka/manifest.js +5 -1
  72. package/externs/shaka/net.js +12 -0
  73. package/externs/shaka/offline.js +5 -1
  74. package/externs/shaka/player.js +39 -32
  75. package/externs/shaka/text.js +12 -12
  76. package/externs/sourcebuffer.js +15 -0
  77. package/lib/ads/client_side_ad.js +13 -2
  78. package/lib/ads/client_side_ad_manager.js +22 -4
  79. package/lib/cast/cast_utils.js +0 -1
  80. package/lib/dash/content_protection.js +85 -5
  81. package/lib/dash/dash_parser.js +1 -1
  82. package/lib/hls/hls_parser.js +378 -743
  83. package/lib/hls/manifest_text_parser.js +2 -3
  84. package/lib/media/drm_engine.js +102 -53
  85. package/lib/media/gap_jumping_controller.js +10 -45
  86. package/lib/media/media_source_engine.js +87 -15
  87. package/lib/media/playhead.js +2 -5
  88. package/lib/media/presentation_timeline.js +1 -2
  89. package/lib/media/segment_index.js +13 -46
  90. package/lib/media/segment_reference.js +47 -1
  91. package/lib/media/streaming_engine.js +29 -11
  92. package/lib/media/time_ranges_utils.js +4 -9
  93. package/lib/net/networking_engine.js +3 -0
  94. package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
  95. package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
  96. package/lib/offline/manifest_converter.js +1 -0
  97. package/lib/offline/storage.js +100 -132
  98. package/lib/player.js +17 -201
  99. package/lib/polyfill/media_capabilities.js +12 -6
  100. package/lib/polyfill/mediasource.js +0 -28
  101. package/lib/polyfill/patchedmediakeys_nop.js +2 -0
  102. package/lib/polyfill/patchedmediakeys_webkit.js +2 -0
  103. package/lib/text/cue.js +0 -6
  104. package/lib/text/lrc_text_parser.js +8 -0
  105. package/lib/text/mp4_ttml_parser.js +8 -0
  106. package/lib/text/mp4_vtt_parser.js +8 -0
  107. package/lib/text/sbv_text_parser.js +8 -0
  108. package/lib/text/simple_text_displayer.js +1 -7
  109. package/lib/text/srt_text_parser.js +8 -0
  110. package/lib/text/ssa_text_parser.js +8 -0
  111. package/lib/text/text_engine.js +19 -3
  112. package/lib/text/ttml_text_parser.js +8 -0
  113. package/lib/text/ui_text_displayer.js +1 -7
  114. package/lib/text/vtt_text_parser.js +24 -2
  115. package/lib/text/web_vtt_generator.js +1 -7
  116. package/lib/util/error.js +9 -13
  117. package/lib/util/fairplay_utils.js +109 -0
  118. package/lib/util/functional.js +0 -42
  119. package/lib/util/mime_utils.js +2 -0
  120. package/lib/util/platform.js +45 -0
  121. package/lib/util/player_configuration.js +12 -6
  122. package/lib/util/pssh.js +23 -4
  123. package/lib/util/stream_utils.js +92 -22
  124. package/lib/util/uint8array_utils.js +0 -16
  125. package/lib/util/xml_utils.js +1 -1
  126. package/package.json +1 -1
  127. package/roadmap.md +19 -19
  128. package/shaka-player.uncompiled.js +0 -3
  129. package/test/cast/cast_utils_unit.js +1 -0
  130. package/test/dash/dash_parser_content_protection_unit.js +44 -0
  131. package/test/dash/dash_parser_manifest_unit.js +0 -24
  132. package/test/dash/dash_parser_segment_template_unit.js +3 -4
  133. package/test/demo/demo_unit.js +2 -1
  134. package/test/hls/hls_live_unit.js +99 -220
  135. package/test/hls/hls_parser_unit.js +515 -432
  136. package/test/media/drm_engine_unit.js +86 -120
  137. package/test/media/media_source_engine_integration.js +26 -3
  138. package/test/media/media_source_engine_unit.js +7 -6
  139. package/test/media/playhead_unit.js +27 -191
  140. package/test/media/segment_index_unit.js +15 -25
  141. package/test/media/streaming_engine_integration.js +4 -39
  142. package/test/media/streaming_engine_unit.js +3 -2
  143. package/test/media/time_ranges_utils_unit.js +0 -5
  144. package/test/offline/manifest_convert_unit.js +34 -4
  145. package/test/offline/offline_manifest_parser_unit.js +1 -0
  146. package/test/offline/storage_integration.js +5 -4
  147. package/test/player_external.js +0 -6
  148. package/test/player_integration.js +16 -0
  149. package/test/player_unit.js +26 -0
  150. package/test/test/util/fake_media_source_engine.js +11 -4
  151. package/test/test/util/manifest_generator.js +3 -1
  152. package/test/test/util/manifest_parser_util.js +4 -1
  153. package/test/test/util/offline_utils.js +1 -0
  154. package/test/test/util/streaming_engine_util.js +1 -0
  155. package/test/test/util/test_scheme.js +24 -1
  156. package/test/test/util/util.js +4 -4
  157. package/test/text/cue_integration.js +2 -2
  158. package/test/text/lrc_text_parser_unit.js +6 -7
  159. package/test/text/mp4_ttml_parser_unit.js +6 -4
  160. package/test/text/mp4_vtt_parser_unit.js +6 -5
  161. package/test/text/sbv_text_parser_unit.js +5 -6
  162. package/test/text/srt_text_parser_unit.js +5 -6
  163. package/test/text/ssa_text_parser_unit.js +17 -29
  164. package/test/text/text_engine_unit.js +45 -5
  165. package/test/text/ttml_text_parser_unit.js +77 -77
  166. package/test/text/vtt_text_parser_unit.js +55 -57
  167. package/test/ui/ui_integration.js +0 -16
  168. package/test/ui/ui_unit.js +27 -0
  169. package/test/util/cmcd_manager_unit.js +3 -0
  170. package/test/util/stream_utils_unit.js +23 -7
  171. package/ui/controls.js +65 -40
  172. package/ui/fullscreen_button.js +26 -6
  173. package/ui/less/containers.less +3 -3
  174. package/ui/locales/en.json +1 -0
  175. package/ui/locales/source.json +5 -0
  176. package/ui/resolution_selection.js +31 -33
  177. package/ui/ui.js +0 -17
  178. package/docs/tutorials/upgrade-v2-5.md +0 -441
  179. package/docs/tutorials/upgrade-v3.md +0 -38
  180. package/lib/polyfill/mathround.js +0 -49
  181. package/lib/polyfill/patchedmediakeys_apple.js +0 -744
  182. package/lib/polyfill/patchedmediakeys_ms.js +0 -698
  183. package/lib/util/mutex.js +0 -52
  184. package/test/util/functional_unit.js +0 -82
@@ -186,10 +186,6 @@ shaka.text.Cue.prototype.isContainer;
186
186
  * @override
187
187
  */
188
188
  shaka.text.Cue.prototype.lineBreak;
189
- /**
190
- * @override
191
- */
192
- shaka.text.Cue.prototype.spacer;
193
189
  /**
194
190
  * @override
195
191
  */
@@ -587,14 +583,12 @@ shaka.util.Error.Code = {
587
583
  'HLS_INVALID_PLAYLIST_HIERARCHY': 4017,
588
584
  'DASH_DUPLICATE_REPRESENTATION_ID': 4018,
589
585
  'HLS_MULTIPLE_MEDIA_INIT_SECTIONS_FOUND': 4020,
590
- 'HLS_MASTER_PLAYLIST_NOT_PROVIDED': 4022,
591
586
  'HLS_REQUIRED_ATTRIBUTE_MISSING': 4023,
592
587
  'HLS_REQUIRED_TAG_MISSING': 4024,
593
588
  'HLS_COULD_NOT_GUESS_CODECS': 4025,
594
589
  'HLS_KEYFORMATS_NOT_SUPPORTED': 4026,
595
590
  'DASH_UNSUPPORTED_XLINK_ACTUATE': 4027,
596
591
  'DASH_XLINK_DEPTH_LIMIT': 4028,
597
- 'HLS_COULD_NOT_PARSE_SEGMENT_START_TIME': 4030,
598
592
  'CONTENT_UNSUPPORTED_BY_BROWSER': 4032,
599
593
  'CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM': 4033,
600
594
  'HLS_AES_128_ENCRYPTION_NOT_SUPPORTED': 4034,
@@ -603,6 +597,7 @@ shaka.util.Error.Code = {
603
597
  'PERIOD_FLATTENING_FAILED': 4037,
604
598
  'INCONSISTENT_DRM_ACROSS_PERIODS': 4038,
605
599
  'HLS_VARIABLE_NOT_FOUND': 4039,
600
+ 'HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED': 4040,
606
601
  'STREAMING_ENGINE_STARTUP_INVALID_STATE': 5006,
607
602
  'NO_RECOGNIZED_KEY_SYSTEMS': 6000,
608
603
  'REQUESTED_KEY_SYSTEM_CONFIG_UNAVAILABLE': 6001,
@@ -704,14 +699,6 @@ shaka.util.StringUtils = class {
704
699
  * @summary A set of Uint8Array utility functions.
705
700
  */
706
701
  shaka.util.Uint8ArrayUtils = class {
707
- /**
708
- * Compare two Uint8Arrays for equality.
709
- * @param {Uint8Array} arr1
710
- * @param {Uint8Array} arr2
711
- * @return {boolean}
712
- * @deprecated
713
- */
714
- static equal(arr1, arr2) {}
715
702
  /**
716
703
  * Convert a buffer to a base64 string. The output will be standard
717
704
  * alphabet as opposed to base64url safe alphabet.
@@ -754,6 +741,19 @@ shaka.util.Uint8ArrayUtils = class {
754
741
  */
755
742
  static concat(...varArgs) {}
756
743
  };
744
+ /**
745
+ * @summary A set of utility functions for dealing with MIME types.
746
+ */
747
+ shaka.util.MimeUtils = class {
748
+ /**
749
+ * Takes a MIME type and optional codecs string and produces the full MIME
750
+ * type.
751
+ * @param {string} mimeType
752
+ * @param {string=} codecs
753
+ * @return {string}
754
+ */
755
+ static getFullType(mimeType, codecs) {}
756
+ };
757
757
  /**
758
758
  * @summary Manages text parsers and cues.
759
759
  * @implements {shaka.util.IDestroyable}
@@ -1414,35 +1414,6 @@ shaka.util.EventManager = class {
1414
1414
  * @typedef {function(!Event)}
1415
1415
  */
1416
1416
  shaka.util.EventManager.ListenerType;
1417
- /**
1418
- * @summary A set of FairPlay utility functions.
1419
- */
1420
- shaka.util.FairPlayUtils = class {
1421
- /**
1422
- * Using the default method, extract a content ID from the init data. This is
1423
- * based on the FairPlay example documentation.
1424
- * @param {!BufferSource} initData
1425
- * @return {string}
1426
- */
1427
- static defaultGetContentId(initData) {}
1428
- /**
1429
- * Transforms the init data buffer using the given data. The format is:
1430
- * <pre>
1431
- * [4 bytes] initDataSize
1432
- * [initDataSize bytes] initData
1433
- * [4 bytes] contentIdSize
1434
- * [contentIdSize bytes] contentId
1435
- * [4 bytes] certSize
1436
- * [certSize bytes] cert
1437
- * </pre>
1438
- * @param {!BufferSource} initData
1439
- * @param {!BufferSource|string} contentId
1440
- * @param {?BufferSource} cert The server certificate; this will throw if not
1441
- * provided.
1442
- * @return {!Uint8Array}
1443
- */
1444
- static initDataTransform(initData, contentId, cert) {}
1445
- };
1446
1417
  /**
1447
1418
  * @summary An interface to register manifest parsers.
1448
1419
  */
@@ -1718,8 +1689,14 @@ shaka.media.SegmentReference = class {
1718
1689
  * The explicit duration of an individual tile within the tiles grid.
1719
1690
  * If not provided, the duration should be automatically calculated based on
1720
1691
  * the duration of the reference.
1692
+ * @param {?number=} syncTime
1693
+ * A time value, expressed in the same scale as the start and end time, which
1694
+ * is used to synchronize between streams.
1695
+ * @param {shaka.media.SegmentReference.Status=} status
1696
+ * The segment status is used to indicate that a segment does not exist or is
1697
+ * not available.
1721
1698
  */
1722
- constructor(startTime, endTime, uris, startByte, endByte, initSegmentReference, timestampOffset, appendWindowStart, appendWindowEnd, partialReferences, tilesLayout, tileDuration) {}
1699
+ constructor(startTime, endTime, uris, startByte, endByte, initSegmentReference, timestampOffset, appendWindowStart, appendWindowEnd, partialReferences, tilesLayout, tileDuration, syncTime, status) {}
1723
1700
  /**
1724
1701
  * Creates and returns the URIs of the resource containing the segment.
1725
1702
  * @return {!Array.<string>}
@@ -1759,6 +1736,25 @@ shaka.media.SegmentReference = class {
1759
1736
  * @return {?number}
1760
1737
  */
1761
1738
  getTileDuration() {}
1739
+ /**
1740
+ * Returns the segment's status.
1741
+ * @return {shaka.media.SegmentReference.Status}
1742
+ */
1743
+ getStatus() {}
1744
+ /**
1745
+ * Mark the reference as unavailable.
1746
+ */
1747
+ markAsUnavailable() {}
1748
+ };
1749
+ /**
1750
+ * Rather than using booleans to communicate what the state of the reference,
1751
+ * we have this enum.
1752
+ * @enum {number}
1753
+ */
1754
+ shaka.media.SegmentReference.Status = {
1755
+ AVAILABLE: 0,
1756
+ UNAVAILABLE: 1,
1757
+ MISSING: 2
1762
1758
  };
1763
1759
  /**
1764
1760
  * PresentationTimeline.
@@ -1934,13 +1930,6 @@ shaka.media.SegmentIndex = class {
1934
1930
  * (ascending) and second by their end times (ascending).
1935
1931
  */
1936
1932
  constructor(references) {}
1937
- /**
1938
- * SegmentIndex used to be an IDestroyable. Now it is an IReleasable.
1939
- * This method is provided for backward compatibility.
1940
- * @deprecated
1941
- * @return {!Promise}
1942
- */
1943
- destroy() {}
1944
1933
  /**
1945
1934
  * @override
1946
1935
  */
@@ -1975,20 +1964,6 @@ shaka.media.SegmentIndex = class {
1975
1964
  * times.
1976
1965
  */
1977
1966
  offset(offset) {}
1978
- /**
1979
- * Merges the given SegmentReferences. Supports extending the original
1980
- * references only. Will replace old references with equivalent new ones, and
1981
- * keep any unique old ones.
1982
- * Used, for example, by the DASH and HLS parser, where manifests may not list
1983
- * all available references, so we must keep available references in memory to
1984
- * fill the availability window.
1985
- * @param {!Array.<!shaka.media.SegmentReference>} references The list of
1986
- * SegmentReferences, which must be sorted first by their start times
1987
- * (ascending) and second by their end times (ascending).
1988
- * @deprecated Not used directly by our own parsers, so will become private in
1989
- * v4. Use mergeAndEvict() instead.
1990
- */
1991
- merge(references) {}
1992
1967
  /**
1993
1968
  * Merges the given SegmentReferences and evicts the ones that end before the
1994
1969
  * given time. Supports extending the original references only.
@@ -2057,13 +2032,6 @@ shaka.media.SegmentIterator = class {
2057
2032
  * @param {number} partialSegmentIndex
2058
2033
  */
2059
2034
  constructor(segmentIndex, index, partialSegmentIndex) {}
2060
- /**
2061
- * Move the iterator to a given timestamp in the underlying SegmentIndex.
2062
- * @param {number} time
2063
- * @return {shaka.media.SegmentReference}
2064
- * @deprecated Use SegmentIndex.getIteratorForTime instead
2065
- */
2066
- seek(time) {}
2067
2035
  /**
2068
2036
  * @return {shaka.media.SegmentReference}
2069
2037
  */
@@ -2263,6 +2231,10 @@ shaka.util.ConfigUtils = class {
2263
2231
  * @final
2264
2232
  */
2265
2233
  shaka.util.PlayerConfiguration = class {
2234
+ /**
2235
+ * @return {shaka.extern.PlayerConfiguration}
2236
+ */
2237
+ static createDefault() {}
2266
2238
  /**
2267
2239
  * Merges the given configuration changes into the given destination. This
2268
2240
  * uses the default Player configurations as the template.
@@ -2725,21 +2697,6 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
2725
2697
  * @return {shaka.extern.Stats}
2726
2698
  */
2727
2699
  getStats() {}
2728
- /**
2729
- * Adds the given text track to the loaded manifest. <code>load()</code> must
2730
- * resolve before calling. The presentation must have a duration.
2731
- * This returns the created track, which can immediately be selected by the
2732
- * application. The track will not be automatically selected.
2733
- * @param {string} uri
2734
- * @param {string} language
2735
- * @param {string} kind
2736
- * @param {string=} mimeType
2737
- * @param {string=} codec
2738
- * @param {string=} label
2739
- * @param {boolean=} forced
2740
- * @return {shaka.extern.Track}
2741
- */
2742
- addTextTrack(uri, language, kind, mimeType, codec, label, forced) {}
2743
2700
  /**
2744
2701
  * Adds the given text track to the loaded manifest. <code>load()</code> must
2745
2702
  * resolve before calling. The presentation must have a duration.
@@ -2837,8 +2794,9 @@ shaka.ads.ClientSideAd = class {
2837
2794
  /**
2838
2795
  * @param {!google.ima.Ad} imaAd
2839
2796
  * @param {!google.ima.AdsManager} imaAdManager
2797
+ * @param {HTMLMediaElement} video
2840
2798
  */
2841
- constructor(imaAd, imaAdManager) {}
2799
+ constructor(imaAd, imaAdManager, video) {}
2842
2800
  /**
2843
2801
  * @override
2844
2802
  */
@@ -3615,12 +3573,6 @@ shaka.offline.Storage = class {
3615
3573
  * AbortableOperation.
3616
3574
  */
3617
3575
  store(uri, appMetadata, mimeType) {}
3618
- /**
3619
- * Returns true if an asset is currently downloading.
3620
- * @return {boolean}
3621
- * @deprecated
3622
- */
3623
- getStoreInProgress() {}
3624
3576
  /**
3625
3577
  * Removes the given stored content. This will also attempt to release the
3626
3578
  * licenses, if any.
@@ -3708,16 +3660,6 @@ shaka.polyfill.Fullscreen = class {
3708
3660
  */
3709
3661
  static install() {}
3710
3662
  };
3711
- /**
3712
- * @summary A polyfill to patch math round bug on some browsers.
3713
- * @see https://stackoverflow.com/q/12830742
3714
- */
3715
- shaka.polyfill.MathRound = class {
3716
- /**
3717
- * Install the polyfill if needed.
3718
- */
3719
- static install() {}
3720
- };
3721
3663
  /**
3722
3664
  * @summary A polyfill to provide navigator.mediaCapabilities on all browsers.
3723
3665
  * This is necessary for Tizen 3, Xbox One and possibly others we have yet to
@@ -3757,28 +3699,6 @@ shaka.polyfill.Orientation = class {
3757
3699
  */
3758
3700
  static install() {}
3759
3701
  };
3760
- /**
3761
- * @summary A polyfill to implement modern, standardized EME on top of Apple's
3762
- * prefixed EME in Safari.
3763
- */
3764
- shaka.polyfill.PatchedMediaKeysApple = class {
3765
- /**
3766
- * Installs the polyfill if needed.
3767
- */
3768
- static install() {}
3769
- };
3770
- /**
3771
- * @summary A polyfill to implement
3772
- * {@link https://bit.ly/EmeMar15 EME draft 12 March 2015}
3773
- * on top of ms-prefixed
3774
- * {@link https://www.w3.org/TR/2014/WD-encrypted-media-20140218/ EME v20140218}
3775
- */
3776
- shaka.polyfill.PatchedMediaKeysMs = class {
3777
- /**
3778
- * Installs the polyfill if needed.
3779
- */
3780
- static install() {}
3781
- };
3782
3702
  /**
3783
3703
  * @summary A polyfill to stub out
3784
3704
  * {@link https://bit.ly/EmeMar15 EME draft 12 March 2015} on browsers without
@@ -3880,6 +3800,10 @@ shaka.text.LrcTextParser = class {
3880
3800
  * @override
3881
3801
  */
3882
3802
  parseInit(data) {}
3803
+ /**
3804
+ * @override
3805
+ */
3806
+ setSequenceMode(sequenceMode) {}
3883
3807
  /**
3884
3808
  * @override
3885
3809
  */
@@ -3893,6 +3817,10 @@ shaka.text.TtmlTextParser = class {
3893
3817
  * @override
3894
3818
  */
3895
3819
  parseInit(data) {}
3820
+ /**
3821
+ * @override
3822
+ */
3823
+ setSequenceMode(sequenceMode) {}
3896
3824
  /**
3897
3825
  * @override
3898
3826
  */
@@ -3908,6 +3836,10 @@ shaka.text.Mp4TtmlParser = class {
3908
3836
  * @override
3909
3837
  */
3910
3838
  parseInit(data) {}
3839
+ /**
3840
+ * @override
3841
+ */
3842
+ setSequenceMode(sequenceMode) {}
3911
3843
  /**
3912
3844
  * @override
3913
3845
  */
@@ -3917,10 +3849,16 @@ shaka.text.Mp4TtmlParser = class {
3917
3849
  * @implements {shaka.extern.TextParser}
3918
3850
  */
3919
3851
  shaka.text.VttTextParser = class {
3852
+ /** Constructs a VTT parser. */
3853
+ constructor() {}
3920
3854
  /**
3921
3855
  * @override
3922
3856
  */
3923
3857
  parseInit(data) {}
3858
+ /**
3859
+ * @override
3860
+ */
3861
+ setSequenceMode(sequenceMode) {}
3924
3862
  /**
3925
3863
  * @override
3926
3864
  */
@@ -3936,6 +3874,10 @@ shaka.text.Mp4VttParser = class {
3936
3874
  * @override
3937
3875
  */
3938
3876
  parseInit(data) {}
3877
+ /**
3878
+ * @override
3879
+ */
3880
+ setSequenceMode(sequenceMode) {}
3939
3881
  /**
3940
3882
  * @override
3941
3883
  */
@@ -3949,6 +3891,10 @@ shaka.text.SbvTextParser = class {
3949
3891
  * @override
3950
3892
  */
3951
3893
  parseInit(data) {}
3894
+ /**
3895
+ * @override
3896
+ */
3897
+ setSequenceMode(sequenceMode) {}
3952
3898
  /**
3953
3899
  * @override
3954
3900
  */
@@ -3964,6 +3910,10 @@ shaka.text.SrtTextParser = class {
3964
3910
  * @override
3965
3911
  */
3966
3912
  parseInit(data) {}
3913
+ /**
3914
+ * @override
3915
+ */
3916
+ setSequenceMode(sequenceMode) {}
3967
3917
  /**
3968
3918
  * @override
3969
3919
  */
@@ -3985,8 +3935,58 @@ shaka.text.SsaTextParser = class {
3985
3935
  * @override
3986
3936
  */
3987
3937
  parseInit(data) {}
3938
+ /**
3939
+ * @override
3940
+ */
3941
+ setSequenceMode(sequenceMode) {}
3988
3942
  /**
3989
3943
  * @override
3990
3944
  */
3991
3945
  parseMedia(data, time) {}
3992
3946
  };
3947
+ /**
3948
+ * @summary A set of FairPlay utility functions.
3949
+ */
3950
+ shaka.util.FairPlayUtils = class {
3951
+ /**
3952
+ * Check if FairPlay is supported.
3953
+ * @return {!Promise.<boolean>}
3954
+ */
3955
+ static isFairPlaySupported() {}
3956
+ /**
3957
+ * Using the default method, extract a content ID from the init data. This is
3958
+ * based on the FairPlay example documentation.
3959
+ * @param {!BufferSource} initData
3960
+ * @return {string}
3961
+ */
3962
+ static defaultGetContentId(initData) {}
3963
+ /**
3964
+ * Transforms the init data buffer using the given data. The format is:
3965
+ * <pre>
3966
+ * [4 bytes] initDataSize
3967
+ * [initDataSize bytes] initData
3968
+ * [4 bytes] contentIdSize
3969
+ * [contentIdSize bytes] contentId
3970
+ * [4 bytes] certSize
3971
+ * [certSize bytes] cert
3972
+ * </pre>
3973
+ * @param {!BufferSource} initData
3974
+ * @param {!BufferSource|string} contentId
3975
+ * @param {?BufferSource} cert The server certificate; this will throw if not
3976
+ * provided.
3977
+ * @return {!Uint8Array}
3978
+ */
3979
+ static initDataTransform(initData, contentId, cert) {}
3980
+ /**
3981
+ * SPC FairPlay request.
3982
+ * @param {shaka.net.NetworkingEngine.RequestType} type
3983
+ * @param {shaka.extern.Request} request
3984
+ */
3985
+ static spcFairPlayRequest(type, request) {}
3986
+ /**
3987
+ * Common FairPlay response transform for some DRMs providers.
3988
+ * @param {shaka.net.NetworkingEngine.RequestType} type
3989
+ * @param {shaka.extern.Response} response
3990
+ */
3991
+ static commonFairPlayResponse(type, response) {}
3992
+ };