shaka-player 3.1.4 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) 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 +6 -5
  5. package/CHANGELOG.md +363 -0
  6. package/CONTRIBUTORS +4 -2
  7. package/README.md +4 -4
  8. package/build/types/core +3 -0
  9. package/build/types/offline +1 -0
  10. package/build/types/polyfill +2 -0
  11. package/build/types/ui +2 -0
  12. package/demo/common/asset.js +9 -7
  13. package/demo/common/assets.js +28 -1
  14. package/demo/common/message_ids.js +15 -2
  15. package/demo/config.js +35 -2
  16. package/demo/index.html +1 -1
  17. package/demo/locales/en.json +14 -1
  18. package/demo/locales/source.json +56 -4
  19. package/demo/main.js +2 -1
  20. package/dist/controls.css +26 -2
  21. package/dist/controls.css.map +1 -1
  22. package/dist/demo.compiled.debug.js +24 -21
  23. package/dist/demo.compiled.debug.map +3 -3
  24. package/dist/demo.compiled.js +24 -21
  25. package/dist/demo.compiled.map +3 -3
  26. package/dist/deps.js +33 -25
  27. package/dist/locales.js +31 -29
  28. package/dist/receiver.compiled.debug.js +14 -12
  29. package/dist/receiver.compiled.debug.map +3 -3
  30. package/dist/receiver.compiled.js +14 -12
  31. package/dist/receiver.compiled.map +3 -3
  32. package/dist/shaka-player.compiled.d.ts +258 -20
  33. package/dist/shaka-player.compiled.debug.d.ts +258 -20
  34. package/dist/shaka-player.compiled.debug.externs.js +1005 -695
  35. package/dist/shaka-player.compiled.debug.js +720 -640
  36. package/dist/shaka-player.compiled.debug.map +4 -4
  37. package/dist/shaka-player.compiled.externs.js +1005 -695
  38. package/dist/shaka-player.compiled.js +850 -817
  39. package/dist/shaka-player.compiled.map +4 -4
  40. package/dist/shaka-player.ui.d.ts +274 -21
  41. package/dist/shaka-player.ui.debug.d.ts +274 -21
  42. package/dist/shaka-player.ui.debug.externs.js +766 -429
  43. package/dist/shaka-player.ui.debug.js +863 -765
  44. package/dist/shaka-player.ui.debug.map +4 -4
  45. package/dist/shaka-player.ui.externs.js +766 -429
  46. package/dist/shaka-player.ui.js +1042 -996
  47. package/dist/shaka-player.ui.map +4 -4
  48. package/docs/design/bg-fetch-after.gv +29 -0
  49. package/docs/design/bg-fetch-after.gv.png +0 -0
  50. package/docs/design/bg-fetch-before.gv +18 -0
  51. package/docs/design/bg-fetch-before.gv.png +0 -0
  52. package/docs/design/bg-fetch.md +134 -0
  53. package/docs/tutorials/blob-url.md +15 -0
  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/aria.js +6 -0
  58. package/externs/ima.js +3 -0
  59. package/externs/shaka/ads.js +29 -1
  60. package/externs/shaka/manifest.js +18 -2
  61. package/externs/shaka/manifest_parser.js +10 -1
  62. package/externs/shaka/net.js +20 -4
  63. package/externs/shaka/offline.js +36 -2
  64. package/externs/shaka/player.js +182 -13
  65. package/externs/shaka/text.js +24 -10
  66. package/externs/texttrack.js +3 -0
  67. package/externs/webcrypto.js +18 -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/ad_manager.js +16 -15
  72. package/lib/ads/client_side_ad.js +8 -0
  73. package/lib/ads/client_side_ad_manager.js +14 -6
  74. package/lib/ads/server_side_ad.js +7 -0
  75. package/lib/ads/server_side_ad_manager.js +19 -2
  76. package/lib/cast/cast_proxy.js +8 -0
  77. package/lib/cast/cast_utils.js +7 -1
  78. package/lib/cea/cea608_data_channel.js +56 -56
  79. package/lib/cea/cea608_memory.js +33 -33
  80. package/lib/cea/cea708_service.js +43 -43
  81. package/lib/cea/cea708_window.js +38 -38
  82. package/lib/cea/cea_decoder.js +13 -14
  83. package/lib/cea/cea_utils.js +23 -23
  84. package/lib/cea/dtvcc_packet_builder.js +7 -7
  85. package/lib/cea/i_caption_decoder.js +2 -3
  86. package/lib/cea/i_cea_parser.js +2 -2
  87. package/lib/cea/mp4_cea_parser.js +6 -6
  88. package/lib/dash/dash_parser.js +53 -14
  89. package/lib/dash/segment_base.js +25 -1
  90. package/lib/dash/segment_list.js +18 -9
  91. package/lib/dash/segment_template.js +23 -10
  92. package/lib/hls/hls_parser.js +210 -30
  93. package/lib/media/closed_caption_parser.js +1 -2
  94. package/lib/media/drm_engine.js +162 -192
  95. package/lib/media/quality_observer.js +291 -0
  96. package/lib/media/segment_index.js +9 -1
  97. package/lib/media/segment_reference.js +37 -5
  98. package/lib/media/streaming_engine.js +48 -10
  99. package/lib/net/http_fetch_plugin.js +31 -11
  100. package/lib/net/http_plugin_utils.js +1 -0
  101. package/lib/net/http_xhr_plugin.js +40 -14
  102. package/lib/net/networking_engine.js +82 -18
  103. package/lib/offline/download_info.js +68 -0
  104. package/lib/offline/download_manager.js +14 -7
  105. package/lib/offline/indexeddb/base_storage_cell.js +35 -0
  106. package/lib/offline/indexeddb/storage_mechanism.js +1 -1
  107. package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
  108. package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
  109. package/lib/offline/indexeddb/v5_storage_cell.js +5 -0
  110. package/lib/offline/manifest_converter.js +3 -1
  111. package/lib/offline/storage.js +404 -297
  112. package/lib/offline/stored_content_utils.js +2 -0
  113. package/lib/player.js +622 -153
  114. package/lib/polyfill/aria.js +82 -0
  115. package/lib/polyfill/random_uuid.js +52 -0
  116. package/lib/routing/walker.js +2 -3
  117. package/lib/text/cue.js +12 -0
  118. package/lib/text/srt_text_parser.js +4 -4
  119. package/lib/text/text_engine.js +2 -2
  120. package/lib/text/ttml_text_parser.js +25 -2
  121. package/lib/text/ui_text_displayer.js +2 -2
  122. package/lib/text/vtt_text_parser.js +2 -2
  123. package/lib/text/web_vtt_generator.js +55 -12
  124. package/lib/util/cmcd_manager.js +826 -0
  125. package/lib/util/error.js +12 -0
  126. package/lib/util/language_utils.js +12 -0
  127. package/lib/util/manifest_parser_utils.js +1 -0
  128. package/lib/util/mp4_box_parsers.js +20 -20
  129. package/lib/util/multi_map.js +8 -0
  130. package/lib/util/mutex.js +52 -0
  131. package/lib/util/periods.js +98 -64
  132. package/lib/util/player_configuration.js +31 -1
  133. package/lib/util/stream_utils.js +140 -85
  134. package/lib/util/xml_utils.js +31 -12
  135. package/package.json +1 -1
  136. package/roadmap.md +24 -22
  137. package/shaka-player.uncompiled.js +4 -0
  138. package/test/cast/cast_utils_unit.js +1 -0
  139. package/test/cea/cea608_memory_unit.js +1 -1
  140. package/test/cea/cea708_service_unit.js +8 -8
  141. package/test/cea/cea708_window_unit.js +6 -6
  142. package/test/cea/cea_decoder_unit.js +1 -1
  143. package/test/cea/dtvcc_packet_builder_unit.js +2 -2
  144. package/test/dash/dash_parser_content_protection_unit.js +2 -0
  145. package/test/dash/dash_parser_live_unit.js +101 -1
  146. package/test/dash/dash_parser_manifest_unit.js +78 -2
  147. package/test/dash/dash_parser_segment_base_unit.js +2 -0
  148. package/test/dash/dash_parser_segment_list_unit.js +2 -1
  149. package/test/dash/dash_parser_segment_template_unit.js +2 -1
  150. package/test/hls/hls_live_unit.js +2 -0
  151. package/test/hls/hls_parser_unit.js +252 -0
  152. package/test/media/drm_engine_integration.js +86 -12
  153. package/test/media/drm_engine_unit.js +310 -450
  154. package/test/media/quality_observer_unit.js +139 -0
  155. package/test/media/segment_reference_unit.js +16 -1
  156. package/test/media/streaming_engine_integration.js +2 -1
  157. package/test/media/streaming_engine_unit.js +2 -0
  158. package/test/net/http_plugin_unit.js +20 -15
  159. package/test/offline/manifest_convert_unit.js +2 -0
  160. package/test/offline/storage_integration.js +117 -23
  161. package/test/player_integration.js +151 -0
  162. package/test/player_src_equals_integration.js +52 -0
  163. package/test/player_unit.js +11 -33
  164. package/test/test/assets/chapters.srt +11 -0
  165. package/test/test/assets/chapters.vtt +10 -0
  166. package/test/test/util/cea_utils.js +12 -12
  167. package/test/test/util/dash_parser_util.js +4 -0
  168. package/test/test/util/fake_ad.js +7 -0
  169. package/test/test/util/fake_ad_manager.js +7 -0
  170. package/test/test/util/fake_drm_engine.js +9 -2
  171. package/test/test/util/manifest_generator.js +5 -2
  172. package/test/test/util/manifest_parser_util.js +3 -1
  173. package/test/test/util/test_scheme.js +14 -1
  174. package/test/text/ttml_text_parser_unit.js +47 -0
  175. package/test/text/web_vtt_generator_unit.js +81 -7
  176. package/test/ui/ui_unit.js +250 -0
  177. package/test/util/cmcd_manager_unit.js +277 -0
  178. package/test/util/stream_utils_unit.js +118 -10
  179. package/ui/airplay_button.js +2 -1
  180. package/ui/audio_language_selection.js +9 -5
  181. package/ui/cast_button.js +5 -6
  182. package/ui/constants.js +0 -3
  183. package/ui/context_menu.js +109 -0
  184. package/ui/controls.js +41 -7
  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 +16 -8
  189. package/ui/fullscreen_button.js +2 -3
  190. package/ui/language_utils.js +1 -1
  191. package/ui/less/buttons.less +0 -4
  192. package/ui/less/containers.less +74 -0
  193. package/ui/less/overflow_menu.less +0 -10
  194. package/ui/less/tooltip.less +97 -0
  195. package/ui/locales/en.json +1 -0
  196. package/ui/locales/source.json +4 -0
  197. package/ui/loop_button.js +6 -3
  198. package/ui/mute_button.js +3 -4
  199. package/ui/overflow_menu.js +7 -28
  200. package/ui/pip_button.js +10 -7
  201. package/ui/play_button.js +2 -2
  202. package/ui/playback_rate_selection.js +11 -15
  203. package/ui/presentation_time.js +1 -3
  204. package/ui/resolution_selection.js +11 -7
  205. package/ui/rewind_button.js +17 -9
  206. package/ui/seek_bar.js +6 -6
  207. package/ui/settings_menu.js +36 -4
  208. package/ui/small_play_button.js +1 -0
  209. package/ui/spacer.js +1 -1
  210. package/ui/statistics_button.js +253 -0
  211. package/ui/text_selection.js +19 -15
  212. package/ui/ui.js +30 -0
  213. package/ui/ui_utils.js +1 -1
  214. package/ui/volume_bar.js +2 -4
