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.ui.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.ui.externs.js
1414
1457
  declare namespace shaka.polyfill {
1415
1458
  class EncryptionScheme {
1416
1459
  private noStructuralTyping_shaka_polyfill_EncryptionScheme : any;
@@ -2655,6 +2698,7 @@ declare namespace shaka.util.Error {
2655
2698
  REQUEST_FILTER_ERROR = 1006.0 ,
2656
2699
  RESPONSE_FILTER_ERROR = 1007.0 ,
2657
2700
  RESTRICTIONS_CANNOT_BE_MET = 4012.0 ,
2701
+ SERVER_CERTIFICATE_REQUEST_FAILED = 6017.0 ,
2658
2702
  SERVER_CERTIFICATE_REQUIRED = 6015.0 ,
2659
2703
  SS_AD_MANAGER_NOT_INITIALIZED = 10003.0 ,
2660
2704
  SS_IMA_SDK_MISSING = 10002.0 ,
@@ -3567,6 +3611,10 @@ declare namespace shaka.extern.AbrManager {
3567
3611
  type SwitchCallback = (a : shaka.extern.Variant , b ? : boolean , c ? : number ) => any ;
3568
3612
  }
3569
3613
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/ads.js
3614
+ declare namespace shaka.extern {
3615
+ type AdCuePoint = { end : number | null , start : number } ;
3616
+ }
3617
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/ads.js
3570
3618
  declare namespace shaka.extern {
3571
3619
  type AdsStats = { loadTimes : number [] , playedCompletely : number , skipped : number , started : number } ;
3572
3620
  }
@@ -3606,6 +3654,7 @@ declare namespace shaka.extern {
3606
3654
  * in the player.
3607
3655
  */
3608
3656
  interface IAdManager extends EventTarget {
3657
+ getServerSideCuePoints ( ) : shaka.extern.AdCuePoint [] ;
3609
3658
  /**
3610
3659
  * Get statistics for the current playback session. If the player is not
3611
3660
  * playing content, this will return an empty stats object.
@@ -3655,7 +3704,7 @@ declare namespace shaka.extern {
3655
3704
  }
3656
3705
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
3657
3706
  declare namespace shaka.extern {
3658
- 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 } ;
3707
+ 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 } ;
3659
3708
  }
3660
3709
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
3661
3710
  declare namespace shaka.extern {
@@ -3831,7 +3880,7 @@ declare namespace shaka.extern {
3831
3880
  }
3832
3881
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3833
3882
  declare namespace shaka.extern {
3834
- type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , dataKey : number , endTime : number , initSegmentKey : number | null , startTime : number , timestampOffset : number } ;
3883
+ type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , dataKey : number , endTime : number , initSegmentKey : number | null , startTime : number , tilesLayout : string | null , timestampOffset : number } ;
3835
3884
  }
3836
3885
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3837
3886
  declare namespace shaka.extern {
@@ -4007,7 +4056,7 @@ declare namespace shaka.extern {
4007
4056
  }
4008
4057
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4009
4058
  declare namespace shaka.extern {
4010
- type AdvancedDrmConfiguration = { audioRobustness : string , distinctiveIdentifierRequired : boolean , individualizationServer : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , sessionType : string , videoRobustness : string } ;
4059
+ type AdvancedDrmConfiguration = { audioRobustness : string , distinctiveIdentifierRequired : boolean , individualizationServer : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , serverCertificateUri : string , sessionType : string , videoRobustness : string } ;
4011
4060
  }
4012
4061
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4013
4062
  declare namespace shaka.extern {
@@ -4019,11 +4068,15 @@ declare namespace shaka.extern {
4019
4068
  }
4020
4069
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4021
4070
  declare namespace shaka.extern {
4022
- 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 } ;
4071
+ type Chapter = { endTime : number , startTime : number , title : string } ;
4072
+ }
4073
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4074
+ declare namespace shaka.extern {
4075
+ 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 } ;
4023
4076
  }
4024
4077
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4025
4078
  declare namespace shaka.extern {
4026
- 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 } ;
4079
+ 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 } ;
4027
4080
  }
4028
4081
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4029
4082
  declare namespace shaka.extern {
@@ -4035,7 +4088,7 @@ declare namespace shaka.extern {
4035
4088
  }
4036
4089
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4037
4090
  declare namespace shaka.extern {
4038
- type HlsManifestConfiguration = { ignoreTextStreamFailures : boolean , useFullSegmentsForStartTime : boolean } ;
4091
+ type HlsManifestConfiguration = { ignoreImageStreamFailures : boolean , ignoreTextStreamFailures : boolean , useFullSegmentsForStartTime : boolean } ;
4039
4092
  }
4040
4093
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4041
4094
  declare namespace shaka.extern {
@@ -4055,7 +4108,7 @@ declare namespace shaka.extern {
4055
4108
  }
4056
4109
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4057
4110
  declare namespace shaka.extern {
4058
- 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 } ;
4111
+ 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 } ;
4059
4112
  }
4060
4113
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4061
4114
  declare namespace shaka.extern {
@@ -4071,7 +4124,7 @@ declare namespace shaka.extern {
4071
4124
  }
4072
4125
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4073
4126
  declare namespace shaka.extern {
4074
- 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 } ;
4127
+ 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 } ;
4075
4128
  }
4076
4129
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4077
4130
  declare namespace shaka.extern {
@@ -4079,7 +4132,7 @@ declare namespace shaka.extern {
4079
4132
  }
4080
4133
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4081
4134
  declare namespace shaka.extern {
4082
- type Thumbnail = { duration : number , height : number , positionX : number , positionY : number , startTime : number , uris : string [] , width : number } ;
4135
+ type Thumbnail = { duration : number , height : number , imageHeight : number , imageWidth : number , positionX : number , positionY : number , startTime : number , uris : string [] , width : number } ;
4083
4136
  }
4084
4137
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4085
4138
  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.ui.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.ui.debug.externs.js
1414
1457
  declare namespace shaka.polyfill {
1415
1458
  class EncryptionScheme {
1416
1459
  private noStructuralTyping_shaka_polyfill_EncryptionScheme : any;
@@ -2655,6 +2698,7 @@ declare namespace shaka.util.Error {
2655
2698
  REQUEST_FILTER_ERROR = 1006.0 ,
2656
2699
  RESPONSE_FILTER_ERROR = 1007.0 ,
2657
2700
  RESTRICTIONS_CANNOT_BE_MET = 4012.0 ,
2701
+ SERVER_CERTIFICATE_REQUEST_FAILED = 6017.0 ,
2658
2702
  SERVER_CERTIFICATE_REQUIRED = 6015.0 ,
2659
2703
  SS_AD_MANAGER_NOT_INITIALIZED = 10003.0 ,
2660
2704
  SS_IMA_SDK_MISSING = 10002.0 ,
@@ -3567,6 +3611,10 @@ declare namespace shaka.extern.AbrManager {
3567
3611
  type SwitchCallback = (a : shaka.extern.Variant , b ? : boolean , c ? : number ) => any ;
3568
3612
  }
3569
3613
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/ads.js
3614
+ declare namespace shaka.extern {
3615
+ type AdCuePoint = { end : number | null , start : number } ;
3616
+ }
3617
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/ads.js
3570
3618
  declare namespace shaka.extern {
3571
3619
  type AdsStats = { loadTimes : number [] , playedCompletely : number , skipped : number , started : number } ;
3572
3620
  }
@@ -3606,6 +3654,7 @@ declare namespace shaka.extern {
3606
3654
  * in the player.
3607
3655
  */
3608
3656
  interface IAdManager extends EventTarget {
3657
+ getServerSideCuePoints ( ) : shaka.extern.AdCuePoint [] ;
3609
3658
  /**
3610
3659
  * Get statistics for the current playback session. If the player is not
3611
3660
  * playing content, this will return an empty stats object.
@@ -3655,7 +3704,7 @@ declare namespace shaka.extern {
3655
3704
  }
3656
3705
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
3657
3706
  declare namespace shaka.extern {
3658
- 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 } ;
3707
+ 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 } ;
3659
3708
  }
3660
3709
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
3661
3710
  declare namespace shaka.extern {
@@ -3831,7 +3880,7 @@ declare namespace shaka.extern {
3831
3880
  }
3832
3881
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3833
3882
  declare namespace shaka.extern {
3834
- type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , dataKey : number , endTime : number , initSegmentKey : number | null , startTime : number , timestampOffset : number } ;
3883
+ type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , dataKey : number , endTime : number , initSegmentKey : number | null , startTime : number , tilesLayout : string | null , timestampOffset : number } ;
3835
3884
  }
3836
3885
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
3837
3886
  declare namespace shaka.extern {
@@ -4007,7 +4056,7 @@ declare namespace shaka.extern {
4007
4056
  }
4008
4057
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4009
4058
  declare namespace shaka.extern {
4010
- type AdvancedDrmConfiguration = { audioRobustness : string , distinctiveIdentifierRequired : boolean , individualizationServer : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , sessionType : string , videoRobustness : string } ;
4059
+ type AdvancedDrmConfiguration = { audioRobustness : string , distinctiveIdentifierRequired : boolean , individualizationServer : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , serverCertificateUri : string , sessionType : string , videoRobustness : string } ;
4011
4060
  }
4012
4061
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4013
4062
  declare namespace shaka.extern {
@@ -4019,11 +4068,15 @@ declare namespace shaka.extern {
4019
4068
  }
4020
4069
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4021
4070
  declare namespace shaka.extern {
4022
- 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 } ;
4071
+ type Chapter = { endTime : number , startTime : number , title : string } ;
4072
+ }
4073
+ // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4074
+ declare namespace shaka.extern {
4075
+ 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 } ;
4023
4076
  }
4024
4077
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4025
4078
  declare namespace shaka.extern {
4026
- 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 } ;
4079
+ 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 } ;
4027
4080
  }
4028
4081
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4029
4082
  declare namespace shaka.extern {
@@ -4035,7 +4088,7 @@ declare namespace shaka.extern {
4035
4088
  }
4036
4089
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4037
4090
  declare namespace shaka.extern {
4038
- type HlsManifestConfiguration = { ignoreTextStreamFailures : boolean , useFullSegmentsForStartTime : boolean } ;
4091
+ type HlsManifestConfiguration = { ignoreImageStreamFailures : boolean , ignoreTextStreamFailures : boolean , useFullSegmentsForStartTime : boolean } ;
4039
4092
  }
4040
4093
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4041
4094
  declare namespace shaka.extern {
@@ -4055,7 +4108,7 @@ declare namespace shaka.extern {
4055
4108
  }
4056
4109
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4057
4110
  declare namespace shaka.extern {
4058
- 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 } ;
4111
+ 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 } ;
4059
4112
  }
4060
4113
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4061
4114
  declare namespace shaka.extern {
@@ -4071,7 +4124,7 @@ declare namespace shaka.extern {
4071
4124
  }
4072
4125
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4073
4126
  declare namespace shaka.extern {
4074
- 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 } ;
4127
+ 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 } ;
4075
4128
  }
4076
4129
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4077
4130
  declare namespace shaka.extern {
@@ -4079,7 +4132,7 @@ declare namespace shaka.extern {
4079
4132
  }
4080
4133
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4081
4134
  declare namespace shaka.extern {
4082
- type Thumbnail = { duration : number , height : number , positionX : number , positionY : number , startTime : number , uris : string [] , width : number } ;
4135
+ type Thumbnail = { duration : number , height : number , imageHeight : number , imageWidth : number , positionX : number , positionY : number , startTime : number , uris : string [] , width : number } ;
4083
4136
  }
4084
4137
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
4085
4138
  declare namespace shaka.extern {