shaka-player 3.1.3 → 3.2.2

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 (182) hide show
  1. package/AUTHORS +3 -0
  2. package/CHANGELOG.md +175 -3
  3. package/CONTRIBUTORS +3 -0
  4. package/README.md +4 -4
  5. package/build/generateExterns.js +1 -1
  6. package/build/types/polyfill +1 -0
  7. package/demo/common/asset.js +9 -7
  8. package/demo/common/assets.js +11 -2
  9. package/demo/common/message_ids.js +2 -1
  10. package/demo/config.js +5 -2
  11. package/demo/index.html +1 -1
  12. package/demo/locales/en.json +2 -1
  13. package/demo/locales/source.json +8 -4
  14. package/demo/main.js +2 -1
  15. package/dist/controls.css +2 -2
  16. package/dist/controls.css.map +1 -1
  17. package/dist/demo.compiled.debug.js +15 -15
  18. package/dist/demo.compiled.debug.map +2 -2
  19. package/dist/demo.compiled.js +15 -15
  20. package/dist/demo.compiled.map +2 -2
  21. package/dist/deps.js +22 -21
  22. package/dist/locales.js +36 -36
  23. package/dist/receiver.compiled.debug.js +9 -9
  24. package/dist/receiver.compiled.debug.map +2 -2
  25. package/dist/receiver.compiled.js +9 -9
  26. package/dist/receiver.compiled.map +2 -2
  27. package/dist/shaka-player.compiled.d.ts +58 -10
  28. package/dist/shaka-player.compiled.debug.d.ts +58 -10
  29. package/dist/shaka-player.compiled.debug.externs.js +777 -717
  30. package/dist/shaka-player.compiled.debug.js +639 -607
  31. package/dist/shaka-player.compiled.debug.map +4 -4
  32. package/dist/shaka-player.compiled.externs.js +777 -717
  33. package/dist/shaka-player.compiled.js +826 -819
  34. package/dist/shaka-player.compiled.map +4 -4
  35. package/dist/shaka-player.ui.d.ts +58 -10
  36. package/dist/shaka-player.ui.debug.d.ts +58 -10
  37. package/dist/shaka-player.ui.debug.externs.js +529 -469
  38. package/dist/shaka-player.ui.debug.js +676 -645
  39. package/dist/shaka-player.ui.debug.map +4 -4
  40. package/dist/shaka-player.ui.externs.js +529 -469
  41. package/dist/shaka-player.ui.js +963 -955
  42. package/dist/shaka-player.ui.map +4 -4
  43. package/docs/tutorials/fairplay.md +1 -1
  44. package/docs/tutorials/ui.md +5 -5
  45. package/externs/aria.js +6 -0
  46. package/externs/shaka/ads.js +24 -1
  47. package/externs/shaka/manifest.js +6 -1
  48. package/externs/shaka/offline.js +5 -0
  49. package/externs/shaka/player.js +53 -9
  50. package/externs/shaka/text.js +10 -10
  51. package/externs/texttrack.js +3 -0
  52. package/karma.conf.js +1 -0
  53. package/lib/ads/ad_manager.js +16 -15
  54. package/lib/ads/client_side_ad_manager.js +52 -88
  55. package/lib/ads/server_side_ad_manager.js +26 -12
  56. package/lib/cast/cast_proxy.js +11 -2
  57. package/lib/cast/cast_receiver.js +2 -1
  58. package/lib/cast/cast_sender.js +2 -2
  59. package/lib/cast/cast_utils.js +6 -1
  60. package/lib/cea/cea608_data_channel.js +56 -56
  61. package/lib/cea/cea608_memory.js +33 -33
  62. package/lib/cea/cea708_service.js +43 -43
  63. package/lib/cea/cea708_window.js +38 -38
  64. package/lib/cea/cea_decoder.js +13 -14
  65. package/lib/cea/cea_utils.js +23 -23
  66. package/lib/cea/dtvcc_packet_builder.js +7 -7
  67. package/lib/cea/i_caption_decoder.js +2 -3
  68. package/lib/cea/i_cea_parser.js +2 -2
  69. package/lib/cea/mp4_cea_parser.js +6 -6
  70. package/lib/dash/dash_parser.js +98 -2
  71. package/lib/dash/segment_list.js +1 -1
  72. package/lib/dash/segment_template.js +1 -1
  73. package/lib/hls/hls_parser.js +159 -29
  74. package/lib/media/closed_caption_parser.js +1 -2
  75. package/lib/media/drm_engine.js +169 -192
  76. package/lib/media/gap_jumping_controller.js +4 -2
  77. package/lib/media/media_source_engine.js +1 -2
  78. package/lib/media/segment_index.js +3 -1
  79. package/lib/media/segment_reference.js +19 -2
  80. package/lib/media/streaming_engine.js +8 -7
  81. package/lib/net/networking_engine.js +3 -1
  82. package/lib/offline/download_manager.js +1 -2
  83. package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
  84. package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
  85. package/lib/offline/manifest_converter.js +3 -1
  86. package/lib/offline/storage.js +12 -14
  87. package/lib/player.js +437 -167
  88. package/lib/polyfill/aria.js +82 -0
  89. package/lib/polyfill/media_capabilities.js +7 -1
  90. package/lib/polyfill/mediasource.js +6 -0
  91. package/lib/polyfill/orientation.js +1 -1
  92. package/lib/polyfill/patchedmediakeys_apple.js +4 -4
  93. package/lib/polyfill/patchedmediakeys_ms.js +4 -4
  94. package/lib/polyfill/patchedmediakeys_webkit.js +4 -4
  95. package/lib/routing/walker.js +2 -3
  96. package/lib/text/mp4_ttml_parser.js +3 -0
  97. package/lib/text/srt_text_parser.js +4 -4
  98. package/lib/text/text_engine.js +16 -4
  99. package/lib/text/ttml_text_parser.js +5 -0
  100. package/lib/text/ui_text_displayer.js +85 -37
  101. package/lib/text/vtt_text_parser.js +2 -2
  102. package/lib/text/web_vtt_generator.js +55 -12
  103. package/lib/util/error.js +6 -0
  104. package/lib/util/fake_event.js +53 -7
  105. package/lib/util/manifest_parser_utils.js +1 -0
  106. package/lib/util/mp4_box_parsers.js +20 -20
  107. package/lib/util/multi_map.js +8 -0
  108. package/lib/util/periods.js +4 -1
  109. package/lib/util/platform.js +13 -1
  110. package/lib/util/player_configuration.js +13 -1
  111. package/lib/util/stream_utils.js +153 -85
  112. package/lib/util/xml_utils.js +31 -12
  113. package/package.json +1 -1
  114. package/roadmap.md +24 -22
  115. package/shaka-player.uncompiled.js +1 -0
  116. package/test/cast/cast_proxy_unit.js +12 -6
  117. package/test/cast/cast_utils_unit.js +2 -1
  118. package/test/cea/cea608_memory_unit.js +1 -1
  119. package/test/cea/cea708_service_unit.js +8 -8
  120. package/test/cea/cea708_window_unit.js +6 -6
  121. package/test/cea/cea_decoder_unit.js +1 -1
  122. package/test/cea/dtvcc_packet_builder_unit.js +2 -2
  123. package/test/dash/dash_parser_manifest_unit.js +230 -2
  124. package/test/hls/hls_parser_unit.js +255 -1
  125. package/test/media/closed_caption_parser_unit.js +6 -1
  126. package/test/media/drm_engine_integration.js +86 -12
  127. package/test/media/drm_engine_unit.js +353 -450
  128. package/test/offline/manifest_convert_unit.js +2 -0
  129. package/test/offline/storage_integration.js +9 -19
  130. package/test/player_integration.js +90 -0
  131. package/test/player_src_equals_integration.js +52 -0
  132. package/test/player_unit.js +11 -33
  133. package/test/test/assets/3675/chunk-stream0-00001.m4s +0 -0
  134. package/test/test/assets/3675/chunk-stream0-00002.m4s +0 -0
  135. package/test/test/assets/3675/chunk-stream0-00003.m4s +0 -0
  136. package/test/test/assets/3675/chunk-stream0-00004.m4s +0 -0
  137. package/test/test/assets/3675/chunk-stream0-00005.m4s +0 -0
  138. package/test/test/assets/3675/chunk-stream0-00006.m4s +0 -0
  139. package/test/test/assets/3675/chunk-stream0-00007.m4s +0 -0
  140. package/test/test/assets/3675/dash_0.mpd +30 -0
  141. package/test/test/assets/3675/dash_1.mpd +30 -0
  142. package/test/test/assets/3675/dash_2.mpd +30 -0
  143. package/test/test/assets/3675/dash_3.mpd +30 -0
  144. package/test/test/assets/3675/dash_4.mpd +30 -0
  145. package/test/test/assets/3675/dash_5.mpd +26 -0
  146. package/test/test/assets/3675/init-stream0.m4s +0 -0
  147. package/test/test/assets/chapters.srt +11 -0
  148. package/test/test/assets/chapters.vtt +10 -0
  149. package/test/test/util/cea_utils.js +12 -12
  150. package/test/test/util/fake_ad_manager.js +8 -1
  151. package/test/test/util/manifest_generator.js +2 -0
  152. package/test/test/util/manifest_parser_util.js +3 -1
  153. package/test/text/ttml_text_parser_unit.js +9 -0
  154. package/test/text/ui_text_displayer_unit.js +29 -17
  155. package/test/text/web_vtt_generator_unit.js +81 -7
  156. package/test/ui/localization_unit.js +15 -14
  157. package/test/ui/text_displayer_layout_unit.js +13 -1
  158. package/test/util/stream_utils_unit.js +153 -10
  159. package/ui/airplay_button.js +1 -1
  160. package/ui/audio_language_selection.js +2 -5
  161. package/ui/cast_button.js +6 -9
  162. package/ui/constants.js +0 -3
  163. package/ui/controls.js +4 -6
  164. package/ui/fast_forward_button.js +2 -3
  165. package/ui/fullscreen_button.js +1 -3
  166. package/ui/language_utils.js +1 -1
  167. package/ui/less/containers.less +3 -7
  168. package/ui/locales/ru.json +6 -6
  169. package/ui/localization.js +28 -51
  170. package/ui/loop_button.js +1 -3
  171. package/ui/mute_button.js +1 -3
  172. package/ui/overflow_menu.js +2 -3
  173. package/ui/pip_button.js +7 -10
  174. package/ui/playback_rate_selection.js +3 -6
  175. package/ui/presentation_time.js +1 -3
  176. package/ui/resolution_selection.js +4 -7
  177. package/ui/rewind_button.js +2 -3
  178. package/ui/seek_bar.js +2 -4
  179. package/ui/spacer.js +1 -1
  180. package/ui/text_selection.js +8 -11
  181. package/ui/ui_utils.js +1 -1
  182. package/ui/volume_bar.js +1 -3
