shaka-player 4.11.13 → 4.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/README.md +47 -0
  2. package/dist/deps.js +8 -8
  3. package/dist/locales.js +35 -35
  4. package/dist/shaka-player.compiled.d.ts +36 -13
  5. package/dist/shaka-player.compiled.debug.d.ts +36 -13
  6. package/dist/shaka-player.compiled.debug.externs.js +46 -11
  7. package/dist/shaka-player.compiled.debug.js +543 -517
  8. package/dist/shaka-player.compiled.debug.map +4 -4
  9. package/dist/shaka-player.compiled.externs.js +46 -11
  10. package/dist/shaka-player.compiled.js +1348 -1331
  11. package/dist/shaka-player.compiled.map +4 -4
  12. package/dist/shaka-player.ui.d.ts +37 -14
  13. package/dist/shaka-player.ui.debug.d.ts +37 -14
  14. package/dist/shaka-player.ui.debug.externs.js +46 -11
  15. package/dist/shaka-player.ui.debug.js +629 -598
  16. package/dist/shaka-player.ui.debug.map +4 -4
  17. package/dist/shaka-player.ui.externs.js +46 -11
  18. package/dist/shaka-player.ui.js +1624 -1603
  19. package/dist/shaka-player.ui.map +4 -4
  20. package/externs/shaka/ads.js +9 -0
  21. package/externs/shaka/manifest.js +26 -1
  22. package/externs/shaka/offline.js +8 -2
  23. package/externs/shaka/player.js +80 -28
  24. package/externs/shaka/text.js +9 -0
  25. package/lib/ads/ad_manager.js +6 -0
  26. package/lib/ads/ad_utils.js +1 -0
  27. package/lib/ads/client_side_ad.js +8 -0
  28. package/lib/ads/interstitial_ad.js +25 -4
  29. package/lib/ads/interstitial_ad_manager.js +67 -8
  30. package/lib/ads/media_tailor_ad.js +8 -0
  31. package/lib/ads/server_side_ad.js +8 -0
  32. package/lib/dash/content_protection.js +31 -0
  33. package/lib/dash/dash_parser.js +22 -12
  34. package/lib/hls/hls_parser.js +63 -49
  35. package/lib/media/adaptation_set.js +11 -17
  36. package/lib/media/adaptation_set_criteria.js +4 -9
  37. package/lib/media/drm_engine.js +3 -1
  38. package/lib/media/manifest_filterer.js +2 -1
  39. package/lib/media/media_source_engine.js +286 -20
  40. package/lib/media/playhead.js +3 -1
  41. package/lib/media/preload_manager.js +10 -7
  42. package/lib/media/segment_prefetch.js +32 -13
  43. package/lib/media/segment_reference.js +3 -3
  44. package/lib/media/streaming_engine.js +87 -261
  45. package/lib/mss/mss_parser.js +1 -0
  46. package/lib/offline/download_info.js +5 -1
  47. package/lib/offline/indexeddb/storage_mechanism.js +4 -3
  48. package/lib/offline/indexeddb/v1_storage_cell.js +2 -0
  49. package/lib/offline/indexeddb/v2_storage_cell.js +2 -0
  50. package/lib/offline/manifest_converter.js +4 -0
  51. package/lib/offline/storage.js +277 -5
  52. package/lib/player.js +224 -78
  53. package/lib/text/simple_text_displayer.js +7 -0
  54. package/lib/text/stub_text_displayer.js +7 -0
  55. package/lib/text/ui_text_displayer.js +12 -0
  56. package/lib/util/dom_utils.js +14 -0
  57. package/lib/util/error.js +5 -0
  58. package/lib/util/periods.js +2 -0
  59. package/lib/util/platform.js +15 -0
  60. package/lib/util/player_configuration.js +11 -4
  61. package/lib/util/stream_utils.js +20 -1
  62. package/package.json +1 -1
  63. package/ui/ad_statistics_button.js +12 -0
  64. package/ui/controls.js +31 -7
  65. package/ui/externs/ui.js +8 -1
  66. package/ui/fullscreen_button.js +9 -0
  67. package/ui/locales/be.json +49 -0
  68. package/ui/mute_button.js +42 -11
  69. package/ui/skip_ad_button.js +16 -11
  70. package/ui/statistics_button.js +12 -0
  71. package/ui/ui.js +10 -5
