shaka-player 3.2.1 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
  2. package/.github/ISSUE_TEMPLATE/feature_request.md +1 -1
  3. package/.github/ISSUE_TEMPLATE/question.md +1 -1
  4. package/AUTHORS +9 -5
  5. package/CHANGELOG.md +358 -0
  6. package/CONTRIBUTORS +7 -2
  7. package/build/conformance.textproto +183 -169
  8. package/build/generateExterns.js +1 -1
  9. package/build/types/core +3 -0
  10. package/build/types/offline +1 -0
  11. package/build/types/polyfill +1 -0
  12. package/build/types/ui +2 -0
  13. package/demo/common/assets.js +19 -1
  14. package/demo/common/message_ids.js +13 -1
  15. package/demo/config.js +31 -1
  16. package/demo/index.html +1 -1
  17. package/demo/locales/en.json +12 -0
  18. package/demo/locales/source.json +48 -0
  19. package/dist/controls.css +26 -2
  20. package/dist/controls.css.map +1 -1
  21. package/dist/demo.compiled.debug.js +20 -17
  22. package/dist/demo.compiled.debug.map +3 -3
  23. package/dist/demo.compiled.js +20 -17
  24. package/dist/demo.compiled.map +3 -3
  25. package/dist/deps.js +19 -12
  26. package/dist/locales.js +39 -37
  27. package/dist/receiver.compiled.debug.js +12 -10
  28. package/dist/receiver.compiled.debug.map +3 -3
  29. package/dist/receiver.compiled.js +12 -10
  30. package/dist/receiver.compiled.map +3 -3
  31. package/dist/shaka-player.compiled.d.ts +231 -18
  32. package/dist/shaka-player.compiled.debug.d.ts +231 -18
  33. package/dist/shaka-player.compiled.debug.externs.js +279 -8
  34. package/dist/shaka-player.compiled.debug.js +512 -449
  35. package/dist/shaka-player.compiled.debug.map +4 -4
  36. package/dist/shaka-player.compiled.externs.js +279 -8
  37. package/dist/shaka-player.compiled.js +854 -821
  38. package/dist/shaka-player.compiled.map +4 -4
  39. package/dist/shaka-player.ui.d.ts +247 -19
  40. package/dist/shaka-player.ui.debug.d.ts +247 -19
  41. package/dist/shaka-player.ui.debug.externs.js +307 -9
  42. package/dist/shaka-player.ui.debug.js +662 -580
  43. package/dist/shaka-player.ui.debug.map +4 -4
  44. package/dist/shaka-player.ui.externs.js +307 -9
  45. package/dist/shaka-player.ui.js +1047 -1000
  46. package/dist/shaka-player.ui.map +4 -4
  47. package/docs/design/bg-fetch-after.gv +29 -0
  48. package/docs/design/bg-fetch-after.gv.png +0 -0
  49. package/docs/design/bg-fetch-before.gv +18 -0
  50. package/docs/design/bg-fetch-before.gv.png +0 -0
  51. package/docs/design/bg-fetch.md +134 -0
  52. package/docs/tutorials/blob-url.md +15 -0
  53. package/docs/tutorials/fairplay.md +1 -1
  54. package/docs/tutorials/index.json +1 -0
  55. package/docs/tutorials/ui-customization.md +66 -0
  56. package/docs/tutorials/ui.md +5 -5
  57. package/externs/cmcd.js +186 -0
  58. package/externs/ima.js +3 -0
  59. package/externs/shaka/ads.js +5 -0
  60. package/externs/shaka/manifest.js +12 -1
  61. package/externs/shaka/manifest_parser.js +10 -1
  62. package/externs/shaka/net.js +20 -4
  63. package/externs/shaka/offline.js +31 -2
  64. package/externs/shaka/player.js +138 -5
  65. package/externs/shaka/text.js +24 -0
  66. package/externs/webcrypto.js +18 -0
  67. package/karma.conf.js +1 -0
  68. package/lib/abr/ewma.js +14 -0
  69. package/lib/abr/ewma_bandwidth_estimator.js +16 -2
  70. package/lib/abr/simple_abr_manager.js +6 -0
  71. package/lib/ads/client_side_ad.js +8 -0
  72. package/lib/ads/client_side_ad_manager.js +54 -90
  73. package/lib/ads/server_side_ad.js +7 -0
  74. package/lib/ads/server_side_ad_manager.js +7 -10
  75. package/lib/cast/cast_proxy.js +3 -2
  76. package/lib/cast/cast_receiver.js +2 -1
  77. package/lib/cast/cast_sender.js +2 -2
  78. package/lib/cast/cast_utils.js +1 -0
  79. package/lib/dash/dash_parser.js +141 -16
  80. package/lib/dash/segment_base.js +25 -1
  81. package/lib/dash/segment_list.js +19 -10
  82. package/lib/dash/segment_template.js +24 -11
  83. package/lib/hls/hls_parser.js +146 -40
  84. package/lib/media/drm_engine.js +7 -0
  85. package/lib/media/gap_jumping_controller.js +4 -2
  86. package/lib/media/media_source_engine.js +1 -2
  87. package/lib/media/quality_observer.js +291 -0
  88. package/lib/media/segment_index.js +8 -1
  89. package/lib/media/segment_reference.js +37 -4
  90. package/lib/media/streaming_engine.js +49 -7
  91. package/lib/net/http_fetch_plugin.js +31 -11
  92. package/lib/net/http_plugin_utils.js +1 -0
  93. package/lib/net/http_xhr_plugin.js +40 -14
  94. package/lib/net/networking_engine.js +83 -19
  95. package/lib/offline/download_info.js +68 -0
  96. package/lib/offline/download_manager.js +13 -5
  97. package/lib/offline/indexeddb/base_storage_cell.js +35 -0
  98. package/lib/offline/indexeddb/storage_mechanism.js +1 -1
  99. package/lib/offline/indexeddb/v5_storage_cell.js +5 -0
  100. package/lib/offline/storage.js +393 -284
  101. package/lib/offline/stored_content_utils.js +2 -0
  102. package/lib/player.js +249 -43
  103. package/lib/polyfill/media_capabilities.js +36 -15
  104. package/lib/polyfill/mediasource.js +6 -0
  105. package/lib/polyfill/orientation.js +1 -1
  106. package/lib/polyfill/patchedmediakeys_apple.js +4 -4
  107. package/lib/polyfill/patchedmediakeys_ms.js +4 -4
  108. package/lib/polyfill/patchedmediakeys_webkit.js +4 -4
  109. package/lib/polyfill/random_uuid.js +52 -0
  110. package/lib/text/cue.js +18 -0
  111. package/lib/text/mp4_ttml_parser.js +3 -0
  112. package/lib/text/text_engine.js +14 -2
  113. package/lib/text/ttml_text_parser.js +114 -60
  114. package/lib/text/ui_text_displayer.js +95 -41
  115. package/lib/util/cmcd_manager.js +672 -0
  116. package/lib/util/error.js +6 -0
  117. package/lib/util/fake_event.js +53 -7
  118. package/lib/util/language_utils.js +12 -0
  119. package/lib/util/mutex.js +52 -0
  120. package/lib/util/periods.js +102 -65
  121. package/lib/util/platform.js +13 -1
  122. package/lib/util/player_configuration.js +18 -0
  123. package/lib/util/stream_utils.js +99 -10
  124. package/lib/util/xml_utils.js +19 -0
  125. package/package.json +2 -2
  126. package/shaka-player.uncompiled.js +3 -0
  127. package/test/cast/cast_proxy_unit.js +12 -6
  128. package/test/cast/cast_utils_unit.js +1 -1
  129. package/test/dash/dash_parser_content_protection_unit.js +2 -0
  130. package/test/dash/dash_parser_live_unit.js +101 -1
  131. package/test/dash/dash_parser_manifest_unit.js +222 -2
  132. package/test/dash/dash_parser_segment_base_unit.js +2 -0
  133. package/test/dash/dash_parser_segment_list_unit.js +2 -1
  134. package/test/dash/dash_parser_segment_template_unit.js +2 -1
  135. package/test/hls/hls_live_unit.js +2 -0
  136. package/test/hls/hls_parser_unit.js +7 -1
  137. package/test/media/closed_caption_parser_unit.js +6 -1
  138. package/test/media/drm_engine_unit.js +47 -3
  139. package/test/media/quality_observer_unit.js +139 -0
  140. package/test/media/segment_reference_unit.js +16 -1
  141. package/test/media/streaming_engine_integration.js +4 -2
  142. package/test/media/streaming_engine_unit.js +147 -0
  143. package/test/net/http_plugin_unit.js +20 -15
  144. package/test/offline/storage_integration.js +108 -4
  145. package/test/player_integration.js +178 -8
  146. package/test/player_src_equals_integration.js +41 -8
  147. package/test/player_unit.js +19 -9
  148. package/test/test/assets/3675/chunk-stream0-00001.m4s +0 -0
  149. package/test/test/assets/3675/chunk-stream0-00002.m4s +0 -0
  150. package/test/test/assets/3675/chunk-stream0-00003.m4s +0 -0
  151. package/test/test/assets/3675/chunk-stream0-00004.m4s +0 -0
  152. package/test/test/assets/3675/chunk-stream0-00005.m4s +0 -0
  153. package/test/test/assets/3675/chunk-stream0-00006.m4s +0 -0
  154. package/test/test/assets/3675/chunk-stream0-00007.m4s +0 -0
  155. package/test/test/assets/3675/dash_0.mpd +30 -0
  156. package/test/test/assets/3675/dash_1.mpd +30 -0
  157. package/test/test/assets/3675/dash_2.mpd +30 -0
  158. package/test/test/assets/3675/dash_3.mpd +30 -0
  159. package/test/test/assets/3675/dash_4.mpd +30 -0
  160. package/test/test/assets/3675/dash_5.mpd +26 -0
  161. package/test/test/assets/3675/init-stream0.m4s +0 -0
  162. package/test/test/assets/chapters.vtt +2 -2
  163. package/test/test/assets/chapters2.vtt +10 -0
  164. package/test/test/util/dash_parser_util.js +4 -0
  165. package/test/test/util/fake_ad.js +7 -0
  166. package/test/test/util/fake_ad_manager.js +1 -1
  167. package/test/test/util/fake_drm_engine.js +9 -2
  168. package/test/test/util/manifest_generator.js +3 -2
  169. package/test/test/util/test_scheme.js +14 -1
  170. package/test/test/util/ttml_utils.js +81 -0
  171. package/test/text/mp4_ttml_parser_unit.js +11 -18
  172. package/test/text/ttml_text_parser_unit.js +552 -227
  173. package/test/text/ui_text_displayer_unit.js +29 -17
  174. package/test/ui/localization_unit.js +15 -14
  175. package/test/ui/text_displayer_layout_unit.js +13 -1
  176. package/test/ui/ui_unit.js +250 -0
  177. package/test/util/cmcd_manager_unit.js +291 -0
  178. package/test/util/stream_utils_unit.js +45 -4
  179. package/third_party/closure-uri/uri.js +21 -0
  180. package/ui/airplay_button.js +1 -0
  181. package/ui/audio_language_selection.js +7 -0
  182. package/ui/cast_button.js +3 -3
  183. package/ui/context_menu.js +109 -0
  184. package/ui/controls.js +45 -13
  185. package/ui/controls.less +1 -0
  186. package/ui/enums.js +4 -0
  187. package/ui/externs/ui.js +28 -1
  188. package/ui/fast_forward_button.js +14 -5
  189. package/ui/fullscreen_button.js +1 -0
  190. package/ui/less/buttons.less +0 -4
  191. package/ui/less/containers.less +77 -7
  192. package/ui/less/overflow_menu.less +0 -10
  193. package/ui/less/tooltip.less +97 -0
  194. package/ui/locales/en.json +1 -0
  195. package/ui/locales/ru.json +6 -6
  196. package/ui/locales/source.json +4 -0
  197. package/ui/localization.js +28 -51
  198. package/ui/loop_button.js +5 -0
  199. package/ui/mute_button.js +2 -1
  200. package/ui/overflow_menu.js +5 -25
  201. package/ui/pip_button.js +7 -3
  202. package/ui/play_button.js +2 -2
  203. package/ui/playback_rate_selection.js +8 -9
  204. package/ui/resolution_selection.js +7 -0
  205. package/ui/rewind_button.js +15 -6
  206. package/ui/seek_bar.js +4 -2
  207. package/ui/settings_menu.js +36 -4
  208. package/ui/small_play_button.js +1 -0
  209. package/ui/statistics_button.js +253 -0
  210. package/ui/text_selection.js +12 -4
  211. package/ui/ui.js +30 -0
  212. package/ui/volume_bar.js +1 -1
  213. package/externs/media_capabilities.js +0 -16
