shaka-player 3.1.2 → 3.1.6

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 (145) hide show
  1. package/.github/workflows/build_and_test.yaml +73 -0
  2. package/.github/workflows/release.yaml +53 -0
  3. package/AUTHORS +3 -0
  4. package/CHANGELOG.md +170 -1
  5. package/CONTRIBUTORS +3 -0
  6. package/build/checkversion.py +1 -1
  7. package/build/generateExterns.js +1 -1
  8. package/build/misspellings.txt +1 -0
  9. package/build/shakaBuildHelpers.py +6 -5
  10. package/build/subprocessWindowsPatch.py +103 -0
  11. package/build/test.py +6 -0
  12. package/demo/common/assets.js +1 -1
  13. package/dist/controls.css +2 -2
  14. package/dist/controls.css.map +1 -1
  15. package/dist/demo.compiled.debug.js +1 -1
  16. package/dist/demo.compiled.js +1 -1
  17. package/dist/deps.js +7 -7
  18. package/dist/locales.js +35 -35
  19. package/dist/receiver.compiled.debug.js +1 -1
  20. package/dist/receiver.compiled.js +1 -1
  21. package/dist/shaka-player.compiled.d.ts +172 -3
  22. package/dist/shaka-player.compiled.debug.d.ts +172 -3
  23. package/dist/shaka-player.compiled.debug.externs.js +184 -1
  24. package/dist/shaka-player.compiled.debug.js +390 -370
  25. package/dist/shaka-player.compiled.debug.map +3 -3
  26. package/dist/shaka-player.compiled.externs.js +184 -1
  27. package/dist/shaka-player.compiled.js +809 -805
  28. package/dist/shaka-player.compiled.map +3 -3
  29. package/dist/shaka-player.ui.d.ts +174 -14
  30. package/dist/shaka-player.ui.debug.d.ts +174 -14
  31. package/dist/shaka-player.ui.debug.externs.js +200 -26
  32. package/dist/shaka-player.ui.debug.js +431 -412
  33. package/dist/shaka-player.ui.debug.map +4 -4
  34. package/dist/shaka-player.ui.externs.js +200 -26
  35. package/dist/shaka-player.ui.js +934 -929
  36. package/dist/shaka-player.ui.map +4 -4
  37. package/docs/tutorials/fairplay.md +1 -1
  38. package/docs/tutorials/faq.md +14 -0
  39. package/externs/ima.js +4 -0
  40. package/externs/shaka/ads.js +2 -0
  41. package/externs/shaka/text.js +10 -0
  42. package/karma.conf.js +20 -15
  43. package/lib/ads/ad_manager.js +30 -11
  44. package/lib/ads/client_side_ad_manager.js +76 -86
  45. package/lib/ads/server_side_ad_manager.js +26 -11
  46. package/lib/cast/cast_proxy.js +6 -2
  47. package/lib/cast/cast_receiver.js +5 -1
  48. package/lib/cast/cast_sender.js +2 -2
  49. package/lib/cea/sei_processor.js +24 -17
  50. package/lib/dash/dash_parser.js +131 -24
  51. package/lib/dash/segment_list.js +1 -1
  52. package/lib/dash/segment_template.js +1 -1
  53. package/lib/hls/hls_parser.js +44 -17
  54. package/lib/hls/manifest_text_parser.js +1 -0
  55. package/lib/media/closed_caption_parser.js +3 -1
  56. package/lib/media/content_workarounds.js +12 -0
  57. package/lib/media/drm_engine.js +20 -1
  58. package/lib/media/gap_jumping_controller.js +8 -4
  59. package/lib/media/media_source_engine.js +1 -2
  60. package/lib/media/playhead.js +1 -1
  61. package/lib/media/region_observer.js +39 -33
  62. package/lib/media/region_timeline.js +17 -19
  63. package/lib/media/streaming_engine.js +8 -4
  64. package/lib/net/networking_engine.js +6 -1
  65. package/lib/offline/storage.js +10 -11
  66. package/lib/player.js +66 -30
  67. package/lib/polyfill/encryption_scheme.js +2 -0
  68. package/lib/polyfill/fullscreen.js +2 -0
  69. package/lib/polyfill/mathround.js +2 -0
  70. package/lib/polyfill/media_capabilities.js +73 -21
  71. package/lib/polyfill/mediasource.js +8 -0
  72. package/lib/polyfill/orientation.js +3 -1
  73. package/lib/polyfill/patchedmediakeys_apple.js +6 -4
  74. package/lib/polyfill/patchedmediakeys_ms.js +6 -4
  75. package/lib/polyfill/patchedmediakeys_nop.js +2 -0
  76. package/lib/polyfill/patchedmediakeys_webkit.js +6 -4
  77. package/lib/polyfill/pip_webkit.js +2 -0
  78. package/lib/polyfill/storage_estimate.js +2 -0
  79. package/lib/polyfill/video_play_promise.js +2 -0
  80. package/lib/polyfill/videoplaybackquality.js +2 -0
  81. package/lib/polyfill/vttcue.js +2 -0
  82. package/lib/text/cue.js +6 -0
  83. package/lib/text/mp4_ttml_parser.js +3 -0
  84. package/lib/text/text_engine.js +14 -2
  85. package/lib/text/ttml_text_parser.js +135 -87
  86. package/lib/text/ui_text_displayer.js +213 -80
  87. package/lib/text/vtt_text_parser.js +4 -2
  88. package/lib/util/fake_event.js +53 -7
  89. package/lib/util/fake_event_target.js +21 -1
  90. package/lib/util/mp4_box_parsers.js +1 -1
  91. package/lib/util/periods.js +4 -1
  92. package/lib/util/platform.js +13 -1
  93. package/lib/util/stream_utils.js +77 -10
  94. package/lib/util/xml_utils.js +19 -0
  95. package/package.json +3 -6
  96. package/test/cast/cast_proxy_unit.js +12 -6
  97. package/test/cast/cast_receiver_integration.js +1 -1
  98. package/test/cast/cast_utils_unit.js +1 -1
  99. package/test/cea/mp4_cea_parser_unit.js +26 -0
  100. package/test/dash/dash_parser_live_unit.js +43 -0
  101. package/test/dash/dash_parser_manifest_unit.js +222 -3
  102. package/test/hls/hls_parser_unit.js +79 -1
  103. package/test/media/closed_caption_parser_unit.js +20 -0
  104. package/test/media/drm_engine_unit.js +56 -0
  105. package/test/media/playhead_unit.js +27 -1
  106. package/test/media/region_observer_unit.js +40 -5
  107. package/test/media/region_timeline_unit.js +40 -22
  108. package/test/media/streaming_engine_integration.js +2 -1
  109. package/test/media/streaming_engine_unit.js +145 -0
  110. package/test/player_integration.js +38 -0
  111. package/test/test/assets/3675/chunk-stream0-00001.m4s +0 -0
  112. package/test/test/assets/3675/chunk-stream0-00002.m4s +0 -0
  113. package/test/test/assets/3675/chunk-stream0-00003.m4s +0 -0
  114. package/test/test/assets/3675/chunk-stream0-00004.m4s +0 -0
  115. package/test/test/assets/3675/chunk-stream0-00005.m4s +0 -0
  116. package/test/test/assets/3675/chunk-stream0-00006.m4s +0 -0
  117. package/test/test/assets/3675/chunk-stream0-00007.m4s +0 -0
  118. package/test/test/assets/3675/dash_0.mpd +30 -0
  119. package/test/test/assets/3675/dash_1.mpd +30 -0
  120. package/test/test/assets/3675/dash_2.mpd +30 -0
  121. package/test/test/assets/3675/dash_3.mpd +30 -0
  122. package/test/test/assets/3675/dash_4.mpd +30 -0
  123. package/test/test/assets/3675/dash_5.mpd +26 -0
  124. package/test/test/assets/3675/init-stream0.m4s +0 -0
  125. package/test/test/assets/empty_caption_video_init.mp4 +0 -0
  126. package/test/test/assets/empty_caption_video_segment.mp4 +0 -0
  127. package/test/test/util/fake_ad_manager.js +4 -1
  128. package/test/test/util/ttml_utils.js +81 -0
  129. package/test/test/util/util.js +10 -7
  130. package/test/text/mp4_ttml_parser_unit.js +11 -18
  131. package/test/text/ttml_text_parser_unit.js +542 -220
  132. package/test/text/ui_text_displayer_unit.js +93 -20
  133. package/test/text/vtt_text_parser_unit.js +17 -1
  134. package/test/ui/localization_unit.js +15 -14
  135. package/test/ui/text_displayer_layout_unit.js +21 -8
  136. package/test/util/mp4_box_parsers_unit.js +28 -0
  137. package/test/util/stream_utils_unit.js +59 -2
  138. package/ui/cast_button.js +2 -3
  139. package/ui/controls.js +11 -6
  140. package/ui/less/buttons.less +0 -4
  141. package/ui/less/containers.less +6 -7
  142. package/ui/locales/ru.json +6 -6
  143. package/ui/localization.js +40 -87
  144. package/ui/pip_button.js +2 -3
  145. package/ui/text_selection.js +1 -0
