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
@@ -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.ui.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.ui.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.ui.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.ui.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.ui.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.ui.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.ui.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.ui.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.ui.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.ui.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.ui.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.ui.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.ui.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.ui.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.ui.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.ui.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
  /**
@@ -1898,17 +2056,9 @@ declare namespace shaka.ui {
1898
2056
  * If a string is not available, it will return the localized
1899
2057
  * form in the closest related locale.
1900
2058
  */
1901
- class Localization implements EventTarget {
2059
+ class Localization extends shaka.util.FakeEventTarget {
1902
2060
  private noStructuralTyping_shaka_ui_Localization : any;
1903
- /**
1904
- * Localization system provided by the shaka ui library.
1905
- * It can be used to store the various localized forms of
1906
- * strings that are expected to be displayed to the user.
1907
- * If a string is not available, it will return the localized
1908
- * form in the closest related locale.
1909
- */
1910
2061
  constructor (fallbackLocale : string ) ;
1911
- addEventListener (type : any , listener : any , options : any ) : any ;
1912
2062
  /**
1913
2063
  * Request the localization system to change which locale it serves. If any of
1914
2064
  * of the preferred locales cannot be found, the localization system will fire
@@ -1917,7 +2067,6 @@ declare namespace shaka.ui {
1917
2067
  * @param locales The locale codes for the requested locales in order of preference.
1918
2068
  */
1919
2069
  changeLocale (locales : Iterable < string > ) : any ;
1920
- dispatchEvent (event : any ) : any ;
1921
2070
  /**
1922
2071
  * Insert a set of localizations for a single locale. This will amend the
1923
2072
  * existing localizations for the given locale.
@@ -1926,7 +2075,7 @@ declare namespace shaka.ui {
1926
2075
  * @param conflictResolution The strategy used to resolve conflicts when the id of an existing entry matches the id of a new entry. Default to |USE_NEW|, where the new entry will replace the old entry.
1927
2076
  */
1928
2077
  insert (locale : string , localizations : Map < string , string > , conflictResolution ? : shaka.ui.Localization.ConflictResolution ) : shaka.ui.Localization ;
1929
- removeEventListener (type : any , listener : any , options : any ) : any ;
2078
+ release ( ) : any ;
1930
2079
  /**
1931
2080
  * Request the localized string under the given id. If there is no localized
1932
2081
  * version of the string, then the fallback localization will be given
@@ -2600,12 +2749,12 @@ declare namespace shaka.util {
2600
2749
  declare namespace shaka.util {
2601
2750
  class FakeEvent extends Event {
2602
2751
  private noStructuralTyping_shaka_util_FakeEvent : any;
2603
- constructor (type : string , dict ? : object | null ) ;
2752
+ constructor (type : string , dict ? : Map < string , object | null > | null ) ;
2604
2753
  }
2605
2754
  }
2606
2755
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
2607
2756
  declare namespace shaka.util {
2608
- class FakeEventTarget implements EventTarget {
2757
+ class FakeEventTarget implements EventTarget , shaka.util.IReleasable {
2609
2758
  private noStructuralTyping_shaka_util_FakeEventTarget : any;
2610
2759
  /**
2611
2760
  * Add an event listener to this object.
@@ -2625,6 +2774,7 @@ declare namespace shaka.util {
2625
2774
  * @param listener The callback or listener object to invoke.
2626
2775
  */
2627
2776
  listenToAllEvents (listener : EventListener | null | ( (a : Event ) => any ) ) : any ;
2777
+ release ( ) : any ;
2628
2778
  /**
2629
2779
  * Remove an event listener from this object.
2630
2780
  * @param type The event type for which you wish to remove a listener.
@@ -3027,6 +3177,7 @@ declare namespace google.ima {
3027
3177
  constructor (container : google.ima.AdDisplayContainer ) ;
3028
3178
  addEventListener ( ) : any ;
3029
3179
  contentComplete ( ) : any ;
3180
+ destroy ( ) : any ;
3030
3181
  dispatchEvent ( ) : any ;
3031
3182
  getSettings ( ) : google.ima.ImaSdkSettings | null ;
3032
3183
  removeEventListener ( ) : any ;
@@ -3038,6 +3189,7 @@ declare namespace google.ima {
3038
3189
  class AdsManager implements EventTarget {
3039
3190
  private noStructuralTyping_google_ima_AdsManager : any;
3040
3191
  addEventListener ( ) : any ;
3192
+ destroy ( ) : any ;
3041
3193
  dispatchEvent ( ) : any ;
3042
3194
  getAdSkippableState ( ) : boolean ;
3043
3195
  getCuePoints ( ) : number [] ;
@@ -3457,6 +3609,7 @@ declare namespace shaka.extern {
3457
3609
  onCueMetadataChange (value : shaka.extern.ID3Metadata ) : any ;
3458
3610
  onDashTimedMetadata (region : shaka.extern.TimelineRegionInfo ) : any ;
3459
3611
  onHlsTimedMetadata (metadata : shaka.extern.ID3Metadata , timestampOffset : number ) : any ;
3612
+ release ( ) : any ;
3460
3613
  replaceServerSideAdTagParameters (adTagParameters : object | null ) : any ;
3461
3614
  requestClientSideAds (imaRequest : google.ima.AdsRequest ) : any ;
3462
3615
  requestServerSideStream (imaRequest : google.ima.dai.api.StreamRequest , backupUrl ? : string ) : Promise < string > ;
@@ -3995,6 +4148,13 @@ declare namespace shaka.extern {
3995
4148
  * Id of the cue.
3996
4149
  */
3997
4150
  id : string ;
4151
+ /**
4152
+ * If true, this represents a container element that is "above" the main
4153
+ * cues. For example, the <body> and <div> tags that contain the <p> tags
4154
+ * in a TTML file. This controls the flow of the final cues; any nested cues
4155
+ * within an "isContainer" cue will be laid out as separate lines.
4156
+ */
4157
+ isContainer : boolean ;
3998
4158
  /**
3999
4159
  * Text letter spacing as a CSS letter-spacing value.
4000
4160
  */
@@ -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.ui.debug.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.ui.debug.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.ui.debug.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.ui.debug.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.ui.debug.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.ui.debug.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.ui.debug.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.ui.debug.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.ui.debug.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.ui.debug.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.ui.debug.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.ui.debug.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.ui.debug.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.ui.debug.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.ui.debug.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.ui.debug.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
  /**
@@ -1898,17 +2056,9 @@ declare namespace shaka.ui {
1898
2056
  * If a string is not available, it will return the localized
1899
2057
  * form in the closest related locale.
1900
2058
  */
1901
- class Localization implements EventTarget {
2059
+ class Localization extends shaka.util.FakeEventTarget {
1902
2060
  private noStructuralTyping_shaka_ui_Localization : any;
1903
- /**
1904
- * Localization system provided by the shaka ui library.
1905
- * It can be used to store the various localized forms of
1906
- * strings that are expected to be displayed to the user.
1907
- * If a string is not available, it will return the localized
1908
- * form in the closest related locale.
1909
- */
1910
2061
  constructor (fallbackLocale : string ) ;
1911
- addEventListener (type : any , listener : any , options : any ) : any ;
1912
2062
  /**
1913
2063
  * Request the localization system to change which locale it serves. If any of
1914
2064
  * of the preferred locales cannot be found, the localization system will fire
@@ -1917,7 +2067,6 @@ declare namespace shaka.ui {
1917
2067
  * @param locales The locale codes for the requested locales in order of preference.
1918
2068
  */
1919
2069
  changeLocale (locales : Iterable < string > ) : any ;
1920
- dispatchEvent (event : any ) : any ;
1921
2070
  /**
1922
2071
  * Insert a set of localizations for a single locale. This will amend the
1923
2072
  * existing localizations for the given locale.
@@ -1926,7 +2075,7 @@ declare namespace shaka.ui {
1926
2075
  * @param conflictResolution The strategy used to resolve conflicts when the id of an existing entry matches the id of a new entry. Default to |USE_NEW|, where the new entry will replace the old entry.
1927
2076
  */
1928
2077
  insert (locale : string , localizations : Map < string , string > , conflictResolution ? : shaka.ui.Localization.ConflictResolution ) : shaka.ui.Localization ;
1929
- removeEventListener (type : any , listener : any , options : any ) : any ;
2078
+ release ( ) : any ;
1930
2079
  /**
1931
2080
  * Request the localized string under the given id. If there is no localized
1932
2081
  * version of the string, then the fallback localization will be given
@@ -2600,12 +2749,12 @@ declare namespace shaka.util {
2600
2749
  declare namespace shaka.util {
2601
2750
  class FakeEvent extends Event {
2602
2751
  private noStructuralTyping_shaka_util_FakeEvent : any;
2603
- constructor (type : string , dict ? : object | null ) ;
2752
+ constructor (type : string , dict ? : Map < string , object | null > | null ) ;
2604
2753
  }
2605
2754
  }
2606
2755
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.debug.externs.js
2607
2756
  declare namespace shaka.util {
2608
- class FakeEventTarget implements EventTarget {
2757
+ class FakeEventTarget implements EventTarget , shaka.util.IReleasable {
2609
2758
  private noStructuralTyping_shaka_util_FakeEventTarget : any;
2610
2759
  /**
2611
2760
  * Add an event listener to this object.
@@ -2625,6 +2774,7 @@ declare namespace shaka.util {
2625
2774
  * @param listener The callback or listener object to invoke.
2626
2775
  */
2627
2776
  listenToAllEvents (listener : EventListener | null | ( (a : Event ) => any ) ) : any ;
2777
+ release ( ) : any ;
2628
2778
  /**
2629
2779
  * Remove an event listener from this object.
2630
2780
  * @param type The event type for which you wish to remove a listener.
@@ -3027,6 +3177,7 @@ declare namespace google.ima {
3027
3177
  constructor (container : google.ima.AdDisplayContainer ) ;
3028
3178
  addEventListener ( ) : any ;
3029
3179
  contentComplete ( ) : any ;
3180
+ destroy ( ) : any ;
3030
3181
  dispatchEvent ( ) : any ;
3031
3182
  getSettings ( ) : google.ima.ImaSdkSettings | null ;
3032
3183
  removeEventListener ( ) : any ;
@@ -3038,6 +3189,7 @@ declare namespace google.ima {
3038
3189
  class AdsManager implements EventTarget {
3039
3190
  private noStructuralTyping_google_ima_AdsManager : any;
3040
3191
  addEventListener ( ) : any ;
3192
+ destroy ( ) : any ;
3041
3193
  dispatchEvent ( ) : any ;
3042
3194
  getAdSkippableState ( ) : boolean ;
3043
3195
  getCuePoints ( ) : number [] ;
@@ -3457,6 +3609,7 @@ declare namespace shaka.extern {
3457
3609
  onCueMetadataChange (value : shaka.extern.ID3Metadata ) : any ;
3458
3610
  onDashTimedMetadata (region : shaka.extern.TimelineRegionInfo ) : any ;
3459
3611
  onHlsTimedMetadata (metadata : shaka.extern.ID3Metadata , timestampOffset : number ) : any ;
3612
+ release ( ) : any ;
3460
3613
  replaceServerSideAdTagParameters (adTagParameters : object | null ) : any ;
3461
3614
  requestClientSideAds (imaRequest : google.ima.AdsRequest ) : any ;
3462
3615
  requestServerSideStream (imaRequest : google.ima.dai.api.StreamRequest , backupUrl ? : string ) : Promise < string > ;
@@ -3995,6 +4148,13 @@ declare namespace shaka.extern {
3995
4148
  * Id of the cue.
3996
4149
  */
3997
4150
  id : string ;
4151
+ /**
4152
+ * If true, this represents a container element that is "above" the main
4153
+ * cues. For example, the <body> and <div> tags that contain the <p> tags
4154
+ * in a TTML file. This controls the flow of the final cues; any nested cues
4155
+ * within an "isContainer" cue will be laid out as separate lines.
4156
+ */
4157
+ isContainer : boolean ;
3998
4158
  /**
3999
4159
  * Text letter spacing as a CSS letter-spacing value.
4000
4160
  */