@@ -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>.
@@ -453,6 +475,7 @@ declare namespace shaka.ads {
453
475
  */
454
476
  class AdManager extends shaka.util.FakeEventTarget implements shaka.extern.IAdManager , shaka.util.IReleasable {
455
477
  private noStructuralTyping_shaka_ads_AdManager : any;
478
+ getServerSideCuePoints ( ) : shaka.extern.AdCuePoint [] ;
456
479
  getStats ( ) : shaka.extern.AdsStats ;
457
480
  initClientSide (adContainer : any , video : any ) : any ;
458
481
  initServerSide (adContainer : any , video : any ) : any ;
@@ -1096,7 +1119,7 @@ declare namespace shaka.media {
1096
1119
  */
1097
1120
  class SegmentReference {
1098
1121
  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 [] ) ;
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 ) ;
1100
1123
  /**
1101
1124
  * Returns the offset from the start of the resource to the end of the
1102
1125
  * segment, inclusive. A value of null indicates that the segment extends to
@@ -1116,6 +1139,10 @@ declare namespace shaka.media {
1116
1139
  * Returns the segment's start time in seconds.
1117
1140
  */
1118
1141
  getStartTime ( ) : number ;
1142
+ /**
1143
+ * Returns the segment's tiles layout. Only defined in image segments.
1144
+ */
1145
+ getTilesLayout ( ) : string | null ;
1119
1146
  /**
1120
1147
  * Creates and returns the URIs of the resource containing the segment.
1121
1148
  */
@@ -1277,6 +1304,7 @@ declare namespace shaka.net.NetworkingEngine {
1277
1304
  LICENSE = 2.0 ,
1278
1305
  MANIFEST = 0.0 ,
1279
1306
  SEGMENT = 1.0 ,
1307
+ SERVER_CERTIFICATE = 5.0 ,
1280
1308
  TIMING = 4.0 ,
1281
1309
  }
1282
1310
  }
@@ -1411,6 +1439,16 @@ declare namespace shaka {
1411
1439
  }
1412
1440
  }