@@ -12,6 +12,12 @@ declare namespace shaka {
12
12
  class Player extends shaka.util.FakeEventTarget implements shaka.util.IDestroyable {
13
13
  private noStructuralTyping_shaka_Player : any;
14
14
  constructor (mediaElement ? : HTMLMediaElement | null , dependencyInjector ? : (a : shaka.Player | null ) => any ) ;
15
+ /**
16
+ * Adds the given chapters track to the loaded manifest. <code>load()</code>
17
+ * must resolve before calling. The presentation must have a duration.
18
+ * This returns the created track.
19
+ */
20
+ addChaptersTrack (uri : string , language : string , mimeType ? : string ) : Promise < shaka.extern.Track > ;
15
21
  /**
16
22
  * Adds the given text track to the loaded manifest. <code>load()</code> must
17
23
  * resolve before calling. The presentation must have a duration.
@@ -110,12 +116,24 @@ declare namespace shaka {
110
116
  * player has not loaded any content, this will return an empty list.
111
117
  */
112
118
  getAudioLanguagesAndRoles ( ) : shaka.extern.LanguageRole [] ;
119
+ /**
120
+ * Returns the ratio of video length buffered compared to buffering Goal
121
+ */
122
+ getBufferFullness ( ) : number ;
113
123
  /**
114
124
  * Get information about what the player has buffered. If the player has not
115
125
  * loaded content or is currently loading content, the buffered content will
116
126
  * be empty.
117
127
  */
118
128
  getBufferedInfo ( ) : shaka.extern.BufferedInfo ;
129
+ /**
130
+ * This returns the list of chapters.
131
+ */
132
+ getChapters (language : string ) : shaka.extern.Chapter [] ;
133
+ /**
134
+ * Return a list of chapters tracks.
135
+ */
136
+ getChaptersTracks ( ) : shaka.extern.TrackList ;
119
137
  /**
120
138
  * Return a copy of the current configuration. Modifications of the returned
121
139
  * value will not affect the Player's active configuration. You must call
@@ -218,6 +236,10 @@ declare namespace shaka {
218
236
  * If the player has not loaded content, this will return an empty list.
219
237
  */
220
238
  getVariantTracks ( ) : shaka.extern.TrackList ;
239
+ /**
240
+ * Go to live in a live stream.
241
+ */
242
+ goToLive ( ) : any ;
221
243
  /**
222
244
  * Check if the manifest contains only audio-only content. If the player has
223
245
  * not loaded content, this will return <code>false</code>.
@@ -373,6 +395,13 @@ declare namespace shaka {
373
395
  * <code>detach</code>, or <code>unload</code>.
374
396
  */
375
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 ;
376
405
  /**
377
406
  * Return whether the browser provides basic support. If this returns false,
378
407
  * Shaka Player cannot be used at all. In this case, do not construct a
@@ -453,6 +482,7 @@ declare namespace shaka.ads {
453
482
  */
454
483
  class AdManager extends shaka.util.FakeEventTarget implements shaka.extern.IAdManager , shaka.util.IReleasable {
455
484
  private noStructuralTyping_shaka_ads_AdManager : any;
485
+ getServerSideCuePoints ( ) : shaka.extern.AdCuePoint [] ;
456
486
  getStats ( ) : shaka.extern.AdsStats ;
457
487
  initClientSide (adContainer : any , video : any ) : any ;
458
488
  initServerSide (adContainer : any , video : any ) : any ;
@@ -605,6 +635,7 @@ declare namespace shaka.ads {
605
635
  getSequenceLength ( ) : any ;
606
636
  getTimeUntilSkippable ( ) : any ;
607
637
  getVolume ( ) : any ;
638
+ isLinear ( ) : any ;
608
639
  isMuted ( ) : any ;
609
640
  isPaused ( ) : any ;
610
641
  isSkippable ( ) : any ;
@@ -630,6 +661,7 @@ declare namespace shaka.ads {
630
661
  getSequenceLength ( ) : any ;
631
662
  getTimeUntilSkippable ( ) : any ;
632
663
  getVolume ( ) : any ;
664
+ isLinear ( ) : any ;
633
665
  isMuted ( ) : any ;
634
666
  isPaused ( ) : any ;
635
667
  isSkippable ( ) : any ;
@@ -793,7 +825,7 @@ declare namespace shaka.media {
793
825
  */
794
826
  class InitSegmentReference {
795
827
  private noStructuralTyping_shaka_media_InitSegmentReference : any;
796
- constructor (uris : ( ) => string [] , startByte : number , endByte : number | null ) ;
828
+ constructor (uris : ( ) => string [] , startByte : number , endByte : number | null , mediaQuality ? : null | shaka.extern.MediaQualityInfo ) ;
797
829
  /**
798
830
  * Returns the offset from the start of the resource to the end of the
799
831
  * segment, inclusive. A value of null indicates that the segment extends
@@ -1096,7 +1128,7 @@ declare namespace shaka.media {
1096
1128
  */
1097
1129
  class SegmentReference {
1098
1130
  private noStructuralTyping_shaka_media_SegmentReference : any;
1099
- 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 [] ) ;
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 ) ;
1100
1132
  /**
1101
1133
  * Returns the offset from the start of the resource to the end of the
1102
1134
  * segment, inclusive. A value of null indicates that the segment extends to
@@ -1116,6 +1148,10 @@ declare namespace shaka.media {
1116
1148
  * Returns the segment's start time in seconds.
1117
1149
  */
1118
1150
  getStartTime ( ) : number ;
1151
+ /**
1152
+ * Returns the segment's tiles layout. Only defined in image segments.
1153
+ */
1154
+ getTilesLayout ( ) : string | null ;
1119
1155
  /**
1120
1156
  * Creates and returns the URIs of the resource containing the segment.
1121
1157
  */
@@ -1139,14 +1175,14 @@ declare namespace shaka.net {
1139
1175
  * logic as Shaka when determining support.
1140
1176
  */
1141
1177
  static isSupported ( ) : boolean ;
1142
- static parse (uri : string , request : shaka.extern.Request , requestType : shaka.net.NetworkingEngine.RequestType , progressUpdated : shaka.extern.ProgressUpdated ) : shaka.extern.IAbortableOperation < any > ;
1178
+ 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 > ;
1143
1179
  }
1144
1180
  }
1145
1181
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
1146
1182
  declare namespace shaka.net {
1147
1183
  class HttpXHRPlugin {
1148
1184
  private noStructuralTyping_shaka_net_HttpXHRPlugin : any;
1149
- static parse (uri : string , request : shaka.extern.Request , requestType : shaka.net.NetworkingEngine.RequestType , progressUpdated : shaka.extern.ProgressUpdated ) : shaka.extern.IAbortableOperation < any > ;
1185
+ 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 > ;
1150
1186
  }
1151
1187
  }
1152
1188
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
@@ -1163,7 +1199,7 @@ declare namespace shaka.net {
1163
1199
  * handle the actual request. A plugin is registered using registerScheme.
1164
1200
  * Each scheme has at most one plugin to handle the request.
1165
1201
  */
1166
- constructor (onProgressUpdated ? : (a : number , b : number ) => any ) ;
1202
+ constructor (onProgressUpdated ? : (a : number , b : number ) => any , onHeadersReceived ? : shaka.net.NetworkingEngine.OnHeadersReceived , onDownloadFailed ? : shaka.net.NetworkingEngine.OnDownloadFailed ) ;
1167
1203
  /**
1168
1204
  * Clears all request filters.
1169
1205
  */
@@ -1232,6 +1268,14 @@ declare namespace shaka.net.NetworkingEngine {
1232
1268
  }
1233
1269
  }
1234
1270
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
1271
+ declare namespace shaka.net.NetworkingEngine {
1272
+ type OnDownloadFailed = (a : shaka.extern.Request , b : shaka.util.Error | null , c : number , d : boolean ) => any ;
1273
+ }
1274
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
1275
+ declare namespace shaka.net.NetworkingEngine {
1276
+ type OnHeadersReceived = (a : { [ key: string ]: string } , b : shaka.extern.Request , c : shaka.net.NetworkingEngine.RequestType ) => any ;
1277
+ }
1278
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
1235
1279
  declare namespace shaka.net.NetworkingEngine {
1236
1280
  /**
1237
1281
  * A pending network request. This can track the current progress of the
@@ -1277,6 +1321,7 @@ declare namespace shaka.net.NetworkingEngine {
1277
1321
  LICENSE = 2.0 ,
1278
1322
  MANIFEST = 0.0 ,
1279
1323
  SEGMENT = 1.0 ,
1324
+ SERVER_CERTIFICATE = 5.0 ,
1280
1325
  TIMING = 4.0 ,
1281
1326
  }
1282
1327
  }
@@ -1411,6 +1456,16 @@ declare namespace shaka {
1411
1456
  }
1412
1457
  }
1413
1458
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
1459
+ declare namespace shaka.polyfill {
1460
+ class Aria {
1461
+ private noStructuralTyping_shaka_polyfill_Aria : any;
1462
+ /**
1463
+ * Install the polyfill if needed.
1464
+ */
1465
+ static install ( ) : any ;
1466
+ }
1467
+ }
1468
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
1414
1469
  declare namespace shaka.polyfill {
1415
1470
  class EncryptionScheme {
1416
1471
  private noStructuralTyping_shaka_polyfill_EncryptionScheme : any;
@@ -1521,6 +1576,16 @@ declare namespace shaka.polyfill {
1521
1576
  }
1522
1577
  }
1523
1578
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
1579
+ declare namespace shaka.polyfill {
1580
+ class RandomUUID {
1581
+ private noStructuralTyping_shaka_polyfill_RandomUUID : any;
1582
+ /**
1583
+ * Install the polyfill if needed.
1584
+ */
1585
+ static install ( ) : any ;
1586
+ }
1587
+ }
1588
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
1524
1589
  declare namespace shaka.polyfill {
1525
1590
  class StorageEstimate {
1526
1591
  private noStructuralTyping_shaka_polyfill_StorageEstimate : any;
@@ -1602,6 +1667,8 @@ declare namespace shaka.text {
1602
1667
  startTime : any ;
1603
1668
  textAlign : any ;
1604
1669
  textDecoration : any ;
1670
+ textStrokeColor : any ;
1671
+ textStrokeWidth : any ;
1605
1672
  wrapLine : any ;
1606
1673
  writingMode : any ;
1607
1674
  }
@@ -1951,6 +2018,14 @@ declare namespace shaka.ui {
1951
2018
  }
1952
2019
  }
1953
2020
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
2021
+ declare namespace shaka.ui {
2022
+ class ContextMenu extends shaka.ui.Element {
2023
+ private noStructuralTyping_shaka_ui_ContextMenu : any;
2024
+ constructor (parent : HTMLElement , controls : shaka.ui.Controls ) ;
2025
+ static registerElement (name : string , factory : shaka.extern.IUIElement.Factory ) : any ;
2026
+ }
2027
+ }
2028
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
1954
2029
  declare namespace shaka.ui {
1955
2030
  /**
1956
2031
  * A container for custom video controls.
@@ -2354,6 +2429,13 @@ declare namespace shaka.ui {
2354
2429
  }
2355
2430
  }
2356
2431
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
2432
+ declare namespace shaka.ui {
2433
+ class StatisticsButton extends shaka.ui.Element {
2434
+ private noStructuralTyping_shaka_ui_StatisticsButton : any;
2435
+ constructor (parent : HTMLElement , controls : shaka.ui.Controls ) ;
2436
+ }
2437
+ }
2438
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
2357
2439
  declare namespace shaka.ui {
2358
2440
  class TextSelection extends shaka.ui.SettingsMenu {
2359
2441
  private noStructuralTyping_shaka_ui_TextSelection : any;
@@ -2424,6 +2506,23 @@ declare namespace shaka.util {
2424
2506
  }
2425
2507
  }
2426
2508
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
2509
+ declare namespace shaka.util.CmcdManager {
2510
+ type ManifestInfo = { format : shaka.util.CmcdManager.StreamingFormat } ;
2511
+ }
2512
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
2513
+ declare namespace shaka.util.CmcdManager {
2514
+ type SegmentInfo = { bandwidth ? : number , codecs : string , duration : number , init : boolean , mimeType : string , type : string } ;
2515
+ }
2516
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
2517
+ declare namespace shaka.util.CmcdManager {
2518
+ enum StreamingFormat {
2519
+ DASH = 'd' ,
2520
+ HLS = 'h' ,
2521
+ OTHER = 'o' ,
2522
+ SMOOTH = 's' ,
2523
+ }
2524
+ }
2525
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
2427
2526
  declare namespace shaka.util {
2428
2527
  class ConfigUtils {
2429
2528
  private noStructuralTyping_shaka_util_ConfigUtils : any;
@@ -2628,6 +2727,7 @@ declare namespace shaka.util.Error {
2628
2727
  MEDIA_SOURCE_OPERATION_THREW = 3015.0 ,
2629
2728
  MISSING_STORAGE_CELL = 9013.0 ,
2630
2729
  MISSING_TEXT_PLUGIN = 2014.0 ,
2730
+ MODIFY_OPERATION_NOT_SUPPORTED = 9016.0 ,
2631
2731
  MP4_SIDX_INVALID_TIMESCALE = 3005.0 ,
2632
2732
  MP4_SIDX_TYPE_NOT_SUPPORTED = 3006.0 ,
2633
2733
  MP4_SIDX_WRONG_BOX_TYPE = 3004.0 ,
@@ -2648,6 +2748,7 @@ declare namespace shaka.util.Error {
2648
2748
  REQUEST_FILTER_ERROR = 1006.0 ,
2649
2749
  RESPONSE_FILTER_ERROR = 1007.0 ,
2650
2750
  RESTRICTIONS_CANNOT_BE_MET = 4012.0 ,
2751
+ SERVER_CERTIFICATE_REQUEST_FAILED = 6017.0 ,
2651
2752
  SERVER_CERTIFICATE_REQUIRED = 6015.0 ,
2652
2753
  SS_AD_MANAGER_NOT_INITIALIZED = 10003.0 ,
2653
2754
  SS_IMA_SDK_MISSING = 10002.0 ,
@@ -2821,6 +2922,120 @@ declare namespace shaka.util {
2821
2922
  }
2822
2923
  }
2823
2924
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
2925
+ declare namespace shaka.util {
2926
+ class LanguageUtils {
2927
+ private noStructuralTyping_shaka_util_LanguageUtils : any;
2928
+ /**
2929
+ * Check if |locale1| and |locale2| are language-compatible.
2930
+ * Language compatible is when the language component of each locale matches.
2931
+ * This means that no matter what region they have (or don't have) as long as
2932
+ * the language components match, they are language-compatible.
2933
+ * Examples:
2934
+ * Locale A | Locale B | Language-Compatible
2935
+ * -----------------------------------------
2936
+ * en-US | en-US | true
2937
+ * en-US | en | true
2938
+ * en-US | en-CA | true
2939
+ * en-CA | fr-CA | false
2940
+ */
2941
+ static areLanguageCompatible (locale1 : string , locale2 : string ) : boolean ;
2942
+ /**
2943
+ * Check if |locale1| and |locale2| are locale-compatible.
2944
+ * Locale-compatible is defined as all components in each locale match. Since
2945
+ * we only respect the language and region components, we only check that
2946
+ * the language and region components match.
2947
+ * Examples:
2948
+ * Locale A | Locale B | Locale Compatible
2949
+ * ---------------------------------------
2950
+ * en-US | en-US | true
2951
+ * en | en-US | false
2952
+ * en-US | en-CA | false
2953
+ */
2954
+ static areLocaleCompatible (locale1 : string , locale2 : string ) : boolean ;
2955
+ /**
2956
+ * Check if two language codes are siblings. Language codes are siblings if
2957
+ * they share the same base language while neither one is the base language.
2958
+ * For example, "en-US" and "en-CA" are siblings but "en-US" and "en" are not
2959
+ * siblings.
2960
+ */
2961
+ static areSiblings (a : string , b : string ) : boolean ;
2962
+ /**
2963
+ * Find the locale in |searchSpace| that comes closest to |target|. If no
2964
+ * locale is found to be close to |target|, then |null| will be returned.
2965
+ */
2966
+ static findClosestLocale (target : string , searchSpace : Iterable < string > ) : string | null ;
2967
+ /**
2968
+ * Get the normalized base language for a language code.
2969
+ */
2970
+ static getBase (lang : string ) : string ;
2971
+ /**
2972
+ * Get the normalized language of the given text stream. Will return 'und' if
2973
+ * a language is not found on the text stream.
2974
+ * This should always be used to get the language from a text stream.
2975
+ */
2976
+ static getLocaleForText (stream : shaka.extern.Stream ) : string ;
2977
+ /**
2978
+ * Get the normalized locale for the given variant. This will look through
2979
+ * the variant to find the locale that represents the content in the variant.
2980
+ * This will return 'und' if no language can be found.
2981
+ * This should always be used to get the locale from a variant.
2982
+ */
2983
+ static getLocaleForVariant (variant : shaka.extern.Variant ) : string ;
2984
+ /**
2985
+ * Check if |possibleParent| is the parent locale of |possibleChild|. Because
2986
+ * we do not support dialects, the parent-child relationship is a lot simpler.
2987
+ * In a parent child relationship:
2988
+ * - The parent and child have the same language-component
2989
+ * - The parent has no region-component
2990
+ * - The child has a region-component
2991
+ * Example:
2992
+ * Locale A | Locale B | Is A The parent of B?
2993
+ * --------------------------------------------
2994
+ * en-US | en-US | no
2995
+ * en-US | en | no
2996
+ * en | en-US | yes
2997
+ * en | en | no
2998
+ * en | fr | no
2999
+ */
3000
+ static isParentOf (possibleParent : string , possibleChild : string ) : boolean ;
3001
+ /**
3002
+ * Check if |localeA| shares the same parent with |localeB|. Since we don't
3003
+ * support dialect, we will only look at language and region. For two locales
3004
+ * to be siblings:
3005
+ * - Both must have language-components
3006
+ * - Both must have region-components
3007
+ * - Both must have the same language-component
3008
+ * Example:
3009
+ * Locale A | Locale B | Siblings?
3010
+ * --------------------------------------------
3011
+ * en-US | en-US | yes
3012
+ * en-US | en-CA | yes
3013
+ * en-US | en | no
3014
+ * en | en-US | no
3015
+ * en | en | no
3016
+ * en | fr | no
3017
+ */
3018
+ static isSiblingOf (localeA : string , localeB : string ) : boolean ;
3019
+ /**
3020
+ * Normalize a locale. This will take a locale and canonicalize it to a state
3021
+ * that we are prepared to work with.
3022
+ * We only support with:
3023
+ * - language
3024
+ * - language-REGION
3025
+ * If given a dialect, we will discard it. We will convert any 3-character
3026
+ * codes to 2-character codes. We will force language codes to lowercase and
3027
+ * region codes to uppercase.
3028
+ */
3029
+ static normalize (locale : string ) : string ;
3030
+ /**
3031
+ * Compute a numerical relatedness for language codes. Language codes with a
3032
+ * higher relatedness are a better match. Unrelated language codes have a
3033
+ * relatedness score of 0.
3034
+ */
3035
+ static relatedness (target : string , candidate : string ) : number ;
3036
+ }
3037
+ }
3038
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.ui.externs.js
2824
3039
  declare namespace shaka.util {
2825
3040
  class Mp4Parser {
2826
3041
  private noStructuralTyping_shaka_util_Mp4Parser : any;
@@ -3560,6 +3775,10 @@ declare namespace shaka.extern.AbrManager {
3560
3775
  type SwitchCallback = (a : shaka.extern.Variant , b ? : boolean , c ? : number ) => any ;
3561
3776
  }
3562
3777
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/ads.js
3778
+ declare namespace shaka.extern {
3779
+ type AdCuePoint = { end : number | null , start : number } ;
3780
+ }
3781
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/ads.js
3563
3782
  declare namespace shaka.extern {
3564
3783
  type AdsStats = { loadTimes : number [] , playedCompletely : number , skipped : number , started : number } ;
3565
3784
  }
@@ -3581,6 +3800,7 @@ declare namespace shaka.extern {
3581
3800
  getSequenceLength ( ) : number ;
3582
3801
  getTimeUntilSkippable ( ) : number ;
3583
3802
  getVolume ( ) : number ;
3803
+ isLinear ( ) : boolean ;
3584
3804
  isMuted ( ) : boolean ;
3585
3805
  isPaused ( ) : boolean ;
3586
3806
  isSkippable ( ) : boolean ;
@@ -3599,6 +3819,7 @@ declare namespace shaka.extern {
3599
3819
  * in the player.
3600
3820
  */
3601
3821
  interface IAdManager extends EventTarget {
3822
+ getServerSideCuePoints ( ) : shaka.extern.AdCuePoint [] ;
3602
3823
  /**
3603
3824
  * Get statistics for the current playback session. If the player is not
3604
3825
  * playing content, this will return an empty stats object.
@@ -3648,7 +3869,7 @@ declare namespace shaka.extern {
3648
3869
  }
3649
3870
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
3650
3871
  declare namespace shaka.extern {
3651
- type DrmInfo = { audioRobustness : string , distinctiveIdentifierRequired : boolean , initData : shaka.extern.InitDataOverride [] | null , keyIds : Set < string > | null , keySystem : string , licenseServerUri : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , sessionType : string , videoRobustness : string } ;
3872
+ type DrmInfo = { audioRobustness : string , distinctiveIdentifierRequired : boolean , initData : shaka.extern.InitDataOverride [] | null , keyIds : Set < string > | null , keySystem : string , licenseServerUri : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , serverCertificateUri : string , sessionType : string , videoRobustness : string } ;
3652
3873
  }
3653
3874
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
3654
3875
  declare namespace shaka.extern {
@@ -3660,7 +3881,7 @@ declare namespace shaka.extern {
3660
3881
  }
3661
3882
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
3662
3883
  declare namespace shaka.extern {
3663
- 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 } ;
3884
+ 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 } ;
3664
3885
  }
3665
3886
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
3666
3887
  declare namespace shaka.extern {
@@ -3739,13 +3960,17 @@ declare namespace shaka.extern.ManifestParser {
3739
3960
  }
3740
3961
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest_parser.js
3741
3962
  declare namespace shaka.extern.ManifestParser {
3742
- 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 } ;
3963
+ 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 } ;
3743
3964
  }
3744
3965
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/mp4_parser.js
3745
3966
  declare namespace shaka.extern {
3746
3967
  type ParsedBox = { flags : number | null , has64BitSize : boolean , parser : shaka.util.Mp4Parser , partialOkay : boolean , reader : shaka.util.DataViewReader , size : number , start : number , version : number | null } ;
3747
3968
  }
3748
3969
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/net.js
3970
+ declare namespace shaka.extern {
3971
+ type HeadersReceived = (a : { [ key: string ]: string } ) => any ;
3972
+ }
3973
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/net.js
3749
3974
  declare namespace shaka.extern {
3750
3975
  type ProgressUpdated = (a : number , b : number , c : number ) => any ;
3751
3976
  }
@@ -3765,7 +3990,7 @@ declare namespace shaka.extern {
3765
3990
  }
3766
3991
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/net.js
3767
3992
  declare namespace shaka.extern {
3768
- type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , timeMs ? : number , uri : string } ;
3993
+ type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , status ? : number , timeMs ? : number , uri : string } ;
3769
3994
  }
3770
3995
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/net.js
3771
3996
  declare namespace shaka.extern {
@@ -3782,7 +4007,7 @@ declare namespace shaka.extern {
3782
4007
  }
3783
4008
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/net.js
3784
4009
  declare namespace shaka.extern {
3785
- type SchemePlugin = (a : string , b : shaka.extern.Request , c : shaka.net.NetworkingEngine.RequestType , d : shaka.extern.ProgressUpdated ) => shaka.extern.IAbortableOperation < shaka.extern.Response > ;
4010
+ 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 > ;
3786
4011
  }
3787
4012
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3788
4013
  declare namespace shaka.extern {
@@ -3816,7 +4041,7 @@ declare namespace shaka.extern {
3816
4041
  }
3817
4042
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3818
4043
  declare namespace shaka.extern {
3819
- 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 [] } ;
4044
+ 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 [] } ;
3820
4045
  }
3821
4046
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3822
4047
  declare namespace shaka.extern {
@@ -3824,7 +4049,7 @@ declare namespace shaka.extern {
3824
4049
  }
3825
4050
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3826
4051
  declare namespace shaka.extern {
3827
- type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , dataKey : number , endTime : number , initSegmentKey : number | null , startTime : number , timestampOffset : number } ;
4052
+ type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , dataKey : number , endTime : number , initSegmentKey : number | null , pendingInitSegmentRefId ? : string , pendingSegmentRefId ? : string , startTime : number , tilesLayout : string | null , timestampOffset : number } ;
3828
4053
  }
3829
4054
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3830
4055
  declare namespace shaka.extern {
@@ -3894,6 +4119,10 @@ declare namespace shaka.extern {
3894
4119
  * @param onRemove A callback for when a segment is removed from the cell. The key of the segment will be passed to the callback.
3895
4120
  */
3896
4121
  removeSegments (keys : number [] , onRemove : (a : number ) => any ) : Promise < any > ;
4122
+ /**
4123
+ * Updates the given manifest, stored at the given key.
4124
+ */
4125
+ updateManifest (key : number , manifest : shaka.extern.ManifestDB ) : Promise < any > ;
3897
4126
  /**
3898
4127
  * Replace the expiration time of the manifest stored under |key| with
3899
4128
  * |newExpiration|. If no manifest is found under |key| then this should
@@ -3948,7 +4177,7 @@ declare namespace shaka.extern {
3948
4177
  }
3949
4178
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3950
4179
  declare namespace shaka.extern {
3951
- type StoredContent = { appMetadata : object | null , duration : number , expiration : number , offlineUri : string | null , originalManifestUri : string , size : number , tracks : shaka.extern.TrackList } ;
4180
+ type StoredContent = { appMetadata : object | null , duration : number , expiration : number , isIncomplete : boolean , offlineUri : string | null , originalManifestUri : string , size : number , tracks : shaka.extern.TrackList } ;
3952
4181
  }
3953
4182
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3954
4183
  declare namespace shaka.extern {
@@ -3996,11 +4225,15 @@ declare namespace shaka.extern {
3996
4225
  }
3997
4226
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3998
4227
  declare namespace shaka.extern {
3999
- type AbrConfiguration = { bandwidthDowngradeTarget : number , bandwidthUpgradeTarget : number , defaultBandwidthEstimate : number , enabled : boolean , restrictions : shaka.extern.Restrictions , switchInterval : number , useNetworkInformation : boolean } ;
4228
+ type AbrConfiguration = { advanced : shaka.extern.AdvancedAbrConfiguration , bandwidthDowngradeTarget : number , bandwidthUpgradeTarget : number , defaultBandwidthEstimate : number , enabled : boolean , restrictions : shaka.extern.Restrictions , switchInterval : number , useNetworkInformation : boolean } ;
4000
4229
  }
4001
4230
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4002
4231
  declare namespace shaka.extern {
4003
- type AdvancedDrmConfiguration = { audioRobustness : string , distinctiveIdentifierRequired : boolean , individualizationServer : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , sessionType : string , videoRobustness : string } ;
4232
+ type AdvancedAbrConfiguration = { fastHalfLife : number , minBytes : number , minTotalBytes : number , slowHalfLife : number } ;
4233
+ }
4234
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4235
+ declare namespace shaka.extern {
4236
+ type AdvancedDrmConfiguration = { audioRobustness : string , distinctiveIdentifierRequired : boolean , individualizationServer : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , serverCertificateUri : string , sessionType : string , videoRobustness : string } ;
4004
4237
  }
4005
4238
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4006
4239
  declare namespace shaka.extern {
@@ -4012,11 +4245,19 @@ declare namespace shaka.extern {
4012
4245
  }
4013
4246
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4014
4247
  declare namespace shaka.extern {
4015
- type DashManifestConfiguration = { autoCorrectDrift : boolean , clockSyncUri : string , disableXlinkProcessing : boolean , ignoreDrmInfo : boolean , ignoreEmptyAdaptationSet : boolean , ignoreMaxSegmentDuration : boolean , ignoreMinBufferTime : boolean , ignoreSuggestedPresentationDelay : boolean , initialSegmentLimit : number , keySystemsByURI : { [ key: string ]: string } , xlinkFailGracefully : boolean } ;
4248
+ type Chapter = { endTime : number , startTime : number , title : string } ;
4249
+ }
4250
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4251
+ declare namespace shaka.extern {
4252
+ type CmcdConfiguration = { contentId : string , enabled : boolean , sessionId : string , useHeaders : boolean } ;
4016
4253
  }
4017
4254
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4018
4255
  declare namespace shaka.extern {
4019
- type DrmConfiguration = { advanced : { [ key: string ]: shaka.extern.AdvancedDrmConfiguration } | null , clearKeys : { [ key: string ]: string } , delayLicenseRequestUntilPlayed : boolean , initDataTransform ? : (a : Uint8Array , b : string , c : shaka.extern.DrmInfo | null ) => Uint8Array , logLicenseExchange : boolean , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
4256
+ 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 } ;
4257
+ }
4258
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4259
+ declare namespace shaka.extern {
4260
+ type DrmConfiguration = { advanced : { [ key: string ]: shaka.extern.AdvancedDrmConfiguration } | null , clearKeys : { [ key: string ]: string } , delayLicenseRequestUntilPlayed : boolean , initDataTransform ? : (a : Uint8Array , b : string , c : shaka.extern.DrmInfo | null ) => Uint8Array , logLicenseExchange : boolean , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
4020
4261
  }
4021
4262
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4022
4263
  declare namespace shaka.extern {
@@ -4028,7 +4269,7 @@ declare namespace shaka.extern {
4028
4269
  }
4029
4270
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4030
4271
  declare namespace shaka.extern {
4031
- type HlsManifestConfiguration = { ignoreTextStreamFailures : boolean , useFullSegmentsForStartTime : boolean } ;
4272
+ type HlsManifestConfiguration = { defaultAudioCodec : string , defaultVideoCodec : string , ignoreImageStreamFailures : boolean , ignoreTextStreamFailures : boolean , useFullSegmentsForStartTime : boolean } ;
4032
4273
  }
4033
4274
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4034
4275
  declare namespace shaka.extern {
@@ -4043,12 +4284,16 @@ declare namespace shaka.extern {
4043
4284
  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 } ;
4044
4285
  }
4045
4286
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4287
+ declare namespace shaka.extern {
4288
+ 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 } ;
4289
+ }
4290
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4046
4291
  declare namespace shaka.extern {
4047
4292
  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 } ;
4048
4293
  }
4049
4294
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4050
4295
  declare namespace shaka.extern {
4051
- 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 , preferredAudioLanguage : string , preferredTextLanguage : string , preferredTextRole : string , preferredVariantRole : string , restrictions : shaka.extern.Restrictions , streaming : shaka.extern.StreamingConfiguration , textDisplayFactory : shaka.extern.TextDisplayer.Factory , useMediaCapabilities : boolean } ;
4296
+ 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 } ;
4052
4297
  }
4053
4298
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4054
4299
  declare namespace shaka.extern {
@@ -4064,7 +4309,7 @@ declare namespace shaka.extern {
4064
4309
  }
4065
4310
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4066
4311
  declare namespace shaka.extern {
4067
- 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 , useNativeHlsOnSafari : boolean } ;
4312
+ 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 } ;
4068
4313
  }
4069
4314
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4070
4315
  declare namespace shaka.extern {
@@ -4237,6 +4482,14 @@ declare namespace shaka.extern {
4237
4482
  * and line through. Empty array means no decoration.
4238
4483
  */
4239
4484
  textDecoration : shaka.text.Cue.textDecoration [] ;
4485
+ /**
4486
+ * Text stroke color as a CSS color, e.g. "#FFFFFF" or "white".
4487
+ */
4488
+ textStrokeColor : string ;
4489
+ /**
4490
+ * Text stroke width as a CSS stroke-width value.
4491
+ */
4492
+ textStrokeWidth : string ;
4240
4493
  /**
4241
4494
  * Whether or not line wrapping should be applied to the cue.
4242
4495
  */
@@ -4519,7 +4772,7 @@ nameSpan : HTMLElement ;
4519
4772
  }
4520
4773
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/ui/externs/ui.js
4521
4774
  declare namespace shaka.extern {
4522
- type UIConfiguration = { addBigPlayButton : boolean , addSeekBar : boolean , castReceiverAppId : string , clearBufferOnQualityChange : boolean , controlPanelElements : string [] , doubleClickForFullscreen : boolean , enableFullscreenOnRotation : boolean , enableKeyboardPlaybackControls : boolean , fadeDelay : number , forceLandscapeOnFullscreen : boolean , overflowMenuButtons : string [] , seekBarColors : shaka.extern.UISeekBarColors , showUnbufferedStart : boolean , trackLabelFormat : shaka.ui.Overlay.TrackLabelFormat , volumeBarColors : shaka.extern.UIVolumeBarColors } ;
4775
+ type UIConfiguration = { addBigPlayButton : boolean , addSeekBar : boolean , castReceiverAppId : string , clearBufferOnQualityChange : boolean , contextMenuElements : string [] , controlPanelElements : string [] , customContextMenu : boolean , doubleClickForFullscreen : boolean , enableFullscreenOnRotation : boolean , enableKeyboardPlaybackControls : boolean , enableTooltips : boolean , fadeDelay : number , fastForwardRates : number [] , forceLandscapeOnFullscreen : boolean , overflowMenuButtons : string [] , playbackRates : number [] , rewindRates : number [] , seekBarColors : shaka.extern.UISeekBarColors , showUnbufferedStart : boolean , singleClickForPlayAndPause : boolean , statisticsList : string [] , trackLabelFormat : shaka.ui.Overlay.TrackLabelFormat , volumeBarColors : shaka.extern.UIVolumeBarColors } ;
4523
4776
  }
4524
4777
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/ui/externs/ui.js
4525
4778
  declare namespace shaka.extern {