@@ -395,6 +395,13 @@ declare namespace shaka {
395
395
  * <code>detach</code>, or <code>unload</code>.
396
396
  */
397
397
  unload (initializeMediaSource ? : boolean ) : Promise < any > ;
398
+ /**
399
+ * Provides a way to update the stream start position during the media loading
400
+ * process. Can for example be called from the <code>manifestparsed</code>
401
+ * event handler to update the start position based on information in the
402
+ * manifest.
403
+ */
404
+ updateStartTime (startTime : number ) : any ;
398
405
  /**
399
406
  * Return whether the browser provides basic support. If this returns false,
400
407
  * Shaka Player cannot be used at all. In this case, do not construct a
@@ -628,6 +635,7 @@ declare namespace shaka.ads {
628
635
  getSequenceLength ( ) : any ;
629
636
  getTimeUntilSkippable ( ) : any ;
630
637
  getVolume ( ) : any ;
638
+ isLinear ( ) : any ;
631
639
  isMuted ( ) : any ;
632
640
  isPaused ( ) : any ;
633
641
  isSkippable ( ) : any ;
@@ -653,6 +661,7 @@ declare namespace shaka.ads {
653
661
  getSequenceLength ( ) : any ;
654
662
  getTimeUntilSkippable ( ) : any ;
655
663
  getVolume ( ) : any ;
664
+ isLinear ( ) : any ;
656
665
  isMuted ( ) : any ;
657
666
  isPaused ( ) : any ;
658
667
  isSkippable ( ) : any ;
@@ -816,7 +825,7 @@ declare namespace shaka.media {
816
825
  */
817
826
  class InitSegmentReference {
818
827
  private noStructuralTyping_shaka_media_InitSegmentReference : any;
819
- constructor (uris : ( ) => string [] , startByte : number , endByte : number | null ) ;
828
+ constructor (uris : ( ) => string [] , startByte : number , endByte : number | null , mediaQuality ? : null | shaka.extern.MediaQualityInfo ) ;
820
829
  /**
821
830
  * Returns the offset from the start of the resource to the end of the
822
831
  * segment, inclusive. A value of null indicates that the segment extends
@@ -1119,7 +1128,7 @@ declare namespace shaka.media {
1119
1128
  */
1120
1129
  class SegmentReference {
1121
1130
  private noStructuralTyping_shaka_media_SegmentReference : any;
1122
- constructor (startTime : number , endTime : number , uris : ( ) => string [] , startByte : number , endByte : number | null , initSegmentReference : shaka.media.InitSegmentReference | null , timestampOffset : number , appendWindowStart : number , appendWindowEnd : number , partialReferences ? : shaka.media.SegmentReference [] , tilesLayout ? : string | null ) ;
1131
+ constructor (startTime : number , endTime : number , uris : ( ) => string [] , startByte : number , endByte : number | null , initSegmentReference : shaka.media.InitSegmentReference | null , timestampOffset : number , appendWindowStart : number , appendWindowEnd : number , partialReferences ? : shaka.media.SegmentReference [] , tilesLayout ? : string | null , tileDuration ? : number | null ) ;
1123
1132
  /**
1124
1133
  * Returns the offset from the start of the resource to the end of the
1125
1134
  * segment, inclusive. A value of null indicates that the segment extends to
@@ -1139,6 +1148,11 @@ declare namespace shaka.media {
1139
1148
  * Returns the segment's start time in seconds.
1140
1149
  */
1141
1150
  getStartTime ( ) : number ;
1151
+ /**
1152
+ * Returns the segment's explicit tile duration.
1153
+ * Only defined in image segments.
1154
+ */
1155
+ getTileDuration ( ) : number | null ;
1142
1156
  /**
1143
1157
  * Returns the segment's tiles layout. Only defined in image segments.
1144
1158
  */
@@ -1166,14 +1180,14 @@ declare namespace shaka.net {
1166
1180
  * logic as Shaka when determining support.
1167
1181
  */
1168
1182
  static isSupported ( ) : boolean ;
1169
- static parse (uri : string , request : shaka.extern.Request , requestType : shaka.net.NetworkingEngine.RequestType , progressUpdated : shaka.extern.ProgressUpdated ) : shaka.extern.IAbortableOperation < any > ;
1183
+ static parse (uri : string , request : shaka.extern.Request , requestType : shaka.net.NetworkingEngine.RequestType , progressUpdated : shaka.extern.ProgressUpdated , headersReceived : shaka.extern.HeadersReceived ) : shaka.extern.IAbortableOperation < any > ;
1170
1184
  }
1171
1185
  }
1172
1186
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
1173
1187
  declare namespace shaka.net {
1174
1188
  class HttpXHRPlugin {
1175
1189
  private noStructuralTyping_shaka_net_HttpXHRPlugin : any;
1176
- static parse (uri : string , request : shaka.extern.Request , requestType : shaka.net.NetworkingEngine.RequestType , progressUpdated : shaka.extern.ProgressUpdated ) : shaka.extern.IAbortableOperation < any > ;
1190
+ static parse (uri : string , request : shaka.extern.Request , requestType : shaka.net.NetworkingEngine.RequestType , progressUpdated : shaka.extern.ProgressUpdated , headersReceived : shaka.extern.HeadersReceived ) : shaka.extern.IAbortableOperation < any > ;
1177
1191
  }
1178
1192
  }
1179
1193
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
@@ -1190,7 +1204,7 @@ declare namespace shaka.net {
1190
1204
  * handle the actual request. A plugin is registered using registerScheme.
1191
1205
  * Each scheme has at most one plugin to handle the request.
1192
1206
  */
1193
- constructor (onProgressUpdated ? : (a : number , b : number ) => any ) ;
1207
+ constructor (onProgressUpdated ? : (a : number , b : number ) => any , onHeadersReceived ? : shaka.net.NetworkingEngine.OnHeadersReceived , onDownloadFailed ? : shaka.net.NetworkingEngine.OnDownloadFailed ) ;
1194
1208
  /**
1195
1209
  * Clears all request filters.
1196
1210
  */
@@ -1259,6 +1273,14 @@ declare namespace shaka.net.NetworkingEngine {
1259
1273
  }
1260
1274
  }
1261
1275
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
1276
+ declare namespace shaka.net.NetworkingEngine {
1277
+ type OnDownloadFailed = (a : shaka.extern.Request , b : shaka.util.Error | null , c : number , d : boolean ) => any ;
1278
+ }
1279
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
1280
+ declare namespace shaka.net.NetworkingEngine {
1281
+ type OnHeadersReceived = (a : { [ key: string ]: string } , b : shaka.extern.Request , c : shaka.net.NetworkingEngine.RequestType ) => any ;
1282
+ }
1283
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
1262
1284
  declare namespace shaka.net.NetworkingEngine {
1263
1285
  /**
1264
1286
  * A pending network request. This can track the current progress of the
@@ -1486,6 +1508,12 @@ declare namespace shaka.polyfill {
1486
1508
  * Install the polyfill if needed.
1487
1509
  */
1488
1510
  static install ( ) : any ;
1511
+ /**
1512
+ * A copy of the MediaCapabilities instance, to prevent Safari from
1513
+ * garbage-collecting the polyfilled method on it. We make it public and export
1514
+ * it to ensure that it is not stripped out by the compiler.
1515
+ */
1516
+ static originalMcap : any | null ;
1489
1517
  }
1490
1518
  }
1491
1519
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
@@ -1559,6 +1587,16 @@ declare namespace shaka.polyfill {
1559
1587
  }
1560
1588
  }