1413
1441
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1442
+ declare namespace shaka.polyfill {
1443
+ class Aria {
1444
+ private noStructuralTyping_shaka_polyfill_Aria : any;
1445
+ /**
1446
+ * Install the polyfill if needed.
1447
+ */
1448
+ static install ( ) : any ;
1449
+ }
1450
+ }
1451
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1414
1452
  declare namespace shaka.polyfill {
1415
1453
  class EncryptionScheme {
1416
1454
  private noStructuralTyping_shaka_polyfill_EncryptionScheme : any;
@@ -2189,6 +2227,7 @@ declare namespace shaka.util.Error {
2189
2227
  REQUEST_FILTER_ERROR = 1006.0 ,
2190
2228
  RESPONSE_FILTER_ERROR = 1007.0 ,
2191
2229
  RESTRICTIONS_CANNOT_BE_MET = 4012.0 ,
2230
+ SERVER_CERTIFICATE_REQUEST_FAILED = 6017.0 ,
2192
2231
  SERVER_CERTIFICATE_REQUIRED = 6015.0 ,
2193
2232
  SS_AD_MANAGER_NOT_INITIALIZED = 10003.0 ,
2194
2233
  SS_IMA_SDK_MISSING = 10002.0 ,
@@ -2292,7 +2331,7 @@ declare namespace shaka.util {
2292
2331
  declare namespace shaka.util {
2293
2332
  class FakeEvent extends Event {
2294
2333
  private noStructuralTyping_shaka_util_FakeEvent : any;
2295
- constructor (type : string , dict ? : object | null ) ;
2334
+ constructor (type : string , dict ? : Map < string , object | null > | null ) ;
2296
2335
  }
2297
2336
  }
2298
2337
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
@@ -3101,6 +3140,10 @@ declare namespace shaka.extern.AbrManager {
3101
3140
  type SwitchCallback = (a : shaka.extern.Variant , b ? : boolean , c ? : number ) => any ;
3102
3141
  }
3103
3142
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/ads.js
3143
+ declare namespace shaka.extern {
3144
+ type AdCuePoint = { end : number | null , start : number } ;
3145
+ }
3146
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/ads.js
3104
3147
  declare namespace shaka.extern {
3105
3148
  type AdsStats = { loadTimes : number [] , playedCompletely : number , skipped : number , started : number } ;
3106
3149
  }
@@ -3140,6 +3183,7 @@ declare namespace shaka.extern {
3140
3183
  * in the player.
3141
3184
  */
3142
3185
  interface IAdManager extends EventTarget {
3186
+ getServerSideCuePoints ( ) : shaka.extern.AdCuePoint [] ;
3143
3187
  /**
3144
3188
  * Get statistics for the current playback session. If the player is not
3145
3189
  * playing content, this will return an empty stats object.
@@ -3189,7 +3233,7 @@ declare namespace shaka.extern {
3189
3233
  }
3190
3234
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
3191
3235
  declare namespace shaka.extern {
3192
- 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 } ;
3236
+ 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 } ;
3193
3237
  }
3194
3238
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
3195
3239
  declare namespace shaka.extern {
@@ -3365,7 +3409,7 @@ declare namespace shaka.extern {
3365
3409
  }
3366
3410
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3367
3411
  declare namespace shaka.extern {
3368
- type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , dataKey : number , endTime : number , initSegmentKey : number | null , startTime : number , timestampOffset : number } ;
3412
+ type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , dataKey : number , endTime : number , initSegmentKey : number | null , startTime : number , tilesLayout : string | null , timestampOffset : number } ;
3369
3413
  }
3370
3414
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3371
3415
  declare namespace shaka.extern {
@@ -3541,7 +3585,7 @@ declare namespace shaka.extern {
3541
3585
  }
3542
3586
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3543
3587
  declare namespace shaka.extern {
3544
- type AdvancedDrmConfiguration = { audioRobustness : string , distinctiveIdentifierRequired : boolean , individualizationServer : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , sessionType : string , videoRobustness : string } ;
3588
+ type AdvancedDrmConfiguration = { audioRobustness : string , distinctiveIdentifierRequired : boolean , individualizationServer : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , serverCertificateUri : string , sessionType : string , videoRobustness : string } ;
3545
3589
  }
3546
3590
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3547
3591
  declare namespace shaka.extern {
@@ -3553,11 +3597,15 @@ declare namespace shaka.extern {
3553
3597
  }
3554
3598
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3555
3599
  declare namespace shaka.extern {
3556
- 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 } ;
3600
+ type Chapter = { endTime : number , startTime : number , title : string } ;
3601
+ }
3602
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3603
+ declare namespace shaka.extern {
3604
+ 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 } ;
3557
3605
  }
3558
3606
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3559
3607
  declare namespace shaka.extern {
3560
- 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 } ;
3608
+ 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 } ;
3561
3609
  }
3562
3610
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3563
3611
  declare namespace shaka.extern {
@@ -3569,7 +3617,7 @@ declare namespace shaka.extern {
3569
3617
  }
3570
3618
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3571
3619
  declare namespace shaka.extern {
3572
- type HlsManifestConfiguration = { ignoreTextStreamFailures : boolean , useFullSegmentsForStartTime : boolean } ;
3620
+ type HlsManifestConfiguration = { ignoreImageStreamFailures : boolean , ignoreTextStreamFailures : boolean , useFullSegmentsForStartTime : boolean } ;
3573
3621
  }
3574
3622
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3575
3623
  declare namespace shaka.extern {
@@ -3589,7 +3637,7 @@ declare namespace shaka.extern {
3589
3637
  }
3590
3638
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3591
3639
  declare namespace shaka.extern {
3592
- 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 } ;
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 } ;
3593
3641
  }
3594
3642
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3595
3643
  declare namespace shaka.extern {
@@ -3605,7 +3653,7 @@ declare namespace shaka.extern {
3605
3653
  }
3606
3654
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3607
3655
  declare namespace shaka.extern {
3608
- 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 } ;
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 } ;
3609
3657
  }
3610
3658
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3611
3659
  declare namespace shaka.extern {
@@ -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>.
@@ -453,6 +475,7 @@ declare namespace shaka.ads {
453
475
  */
454
476
  class AdManager extends shaka.util.FakeEventTarget implements shaka.extern.IAdManager , shaka.util.IReleasable {
455
477
  private noStructuralTyping_shaka_ads_AdManager : any;
478
+ getServerSideCuePoints ( ) : shaka.extern.AdCuePoint [] ;
456
479
  getStats ( ) : shaka.extern.AdsStats ;
457
480
  initClientSide (adContainer : any , video : any ) : any ;
458
481
  initServerSide (adContainer : any , video : any ) : any ;
@@ -1096,7 +1119,7 @@ declare namespace shaka.media {
1096
1119
  */
1097
1120
  class SegmentReference {
1098
1121
  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 [] ) ;
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 ) ;
1100
1123
  /**
1101
1124
  * Returns the offset from the start of the resource to the end of the
1102
1125
  * segment, inclusive. A value of null indicates that the segment extends to
@@ -1116,6 +1139,10 @@ declare namespace shaka.media {
1116
1139
  * Returns the segment's start time in seconds.
1117
1140
  */
1118
1141
  getStartTime ( ) : number ;
1142
+ /**
1143
+ * Returns the segment's tiles layout. Only defined in image segments.
1144
+ */
1145
+ getTilesLayout ( ) : string | null ;
1119
1146
  /**
1120
1147
  * Creates and returns the URIs of the resource containing the segment.
1121
1148
  */
@@ -1277,6 +1304,7 @@ declare namespace shaka.net.NetworkingEngine {
1277
1304
  LICENSE = 2.0 ,
1278
1305
  MANIFEST = 0.0 ,
1279
1306
  SEGMENT = 1.0 ,
1307
+ SERVER_CERTIFICATE = 5.0 ,
1280
1308
  TIMING = 4.0 ,
1281
1309
  }
1282
1310
  }
@@ -1411,6 +1439,16 @@ declare namespace shaka {
1411
1439
  }
1412
1440
  }
1413
1441
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
1442
+ declare namespace shaka.polyfill {
1443
+ class Aria {
1444
+ private noStructuralTyping_shaka_polyfill_Aria : any;
1445
+ /**
1446
+ * Install the polyfill if needed.
1447
+ */
1448
+ static install ( ) : any ;
1449
+ }
1450
+ }
1451
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
1414
1452
  declare namespace shaka.polyfill {
1415
1453
  class EncryptionScheme {
1416
1454
  private noStructuralTyping_shaka_polyfill_EncryptionScheme : any;
@@ -2189,6 +2227,7 @@ declare namespace shaka.util.Error {
2189
2227
  REQUEST_FILTER_ERROR = 1006.0 ,
2190
2228
  RESPONSE_FILTER_ERROR = 1007.0 ,
2191
2229
  RESTRICTIONS_CANNOT_BE_MET = 4012.0 ,
2230
+ SERVER_CERTIFICATE_REQUEST_FAILED = 6017.0 ,
2192
2231
  SERVER_CERTIFICATE_REQUIRED = 6015.0 ,
2193
2232
  SS_AD_MANAGER_NOT_INITIALIZED = 10003.0 ,
2194
2233
  SS_IMA_SDK_MISSING = 10002.0 ,
@@ -2292,7 +2331,7 @@ declare namespace shaka.util {
2292
2331
  declare namespace shaka.util {
2293
2332
  class FakeEvent extends Event {
2294
2333
  private noStructuralTyping_shaka_util_FakeEvent : any;
2295
- constructor (type : string , dict ? : object | null ) ;
2334
+ constructor (type : string , dict ? : Map < string , object | null > | null ) ;
2296
2335
  }
2297
2336
  }
2298
2337
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
@@ -3101,6 +3140,10 @@ declare namespace shaka.extern.AbrManager {
3101
3140
  type SwitchCallback = (a : shaka.extern.Variant , b ? : boolean , c ? : number ) => any ;
3102
3141
  }
3103
3142
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/ads.js
3143
+ declare namespace shaka.extern {
3144
+ type AdCuePoint = { end : number | null , start : number } ;
3145
+ }
3146
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/ads.js
3104
3147
  declare namespace shaka.extern {
3105
3148
  type AdsStats = { loadTimes : number [] , playedCompletely : number , skipped : number , started : number } ;
3106
3149
  }
@@ -3140,6 +3183,7 @@ declare namespace shaka.extern {
3140
3183
  * in the player.
3141
3184
  */
3142
3185
  interface IAdManager extends EventTarget {
3186
+ getServerSideCuePoints ( ) : shaka.extern.AdCuePoint [] ;
3143
3187
  /**
3144
3188
  * Get statistics for the current playback session. If the player is not
3145
3189
  * playing content, this will return an empty stats object.
@@ -3189,7 +3233,7 @@ declare namespace shaka.extern {
3189
3233
  }
3190
3234
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
3191
3235
  declare namespace shaka.extern {
3192
- 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 } ;
3236
+ 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 } ;
3193
3237
  }
3194
3238
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
3195
3239
  declare namespace shaka.extern {
@@ -3365,7 +3409,7 @@ declare namespace shaka.extern {
3365
3409
  }
3366
3410
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3367
3411
  declare namespace shaka.extern {
3368
- type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , dataKey : number , endTime : number , initSegmentKey : number | null , startTime : number , timestampOffset : number } ;
3412
+ type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , dataKey : number , endTime : number , initSegmentKey : number | null , startTime : number , tilesLayout : string | null , timestampOffset : number } ;
3369
3413
  }
3370
3414
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3371
3415
  declare namespace shaka.extern {
@@ -3541,7 +3585,7 @@ declare namespace shaka.extern {
3541
3585
  }
3542
3586
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3543
3587
  declare namespace shaka.extern {
3544
- type AdvancedDrmConfiguration = { audioRobustness : string , distinctiveIdentifierRequired : boolean , individualizationServer : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , sessionType : string , videoRobustness : string } ;
3588
+ type AdvancedDrmConfiguration = { audioRobustness : string , distinctiveIdentifierRequired : boolean , individualizationServer : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , serverCertificateUri : string , sessionType : string , videoRobustness : string } ;
3545
3589
  }
3546
3590
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3547
3591
  declare namespace shaka.extern {
@@ -3553,11 +3597,15 @@ declare namespace shaka.extern {
3553
3597
  }
3554
3598
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3555
3599
  declare namespace shaka.extern {
3556
- 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 } ;
3600
+ type Chapter = { endTime : number , startTime : number , title : string } ;
3601
+ }
3602
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3603
+ declare namespace shaka.extern {
3604
+ 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 } ;
3557
3605
  }
3558
3606
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3559
3607
  declare namespace shaka.extern {
3560
- 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 } ;
3608
+ 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 } ;
3561
3609
  }
3562
3610
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3563
3611
  declare namespace shaka.extern {
@@ -3569,7 +3617,7 @@ declare namespace shaka.extern {
3569
3617
  }
3570
3618
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3571
3619
  declare namespace shaka.extern {
3572
- type HlsManifestConfiguration = { ignoreTextStreamFailures : boolean , useFullSegmentsForStartTime : boolean } ;
3620
+ type HlsManifestConfiguration = { ignoreImageStreamFailures : boolean , ignoreTextStreamFailures : boolean , useFullSegmentsForStartTime : boolean } ;
3573
3621
  }
3574
3622
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3575
3623
  declare namespace shaka.extern {
@@ -3589,7 +3637,7 @@ declare namespace shaka.extern {
3589
3637
  }
3590
3638
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3591
3639
  declare namespace shaka.extern {
3592
- 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 } ;
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 } ;
3593
3641
  }
3594
3642
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3595
3643
  declare namespace shaka.extern {
@@ -3605,7 +3653,7 @@ declare namespace shaka.extern {
3605
3653
  }
3606
3654
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3607
3655
  declare namespace shaka.extern {
3608
- 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 } ;
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 } ;
3609
3657
  }
3610
3658
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3611
3659
  declare namespace shaka.extern {