@@ -773,6 +773,7 @@ declare namespace shaka.ads {
773
773
  isMuted ( ) : any ;
774
774
  isPaused ( ) : any ;
775
775
  isSkippable ( ) : any ;
776
+ isUsingAnotherMediaElement ( ) : any ;
776
777
  needsSkipUI ( ) : any ;
777
778
  pause ( ) : any ;
778
779
  play ( ) : any ;
@@ -787,7 +788,7 @@ declare namespace shaka.ads {
787
788
  declare namespace shaka.ads {
788
789
  class InterstitialAd implements shaka.extern.IAd {
789
790
  private noStructuralTyping_shaka_ads_InterstitialAd : any;
790
- constructor (video : HTMLMediaElement | null , isSkippable : boolean , skipOffset : number | null , onSkip : ( ) => any , sequenceLength : number , adPosition : number ) ;
791
+ constructor (video : HTMLMediaElement | null , isSkippable : boolean , skipOffset : number | null , skipFor : number | null , onSkip : ( ) => any , sequenceLength : number , adPosition : number , isUsingAnotherMediaElement : boolean ) ;
791
792
  canSkipNow ( ) : any ;
792
793
  getAdId ( ) : any ;
793
794
  getAdvertiserName ( ) : any ;
@@ -812,6 +813,7 @@ declare namespace shaka.ads {
812
813
  isMuted ( ) : any ;
813
814
  isPaused ( ) : any ;
814
815
  isSkippable ( ) : any ;
816
+ isUsingAnotherMediaElement ( ) : any ;
815
817
  needsSkipUI ( ) : any ;
816
818
  pause ( ) : any ;
817
819
  play ( ) : any ;
@@ -851,6 +853,7 @@ declare namespace shaka.ads {
851
853
  isMuted ( ) : any ;
852
854
  isPaused ( ) : any ;
853
855
  isSkippable ( ) : any ;
856
+ isUsingAnotherMediaElement ( ) : any ;
854
857
  needsSkipUI ( ) : any ;
855
858
  pause ( ) : any ;
856
859
  play ( ) : any ;
@@ -890,6 +893,7 @@ declare namespace shaka.ads {
890
893
  isMuted ( ) : any ;
891
894
  isPaused ( ) : any ;
892
895
  isSkippable ( ) : any ;
896
+ isUsingAnotherMediaElement ( ) : any ;
893
897
  needsSkipUI ( ) : any ;
894
898
  pause ( ) : any ;
895
899
  play ( ) : any ;
@@ -2097,8 +2101,10 @@ declare namespace shaka.offline {
2097
2101
  * @param uri The URI of the manifest to store.
2098
2102
  * @param appMetadata An arbitrary object from the application that will be stored along-side the offline content. Use this for any application-specific metadata you need associated with the stored content. For details on the data types that can be stored here, please refer to {@link https://bit.ly/StructClone}
2099
2103
  * @param mimeType The mime type for the content |manifestUri| points to.
2104
+ * @param externalThumbnails The external thumbnails to store along the main content.
2105
+ * @param externalText The external text to store along the main content.
2100
2106
  */
2101
- store (uri : string , appMetadata ? : object , mimeType ? : string ) : shaka.extern.IAbortableOperation < any > ;
2107
+ store (uri : string , appMetadata ? : object , mimeType ? : string | null , externalThumbnails ? : string [] | null , externalText ? : shaka.extern.ExtraText [] | null ) : shaka.extern.IAbortableOperation < any > ;
2102
2108
  /**
2103
2109
  * Delete the on-disk storage and all the content it contains. This should not
2104
2110
  * be done in normal circumstances. Only do it when storage is rendered
@@ -2796,6 +2802,7 @@ declare namespace shaka.text {
2796
2802
  destroy ( ) : any ;
2797
2803
  isTextVisible ( ) : any ;
2798
2804
  remove (start : any , end : any ) : any ;
2805
+ setTextLanguage (language : any ) : any ;
2799
2806
  setTextVisibility (on : any ) : any ;
2800
2807
  }
2801
2808
  }
@@ -2839,6 +2846,7 @@ declare namespace shaka.text {
2839
2846
  destroy ( ) : any ;
2840
2847
  isTextVisible ( ) : any ;
2841
2848
  remove (start : any , end : any ) : any ;
2849
+ setTextLanguage (language : any ) : any ;
2842
2850
  setTextVisibility (on : any ) : any ;
2843
2851
  }
2844
2852
  }
@@ -2881,6 +2889,7 @@ declare namespace shaka.text {
2881
2889
  destroy ( ) : any ;
2882
2890
  isTextVisible ( ) : any ;
2883
2891
  remove (start : any , end : any ) : any ;
2892
+ setTextLanguage (language : any ) : any ;
2884
2893
  setTextVisibility (on : any ) : any ;
2885
2894
  }
2886
2895
  }
@@ -3299,6 +3308,7 @@ declare namespace shaka.util.Error {
3299
3308
  DASH_EMPTY_PERIOD = 4004.0 ,
3300
3309
  DASH_INVALID_PATCH = 4052.0 ,
3301
3310
  DASH_INVALID_XML = 4001.0 ,
3311
+ DASH_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED = 4054.0 ,
3302
3312
  DASH_MULTIPLE_KEY_IDS_NOT_SUPPORTED = 4009.0 ,
3303
3313
  DASH_NO_COMMON_KEY_SYSTEM = 4008.0 ,
3304
3314
  DASH_NO_SEGMENT_INFO = 4002.0 ,
@@ -4185,7 +4195,7 @@ declare namespace shaka.extern {
4185
4195
  }
4186
4196
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/ads.js
4187
4197
  declare namespace shaka.extern {
4188
- type AdInterstitial = { canJump : boolean , endTime : number | null , id : string | null , isSkippable : boolean , once : boolean , playoutLimit : number | null , post : boolean , pre : boolean , resumeOffset : number | null , skipOffset : number | null , startTime : number , timelineRange : boolean , uri : string } ;
4198
+ type AdInterstitial = { canJump : boolean , endTime : number | null , id : string | null , isSkippable : boolean , once : boolean , playoutLimit : number | null , post : boolean , pre : boolean , resumeOffset : number | null , skipFor : number | null , skipOffset : number | null , startTime : number , timelineRange : boolean , uri : string } ;
4189
4199
  }
4190
4200
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/ads.js
4191
4201
  declare namespace shaka.extern {
@@ -4225,6 +4235,7 @@ declare namespace shaka.extern {
4225
4235
  isMuted ( ) : boolean ;
4226
4236
  isPaused ( ) : boolean ;
4227
4237
  isSkippable ( ) : boolean ;
4238
+ isUsingAnotherMediaElement ( ) : boolean ;
4228
4239
  needsSkipUI ( ) : boolean ;
4229
4240
  pause ( ) : any ;
4230
4241
  play ( ) : any ;
@@ -4451,7 +4462,11 @@ declare namespace shaka.extern {
4451
4462
  }
4452
4463
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
4453
4464
  declare namespace shaka.extern {
4454
- type Stream = { accessibilityPurpose : shaka.media.ManifestParser.AccessibilityPurpose | null , audioSamplingRate : number | null , bandwidth ? : number , channelsCount : number | null , closeSegmentIndex ? : ( ) => any , closedCaptions : Map < string , string > | null , codecs : string , colorGamut ? : string , createSegmentIndex : shaka.extern.CreateSegmentIndexFunction , drmInfos : shaka.extern.DrmInfo [] , emsgSchemeIdUris : string [] | null , encrypted : boolean , external : boolean , fastSwitching : boolean , forced : boolean , frameRate ? : number , fullMimeTypes : Set < string > , groupId : string | null , hdr ? : string , height ? : number , id : number , keyIds : Set < string > , kind ? : string , label : string | null , language : string , matchedStreams ? : any [] , mimeType : string , mssPrivateData ? : shaka.extern.MssPrivateData , originalId : string | null , originalLanguage : string | null , pixelAspectRatio ? : string , primary : boolean , roles : string [] , segmentIndex : shaka.media.SegmentIndex | null , spatialAudio : boolean , tilesLayout ? : string , trickModeVideo : any , type : string , videoLayout ? : string , width ? : number } ;
4465
+ type Stream = { accessibilityPurpose : shaka.media.ManifestParser.AccessibilityPurpose | null , audioSamplingRate : number | null , bandwidth ? : number , channelsCount : number | null , closeSegmentIndex ? : ( ) => any , closedCaptions : Map < string , string > | null , codecs : string , colorGamut ? : string , createSegmentIndex : shaka.extern.CreateSegmentIndexFunction , drmInfos : shaka.extern.DrmInfo [] , emsgSchemeIdUris : string [] | null , encrypted : boolean , external : boolean , fastSwitching : boolean , forced : boolean , frameRate ? : number , fullMimeTypes : Set < string > , groupId : string | null , hdr ? : string , height ? : number , id : number , isAudioMuxedInVideo : boolean , keyIds : Set < string > , kind ? : string , label : string | null , language : string , matchedStreams ? : any [] , mimeType : string , mssPrivateData ? : shaka.extern.MssPrivateData , originalId : string | null , originalLanguage : string | null , pixelAspectRatio ? : string , primary : boolean , roles : string [] , segmentIndex : shaka.media.SegmentIndex | null , spatialAudio : boolean , tilesLayout ? : string , trickModeVideo : any , type : string , videoLayout ? : string , width ? : number } ;
4466
+ }
4467
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
4468
+ declare namespace shaka.extern {
4469
+ type ThumbnailSprite = { height : number , positionX : number , positionY : number , width : number } ;
4455
4470
  }
4456
4471
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
4457
4472
  declare namespace shaka.extern {
@@ -4650,7 +4665,7 @@ declare namespace shaka.extern {
4650
4665
  }
4651
4666
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/offline.js
4652
4667
  declare namespace shaka.extern {
4653
- type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , codecs : string | null , dataKey : number , endTime : number , initSegmentKey : number | null , mimeType : string | null , pendingInitSegmentRefId ? : string , pendingSegmentRefId ? : string , startTime : number , tilesLayout : string | null , timestampOffset : number } ;
4668
+ type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , codecs : string | null , dataKey : number , endTime : number , initSegmentKey : number | null , mimeType : string | null , pendingInitSegmentRefId ? : string , pendingSegmentRefId ? : string , startTime : number , thumbnailSprite : shaka.media.SegmentReference.ThumbnailSprite | null , tilesLayout : string | null , timestampOffset : number } ;
4654
4669
  }
4655
4670
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/offline.js
4656
4671
  declare namespace shaka.extern {
@@ -4782,7 +4797,7 @@ declare namespace shaka.extern {
4782
4797
  }
4783
4798
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/offline.js
4784
4799
  declare namespace shaka.extern {
4785
- type StreamDB = { audioSamplingRate : number | null , channelsCount : number | null , closedCaptions : Map < string , string > | null , codecs : string , colorGamut ? : string , encrypted : boolean , external : boolean , fastSwitching : boolean , forced : boolean , frameRate ? : number , groupId : string | null , hdr ? : string , height : number | null , id : number , keyIds : Set < string > , kind ? : string , label : string | null , language : string , mimeType : string , originalId : string | null , originalLanguage ? : string | null , pixelAspectRatio ? : string , primary : boolean , roles : string [] , segments : shaka.extern.SegmentDB [] , spatialAudio : boolean , tilesLayout ? : string , type : string , variantIds : number [] , videoLayout ? : string , width : number | null } ;
4800
+ type StreamDB = { audioSamplingRate : number | null , channelsCount : number | null , closedCaptions : Map < string , string > | null , codecs : string , colorGamut ? : string , encrypted : boolean , external : boolean , fastSwitching : boolean , forced : boolean , frameRate ? : number , groupId : string | null , hdr ? : string , height : number | null , id : number , isAudioMuxedInVideo : boolean , keyIds : Set < string > , kind ? : string , label : string | null , language : string , mimeType : string , originalId : string | null , originalLanguage ? : string | null , pixelAspectRatio ? : string , primary : boolean , roles : string [] , segments : shaka.extern.SegmentDB [] , spatialAudio : boolean , tilesLayout ? : string , type : string , variantIds : number [] , videoLayout ? : string , width : number | null } ;
4786
4801
  }
4787
4802
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/offline_compat_v1.js
4788
4803
  declare namespace shaka.extern {
@@ -4830,7 +4845,7 @@ declare namespace shaka.extern {
4830
4845
  }
4831
4846
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4832
4847
  declare namespace shaka.extern {
4833
- type AdsConfiguration = { customPlayheadTracker : boolean , skipPlayDetection : boolean , supportsMultipleMediaElements : boolean } ;
4848
+ type AdsConfiguration = { customPlayheadTracker : boolean , disableDASHInterstitial : boolean , disableHLSInterstitial : boolean , skipPlayDetection : boolean , supportsMultipleMediaElements : boolean } ;
4834
4849
  }
4835
4850
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4836
4851
  declare namespace shaka.extern {
@@ -4862,7 +4877,7 @@ declare namespace shaka.extern {
4862
4877
  }
4863
4878
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4864
4879
  declare namespace shaka.extern {
4865
- type DashManifestConfiguration = { autoCorrectDrift : boolean , clockSyncUri : string , disableXlinkProcessing : boolean , enableAudioGroups : boolean , enableFastSwitching : boolean , ignoreDrmInfo : boolean , ignoreEmptyAdaptationSet : boolean , ignoreMaxSegmentDuration : boolean , ignoreMinBufferTime : boolean , ignoreSuggestedPresentationDelay : boolean , initialSegmentLimit : number , keySystemsByURI : { [ key: string ]: string } , manifestPreprocessor : (a : Element ) => any , manifestPreprocessorTXml : (a : shaka.extern.xml.Node ) => any , multiTypeVariantsAllowed : boolean , sequenceMode : boolean , updatePeriod : number , useStreamOnceInPeriodFlattening : boolean , xlinkFailGracefully : boolean } ;
4880
+ type DashManifestConfiguration = { autoCorrectDrift : boolean , clockSyncUri : string , disableXlinkProcessing : boolean , enableFastSwitching : boolean , ignoreDrmInfo : boolean , ignoreEmptyAdaptationSet : boolean , ignoreMaxSegmentDuration : boolean , ignoreMinBufferTime : boolean , ignoreSuggestedPresentationDelay : boolean , initialSegmentLimit : number , keySystemsByURI : { [ key: string ]: string } , manifestPreprocessor : (a : Element ) => any , manifestPreprocessorTXml : (a : shaka.extern.xml.Node ) => any , multiTypeVariantsAllowed : boolean , sequenceMode : boolean , updatePeriod : number , useStreamOnceInPeriodFlattening : boolean , xlinkFailGracefully : boolean } ;
4866
4881
  }
4867
4882
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4868
4883
  declare namespace shaka.extern {
@@ -4885,12 +4900,16 @@ declare namespace shaka.extern {
4885
4900
  type EmsgInfo = { endTime : number , eventDuration : number , id : number , messageData : Uint8Array | null , presentationTimeDelta : number , schemeIdUri : string , startTime : number , timescale : number , value : string } ;
4886
4901
  }
4887
4902
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4903
+ declare namespace shaka.extern {
4904
+ type ExtraText = { codecs ? : string , kind : string , language : string , mime : string , uri : string } ;
4905
+ }
4906
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4888
4907
  declare namespace shaka.extern {
4889
4908
  type HLSInterstitial = { endTime : number | null , startTime : number , values : shaka.extern.MetadataFrame [] } ;
4890
4909
  }
4891
4910
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4892
4911
  declare namespace shaka.extern {
4893
- type HlsManifestConfiguration = { allowLowLatencyByteRangeOptimization : boolean , defaultAudioCodec : string , defaultVideoCodec : string , disableClosedCaptionsDetection : boolean , disableCodecGuessing : boolean , ignoreImageStreamFailures : boolean , ignoreManifestProgramDateTime : boolean , ignoreManifestProgramDateTimeForTypes : string [] , ignoreManifestTimestampsInSegmentsMode : boolean , ignoreTextStreamFailures : boolean , liveSegmentsDelay : number , mediaPlaylistFullMimeType : string , sequenceMode : boolean } ;
4912
+ type HlsManifestConfiguration = { allowLowLatencyByteRangeOptimization : boolean , defaultAudioCodec : string , defaultVideoCodec : string , disableClosedCaptionsDetection : boolean , disableCodecGuessing : boolean , ignoreImageStreamFailures : boolean , ignoreManifestProgramDateTime : boolean , ignoreManifestProgramDateTimeForTypes : string [] , ignoreManifestTimestampsInSegmentsMode : boolean , ignoreTextStreamFailures : boolean , liveSegmentsDelay : number , mediaPlaylistFullMimeType : string , sequenceMode : boolean , updatePeriod : number } ;
4894
4913
  }
4895
4914
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4896
4915
  declare namespace shaka.extern {
@@ -4914,7 +4933,7 @@ declare namespace shaka.extern {
4914
4933
  }
4915
4934
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4916
4935
  declare namespace shaka.extern {
4917
- type ManifestConfiguration = { availabilityWindowOverride : number , continueLoadingWhenPaused : boolean , dash : shaka.extern.DashManifestConfiguration , defaultPresentationDelay : number , disableAudio : boolean , disableText : boolean , disableThumbnails : boolean , disableVideo : boolean , hls : shaka.extern.HlsManifestConfiguration , mss : shaka.extern.MssManifestConfiguration , raiseFatalErrorOnManifestUpdateRequestFailure : boolean , retryParameters : shaka.extern.RetryParameters , segmentRelativeVttTiming : boolean } ;
4936
+ type ManifestConfiguration = { availabilityWindowOverride : number , continueLoadingWhenPaused : boolean , dash : shaka.extern.DashManifestConfiguration , defaultPresentationDelay : number , disableAudio : boolean , disableIFrames : boolean , disableText : boolean , disableThumbnails : boolean , disableVideo : boolean , hls : shaka.extern.HlsManifestConfiguration , mss : shaka.extern.MssManifestConfiguration , raiseFatalErrorOnManifestUpdateRequestFailure : boolean , retryParameters : shaka.extern.RetryParameters , segmentRelativeVttTiming : boolean } ;
4918
4937
  }
4919
4938
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4920
4939
  declare namespace shaka.extern {
@@ -4922,7 +4941,7 @@ declare namespace shaka.extern {
4922
4941
  }
4923
4942
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4924
4943
  declare namespace shaka.extern {
4925
- type MediaSourceConfiguration = { addExtraFeaturesToSourceBuffer : (a : string ) => string , codecSwitchingStrategy : shaka.config.CodecSwitchingStrategy , forceTransmux : boolean , insertFakeEncryptionInInit : boolean , modifyCueCallback : shaka.extern.TextParser.ModifyCueCallback } ;
4944
+ type MediaSourceConfiguration = { addExtraFeaturesToSourceBuffer : (a : string ) => string , codecSwitchingStrategy : shaka.config.CodecSwitchingStrategy , dispatchAllEmsgBoxes : boolean , forceTransmux : boolean , insertFakeEncryptionInInit : boolean , modifyCueCallback : shaka.extern.TextParser.ModifyCueCallback } ;
4926
4945
  }
4927
4946
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4928
4947
  declare namespace shaka.extern {
@@ -4954,7 +4973,7 @@ declare namespace shaka.extern {
4954
4973
  }
4955
4974
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4956
4975
  declare namespace shaka.extern {
4957
- type PlayerConfiguration = { abr : shaka.extern.AbrConfiguration , abrFactory : shaka.extern.AbrManager.Factory , ads : shaka.extern.AdsConfiguration , autoShowText : shaka.config.AutoShowText , cmcd : shaka.extern.CmcdConfiguration , cmsd : shaka.extern.CmsdConfiguration , drm : shaka.extern.DrmConfiguration , lcevc : shaka.extern.LcevcConfiguration , manifest : shaka.extern.ManifestConfiguration , mediaSource : shaka.extern.MediaSourceConfiguration , offline : shaka.extern.OfflineConfiguration , playRangeEnd : number , playRangeStart : number , preferForcedSubs : boolean , preferSpatialAudio : boolean , preferredAudioChannelCount : number , preferredAudioCodecs : string [] , preferredAudioLabel : string , preferredAudioLanguage : string , preferredDecodingAttributes : string [] , preferredTextLanguage : string , preferredTextRole : string , preferredVariantRole : string , preferredVideoCodecs : string [] , preferredVideoHdrLevel : string , preferredVideoLabel : string , preferredVideoLayout : string , restrictions : shaka.extern.Restrictions , streaming : shaka.extern.StreamingConfiguration , textDisplayFactory : shaka.extern.TextDisplayer.Factory , textDisplayer : shaka.extern.TextDisplayerConfiguration } ;
4976
+ type PlayerConfiguration = { abr : shaka.extern.AbrConfiguration , abrFactory : shaka.extern.AbrManager.Factory , ads : shaka.extern.AdsConfiguration , autoShowText : shaka.config.AutoShowText , cmcd : shaka.extern.CmcdConfiguration , cmsd : shaka.extern.CmsdConfiguration , drm : shaka.extern.DrmConfiguration , ignoreHardwareResolution : boolean , lcevc : shaka.extern.LcevcConfiguration , manifest : shaka.extern.ManifestConfiguration , mediaSource : shaka.extern.MediaSourceConfiguration , offline : shaka.extern.OfflineConfiguration , playRangeEnd : number , playRangeStart : number , preferForcedSubs : boolean , preferSpatialAudio : boolean , preferredAudioChannelCount : number , preferredAudioCodecs : string [] , preferredAudioLabel : string , preferredAudioLanguage : string , preferredDecodingAttributes : string [] , preferredTextFormats : string [] , preferredTextLanguage : string , preferredTextRole : string , preferredVariantRole : string , preferredVideoCodecs : string [] , preferredVideoHdrLevel : string , preferredVideoLabel : string , preferredVideoLayout : string , restrictions : shaka.extern.Restrictions , streaming : shaka.extern.StreamingConfiguration , textDisplayFactory : shaka.extern.TextDisplayer.Factory , textDisplayer : shaka.extern.TextDisplayerConfiguration } ;
4958
4977
  }
4959
4978
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4960
4979
  declare namespace shaka.extern {
@@ -4974,7 +4993,7 @@ declare namespace shaka.extern {
4974
4993
  }
4975
4994
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4976
4995
  declare namespace shaka.extern {
4977
- type StreamingConfiguration = { allowMediaSourceRecoveries : boolean , alwaysStreamText : boolean , autoLowLatencyMode : boolean , bufferBehind : number , bufferingGoal : number , clearDecodingCache : boolean , disableAudioPrefetch : boolean , disableTextPrefetch : boolean , disableVideoPrefetch : boolean , dispatchAllEmsgBoxes : boolean , dontChooseCodecs : boolean , durationBackoff : number , evictionGoal : number , failureCallback : (a : shaka.util.Error ) => any , forceHTTP : boolean , forceHTTPS : boolean , gapDetectionThreshold : number , gapJumpTimerTime : number , gapPadding : number , ignoreTextStreamFailures : boolean , inaccurateManifestTolerance : number , infiniteLiveStreamDuration : boolean , liveSync : shaka.extern.LiveSyncConfiguration , loadTimeout : number , lowLatencyMode : boolean , maxDisabledTime : number , minBytesForProgressEvents : number , minTimeBetweenRecoveries : number , observeQualityChanges : boolean , parsePrftBox : boolean , preferNativeHls : boolean , prefetchAudioLanguages : string [] , preloadNextUrlWindow : number , rebufferingGoal : number , retryParameters : shaka.extern.RetryParameters , safeSeekOffset : number , segmentPrefetchLimit : number , shouldFixTimestampOffset : boolean , stallEnabled : boolean , stallSkip : number , stallThreshold : number , startAtSegmentBoundary : boolean , updateIntervalSeconds : number , useNativeHlsForFairPlay : boolean , vodDynamicPlaybackRate : boolean , vodDynamicPlaybackRateBufferRatio : number , vodDynamicPlaybackRateLowBufferRate : number } ;
4996
+ type StreamingConfiguration = { allowMediaSourceRecoveries : boolean , alwaysStreamText : boolean , autoLowLatencyMode : boolean , bufferBehind : number , bufferingGoal : number , clearDecodingCache : boolean , disableAudioPrefetch : boolean , disableTextPrefetch : boolean , disableVideoPrefetch : boolean , dontChooseCodecs : boolean , durationBackoff : number , evictionGoal : number , failureCallback : (a : shaka.util.Error ) => any , forceHTTP : boolean , forceHTTPS : boolean , gapDetectionThreshold : number , gapJumpTimerTime : number , gapPadding : number , ignoreTextStreamFailures : boolean , inaccurateManifestTolerance : number , infiniteLiveStreamDuration : boolean , liveSync : shaka.extern.LiveSyncConfiguration , loadTimeout : number , lowLatencyMode : boolean , maxDisabledTime : number , minBytesForProgressEvents : number , minTimeBetweenRecoveries : number , observeQualityChanges : boolean , preferNativeHls : boolean , prefetchAudioLanguages : string [] , preloadNextUrlWindow : number , rebufferingGoal : number , retryParameters : shaka.extern.RetryParameters , safeSeekEndOffset : number , safeSeekOffset : number , segmentPrefetchLimit : number , shouldFixTimestampOffset : boolean , stallEnabled : boolean , stallSkip : number , stallThreshold : number , startAtSegmentBoundary : boolean , updateIntervalSeconds : number , useNativeHlsForFairPlay : boolean , vodDynamicPlaybackRate : boolean , vodDynamicPlaybackRateBufferRatio : number , vodDynamicPlaybackRateLowBufferRate : number } ;
4978
4997
  }
4979
4998
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4980
4999
  declare namespace shaka.extern {
@@ -5037,6 +5056,10 @@ declare namespace shaka.extern {
5037
5056
  * has not been destroyed <code>remove</code> should return <code>true</code>.
5038
5057
  */
5039
5058
  remove (startTime : number , endTime : number ) : boolean ;
5059
+ /**
5060
+ * Set the current language.
5061
+ */
5062
+ setTextLanguage (language : string ) : any ;
5040
5063
  /**
5041
5064
  * Set text visibility.
5042
5065
  */
@@ -460,6 +460,7 @@ shaka.util.Error.Code = {
460
460
  'DASH_UNSUPPORTED_AES_128': 4051,
461
461
  'DASH_INVALID_PATCH': 4052,
462
462
  'HLS_EMPTY_MEDIA_PLAYLIST': 4053,
463
+ 'DASH_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED': 4054,
463
464
  'STREAMING_ENGINE_STARTUP_INVALID_STATE': 5006,
464
465
  'NO_RECOGNIZED_KEY_SYSTEMS': 6000,
465
466
  'REQUESTED_KEY_SYSTEM_CONFIG_UNAVAILABLE': 6001,
@@ -2197,12 +2198,12 @@ shaka.media.SegmentReference = class {
2197
2198
  hasByterangeOptimization() {}
2198
2199
  /**
2199
2200
  * Set the segment's thumbnail sprite.
2200
- * @param {shaka.media.SegmentReference.ThumbnailSprite} thumbnailSprite
2201
+ * @param {shaka.extern.ThumbnailSprite} thumbnailSprite
2201
2202
  */
2202
2203
  setThumbnailSprite(thumbnailSprite) {}
2203
2204
  /**
2204
2205
  * Returns the segment's thumbnail sprite.
2205
- * @return {?shaka.media.SegmentReference.ThumbnailSprite}
2206
+ * @return {?shaka.extern.ThumbnailSprite}
2206
2207
  */
2207
2208
  getThumbnailSprite() {}
2208
2209
  /**
@@ -2255,6 +2256,14 @@ shaka.media.SegmentReference.Status = {
2255
2256
  * The thumbnail width in px.
2256
2257
  */
2257
2258
  shaka.media.SegmentReference.ThumbnailSprite;
2259
+ /** */
2260
+ shaka.util.Dom = class {
2261
+ /**
2262
+ * Remove all of the child nodes of an element.
2263
+ * @param {!Element} element
2264
+ */
2265
+ static removeAllChildren(element) {}
2266
+ };
2258
2267
  /**
2259
2268
  * @summary A set of Id3Utils utility functions.
2260
2269
  */
@@ -3055,6 +3064,10 @@ shaka.text.SimpleTextDisplayer = class {
3055
3064
  * @override
3056
3065
  */
3057
3066
  setTextVisibility(on) {}
3067
+ /**
3068
+ * @override
3069
+ */
3070
+ setTextLanguage(language) {}
3058
3071
  };
3059
3072
  /**
3060
3073
  * A stub text displayer plugin that does nothing
@@ -3085,14 +3098,10 @@ shaka.text.StubTextDisplayer = class {
3085
3098
  * @override
3086
3099
  */
3087
3100
  setTextVisibility(on) {}
3088
- };
3089
- /** */
3090
- shaka.util.Dom = class {
3091
3101
  /**
3092
- * Remove all of the child nodes of an element.
3093
- * @param {!Element} element
3102
+ * @override
3094
3103
  */
3095
- static removeAllChildren(element) {}
3104
+ setTextLanguage(language) {}
3096
3105
  };
3097
3106
  /**
3098
3107
  * The text displayer plugin for the Shaka Player UI. Can also be used directly
@@ -3132,6 +3141,10 @@ shaka.text.UITextDisplayer = class {
3132
3141
  * @override
3133
3142
  */
3134
3143
  setTextVisibility(on) {}
3144
+ /**
3145
+ * @override
3146
+ */
3147
+ setTextLanguage(language) {}
3135
3148
  };
3136
3149
  /**
3137
3150
  * @summary Manage the conversion to WebVTT.
@@ -3851,6 +3864,10 @@ shaka.ads.ClientSideAd = class {
3851
3864
  * @override
3852
3865
  */
3853
3866
  isClientRendering() {}
3867
+ /**
3868
+ * @override
3869
+ */
3870
+ isUsingAnotherMediaElement() {}
3854
3871
  /**
3855
3872
  * @override
3856
3873
  */
@@ -4162,11 +4179,13 @@ shaka.ads.InterstitialAd = class {
4162
4179
  * @param {HTMLMediaElement} video
4163
4180
  * @param {boolean} isSkippable
4164
4181
  * @param {?number} skipOffset
4182
+ * @param {?number} skipFor
4165
4183
  * @param {function()} onSkip
4166
4184
  * @param {number} sequenceLength
4167
4185
  * @param {number} adPosition
4186
+ * @param {boolean} isUsingAnotherMediaElement
4168
4187
  */
4169
- constructor(video, isSkippable, skipOffset, onSkip, sequenceLength, adPosition) {}
4188
+ constructor(video, isSkippable, skipOffset, skipFor, onSkip, sequenceLength, adPosition, isUsingAnotherMediaElement) {}
4170
4189
  /**
4171
4190
  * @override
4172
4191
  */
@@ -4175,6 +4194,10 @@ shaka.ads.InterstitialAd = class {
4175
4194
  * @override
4176
4195
  */
4177
4196
  isClientRendering() {}
4197
+ /**
4198
+ * @override
4199
+ */
4200
+ isUsingAnotherMediaElement() {}
4178
4201
  /**
4179
4202
  * @override
4180
4203
  */
@@ -4315,6 +4338,10 @@ shaka.ads.MediaTailorAd = class {
4315
4338
  * @override
4316
4339
  */
4317
4340
  isClientRendering() {}
4341
+ /**
4342
+ * @override
4343
+ */
4344
+ isUsingAnotherMediaElement() {}
4318
4345
  /**
4319
4346
  * @override
4320
4347
  */
@@ -4453,6 +4480,10 @@ shaka.ads.ServerSideAd = class {
4453
4480
  * @override
4454
4481
  */
4455
4482
  isClientRendering() {}
4483
+ /**
4484
+ * @override
4485
+ */
4486
+ isUsingAnotherMediaElement() {}
4456
4487
  /**
4457
4488
  * @override
4458
4489
  */
@@ -5482,8 +5513,12 @@ shaka.offline.Storage = class {
5482
5513
  * application-specific metadata you need associated with the stored
5483
5514
  * content. For details on the data types that can be stored here, please
5484
5515
  * refer to {@link https://bit.ly/StructClone}
5485
- * @param {string=} mimeType
5516
+ * @param {?string=} mimeType
5486
5517
  * The mime type for the content |manifestUri| points to.
5518
+ * @param {?Array.<string>=} externalThumbnails
5519
+ * The external thumbnails to store along the main content.
5520
+ * @param {?Array.<shaka.extern.ExtraText>=} externalText
5521
+ * The external text to store along the main content.
5487
5522
  * @return {!shaka.extern.IAbortableOperation.<shaka.extern.StoredContent>}
5488
5523
  * An AbortableOperation that resolves with a structure representing what
5489
5524
  * was stored. The "offlineUri" member is the URI that should be given to
@@ -5492,7 +5527,7 @@ shaka.offline.Storage = class {
5492
5527
  * If you want to cancel this download, call the "abort" method on
5493
5528
  * AbortableOperation.
5494
5529
  */
5495
- store(uri, appMetadata, mimeType) {}
5530
+ store(uri, appMetadata, mimeType, externalThumbnails, externalText) {}
5496
5531
  /**
5497
5532
  * Removes the given stored content. This will also attempt to release the
5498
5533
  * licenses, if any.