shaka-player 3.1.5 → 3.2.3

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 (134) hide show
  1. package/CHANGELOG.md +129 -6
  2. package/README.md +4 -4
  3. package/build/types/polyfill +1 -0
  4. package/demo/common/asset.js +9 -7
  5. package/demo/common/assets.js +10 -1
  6. package/demo/common/message_ids.js +2 -1
  7. package/demo/config.js +5 -2
  8. package/demo/index.html +1 -1
  9. package/demo/locales/en.json +2 -1
  10. package/demo/locales/source.json +8 -4
  11. package/demo/main.js +2 -1
  12. package/dist/demo.compiled.debug.js +14 -14
  13. package/dist/demo.compiled.debug.map +2 -2
  14. package/dist/demo.compiled.js +14 -14
  15. package/dist/demo.compiled.map +2 -2
  16. package/dist/deps.js +21 -20
  17. package/dist/locales.js +30 -30
  18. package/dist/receiver.compiled.debug.js +8 -8
  19. package/dist/receiver.compiled.debug.map +2 -2
  20. package/dist/receiver.compiled.js +8 -8
  21. package/dist/receiver.compiled.map +2 -2
  22. package/dist/shaka-player.compiled.d.ts +63 -10
  23. package/dist/shaka-player.compiled.debug.d.ts +63 -10
  24. package/dist/shaka-player.compiled.debug.externs.js +786 -716
  25. package/dist/shaka-player.compiled.debug.js +563 -534
  26. package/dist/shaka-player.compiled.debug.map +4 -4
  27. package/dist/shaka-player.compiled.externs.js +786 -716
  28. package/dist/shaka-player.compiled.js +820 -809
  29. package/dist/shaka-player.compiled.map +4 -4
  30. package/dist/shaka-player.ui.d.ts +63 -10
  31. package/dist/shaka-player.ui.debug.d.ts +63 -10
  32. package/dist/shaka-player.ui.debug.externs.js +542 -472
  33. package/dist/shaka-player.ui.debug.js +594 -566
  34. package/dist/shaka-player.ui.debug.map +4 -4
  35. package/dist/shaka-player.ui.externs.js +542 -472
  36. package/dist/shaka-player.ui.js +938 -927
  37. package/dist/shaka-player.ui.map +4 -4
  38. package/docs/tutorials/ui.md +5 -5
  39. package/externs/aria.js +6 -0
  40. package/externs/shaka/ads.js +24 -1
  41. package/externs/shaka/manifest.js +6 -1
  42. package/externs/shaka/offline.js +5 -0
  43. package/externs/shaka/player.js +61 -9
  44. package/externs/shaka/text.js +10 -10
  45. package/externs/texttrack.js +3 -0
  46. package/lib/ads/ad_manager.js +16 -15
  47. package/lib/ads/client_side_ad_manager.js +6 -2
  48. package/lib/ads/server_side_ad_manager.js +19 -2
  49. package/lib/cast/cast_proxy.js +8 -0
  50. package/lib/cast/cast_utils.js +6 -1
  51. package/lib/cea/cea608_data_channel.js +56 -56
  52. package/lib/cea/cea608_memory.js +33 -33
  53. package/lib/cea/cea708_service.js +43 -43
  54. package/lib/cea/cea708_window.js +38 -38
  55. package/lib/cea/cea_decoder.js +13 -14
  56. package/lib/cea/cea_utils.js +23 -23
  57. package/lib/cea/dtvcc_packet_builder.js +7 -7
  58. package/lib/cea/i_caption_decoder.js +2 -3
  59. package/lib/cea/i_cea_parser.js +2 -2
  60. package/lib/cea/mp4_cea_parser.js +6 -6
  61. package/lib/dash/dash_parser.js +5 -0
  62. package/lib/hls/hls_parser.js +159 -12
  63. package/lib/media/closed_caption_parser.js +1 -2
  64. package/lib/media/drm_engine.js +162 -192
  65. package/lib/media/segment_index.js +4 -1
  66. package/lib/media/segment_reference.js +37 -2
  67. package/lib/media/streaming_engine.js +6 -6
  68. package/lib/net/networking_engine.js +1 -0
  69. package/lib/offline/download_manager.js +1 -2
  70. package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
  71. package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
  72. package/lib/offline/manifest_converter.js +3 -1
  73. package/lib/offline/storage.js +12 -14
  74. package/lib/player.js +426 -149
  75. package/lib/polyfill/aria.js +82 -0
  76. package/lib/routing/walker.js +2 -3
  77. package/lib/text/srt_text_parser.js +4 -4
  78. package/lib/text/text_engine.js +2 -2
  79. package/lib/text/vtt_text_parser.js +2 -2
  80. package/lib/text/web_vtt_generator.js +55 -12
  81. package/lib/util/error.js +6 -0
  82. package/lib/util/manifest_parser_utils.js +1 -0
  83. package/lib/util/mp4_box_parsers.js +20 -20
  84. package/lib/util/multi_map.js +8 -0
  85. package/lib/util/player_configuration.js +13 -1
  86. package/lib/util/stream_utils.js +168 -88
  87. package/lib/util/xml_utils.js +31 -12
  88. package/package.json +1 -1
  89. package/roadmap.md +24 -22
  90. package/shaka-player.uncompiled.js +1 -0
  91. package/test/cast/cast_utils_unit.js +1 -0
  92. package/test/cea/cea608_memory_unit.js +1 -1
  93. package/test/cea/cea708_service_unit.js +8 -8
  94. package/test/cea/cea708_window_unit.js +6 -6
  95. package/test/cea/cea_decoder_unit.js +1 -1
  96. package/test/cea/dtvcc_packet_builder_unit.js +2 -2
  97. package/test/dash/dash_parser_manifest_unit.js +43 -1
  98. package/test/hls/hls_parser_unit.js +250 -0
  99. package/test/media/drm_engine_integration.js +86 -12
  100. package/test/media/drm_engine_unit.js +310 -450
  101. package/test/offline/manifest_convert_unit.js +2 -0
  102. package/test/offline/storage_integration.js +9 -19
  103. package/test/player_integration.js +85 -0
  104. package/test/player_src_equals_integration.js +85 -0
  105. package/test/player_unit.js +25 -37
  106. package/test/test/assets/chapters.srt +11 -0
  107. package/test/test/assets/chapters.vtt +10 -0
  108. package/test/test/assets/chapters2.vtt +10 -0
  109. package/test/test/util/cea_utils.js +12 -12
  110. package/test/test/util/fake_ad_manager.js +7 -0
  111. package/test/test/util/manifest_generator.js +2 -0
  112. package/test/test/util/manifest_parser_util.js +3 -1
  113. package/test/text/web_vtt_generator_unit.js +81 -7
  114. package/test/util/stream_utils_unit.js +118 -10
  115. package/ui/airplay_button.js +1 -1
  116. package/ui/audio_language_selection.js +2 -5
  117. package/ui/cast_button.js +4 -6
  118. package/ui/constants.js +0 -3
  119. package/ui/fast_forward_button.js +2 -3
  120. package/ui/fullscreen_button.js +1 -3
  121. package/ui/language_utils.js +1 -1
  122. package/ui/loop_button.js +1 -3
  123. package/ui/mute_button.js +1 -3
  124. package/ui/overflow_menu.js +2 -3
  125. package/ui/pip_button.js +5 -7
  126. package/ui/playback_rate_selection.js +3 -6
  127. package/ui/presentation_time.js +1 -3
  128. package/ui/resolution_selection.js +4 -7
  129. package/ui/rewind_button.js +2 -3
  130. package/ui/seek_bar.js +2 -4
  131. package/ui/spacer.js +1 -1
  132. package/ui/text_selection.js +8 -11
  133. package/ui/ui_utils.js +1 -1
  134. 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 , tileDuration ? : number | 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,15 @@ 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 explicit tile duration.