1561
1589
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
1590
+ declare namespace shaka.polyfill {
1591
+ class RandomUUID {
1592
+ private noStructuralTyping_shaka_polyfill_RandomUUID : any;
1593
+ /**
1594
+ * Install the polyfill if needed.
1595
+ */
1596
+ static install ( ) : any ;
1597
+ }
1598
+ }
1599
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
1562
1600
  declare namespace shaka.polyfill {
1563
1601
  class StorageEstimate {
1564
1602
  private noStructuralTyping_shaka_polyfill_StorageEstimate : any;
@@ -1619,6 +1657,7 @@ declare namespace shaka.text {
1619
1657
  fontStyle : any ;
1620
1658
  fontWeight : any ;
1621
1659
  id : any ;
1660
+ isContainer : any ;
1622
1661
  letterSpacing : any ;
1623
1662
  line : any ;
1624
1663
  /**
@@ -1640,6 +1679,8 @@ declare namespace shaka.text {
1640
1679
  startTime : any ;
1641
1680
  textAlign : any ;
1642
1681
  textDecoration : any ;
1682
+ textStrokeColor : any ;
1683
+ textStrokeWidth : any ;
1643
1684
  wrapLine : any ;
1644
1685
  writingMode : any ;
1645
1686
  }
@@ -2003,6 +2044,23 @@ declare namespace shaka.util {
2003
2044
  }
2004
2045
  }
2005
2046
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
2047
+ declare namespace shaka.util.CmcdManager {
2048
+ type ManifestInfo = { format : shaka.util.CmcdManager.StreamingFormat } ;
2049
+ }
2050
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
2051
+ declare namespace shaka.util.CmcdManager {
2052
+ type SegmentInfo = { bandwidth ? : number , codecs : string , duration : number , init : boolean , mimeType : string , type : string } ;
2053
+ }
2054
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
2055
+ declare namespace shaka.util.CmcdManager {
2056
+ enum StreamingFormat {
2057
+ DASH = 'd' ,
2058
+ HLS = 'h' ,
2059
+ OTHER = 'o' ,
2060
+ SMOOTH = 's' ,
2061
+ }
2062
+ }
2063
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
2006
2064
  declare namespace shaka.util {
2007
2065
  class ConfigUtils {
2008
2066
  private noStructuralTyping_shaka_util_ConfigUtils : any;
@@ -2207,6 +2265,7 @@ declare namespace shaka.util.Error {
2207
2265
  MEDIA_SOURCE_OPERATION_THREW = 3015.0 ,
2208
2266
  MISSING_STORAGE_CELL = 9013.0 ,
2209
2267
  MISSING_TEXT_PLUGIN = 2014.0 ,
2268
+ MODIFY_OPERATION_NOT_SUPPORTED = 9016.0 ,
2210
2269
  MP4_SIDX_INVALID_TIMESCALE = 3005.0 ,
2211
2270
  MP4_SIDX_TYPE_NOT_SUPPORTED = 3006.0 ,
2212
2271
  MP4_SIDX_WRONG_BOX_TYPE = 3004.0 ,
@@ -2331,7 +2390,7 @@ declare namespace shaka.util {
2331
2390
  declare namespace shaka.util {
2332
2391
  class FakeEvent extends Event {
2333
2392
  private noStructuralTyping_shaka_util_FakeEvent : any;
2334
- constructor (type : string , dict ? : object | null ) ;
2393
+ constructor (type : string , dict ? : Map < string , object | null > | null ) ;
2335
2394
  }
2336
2395
  }
2337
2396
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
@@ -2401,6 +2460,120 @@ declare namespace shaka.util {
2401
2460
  }
2402
2461
  }
2403
2462
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
2463
+ declare namespace shaka.util {
2464
+ class LanguageUtils {
2465
+ private noStructuralTyping_shaka_util_LanguageUtils : any;
2466
+ /**
2467
+ * Check if |locale1| and |locale2| are language-compatible.
2468
+ * Language compatible is when the language component of each locale matches.
2469
+ * This means that no matter what region they have (or don't have) as long as
2470
+ * the language components match, they are language-compatible.
2471
+ * Examples:
2472
+ * Locale A | Locale B | Language-Compatible
2473
+ * -----------------------------------------
2474
+ * en-US | en-US | true
2475
+ * en-US | en | true
2476
+ * en-US | en-CA | true
2477
+ * en-CA | fr-CA | false
2478
+ */
2479
+ static areLanguageCompatible (locale1 : string , locale2 : string ) : boolean ;
2480
+ /**
2481
+ * Check if |locale1| and |locale2| are locale-compatible.
2482
+ * Locale-compatible is defined as all components in each locale match. Since
2483
+ * we only respect the language and region components, we only check that
2484
+ * the language and region components match.
2485
+ * Examples:
2486
+ * Locale A | Locale B | Locale Compatible
2487
+ * ---------------------------------------
2488
+ * en-US | en-US | true
2489
+ * en | en-US | false
2490
+ * en-US | en-CA | false
2491
+ */
2492
+ static areLocaleCompatible (locale1 : string , locale2 : string ) : boolean ;
2493
+ /**
2494
+ * Check if two language codes are siblings. Language codes are siblings if
2495
+ * they share the same base language while neither one is the base language.
2496
+ * For example, "en-US" and "en-CA" are siblings but "en-US" and "en" are not
2497
+ * siblings.
2498
+ */
2499
+ static areSiblings (a : string , b : string ) : boolean ;
2500
+ /**
2501
+ * Find the locale in |searchSpace| that comes closest to |target|. If no
2502
+ * locale is found to be close to |target|, then |null| will be returned.
2503
+ */
2504
+ static findClosestLocale (target : string , searchSpace : Iterable < string > ) : string | null ;
2505
+ /**
2506
+ * Get the normalized base language for a language code.
2507
+ */
2508
+ static getBase (lang : string ) : string ;
2509
+ /**
2510
+ * Get the normalized language of the given text stream. Will return 'und' if
2511
+ * a language is not found on the text stream.
2512
+ * This should always be used to get the language from a text stream.
2513
+ */
2514
+ static getLocaleForText (stream : shaka.extern.Stream ) : string ;
2515
+ /**
2516
+ * Get the normalized locale for the given variant. This will look through
2517
+ * the variant to find the locale that represents the content in the variant.
2518
+ * This will return 'und' if no language can be found.
2519
+ * This should always be used to get the locale from a variant.
2520
+ */
2521
+ static getLocaleForVariant (variant : shaka.extern.Variant ) : string ;
2522
+ /**
2523
+ * Check if |possibleParent| is the parent locale of |possibleChild|. Because
2524
+ * we do not support dialects, the parent-child relationship is a lot simpler.
2525
+ * In a parent child relationship:
2526
+ * - The parent and child have the same language-component
2527
+ * - The parent has no region-component
2528
+ * - The child has a region-component
2529
+ * Example:
2530
+ * Locale A | Locale B | Is A The parent of B?
2531
+ * --------------------------------------------
2532
+ * en-US | en-US | no
2533
+ * en-US | en | no
2534
+ * en | en-US | yes
2535
+ * en | en | no
2536
+ * en | fr | no
2537
+ */
2538
+ static isParentOf (possibleParent : string , possibleChild : string ) : boolean ;
2539
+ /**
2540
+ * Check if |localeA| shares the same parent with |localeB|. Since we don't
2541
+ * support dialect, we will only look at language and region. For two locales
2542
+ * to be siblings:
2543
+ * - Both must have language-components
2544
+ * - Both must have region-components
2545
+ * - Both must have the same language-component
2546
+ * Example:
2547
+ * Locale A | Locale B | Siblings?
2548
+ * --------------------------------------------
2549
+ * en-US | en-US | yes
2550
+ * en-US | en-CA | yes
2551
+ * en-US | en | no
2552
+ * en | en-US | no
2553
+ * en | en | no
2554
+ * en | fr | no
2555
+ */
2556
+ static isSiblingOf (localeA : string , localeB : string ) : boolean ;
2557
+ /**
2558
+ * Normalize a locale. This will take a locale and canonicalize it to a state
2559
+ * that we are prepared to work with.
2560
+ * We only support with:
2561
+ * - language
2562
+ * - language-REGION
2563
+ * If given a dialect, we will discard it. We will convert any 3-character
2564
+ * codes to 2-character codes. We will force language codes to lowercase and
2565
+ * region codes to uppercase.
2566
+ */
2567
+ static normalize (locale : string ) : string ;
2568
+ /**
2569
+ * Compute a numerical relatedness for language codes. Language codes with a
2570
+ * higher relatedness are a better match. Unrelated language codes have a
2571
+ * relatedness score of 0.
2572
+ */
2573
+ static relatedness (target : string , candidate : string ) : number ;
2574
+ }
2575
+ }
2576
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
2404
2577
  declare namespace shaka.util {
2405
2578
  class Mp4Parser {
2406
2579
  private noStructuralTyping_shaka_util_Mp4Parser : any;
@@ -2713,6 +2886,10 @@ declare namespace chrome.cast.SessionStatus {
2713
2886
  declare namespace chrome.cast {
2714
2887
  let isAvailable : boolean ;
2715
2888
  }
2889
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/cmcd.js
2890
+ declare namespace ಠ_ಠ.clutz {
2891
+ type CmcdData = { bl ? : number , br ? : number , bs ? : boolean , cid ? : string , d ? : number , dl ? : number , mtp ? : number , nor ? : string , nrr ? : string , ot ? : string , pr ? : number , rtp ? : number , sf ? : string , sid ? : string , st ? : string , su ? : boolean , tb ? : number , v ? : number } ;
2892
+ }
2716
2893
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/ima.js
2717
2894
  declare namespace google.ima.AdErrorEvent {
2718
2895
  enum Type {
@@ -3165,6 +3342,7 @@ declare namespace shaka.extern {
3165
3342
  getSequenceLength ( ) : number ;
3166
3343
  getTimeUntilSkippable ( ) : number ;
3167
3344
  getVolume ( ) : number ;
3345
+ isLinear ( ) : boolean ;
3168
3346
  isMuted ( ) : boolean ;
3169
3347
  isPaused ( ) : boolean ;
3170
3348
  isSkippable ( ) : boolean ;
@@ -3245,7 +3423,7 @@ declare namespace shaka.extern {
3245
3423
  }
3246
3424
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
3247
3425
  declare namespace shaka.extern {
3248
- type Stream = { audioSamplingRate : number | null , bandwidth ? : number , channelsCount : number | null , closedCaptions : Map < string , string > | null , codecs : string , createSegmentIndex : shaka.extern.CreateSegmentIndexFunction , drmInfos : shaka.extern.DrmInfo [] , emsgSchemeIdUris : string [] | null , encrypted : boolean , forced : boolean , frameRate ? : number , hdr ? : string , height ? : number , id : number , keyIds : Set < string > , kind ? : string , label : string | null , language : string , mimeType : string , originalId : string | null , pixelAspectRatio ? : string , primary : boolean , roles : string [] , segmentIndex : shaka.media.SegmentIndex | null , spatialAudio : boolean , tilesLayout ? : string , trickModeVideo : any , type : string , width ? : number } ;
3426
+ type Stream = { audioSamplingRate : number | null , bandwidth ? : number , channelsCount : number | null , closeSegmentIndex ? : ( ) => any , closedCaptions : Map < string , string > | null , codecs : string , createSegmentIndex : shaka.extern.CreateSegmentIndexFunction , drmInfos : shaka.extern.DrmInfo [] , emsgSchemeIdUris : string [] | null , encrypted : boolean , forced : boolean , frameRate ? : number , hdr ? : string , height ? : number , id : number , keyIds : Set < string > , kind ? : string , label : string | null , language : string , matchedStreams ? : any [] , mimeType : string , originalId : string | null , pixelAspectRatio ? : string , primary : boolean , roles : string [] , segmentIndex : shaka.media.SegmentIndex | null , spatialAudio : boolean , tilesLayout ? : string , trickModeVideo : any , type : string , width ? : number } ;
3249
3427
  }
3250
3428
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
3251
3429
  declare namespace shaka.extern {
@@ -3324,13 +3502,17 @@ declare namespace shaka.extern.ManifestParser {
3324
3502
  }
3325
3503
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest_parser.js
3326
3504
  declare namespace shaka.extern.ManifestParser {
3327
- type PlayerInterface = { enableLowLatencyMode : ( ) => any , filter : (a : shaka.extern.Manifest ) => Promise < any > , isAutoLowLatencyMode : ( ) => boolean , isLowLatencyMode : ( ) => boolean , makeTextStreamsForClosedCaptions : (a : shaka.extern.Manifest ) => any , networkingEngine : shaka.net.NetworkingEngine , onError : (a : shaka.util.Error ) => any , onEvent : shaka.util.EventManager.ListenerType , onTimelineRegionAdded : (a : shaka.extern.TimelineRegionInfo ) => any } ;
3505
+ type PlayerInterface = { enableLowLatencyMode : ( ) => any , filter : (a : shaka.extern.Manifest ) => Promise < any > , isAutoLowLatencyMode : ( ) => boolean , isLowLatencyMode : ( ) => boolean , makeTextStreamsForClosedCaptions : (a : shaka.extern.Manifest ) => any , modifyManifestRequest : (a : shaka.extern.Request , b : shaka.util.CmcdManager.ManifestInfo ) => any , modifySegmentRequest : (a : shaka.extern.Request , b : shaka.util.CmcdManager.SegmentInfo ) => any , networkingEngine : shaka.net.NetworkingEngine , onError : (a : shaka.util.Error ) => any , onEvent : shaka.util.EventManager.ListenerType , onTimelineRegionAdded : (a : shaka.extern.TimelineRegionInfo ) => any } ;
3328
3506
  }
3329
3507
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/mp4_parser.js
3330
3508
  declare namespace shaka.extern {
3331
3509
  type ParsedBox = { flags : number | null , has64BitSize : boolean , parser : shaka.util.Mp4Parser , partialOkay : boolean , reader : shaka.util.DataViewReader , size : number , start : number , version : number | null } ;
3332
3510
  }
3333
3511
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/net.js
3512
+ declare namespace shaka.extern {
3513
+ type HeadersReceived = (a : { [ key: string ]: string } ) => any ;
3514
+ }
3515
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/net.js
3334
3516
  declare namespace shaka.extern {
3335
3517
  type ProgressUpdated = (a : number , b : number , c : number ) => any ;
3336
3518
  }
@@ -3350,7 +3532,7 @@ declare namespace shaka.extern {
3350
3532
  }
3351
3533
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/net.js
3352
3534
  declare namespace shaka.extern {
3353
- type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , timeMs ? : number , uri : string } ;
3535
+ type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , status ? : number , timeMs ? : number , uri : string } ;
3354
3536
  }
3355
3537
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/net.js
3356
3538
  declare namespace shaka.extern {
@@ -3367,7 +3549,7 @@ declare namespace shaka.extern {
3367
3549
  }
3368
3550
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/net.js
3369
3551
  declare namespace shaka.extern {
3370
- type SchemePlugin = (a : string , b : shaka.extern.Request , c : shaka.net.NetworkingEngine.RequestType , d : shaka.extern.ProgressUpdated ) => shaka.extern.IAbortableOperation < shaka.extern.Response > ;
3552
+ type SchemePlugin = (a : string , b : shaka.extern.Request , c : shaka.net.NetworkingEngine.RequestType , d : shaka.extern.ProgressUpdated , e : shaka.extern.HeadersReceived ) => shaka.extern.IAbortableOperation < shaka.extern.Response > ;
3371
3553
  }
3372
3554
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3373
3555
  declare namespace shaka.extern {
@@ -3401,7 +3583,7 @@ declare namespace shaka.extern {
3401
3583
  }
3402
3584
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3403
3585
  declare namespace shaka.extern {
3404
- type ManifestDB = { appMetadata : object | null , creationTime : number , drmInfo : shaka.extern.DrmInfo | null , duration : number , expiration : number , originalManifestUri : string , sessionIds : string [] , size : number , streams : shaka.extern.StreamDB [] } ;
3586
+ type ManifestDB = { appMetadata : object | null , creationTime : number , drmInfo : shaka.extern.DrmInfo | null , duration : number , expiration : number , isIncomplete ? : boolean , originalManifestUri : string , sessionIds : string [] , size : number , streams : shaka.extern.StreamDB [] } ;
3405
3587
  }
3406
3588
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3407
3589
  declare namespace shaka.extern {
@@ -3409,7 +3591,7 @@ declare namespace shaka.extern {
3409
3591
  }
3410
3592
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3411
3593
  declare namespace shaka.extern {
3412
- type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , dataKey : number , endTime : number , initSegmentKey : number | null , startTime : number , tilesLayout : string | null , timestampOffset : number } ;
3594
+ type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , dataKey : number , endTime : number , initSegmentKey : number | null , pendingInitSegmentRefId ? : string , pendingSegmentRefId ? : string , startTime : number , tilesLayout : string | null , timestampOffset : number } ;
3413
3595
  }
3414
3596
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3415
3597
  declare namespace shaka.extern {
@@ -3479,6 +3661,10 @@ declare namespace shaka.extern {
3479
3661
  * @param onRemove A callback for when a segment is removed from the cell. The key of the segment will be passed to the callback.
3480
3662
  */
3481
3663
  removeSegments (keys : number [] , onRemove : (a : number ) => any ) : Promise < any > ;
3664
+ /**
3665
+ * Updates the given manifest, stored at the given key.
3666
+ */
3667
+ updateManifest (key : number , manifest : shaka.extern.ManifestDB ) : Promise < any > ;
3482
3668
  /**
3483
3669
  * Replace the expiration time of the manifest stored under |key| with
3484
3670
  * |newExpiration|. If no manifest is found under |key| then this should
@@ -3533,7 +3719,7 @@ declare namespace shaka.extern {
3533
3719
  }
3534
3720
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3535
3721
  declare namespace shaka.extern {
3536
- type StoredContent = { appMetadata : object | null , duration : number , expiration : number , offlineUri : string | null , originalManifestUri : string , size : number , tracks : shaka.extern.TrackList } ;
3722
+ type StoredContent = { appMetadata : object | null , duration : number , expiration : number , isIncomplete : boolean , offlineUri : string | null , originalManifestUri : string , size : number , tracks : shaka.extern.TrackList } ;
3537
3723
  }
3538
3724
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3539
3725
  declare namespace shaka.extern {
@@ -3581,7 +3767,11 @@ declare namespace shaka.extern {
3581
3767
  }
3582
3768
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3583
3769
  declare namespace shaka.extern {
3584
- type AbrConfiguration = { bandwidthDowngradeTarget : number , bandwidthUpgradeTarget : number , defaultBandwidthEstimate : number , enabled : boolean , restrictions : shaka.extern.Restrictions , switchInterval : number , useNetworkInformation : boolean } ;
3770
+ type AbrConfiguration = { advanced : shaka.extern.AdvancedAbrConfiguration , bandwidthDowngradeTarget : number , bandwidthUpgradeTarget : number , defaultBandwidthEstimate : number , enabled : boolean , restrictions : shaka.extern.Restrictions , switchInterval : number , useNetworkInformation : boolean } ;
3771
+ }
3772
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3773
+ declare namespace shaka.extern {
3774
+ type AdvancedAbrConfiguration = { fastHalfLife : number , minBytes : number , minTotalBytes : number , slowHalfLife : number } ;
3585
3775
  }
3586
3776
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3587
3777
  declare namespace shaka.extern {
@@ -3600,6 +3790,10 @@ declare namespace shaka.extern {
3600
3790
  type Chapter = { endTime : number , startTime : number , title : string } ;
3601
3791
  }
3602
3792
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3793
+ declare namespace shaka.extern {
3794
+ type CmcdConfiguration = { contentId : string , enabled : boolean , sessionId : string , useHeaders : boolean } ;
3795
+ }
3796
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3603
3797
  declare namespace shaka.extern {
3604
3798
  type DashManifestConfiguration = { autoCorrectDrift : boolean , clockSyncUri : string , disableXlinkProcessing : boolean , ignoreDrmInfo : boolean , ignoreEmptyAdaptationSet : boolean , ignoreMaxSegmentDuration : boolean , ignoreMinBufferTime : boolean , ignoreSuggestedPresentationDelay : boolean , initialSegmentLimit : number , keySystemsByURI : { [ key: string ]: string } , manifestPreprocessor : (a : Element ) => any , xlinkFailGracefully : boolean } ;
3605
3799
  }
@@ -3617,7 +3811,7 @@ declare namespace shaka.extern {
3617
3811
  }
3618
3812
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3619
3813
  declare namespace shaka.extern {
3620
- type HlsManifestConfiguration = { ignoreImageStreamFailures : boolean , ignoreTextStreamFailures : boolean , useFullSegmentsForStartTime : boolean } ;
3814
+ type HlsManifestConfiguration = { defaultAudioCodec : string , defaultVideoCodec : string , ignoreImageStreamFailures : boolean , ignoreTextStreamFailures : boolean , useFullSegmentsForStartTime : boolean } ;
3621
3815
  }
3622
3816
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3623
3817
  declare namespace shaka.extern {
@@ -3632,12 +3826,16 @@ declare namespace shaka.extern {
3632
3826
  type ManifestConfiguration = { availabilityWindowOverride : number , dash : shaka.extern.DashManifestConfiguration , defaultPresentationDelay : number , disableAudio : boolean , disableText : boolean , disableThumbnails : boolean , disableVideo : boolean , hls : shaka.extern.HlsManifestConfiguration , retryParameters : shaka.extern.RetryParameters } ;
3633
3827
  }
3634
3828
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3829
+ declare namespace shaka.extern {
3830
+ type MediaQualityInfo = { audioSamplingRate : number | null , bandwidth : number , channelsCount : number | null , codecs : string , contentType : string , frameRate : number | null , height : number | null , mimeType : string | null , pixelAspectRatio : string | null , width : number | null } ;
3831
+ }
3832
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3635
3833
  declare namespace shaka.extern {
3636
3834
  type OfflineConfiguration = { downloadSizeCallback : (a : number ) => Promise < boolean > , progressCallback : (a : shaka.extern.StoredContent , b : number ) => any , trackSelectionCallback : (a : shaka.extern.TrackList ) => Promise < shaka.extern.TrackList > , usePersistentLicense : boolean } ;
3637
3835
  }
3638
3836
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3639
3837
  declare namespace shaka.extern {
3640
- type PlayerConfiguration = { abr : shaka.extern.AbrConfiguration , abrFactory : shaka.extern.AbrManager.Factory , drm : shaka.extern.DrmConfiguration , manifest : shaka.extern.ManifestConfiguration , offline : shaka.extern.OfflineConfiguration , playRangeEnd : number , playRangeStart : number , preferForcedSubs : boolean , preferredAudioChannelCount : number , preferredAudioCodecs : string [] , preferredAudioLanguage : string , preferredDecodingAttributes : string [] , preferredTextLanguage : string , preferredTextRole : string , preferredVariantRole : string , preferredVideoCodecs : string [] , restrictions : shaka.extern.Restrictions , streaming : shaka.extern.StreamingConfiguration , textDisplayFactory : shaka.extern.TextDisplayer.Factory } ;
3838
+ type PlayerConfiguration = { abr : shaka.extern.AbrConfiguration , abrFactory : shaka.extern.AbrManager.Factory , cmcd : shaka.extern.CmcdConfiguration , drm : shaka.extern.DrmConfiguration , manifest : shaka.extern.ManifestConfiguration , offline : shaka.extern.OfflineConfiguration , playRangeEnd : number , playRangeStart : number , preferForcedSubs : boolean , preferredAudioChannelCount : number , preferredAudioCodecs : string [] , preferredAudioLanguage : string , preferredDecodingAttributes : string [] , preferredTextLanguage : string , preferredTextRole : string , preferredVariantRole : string , preferredVideoCodecs : string [] , restrictions : shaka.extern.Restrictions , streaming : shaka.extern.StreamingConfiguration , textDisplayFactory : shaka.extern.TextDisplayer.Factory } ;
3641
3839
  }
3642
3840
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3643
3841
  declare namespace shaka.extern {
@@ -3653,7 +3851,7 @@ declare namespace shaka.extern {
3653
3851
  }
3654
3852
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3655
3853
  declare namespace shaka.extern {
3656
- type StreamingConfiguration = { alwaysStreamText : boolean , autoLowLatencyMode : boolean , bufferBehind : number , bufferingGoal : number , durationBackoff : number , failureCallback : (a : shaka.util.Error ) => any , forceHTTPS : boolean , forceTransmuxTS : boolean , gapDetectionThreshold : number , ignoreTextStreamFailures : boolean , inaccurateManifestTolerance : number , jumpLargeGaps : boolean , lowLatencyMode : boolean , preferNativeHls : boolean , rebufferingGoal : number , retryParameters : shaka.extern.RetryParameters , safeSeekOffset : number , smallGapLimit : number , stallEnabled : boolean , stallSkip : number , stallThreshold : number , startAtSegmentBoundary : boolean , updateIntervalSeconds : number , useNativeHlsOnSafari : boolean } ;
3854
+ type StreamingConfiguration = { alwaysStreamText : boolean , autoLowLatencyMode : boolean , bufferBehind : number , bufferingGoal : number , dispatchAllEmsgBoxes : boolean , durationBackoff : number , failureCallback : (a : shaka.util.Error ) => any , forceHTTPS : boolean , forceTransmuxTS : boolean , gapDetectionThreshold : number , ignoreTextStreamFailures : boolean , inaccurateManifestTolerance : number , jumpLargeGaps : boolean , lowLatencyMode : boolean , observeQualityChanges : boolean , preferNativeHls : boolean , rebufferingGoal : number , retryParameters : shaka.extern.RetryParameters , safeSeekOffset : number , smallGapLimit : number , stallEnabled : boolean , stallSkip : number , stallThreshold : number , startAtSegmentBoundary : boolean , updateIntervalSeconds : number , useNativeHlsOnSafari : boolean } ;
3657
3855
  }
3658
3856
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3659
3857
  declare namespace shaka.extern {
@@ -3661,7 +3859,7 @@ declare namespace shaka.extern {
3661
3859
  }
3662
3860
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3663
3861
  declare namespace shaka.extern {
3664
- type Thumbnail = { duration : number , height : number , positionX : number , positionY : number , startTime : number , uris : string [] , width : number } ;
3862
+ type Thumbnail = { duration : number , height : number , imageHeight : number , imageWidth : number , positionX : number , positionY : number , startTime : number , uris : string [] , width : number } ;
3665
3863
  }
3666
3864
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3667
3865
  declare namespace shaka.extern {
@@ -3738,6 +3936,13 @@ declare namespace shaka.extern {
3738
3936
  * Id of the cue.
3739
3937
  */
3740
3938
  id : string ;
3939
+ /**
3940
+ * If true, this represents a container element that is "above" the main
3941
+ * cues. For example, the <body> and <div> tags that contain the <p> tags
3942
+ * in a TTML file. This controls the flow of the final cues; any nested cues
3943
+ * within an "isContainer" cue will be laid out as separate lines.
3944
+ */
3945
+ isContainer : boolean ;
3741
3946
  /**
3742
3947
  * Text letter spacing as a CSS letter-spacing value.
3743
3948
  */
@@ -3826,6 +4031,14 @@ declare namespace shaka.extern {
3826
4031
  * and line through. Empty array means no decoration.
3827
4032
  */
3828
4033
  textDecoration : shaka.text.Cue.textDecoration [] ;
4034
+ /**
4035
+ * Text stroke color as a CSS color, e.g. "#FFFFFF" or "white".
4036
+ */
4037
+ textStrokeColor : string ;
4038
+ /**
4039
+ * Text stroke width as a CSS stroke-width value.
4040
+ */
4041
+ textStrokeWidth : string ;
3829
4042
  /**
3830
4043
  * Whether or not line wrapping should be applied to the cue.
3831
4044
  */