@@ -204,7 +204,7 @@ shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shaka
204
204
  (new ShakaDemoAssetInfo('"Dig the Uke" by Stefan Kartenberg (audio only, multicodec, Widevine)',"https://storage.googleapis.com/shaka-asset-icons/audio_only.png","https://storage.googleapis.com/shaka-demo-assets/dig-the-uke/dash.mpd",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.AUDIO_ONLY).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
205
205
  "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, TTML)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-ttml/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),
206
206
  (new ShakaDemoAssetInfo("Tears of Steel (HLS, Server Side ads)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos/hls.m3u8",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).setIMAContentSourceId("2528370").setIMAVideoId("tears-of-steel"),(new ShakaDemoAssetInfo("Tears of Steel (live, DASH, Server Side ads)",
207
- "https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-ttml/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.LIVE).setIMAAssetKey("_lDu24IaSYaYAMEfixipNQ"),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, surround + stereo)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",
207
+ "https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-ttml/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.LIVE).setIMAAssetKey("PSzZMzAkSXCmlJOWDmRj8Q"),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, surround + stereo)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",
208
208
  "https://storage.googleapis.com/shaka-demo-assets/tos-surround/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, surround + stereo, single skippable ad)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-surround/dash.mpd",
209
209
  shakaAssets.Source.SHAKA)).setAdTagUri(shakaAssets.AdTag.SINGLE_SKIPPABLE_AD).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Shaka Player History (multicodec, live, DASH)","https://storage.googleapis.com/shaka-asset-icons/shaka.png","https://storage.googleapis.com/shaka-live-assets/player-source.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.WEBM),
210
210
  (new ShakaDemoAssetInfo("Shaka Player History (live, HLS)","https://storage.googleapis.com/shaka-asset-icons/shaka.png","https://storage.googleapis.com/shaka-live-assets/player-source.m3u8",shakaAssets.Source.SHAKA)).addDescription("A self-indulgent HLS livestream.").markAsFeatured("Shaka Player History").addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Multi-DRM","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",
@@ -204,7 +204,7 @@ shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shaka
204
204
  (new ShakaDemoAssetInfo('"Dig the Uke" by Stefan Kartenberg (audio only, multicodec, Widevine)',"https://storage.googleapis.com/shaka-asset-icons/audio_only.png","https://storage.googleapis.com/shaka-demo-assets/dig-the-uke/dash.mpd",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.AUDIO_ONLY).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
205
205
  "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, TTML)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-ttml/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),
206
206
  (new ShakaDemoAssetInfo("Tears of Steel (HLS, Server Side ads)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos/hls.m3u8",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).setIMAContentSourceId("2528370").setIMAVideoId("tears-of-steel"),(new ShakaDemoAssetInfo("Tears of Steel (live, DASH, Server Side ads)",
207
- "https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-ttml/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.LIVE).setIMAAssetKey("_lDu24IaSYaYAMEfixipNQ"),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, surround + stereo)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",
207
+ "https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-ttml/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.LIVE).setIMAAssetKey("PSzZMzAkSXCmlJOWDmRj8Q"),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, surround + stereo)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",
208
208
  "https://storage.googleapis.com/shaka-demo-assets/tos-surround/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, surround + stereo, single skippable ad)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-surround/dash.mpd",
209
209
  shakaAssets.Source.SHAKA)).setAdTagUri(shakaAssets.AdTag.SINGLE_SKIPPABLE_AD).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Shaka Player History (multicodec, live, DASH)","https://storage.googleapis.com/shaka-asset-icons/shaka.png","https://storage.googleapis.com/shaka-live-assets/player-source.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.WEBM),
210
210
  (new ShakaDemoAssetInfo("Shaka Player History (live, HLS)","https://storage.googleapis.com/shaka-asset-icons/shaka.png","https://storage.googleapis.com/shaka-live-assets/player-source.m3u8",shakaAssets.Source.SHAKA)).addDescription("A self-indulgent HLS livestream.").markAsFeatured("Shaka Player History").addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Multi-DRM","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",
package/dist/deps.js CHANGED
@@ -17,12 +17,12 @@ goog.addDependency('../../../../dist/locales.js', ['shaka.ui.Locales'], ['shaka.
17
17
  goog.addDependency('../../../../lib/abr/ewma.js', ['shaka.abr.Ewma'], ['goog.asserts'], {});
18
18
  goog.addDependency('../../../../lib/abr/ewma_bandwidth_estimator.js', ['shaka.abr.EwmaBandwidthEstimator'], ['shaka.abr.Ewma'], {});
19
19
  goog.addDependency('../../../../lib/abr/simple_abr_manager.js', ['shaka.abr.SimpleAbrManager'], ['goog.asserts', 'shaka.abr.EwmaBandwidthEstimator', 'shaka.log', 'shaka.util.Iterables', 'shaka.util.StreamUtils'], {});
20
- goog.addDependency('../../../../lib/ads/ad_manager.js', ['shaka.ads.AdManager', 'shaka.ads.CuePoint'], ['shaka.Player', 'shaka.ads.AdsStats', 'shaka.ads.ClientSideAdManager', 'shaka.ads.ServerSideAdManager', 'shaka.log', 'shaka.util.Error', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget'], {});
20
+ goog.addDependency('../../../../lib/ads/ad_manager.js', ['shaka.ads.AdManager', 'shaka.ads.CuePoint'], ['shaka.Player', 'shaka.ads.AdsStats', 'shaka.ads.ClientSideAdManager', 'shaka.ads.ServerSideAdManager', 'shaka.log', 'shaka.util.Error', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget', 'shaka.util.IReleasable'], {});
21
21
  goog.addDependency('../../../../lib/ads/ads_stats.js', ['shaka.ads.AdsStats'], [], {});
22
22
  goog.addDependency('../../../../lib/ads/client_side_ad.js', ['shaka.ads.ClientSideAd'], ['shaka.util.EventManager'], {});
23
- goog.addDependency('../../../../lib/ads/client_side_ad_manager.js', ['shaka.ads.ClientSideAdManager'], ['goog.asserts', 'shaka.ads.ClientSideAd'], {});
23
+ goog.addDependency('../../../../lib/ads/client_side_ad_manager.js', ['shaka.ads.ClientSideAdManager'], ['goog.asserts', 'shaka.ads.ClientSideAd', 'shaka.util.IReleasable'], {});
24
24
  goog.addDependency('../../../../lib/ads/server_side_ad.js', ['shaka.ads.ServerSideAd'], [], {});
25
- goog.addDependency('../../../../lib/ads/server_side_ad_manager.js', ['shaka.ads.ServerSideAdManager'], ['goog.asserts', 'shaka.ads.ServerSideAd', 'shaka.log'], {});
25
+ goog.addDependency('../../../../lib/ads/server_side_ad_manager.js', ['shaka.ads.ServerSideAdManager'], ['goog.asserts', 'shaka.ads.ServerSideAd', 'shaka.log', 'shaka.util.IReleasable'], {});
26
26
  goog.addDependency('../../../../lib/cast/cast_proxy.js', ['shaka.cast.CastProxy'], ['goog.asserts', 'shaka.Player', 'shaka.cast.CastSender', 'shaka.cast.CastUtils', 'shaka.log', 'shaka.util.Error', 'shaka.util.EventManager', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget', 'shaka.util.IDestroyable'], {});
27
27
  goog.addDependency('../../../../lib/cast/cast_receiver.js', ['shaka.cast.CastReceiver'], ['goog.asserts', 'shaka.Player', 'shaka.cast.CastUtils', 'shaka.log', 'shaka.util.Error', 'shaka.util.EventManager', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget', 'shaka.util.IDestroyable', 'shaka.util.Platform', 'shaka.util.Timer'], {});
28
28
  goog.addDependency('../../../../lib/cast/cast_sender.js', ['shaka.cast.CastSender'], ['goog.asserts', 'shaka.cast.CastUtils', 'shaka.log', 'shaka.util.Error', 'shaka.util.FakeEvent', 'shaka.util.IDestroyable', 'shaka.util.PublicPromise', 'shaka.util.Timer'], {});
@@ -68,8 +68,8 @@ goog.addDependency('../../../../lib/media/play_rate_controller.js', ['shaka.medi
68
68
  goog.addDependency('../../../../lib/media/playhead.js', ['shaka.media.MediaSourcePlayhead', 'shaka.media.Playhead', 'shaka.media.SrcEqualsPlayhead'], ['goog.asserts', 'shaka.log', 'shaka.media.GapJumpingController', 'shaka.media.StallDetector', 'shaka.media.StallDetector.MediaElementImplementation', 'shaka.media.TimeRangesUtils', 'shaka.media.VideoWrapper', 'shaka.util.EventManager', 'shaka.util.IReleasable', 'shaka.util.MediaReadyState', 'shaka.util.Timer'], {});
69
69
  goog.addDependency('../../../../lib/media/playhead_observer.js', ['shaka.media.IPlayheadObserver', 'shaka.media.PlayheadObserverManager'], ['shaka.util.IReleasable', 'shaka.util.Timer'], {});
70
70
  goog.addDependency('../../../../lib/media/presentation_timeline.js', ['shaka.media.PresentationTimeline'], ['goog.asserts', 'shaka.log', 'shaka.media.SegmentReference'], {});
71
- goog.addDependency('../../../../lib/media/region_observer.js', ['shaka.media.RegionObserver'], ['shaka.media.IPlayheadObserver', 'shaka.media.RegionTimeline'], {});
72
- goog.addDependency('../../../../lib/media/region_timeline.js', ['shaka.media.RegionTimeline'], ['shaka.util.IReleasable', 'shaka.util.Timer'], {});
71
+ goog.addDependency('../../../../lib/media/region_observer.js', ['shaka.media.RegionObserver'], ['shaka.media.IPlayheadObserver', 'shaka.media.RegionTimeline', 'shaka.util.EventManager', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget'], {});
72
+ goog.addDependency('../../../../lib/media/region_timeline.js', ['shaka.media.RegionTimeline'], ['shaka.util.FakeEvent', 'shaka.util.FakeEventTarget', 'shaka.util.IReleasable', 'shaka.util.Timer'], {});
73
73
  goog.addDependency('../../../../lib/media/segment_index.js', ['shaka.media.MetaSegmentIndex', 'shaka.media.SegmentIndex', 'shaka.media.SegmentIterator'], ['goog.asserts', 'shaka.Deprecate', 'shaka.media.SegmentReference', 'shaka.util.IReleasable', 'shaka.util.Timer'], {});
74
74
  goog.addDependency('../../../../lib/media/segment_reference.js', ['shaka.media.InitSegmentReference', 'shaka.media.SegmentReference'], ['goog.asserts', 'shaka.util.ArrayUtils'], {});
75
75
  goog.addDependency('../../../../lib/media/stall_detector.js', ['shaka.media.StallDetector', 'shaka.media.StallDetector.Implementation', 'shaka.media.StallDetector.MediaElementImplementation'], ['shaka.media.TimeRangesUtils', 'shaka.util.IReleasable'], {});
@@ -148,8 +148,8 @@ goog.addDependency('../../../../lib/util/ebml_parser.js', ['shaka.util.EbmlEleme
148
148
  goog.addDependency('../../../../lib/util/error.js', ['shaka.util.Error'], [], {});
149
149
  goog.addDependency('../../../../lib/util/event_manager.js', ['shaka.util.EventManager'], ['goog.asserts', 'shaka.util.IReleasable', 'shaka.util.MultiMap'], {});
150
150
  goog.addDependency('../../../../lib/util/fairplay_utils.js', ['shaka.util.FairPlayUtils'], ['goog.Uri', 'goog.asserts', 'shaka.util.BufferUtils', 'shaka.util.Error', 'shaka.util.StringUtils'], {});
151
- goog.addDependency('../../../../lib/util/fake_event.js', ['shaka.util.FakeEvent'], [], {});
152
- goog.addDependency('../../../../lib/util/fake_event_target.js', ['shaka.util.FakeEventTarget'], ['goog.asserts', 'shaka.log', 'shaka.util.FakeEvent', 'shaka.util.MultiMap'], {});
151
+ goog.addDependency('../../../../lib/util/fake_event.js', ['shaka.util.FakeEvent'], ['goog.asserts'], {});
152
+ goog.addDependency('../../../../lib/util/fake_event_target.js', ['shaka.util.FakeEventTarget'], ['goog.asserts', 'shaka.log', 'shaka.util.FakeEvent', 'shaka.util.IReleasable', 'shaka.util.MultiMap'], {});
153
153
  goog.addDependency('../../../../lib/util/functional.js', ['shaka.util.Functional'], ['shaka.Deprecate'], {});
154
154
  goog.addDependency('../../../../lib/util/i_destroyable.js', ['shaka.util.IDestroyable'], [], {});
155
155
  goog.addDependency('../../../../lib/util/i_releasable.js', ['shaka.util.IReleasable'], [], {});
package/dist/locales.js CHANGED
@@ -523,12 +523,12 @@ shaka.ui.Locales.addTo = function(localization) {
523
523
  ['VOLUME', 'Volume'],
524
524
  ]));
525
525
  localization.insert('ru', new Map([
526
- ['AD_DURATION', 'Продолжительность объявления'],
527
- ['AD_PROGRESS', 'Объявление [AD_ON] из [NUM_ADS]'],
528
- ['AD_TIME', 'Объявление: [AD_TIME]'],
526
+ ['AD_DURATION', 'Продолжительность рекламы'],
527
+ ['AD_PROGRESS', 'Реклама [AD_ON] из [NUM_ADS]'],
528
+ ['AD_TIME', 'Реклама: [AD_TIME]'],
529
529
  ['AUTO_QUALITY', 'Авто'],
530
530
  ['BACK', 'Назад'],
531
- ['CAPTIONS', 'Титры'],
531
+ ['CAPTIONS', 'Субтитры'],
532
532
  ['CAST', 'Транслировать...'],
533
533
  ['ENTER_LOOP_MODE', 'Зациклить текущее видео'],
534
534
  ['ENTER_PICTURE_IN_PICTURE', 'Перейти в режим "Картинка в картинке"'],
@@ -544,8 +544,8 @@ shaka.ui.Locales.addTo = function(localization) {
544
544
  ['MULTIPLE_LANGUAGES', 'Несколько языков'],
545
545
  ['MUTE', 'Отключить звук'],
546
546
  ['NOT_APPLICABLE', 'Неприменимо'],
547
- ['OFF', 'Включить'],
548
- ['ON', 'Отключить'],
547
+ ['OFF', 'Выкл.'],
548
+ ['ON', 'Вкл.'],
549
549
  ['PAUSE', 'Пауза'],
550
550
  ['PICTURE_IN_PICTURE', 'Картинка в картинке'],
551
551
  ['PLAY', 'Воспроизвести'],
@@ -719,43 +719,43 @@ shaka.ui.Locales.addTo = function(localization) {
719
719
  * @const
720
720
  */
721
721
  shaka.ui.Locales.Ids = {
722
- LOOP: 'LOOP',
723
- PAUSE: 'PAUSE',
724
- FAST_FORWARD: 'FAST_FORWARD',
725
- AD_PROGRESS: 'AD_PROGRESS',
726
- ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
727
- PLAY: 'PLAY',
722
+ LIVE: 'LIVE',
723
+ BACK: 'BACK',
728
724
  EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
729
- UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
725
+ MUTE: 'MUTE',
726
+ REPLAY: 'REPLAY',
727
+ MORE_SETTINGS: 'MORE_SETTINGS',
730
728
  SUBTITLE_FORCED: 'SUBTITLE_FORCED',
729
+ OFF: 'OFF',
730
+ UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
731
+ UNMUTE: 'UNMUTE',
732
+ CAST: 'CAST',
733
+ PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
734
+ FULL_SCREEN: 'FULL_SCREEN',
735
+ ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
731
736
  ON: 'ON',
737
+ CAPTIONS: 'CAPTIONS',
732
738
  SEEK: 'SEEK',
733
- ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
734
- LIVE: 'LIVE',
739
+ AD_DURATION: 'AD_DURATION',
740
+ EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
741
+ PLAYBACK_RATE: 'PLAYBACK_RATE',
742
+ AD_TIME: 'AD_TIME',
743
+ AUTO_QUALITY: 'AUTO_QUALITY',
744
+ AD_PROGRESS: 'AD_PROGRESS',
745
+ PLAY: 'PLAY',
746
+ RESOLUTION: 'RESOLUTION',
747
+ SKIP_TO_LIVE: 'SKIP_TO_LIVE',
748
+ UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
735
749
  NOT_APPLICABLE: 'NOT_APPLICABLE',
750
+ AIRPLAY: 'AIRPLAY',
751
+ LANGUAGE: 'LANGUAGE',
736
752
  EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
737
- EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
738
- AD_DURATION: 'AD_DURATION',
739
- UNMUTE: 'UNMUTE',
740
- CAPTIONS: 'CAPTIONS',
741
- UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
753
+ ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
742
754
  REWIND: 'REWIND',
743
755
  SKIP_AD: 'SKIP_AD',
744
- CAST: 'CAST',
745
- SKIP_TO_LIVE: 'SKIP_TO_LIVE',
746
- AD_TIME: 'AD_TIME',
747
- BACK: 'BACK',
748
- RESOLUTION: 'RESOLUTION',
749
756
  VOLUME: 'VOLUME',
750
- OFF: 'OFF',
751
- MORE_SETTINGS: 'MORE_SETTINGS',
752
- AUTO_QUALITY: 'AUTO_QUALITY',
753
- LANGUAGE: 'LANGUAGE',
754
- AIRPLAY: 'AIRPLAY',
755
- FULL_SCREEN: 'FULL_SCREEN',
757
+ FAST_FORWARD: 'FAST_FORWARD',
758
+ PAUSE: 'PAUSE',
759
+ LOOP: 'LOOP',
756
760
  MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
757
- PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
758
- REPLAY: 'REPLAY',
759
- PLAYBACK_RATE: 'PLAYBACK_RATE',
760
- MUTE: 'MUTE',
761
761
  };
@@ -157,7 +157,7 @@ shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shaka
157
157
  (new ShakaDemoAssetInfo('"Dig the Uke" by Stefan Kartenberg (audio only, multicodec, Widevine)',"https://storage.googleapis.com/shaka-asset-icons/audio_only.png","https://storage.googleapis.com/shaka-demo-assets/dig-the-uke/dash.mpd",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.AUDIO_ONLY).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
158
158
  "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, TTML)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-ttml/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),
159
159
  (new ShakaDemoAssetInfo("Tears of Steel (HLS, Server Side ads)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos/hls.m3u8",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).setIMAContentSourceId("2528370").setIMAVideoId("tears-of-steel"),(new ShakaDemoAssetInfo("Tears of Steel (live, DASH, Server Side ads)",
160
- "https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-ttml/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.LIVE).setIMAAssetKey("_lDu24IaSYaYAMEfixipNQ"),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, surround + stereo)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",
160
+ "https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-ttml/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.LIVE).setIMAAssetKey("PSzZMzAkSXCmlJOWDmRj8Q"),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, surround + stereo)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",
161
161
  "https://storage.googleapis.com/shaka-demo-assets/tos-surround/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, surround + stereo, single skippable ad)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-surround/dash.mpd",
162
162
  shakaAssets.Source.SHAKA)).setAdTagUri(shakaAssets.AdTag.SINGLE_SKIPPABLE_AD).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Shaka Player History (multicodec, live, DASH)","https://storage.googleapis.com/shaka-asset-icons/shaka.png","https://storage.googleapis.com/shaka-live-assets/player-source.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.WEBM),
163
163
  (new ShakaDemoAssetInfo("Shaka Player History (live, HLS)","https://storage.googleapis.com/shaka-asset-icons/shaka.png","https://storage.googleapis.com/shaka-live-assets/player-source.m3u8",shakaAssets.Source.SHAKA)).addDescription("A self-indulgent HLS livestream.").markAsFeatured("Shaka Player History").addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Multi-DRM","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",
@@ -157,7 +157,7 @@ shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shaka
157
157
  (new ShakaDemoAssetInfo('"Dig the Uke" by Stefan Kartenberg (audio only, multicodec, Widevine)',"https://storage.googleapis.com/shaka-asset-icons/audio_only.png","https://storage.googleapis.com/shaka-demo-assets/dig-the-uke/dash.mpd",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.AUDIO_ONLY).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
158
158
  "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, TTML)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-ttml/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),
159
159
  (new ShakaDemoAssetInfo("Tears of Steel (HLS, Server Side ads)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos/hls.m3u8",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).setIMAContentSourceId("2528370").setIMAVideoId("tears-of-steel"),(new ShakaDemoAssetInfo("Tears of Steel (live, DASH, Server Side ads)",
160
- "https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-ttml/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.LIVE).setIMAAssetKey("_lDu24IaSYaYAMEfixipNQ"),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, surround + stereo)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",
160
+ "https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-ttml/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.LIVE).setIMAAssetKey("PSzZMzAkSXCmlJOWDmRj8Q"),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, surround + stereo)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",
161
161
  "https://storage.googleapis.com/shaka-demo-assets/tos-surround/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, surround + stereo, single skippable ad)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-surround/dash.mpd",
162
162
  shakaAssets.Source.SHAKA)).setAdTagUri(shakaAssets.AdTag.SINGLE_SKIPPABLE_AD).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Shaka Player History (multicodec, live, DASH)","https://storage.googleapis.com/shaka-asset-icons/shaka.png","https://storage.googleapis.com/shaka-live-assets/player-source.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.WEBM),
163
163
  (new ShakaDemoAssetInfo("Shaka Player History (live, HLS)","https://storage.googleapis.com/shaka-asset-icons/shaka.png","https://storage.googleapis.com/shaka-live-assets/player-source.m3u8",shakaAssets.Source.SHAKA)).addDescription("A self-indulgent HLS livestream.").markAsFeatured("Shaka Player History").addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Multi-DRM","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",
@@ -451,7 +451,7 @@ declare namespace shaka.ads {
451
451
  /**
452
452
  * A class responsible for ad-related interactions.
453
453
  */
454
- class AdManager extends shaka.util.FakeEventTarget implements shaka.extern.IAdManager {
454
+ class AdManager extends shaka.util.FakeEventTarget implements shaka.extern.IAdManager , shaka.util.IReleasable {
455
455
  private noStructuralTyping_shaka_ads_AdManager : any;
456
456
  getStats ( ) : shaka.extern.AdsStats ;
457
457
  initClientSide (adContainer : any , video : any ) : any ;
@@ -460,6 +460,7 @@ declare namespace shaka.ads {
460
460
  onCueMetadataChange (value : any ) : any ;
461
461
  onDashTimedMetadata (region : any ) : any ;
462
462
  onHlsTimedMetadata (metadata : any , timestamp : any ) : any ;
463
+ release ( ) : any ;
463
464
  replaceServerSideAdTagParameters (adTagParameters : any ) : any ;
464
465
  requestClientSideAds (imaRequest : any ) : any ;
465
466
  requestServerSideStream (imaRequest : google.ima.dai.api.StreamRequest , backupUrl ? : string ) : Promise < string > ;
@@ -1410,6 +1411,162 @@ declare namespace shaka {
1410
1411
  }
1411
1412
  }
1412
1413
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1414
+ declare namespace shaka.polyfill {
1415
+ class EncryptionScheme {
1416
+ private noStructuralTyping_shaka_polyfill_EncryptionScheme : any;
1417
+ /**
1418
+ * Install the polyfill if needed.
1419
+ */
1420
+ static install ( ) : any ;
1421
+ }
1422
+ }
1423
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1424
+ declare namespace shaka.polyfill {
1425
+ class Fullscreen {
1426
+ private noStructuralTyping_shaka_polyfill_Fullscreen : any;
1427
+ /**
1428
+ * Install the polyfill if needed.
1429
+ */
1430
+ static install ( ) : any ;
1431
+ }
1432
+ }
1433
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1434
+ declare namespace shaka.polyfill {
1435
+ class MathRound {
1436
+ private noStructuralTyping_shaka_polyfill_MathRound : any;
1437
+ /**
1438
+ * Install the polyfill if needed.
1439
+ */
1440
+ static install ( ) : any ;
1441
+ }
1442
+ }
1443
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1444
+ declare namespace shaka.polyfill {
1445
+ class MediaCapabilities {
1446
+ private noStructuralTyping_shaka_polyfill_MediaCapabilities : any;
1447
+ /**
1448
+ * Install the polyfill if needed.
1449
+ */
1450
+ static install ( ) : any ;
1451
+ /**
1452
+ * A copy of the MediaCapabilities instance, to prevent Safari from
1453
+ * garbage-collecting the polyfilled method on it. We make it public and export
1454
+ * it to ensure that it is not stripped out by the compiler.
1455
+ */
1456
+ static originalMcap : any | null ;
1457
+ }
1458
+ }
1459
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1460
+ declare namespace shaka.polyfill {
1461
+ class MediaSource {
1462
+ private noStructuralTyping_shaka_polyfill_MediaSource : any;
1463
+ /**
1464
+ * Install the polyfill if needed.
1465
+ */
1466
+ static install ( ) : any ;
1467
+ }
1468
+ }
1469
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1470
+ declare namespace shaka.polyfill {
1471
+ class Orientation {
1472
+ private noStructuralTyping_shaka_polyfill_Orientation : any;
1473
+ /**
1474
+ * Install the polyfill if needed.
1475
+ */
1476
+ static install ( ) : any ;
1477
+ }
1478
+ }
1479
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1480
+ declare namespace shaka.polyfill {
1481
+ class PatchedMediaKeysApple {
1482
+ private noStructuralTyping_shaka_polyfill_PatchedMediaKeysApple : any;
1483
+ /**
1484
+ * Installs the polyfill if needed.
1485
+ */
1486
+ static install ( ) : any ;
1487
+ }
1488
+ }
1489
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1490
+ declare namespace shaka.polyfill {
1491
+ class PatchedMediaKeysMs {
1492
+ private noStructuralTyping_shaka_polyfill_PatchedMediaKeysMs : any;
1493
+ /**
1494
+ * Installs the polyfill if needed.
1495
+ */
1496
+ static install ( ) : any ;
1497
+ }
1498
+ }
1499
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1500
+ declare namespace shaka.polyfill {
1501
+ class PatchedMediaKeysNop {
1502
+ private noStructuralTyping_shaka_polyfill_PatchedMediaKeysNop : any;
1503
+ /**
1504
+ * Installs the polyfill if needed.
1505
+ */
1506
+ static install ( ) : any ;
1507
+ }
1508
+ }
1509
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1510
+ declare namespace shaka.polyfill {
1511
+ class PatchedMediaKeysWebkit {
1512
+ private noStructuralTyping_shaka_polyfill_PatchedMediaKeysWebkit : any;
1513
+ /**
1514
+ * Installs the polyfill if needed.
1515
+ */
1516
+ static install ( ) : any ;
1517
+ }
1518
+ }
1519
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1520
+ declare namespace shaka.polyfill {
1521
+ class PiPWebkit {
1522
+ private noStructuralTyping_shaka_polyfill_PiPWebkit : any;
1523
+ /**
1524
+ * Install the polyfill if needed.
1525
+ */
1526
+ static install ( ) : any ;
1527
+ }
1528
+ }
1529
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1530
+ declare namespace shaka.polyfill {
1531
+ class StorageEstimate {
1532
+ private noStructuralTyping_shaka_polyfill_StorageEstimate : any;
1533
+ /**
1534
+ * Install the polyfill if needed.
1535
+ */
1536
+ static install ( ) : any ;
1537
+ }
1538
+ }
1539
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1540
+ declare namespace shaka.polyfill {
1541
+ class VTTCue {
1542
+ private noStructuralTyping_shaka_polyfill_VTTCue : any;
1543
+ /**
1544
+ * Install the polyfill if needed.
1545
+ */
1546
+ static install ( ) : any ;
1547
+ }
1548
+ }
1549
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1550
+ declare namespace shaka.polyfill {
1551
+ class VideoPlayPromise {
1552
+ private noStructuralTyping_shaka_polyfill_VideoPlayPromise : any;
1553
+ /**
1554
+ * Install the polyfill if needed.
1555
+ */
1556
+ static install ( ) : any ;
1557
+ }
1558
+ }
1559
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1560
+ declare namespace shaka.polyfill {
1561
+ class VideoPlaybackQuality {
1562
+ private noStructuralTyping_shaka_polyfill_VideoPlaybackQuality : any;
1563
+ /**
1564
+ * Install the polyfill if needed.
1565
+ */
1566
+ static install ( ) : any ;
1567
+ }
1568
+ }
1569
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1413
1570
  declare namespace shaka.text {
1414
1571
  class Cue implements shaka.extern.Cue {
1415
1572
  private noStructuralTyping_shaka_text_Cue : any;
@@ -1430,6 +1587,7 @@ declare namespace shaka.text {
1430
1587
  fontStyle : any ;
1431
1588
  fontWeight : any ;
1432
1589
  id : any ;
1590
+ isContainer : any ;
1433
1591
  letterSpacing : any ;
1434
1592
  line : any ;
1435
1593
  /**
@@ -2141,12 +2299,12 @@ declare namespace shaka.util {
2141
2299
  declare namespace shaka.util {
2142
2300
  class FakeEvent extends Event {
2143
2301
  private noStructuralTyping_shaka_util_FakeEvent : any;
2144
- constructor (type : string , dict ? : object | null ) ;
2302
+ constructor (type : string , dict ? : Map < string , object | null > | null ) ;
2145
2303
  }
2146
2304
  }
2147
2305
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
2148
2306
  declare namespace shaka.util {
2149
- class FakeEventTarget implements EventTarget {
2307
+ class FakeEventTarget implements EventTarget , shaka.util.IReleasable {
2150
2308
  private noStructuralTyping_shaka_util_FakeEventTarget : any;
2151
2309
  /**
2152
2310
  * Add an event listener to this object.
@@ -2166,6 +2324,7 @@ declare namespace shaka.util {
2166
2324
  * @param listener The callback or listener object to invoke.
2167
2325
  */
2168
2326
  listenToAllEvents (listener : EventListener | null | ( (a : Event ) => any ) ) : any ;
2327
+ release ( ) : any ;
2169
2328
  /**
2170
2329
  * Remove an event listener from this object.
2171
2330
  * @param type The event type for which you wish to remove a listener.
@@ -2568,6 +2727,7 @@ declare namespace google.ima {
2568
2727
  constructor (container : google.ima.AdDisplayContainer ) ;
2569
2728
  addEventListener ( ) : any ;
2570
2729
  contentComplete ( ) : any ;
2730
+ destroy ( ) : any ;
2571
2731
  dispatchEvent ( ) : any ;
2572
2732
  getSettings ( ) : google.ima.ImaSdkSettings | null ;
2573
2733
  removeEventListener ( ) : any ;
@@ -2579,6 +2739,7 @@ declare namespace google.ima {
2579
2739
  class AdsManager implements EventTarget {
2580
2740
  private noStructuralTyping_google_ima_AdsManager : any;
2581
2741
  addEventListener ( ) : any ;
2742
+ destroy ( ) : any ;
2582
2743
  dispatchEvent ( ) : any ;
2583
2744
  getAdSkippableState ( ) : boolean ;
2584
2745
  getCuePoints ( ) : number [] ;
@@ -2998,6 +3159,7 @@ declare namespace shaka.extern {
2998
3159
  onCueMetadataChange (value : shaka.extern.ID3Metadata ) : any ;
2999
3160
  onDashTimedMetadata (region : shaka.extern.TimelineRegionInfo ) : any ;
3000
3161
  onHlsTimedMetadata (metadata : shaka.extern.ID3Metadata , timestampOffset : number ) : any ;
3162
+ release ( ) : any ;
3001
3163
  replaceServerSideAdTagParameters (adTagParameters : object | null ) : any ;
3002
3164
  requestClientSideAds (imaRequest : google.ima.AdsRequest ) : any ;
3003
3165
  requestServerSideStream (imaRequest : google.ima.dai.api.StreamRequest , backupUrl ? : string ) : Promise < string > ;
@@ -3536,6 +3698,13 @@ declare namespace shaka.extern {
3536
3698
  * Id of the cue.
3537
3699
  */
3538
3700
  id : string ;
3701
+ /**
3702
+ * If true, this represents a container element that is "above" the main
3703
+ * cues. For example, the <body> and <div> tags that contain the <p> tags
3704
+ * in a TTML file. This controls the flow of the final cues; any nested cues
3705
+ * within an "isContainer" cue will be laid out as separate lines.
3706
+ */
3707
+ isContainer : boolean ;
3539
3708
  /**
3540
3709
  * Text letter spacing as a CSS letter-spacing value.
3541
3710
  */