1144
+ * Only defined in image segments.
1145
+ */
1146
+ getTileDuration ( ) : number | null ;
1147
+ /**
1148
+ * Returns the segment's tiles layout. Only defined in image segments.
1149
+ */
1150
+ getTilesLayout ( ) : string | null ;
1119
1151
  /**
1120
1152
  * Creates and returns the URIs of the resource containing the segment.
1121
1153
  */
@@ -1277,6 +1309,7 @@ declare namespace shaka.net.NetworkingEngine {
1277
1309
  LICENSE = 2.0 ,
1278
1310
  MANIFEST = 0.0 ,
1279
1311
  SEGMENT = 1.0 ,
1312
+ SERVER_CERTIFICATE = 5.0 ,
1280
1313
  TIMING = 4.0 ,
1281
1314
  }
1282
1315
  }
@@ -1411,6 +1444,16 @@ declare namespace shaka {
1411
1444
  }
1412
1445
  }
1413
1446
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1447
+ declare namespace shaka.polyfill {
1448
+ class Aria {
1449
+ private noStructuralTyping_shaka_polyfill_Aria : any;
1450
+ /**
1451
+ * Install the polyfill if needed.
1452
+ */
1453
+ static install ( ) : any ;
1454
+ }
1455
+ }
1456
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
1414
1457
  declare namespace shaka.polyfill {
1415
1458
  class EncryptionScheme {
1416
1459
  private noStructuralTyping_shaka_polyfill_EncryptionScheme : any;
@@ -2196,6 +2239,7 @@ declare namespace shaka.util.Error {
2196
2239
  REQUEST_FILTER_ERROR = 1006.0 ,
2197
2240
  RESPONSE_FILTER_ERROR = 1007.0 ,
2198
2241
  RESTRICTIONS_CANNOT_BE_MET = 4012.0 ,
2242
+ SERVER_CERTIFICATE_REQUEST_FAILED = 6017.0 ,
2199
2243
  SERVER_CERTIFICATE_REQUIRED = 6015.0 ,
2200
2244
  SS_AD_MANAGER_NOT_INITIALIZED = 10003.0 ,
2201
2245
  SS_IMA_SDK_MISSING = 10002.0 ,
@@ -3108,6 +3152,10 @@ declare namespace shaka.extern.AbrManager {
3108
3152
  type SwitchCallback = (a : shaka.extern.Variant , b ? : boolean , c ? : number ) => any ;
3109
3153
  }
3110
3154
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/ads.js
3155
+ declare namespace shaka.extern {
3156
+ type AdCuePoint = { end : number | null , start : number } ;
3157
+ }
3158
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/ads.js
3111
3159
  declare namespace shaka.extern {
3112
3160
  type AdsStats = { loadTimes : number [] , playedCompletely : number , skipped : number , started : number } ;
3113
3161
  }
@@ -3147,6 +3195,7 @@ declare namespace shaka.extern {
3147
3195
  * in the player.
3148
3196
  */
3149
3197
  interface IAdManager extends EventTarget {
3198
+ getServerSideCuePoints ( ) : shaka.extern.AdCuePoint [] ;
3150
3199
  /**
3151
3200
  * Get statistics for the current playback session. If the player is not
3152
3201
  * playing content, this will return an empty stats object.
@@ -3196,7 +3245,7 @@ declare namespace shaka.extern {
3196
3245
  }
3197
3246
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
3198
3247
  declare namespace shaka.extern {
3199
- 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 } ;
3248
+ 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 } ;
3200
3249
  }
3201
3250
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
3202
3251
  declare namespace shaka.extern {
@@ -3372,7 +3421,7 @@ declare namespace shaka.extern {
3372
3421
  }
3373
3422
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3374
3423
  declare namespace shaka.extern {
3375
- type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , dataKey : number , endTime : number , initSegmentKey : number | null , startTime : number , timestampOffset : number } ;
3424
+ type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , dataKey : number , endTime : number , initSegmentKey : number | null , startTime : number , tilesLayout : string | null , timestampOffset : number } ;
3376
3425
  }
3377
3426
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3378
3427
  declare namespace shaka.extern {
@@ -3548,7 +3597,7 @@ declare namespace shaka.extern {
3548
3597
  }
3549
3598
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3550
3599
  declare namespace shaka.extern {
3551
- type AdvancedDrmConfiguration = { audioRobustness : string , distinctiveIdentifierRequired : boolean , individualizationServer : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , sessionType : string , videoRobustness : string } ;
3600
+ type AdvancedDrmConfiguration = { audioRobustness : string , distinctiveIdentifierRequired : boolean , individualizationServer : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , serverCertificateUri : string , sessionType : string , videoRobustness : string } ;
3552
3601
  }
3553
3602
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3554
3603
  declare namespace shaka.extern {
@@ -3560,11 +3609,15 @@ declare namespace shaka.extern {
3560
3609
  }
3561
3610
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3562
3611
  declare namespace shaka.extern {
3563
- 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 } ;
3612
+ type Chapter = { endTime : number , startTime : number , title : string } ;
3613
+ }
3614
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3615
+ declare namespace shaka.extern {
3616
+ 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 } ;
3564
3617
  }
3565
3618
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3566
3619
  declare namespace shaka.extern {
3567
- 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 } ;
3620
+ 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 } ;
3568
3621
  }
3569
3622
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3570
3623
  declare namespace shaka.extern {
@@ -3576,7 +3629,7 @@ declare namespace shaka.extern {
3576
3629
  }
3577
3630
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3578
3631
  declare namespace shaka.extern {
3579
- type HlsManifestConfiguration = { ignoreTextStreamFailures : boolean , useFullSegmentsForStartTime : boolean } ;
3632
+ type HlsManifestConfiguration = { ignoreImageStreamFailures : boolean , ignoreTextStreamFailures : boolean , useFullSegmentsForStartTime : boolean } ;
3580
3633
  }
3581
3634
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3582
3635
  declare namespace shaka.extern {
@@ -3596,7 +3649,7 @@ declare namespace shaka.extern {
3596
3649
  }
3597
3650
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3598
3651
  declare namespace shaka.extern {
3599
- 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 } ;
3652
+ 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 } ;
3600
3653
  }
3601
3654
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3602
3655
  declare namespace shaka.extern {
@@ -3612,7 +3665,7 @@ declare namespace shaka.extern {
3612
3665
  }
3613
3666
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3614
3667
  declare namespace shaka.extern {
3615
- 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 } ;
3668
+ 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 } ;
3616
3669
  }
3617
3670
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3618
3671
  declare namespace shaka.extern {
@@ -3620,7 +3673,7 @@ declare namespace shaka.extern {
3620
3673
  }
3621
3674
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3622
3675
  declare namespace shaka.extern {
3623
- type Thumbnail = { duration : number , height : number , positionX : number , positionY : number , startTime : number , uris : string [] , width : number } ;
3676
+ type Thumbnail = { duration : number , height : number , imageHeight : number , imageWidth : number , positionX : number , positionY : number , startTime : number , uris : string [] , width : number } ;
3624
3677
  }
3625
3678
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3626
3679
  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 , tileDuration ? : number | 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,15 @@ 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 explicit tile duration.
1144
+ * Only defined in image segments.
1145
+ */
1146
+ getTileDuration ( ) : number | null ;
1147
+ /**
1148
+ * Returns the segment's tiles layout. Only defined in image segments.
1149
+ */
1150
+ getTilesLayout ( ) : string | null ;
1119
1151
  /**
1120
1152
  * Creates and returns the URIs of the resource containing the segment.
1121
1153
  */
@@ -1277,6 +1309,7 @@ declare namespace shaka.net.NetworkingEngine {
1277
1309
  LICENSE = 2.0 ,
1278
1310
  MANIFEST = 0.0 ,
1279
1311
  SEGMENT = 1.0 ,
1312
+ SERVER_CERTIFICATE = 5.0 ,
1280
1313
  TIMING = 4.0 ,
1281
1314
  }
1282
1315
  }
@@ -1411,6 +1444,16 @@ declare namespace shaka {
1411
1444
  }
1412
1445
  }
1413
1446
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
1447
+ declare namespace shaka.polyfill {
1448
+ class Aria {
1449
+ private noStructuralTyping_shaka_polyfill_Aria : any;
1450
+ /**
1451
+ * Install the polyfill if needed.
1452
+ */
1453
+ static install ( ) : any ;
1454
+ }
1455
+ }
1456
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
1414
1457
  declare namespace shaka.polyfill {
1415
1458
  class EncryptionScheme {
1416
1459
  private noStructuralTyping_shaka_polyfill_EncryptionScheme : any;
@@ -2196,6 +2239,7 @@ declare namespace shaka.util.Error {
2196
2239
  REQUEST_FILTER_ERROR = 1006.0 ,
2197
2240
  RESPONSE_FILTER_ERROR = 1007.0 ,
2198
2241
  RESTRICTIONS_CANNOT_BE_MET = 4012.0 ,
2242
+ SERVER_CERTIFICATE_REQUEST_FAILED = 6017.0 ,
2199
2243
  SERVER_CERTIFICATE_REQUIRED = 6015.0 ,
2200
2244
  SS_AD_MANAGER_NOT_INITIALIZED = 10003.0 ,
2201
2245
  SS_IMA_SDK_MISSING = 10002.0 ,
@@ -3108,6 +3152,10 @@ declare namespace shaka.extern.AbrManager {
3108
3152
  type SwitchCallback = (a : shaka.extern.Variant , b ? : boolean , c ? : number ) => any ;
3109
3153
  }
3110
3154
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/ads.js
3155
+ declare namespace shaka.extern {
3156
+ type AdCuePoint = { end : number | null , start : number } ;
3157
+ }
3158
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/ads.js
3111
3159
  declare namespace shaka.extern {
3112
3160
  type AdsStats = { loadTimes : number [] , playedCompletely : number , skipped : number , started : number } ;
3113
3161
  }
@@ -3147,6 +3195,7 @@ declare namespace shaka.extern {
3147
3195
  * in the player.
3148
3196
  */
3149
3197
  interface IAdManager extends EventTarget {
3198
+ getServerSideCuePoints ( ) : shaka.extern.AdCuePoint [] ;
3150
3199
  /**
3151
3200
  * Get statistics for the current playback session. If the player is not
3152
3201
  * playing content, this will return an empty stats object.
@@ -3196,7 +3245,7 @@ declare namespace shaka.extern {
3196
3245
  }
3197
3246
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
3198
3247
  declare namespace shaka.extern {
3199
- 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 } ;
3248
+ 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 } ;
3200
3249
  }
3201
3250
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
3202
3251
  declare namespace shaka.extern {
@@ -3372,7 +3421,7 @@ declare namespace shaka.extern {
3372
3421
  }
3373
3422
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3374
3423
  declare namespace shaka.extern {
3375
- type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , dataKey : number , endTime : number , initSegmentKey : number | null , startTime : number , timestampOffset : number } ;
3424
+ type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , dataKey : number , endTime : number , initSegmentKey : number | null , startTime : number , tilesLayout : string | null , timestampOffset : number } ;
3376
3425
  }
3377
3426
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3378
3427
  declare namespace shaka.extern {
@@ -3548,7 +3597,7 @@ declare namespace shaka.extern {
3548
3597
  }
3549
3598
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3550
3599
  declare namespace shaka.extern {
3551
- type AdvancedDrmConfiguration = { audioRobustness : string , distinctiveIdentifierRequired : boolean , individualizationServer : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , sessionType : string , videoRobustness : string } ;
3600
+ type AdvancedDrmConfiguration = { audioRobustness : string , distinctiveIdentifierRequired : boolean , individualizationServer : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , serverCertificateUri : string , sessionType : string , videoRobustness : string } ;
3552
3601
  }
3553
3602
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3554
3603
  declare namespace shaka.extern {
@@ -3560,11 +3609,15 @@ declare namespace shaka.extern {
3560
3609
  }
3561
3610
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3562
3611
  declare namespace shaka.extern {
3563
- 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 } ;
3612
+ type Chapter = { endTime : number , startTime : number , title : string } ;
3613
+ }
3614
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3615
+ declare namespace shaka.extern {
3616
+ 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 } ;
3564
3617
  }
3565
3618
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3566
3619
  declare namespace shaka.extern {
3567
- 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 } ;
3620
+ 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 } ;
3568
3621
  }
3569
3622
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3570
3623
  declare namespace shaka.extern {
@@ -3576,7 +3629,7 @@ declare namespace shaka.extern {
3576
3629
  }
3577
3630
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3578
3631
  declare namespace shaka.extern {
3579
- type HlsManifestConfiguration = { ignoreTextStreamFailures : boolean , useFullSegmentsForStartTime : boolean } ;
3632
+ type HlsManifestConfiguration = { ignoreImageStreamFailures : boolean , ignoreTextStreamFailures : boolean , useFullSegmentsForStartTime : boolean } ;
3580
3633
  }
3581
3634
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3582
3635
  declare namespace shaka.extern {
@@ -3596,7 +3649,7 @@ declare namespace shaka.extern {
3596
3649
  }
3597
3650
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3598
3651
  declare namespace shaka.extern {
3599
- 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 } ;
3652
+ 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 } ;
3600
3653
  }
3601
3654
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3602
3655
  declare namespace shaka.extern {
@@ -3612,7 +3665,7 @@ declare namespace shaka.extern {
3612
3665
  }
3613
3666
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3614
3667
  declare namespace shaka.extern {
3615
- 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 } ;
3668
+ 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 } ;
3616
3669
  }
3617
3670
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3618
3671
  declare namespace shaka.extern {
@@ -3620,7 +3673,7 @@ declare namespace shaka.extern {
3620
3673
  }
3621
3674
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3622
3675
  declare namespace shaka.extern {
3623
- type Thumbnail = { duration : number , height : number , positionX : number , positionY : number , startTime : number , uris : string [] , width : number } ;
3676
+ type Thumbnail = { duration : number , height : number , imageHeight : number , imageWidth : number , positionX : number , positionY : number , startTime : number , uris : string [] , width : number } ;
3624
3677
  }
3625
3678
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
3626
3679
  declare namespace shaka.extern {