shaka-player 4.0.4 → 4.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/CHANGELOG.md +41 -34
  2. package/CONTRIBUTORS +1 -0
  3. package/demo/common/message_ids.js +1 -0
  4. package/demo/config.js +3 -1
  5. package/demo/locales/en.json +1 -0
  6. package/demo/locales/source.json +4 -0
  7. package/dist/demo.compiled.debug.js +4 -4
  8. package/dist/demo.compiled.debug.map +2 -2
  9. package/dist/demo.compiled.js +4 -4
  10. package/dist/demo.compiled.map +2 -2
  11. package/dist/deps.js +2 -2
  12. package/dist/locales.js +30 -30
  13. package/dist/receiver.compiled.debug.js +2 -2
  14. package/dist/receiver.compiled.debug.map +2 -2
  15. package/dist/receiver.compiled.js +2 -2
  16. package/dist/receiver.compiled.map +2 -2
  17. package/dist/shaka-player.compiled.d.ts +14 -8
  18. package/dist/shaka-player.compiled.debug.d.ts +14 -8
  19. package/dist/shaka-player.compiled.debug.externs.js +10 -2
  20. package/dist/shaka-player.compiled.debug.js +168 -160
  21. package/dist/shaka-player.compiled.debug.map +3 -3
  22. package/dist/shaka-player.compiled.externs.js +10 -2
  23. package/dist/shaka-player.compiled.js +767 -764
  24. package/dist/shaka-player.compiled.map +3 -3
  25. package/dist/shaka-player.ui.d.ts +15 -9
  26. package/dist/shaka-player.ui.debug.d.ts +15 -9
  27. package/dist/shaka-player.ui.debug.externs.js +10 -2
  28. package/dist/shaka-player.ui.debug.js +201 -189
  29. package/dist/shaka-player.ui.debug.map +3 -3
  30. package/dist/shaka-player.ui.externs.js +10 -2
  31. package/dist/shaka-player.ui.js +934 -931
  32. package/dist/shaka-player.ui.map +3 -3
  33. package/docs/design/chromecast.md +3 -1
  34. package/docs/tutorials/drm-config.md +16 -0
  35. package/docs/tutorials/ui.md +26 -0
  36. package/externs/chromecast.js +9 -2
  37. package/externs/shaka/manifest.js +7 -0
  38. package/externs/shaka/player.js +21 -2
  39. package/externs/shaka/text.js +7 -0
  40. package/lib/cast/cast_proxy.js +19 -8
  41. package/lib/cast/cast_receiver.js +3 -3
  42. package/lib/cast/cast_sender.js +12 -2
  43. package/lib/hls/hls_parser.js +12 -1
  44. package/lib/media/drm_engine.js +17 -8
  45. package/lib/media/gap_jumping_controller.js +23 -1
  46. package/lib/media/playhead.js +47 -4
  47. package/lib/media/stall_detector.js +19 -2
  48. package/lib/media/streaming_engine.js +8 -1
  49. package/lib/offline/manifest_converter.js +1 -0
  50. package/lib/player.js +175 -69
  51. package/lib/text/cue.js +6 -0
  52. package/lib/text/ui_text_displayer.js +1 -0
  53. package/lib/text/vtt_text_parser.js +4 -0
  54. package/lib/util/error.js +6 -0
  55. package/lib/util/fake_event.js +39 -0
  56. package/lib/util/player_configuration.js +2 -0
  57. package/lib/util/stats.js +28 -1
  58. package/lib/util/stream_utils.js +7 -0
  59. package/package.json +1 -1
  60. package/test/cast/cast_proxy_unit.js +3 -1
  61. package/test/cast/cast_sender_unit.js +21 -6
  62. package/test/demo/demo_unit.js +2 -1
  63. package/test/media/adaptation_set_unit.js +1 -0
  64. package/test/media/playhead_unit.js +114 -25
  65. package/test/media/stall_detector_unit.js +20 -2
  66. package/test/media/streaming_engine_integration.js +2 -1
  67. package/test/media/streaming_engine_unit.js +1 -0
  68. package/test/player_integration.js +3 -0
  69. package/test/player_unit.js +142 -1
  70. package/test/test/util/manifest_generator.js +2 -0
  71. package/test/test/util/simple_fakes.js +14 -0
  72. package/test/test/util/streaming_engine_util.js +1 -0
  73. package/test/text/vtt_text_parser_unit.js +4 -0
  74. package/test/ui/ui_unit.js +18 -5
  75. package/test/util/stream_utils_unit.js +108 -0
  76. package/ui/controls.js +12 -8
  77. package/ui/externs/ui.js +10 -1
  78. package/ui/statistics_button.js +10 -0
  79. package/ui/ui.js +12 -1
@@ -671,10 +671,10 @@ declare namespace shaka.ads {
671
671
  declare namespace shaka.cast {
672
672
  class CastProxy extends shaka.util.FakeEventTarget implements shaka.util.IDestroyable {
673
673
  private noStructuralTyping_shaka_cast_CastProxy : any;
674
- constructor (video : HTMLMediaElement , player : shaka.Player , receiverAppId : string ) ;
674
+ constructor (video : HTMLMediaElement , player : shaka.Player , receiverAppId : string , androidReceiverCompatible : boolean ) ;
675
675
  canCast ( ) : boolean ;
676
676
  cast ( ) : Promise < any > ;
677
- changeReceiverId (newAppId : string ) : any ;
677
+ changeReceiverId (newAppId : string , newCastAndroidReceiver ? : boolean ) : any ;
678
678
  /**
679
679
  * Destroys the proxy and the underlying local Player.
680
680
  * @param forceDisconnect If true, force the receiver app to shut down by disconnecting. Does nothing if not connected.
@@ -1663,6 +1663,7 @@ declare namespace shaka.text {
1663
1663
  startTime : any ;
1664
1664
  textAlign : any ;
1665
1665
  textDecoration : any ;
1666
+ textShadow : any ;
1666
1667
  textStrokeColor : any ;
1667
1668
  textStrokeWidth : any ;
1668
1669
  wrapLine : any ;
@@ -2745,6 +2746,7 @@ declare namespace shaka.util.Error {
2745
2746
  REQUEST_FILTER_ERROR = 1006.0 ,
2746
2747
  RESPONSE_FILTER_ERROR = 1007.0 ,
2747
2748
  RESTRICTIONS_CANNOT_BE_MET = 4012.0 ,
2749
+ SEGMENT_MISSING = 1011.0 ,
2748
2750
  SERVER_CERTIFICATE_REQUEST_FAILED = 6017.0 ,
2749
2751
  SERVER_CERTIFICATE_REQUIRED = 6015.0 ,
2750
2752
  SS_AD_MANAGER_NOT_INITIALIZED = 10003.0 ,
@@ -3355,7 +3357,7 @@ declare namespace chrome.cast {
3355
3357
  declare namespace chrome.cast {
3356
3358
  class SessionRequest {
3357
3359
  private noStructuralTyping_chrome_cast_SessionRequest : any;
3358
- constructor (appId : string ) ;
3360
+ constructor (appId : string , capabilities : ( object | null ) [] | null , timeout : number | null , androidReceiverCompatible : boolean , credentialsData : object | null ) ;
3359
3361
  }
3360
3362
  }
3361
3363
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/chromecast.js
@@ -3911,7 +3913,7 @@ declare namespace shaka.extern {
3911
3913
  }
3912
3914
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
3913
3915
  declare namespace shaka.extern {
3914
- type Variant = { allowedByApplication : boolean , allowedByKeySystem : boolean , audio : shaka.extern.Stream | null , bandwidth : number , decodingInfos : ( any | null ) [] , id : number , language : string , primary : boolean , video : shaka.extern.Stream | null } ;
3916
+ type Variant = { allowedByApplication : boolean , allowedByKeySystem : boolean , audio : shaka.extern.Stream | null , bandwidth : number , decodingInfos : ( any | null ) [] , disabledUntilTime : number , id : number , language : string , primary : boolean , video : shaka.extern.Stream | null } ;
3915
3917
  }
3916
3918
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
3917
3919
  declare namespace shaka.extern {
@@ -4271,7 +4273,7 @@ declare namespace shaka.extern {
4271
4273
  }
4272
4274
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4273
4275
  declare namespace shaka.extern {
4274
- type Chapter = { endTime : number , startTime : number , title : string } ;
4276
+ type Chapter = { endTime : number , id : string , startTime : number , title : string } ;
4275
4277
  }
4276
4278
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4277
4279
  declare namespace shaka.extern {
@@ -4283,7 +4285,7 @@ declare namespace shaka.extern {
4283
4285
  }
4284
4286
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4285
4287
  declare namespace shaka.extern {
4286
- 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 } ;
4288
+ 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 , keySystemsMapping : { [ key: string ]: string } , logLicenseExchange : boolean , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
4287
4289
  }
4288
4290
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4289
4291
  declare namespace shaka.extern {
@@ -4331,11 +4333,11 @@ declare namespace shaka.extern {
4331
4333
  }
4332
4334
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4333
4335
  declare namespace shaka.extern {
4334
- type Stats = { bufferingTime : number , completionPercent : number , corruptedFrames : number , decodedFrames : number , drmTimeSeconds : number , droppedFrames : number , estimatedBandwidth : number , height : number , licenseTime : number , liveLatency : number , loadLatency : number , manifestTimeSeconds : number , maxSegmentDuration : number , pauseTime : number , playTime : number , stateHistory : shaka.extern.StateChange [] , streamBandwidth : number , switchHistory : shaka.extern.TrackChoice [] , width : number } ;
4336
+ type Stats = { bufferingTime : number , completionPercent : number , corruptedFrames : number , decodedFrames : number , drmTimeSeconds : number , droppedFrames : number , estimatedBandwidth : number , gapsJumped : number , height : number , licenseTime : number , liveLatency : number , loadLatency : number , manifestTimeSeconds : number , maxSegmentDuration : number , pauseTime : number , playTime : number , stallsDetected : number , stateHistory : shaka.extern.StateChange [] , streamBandwidth : number , switchHistory : shaka.extern.TrackChoice [] , width : number } ;
4335
4337
  }
4336
4338
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4337
4339
  declare namespace shaka.extern {
4338
- type StreamingConfiguration = { alwaysStreamText : boolean , autoLowLatencyMode : boolean , bufferBehind : number , bufferingGoal : number , dispatchAllEmsgBoxes : boolean , durationBackoff : number , failureCallback : (a : shaka.util.Error ) => any , forceHTTPS : boolean , forceTransmuxTS : boolean , gapDetectionThreshold : number , ignoreTextStreamFailures : boolean , inaccurateManifestTolerance : number , lowLatencyMode : boolean , observeQualityChanges : boolean , preferNativeHls : boolean , rebufferingGoal : number , retryParameters : shaka.extern.RetryParameters , safeSeekOffset : number , stallEnabled : boolean , stallSkip : number , stallThreshold : number , startAtSegmentBoundary : boolean , updateIntervalSeconds : number , useNativeHlsOnSafari : boolean } ;
4340
+ type StreamingConfiguration = { alwaysStreamText : boolean , autoLowLatencyMode : boolean , bufferBehind : number , bufferingGoal : number , dispatchAllEmsgBoxes : boolean , durationBackoff : number , failureCallback : (a : shaka.util.Error ) => any , forceHTTPS : boolean , forceTransmuxTS : boolean , gapDetectionThreshold : number , ignoreTextStreamFailures : boolean , inaccurateManifestTolerance : number , lowLatencyMode : boolean , maxDisabledTime : number , observeQualityChanges : boolean , preferNativeHls : boolean , rebufferingGoal : number , retryParameters : shaka.extern.RetryParameters , safeSeekOffset : number , stallEnabled : boolean , stallSkip : number , stallThreshold : number , startAtSegmentBoundary : boolean , updateIntervalSeconds : number , useNativeHlsOnSafari : boolean } ;
4339
4341
  }
4340
4342
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4341
4343
  declare namespace shaka.extern {
@@ -4514,6 +4516,10 @@ declare namespace shaka.extern {
4514
4516
  * and line through. Empty array means no decoration.
4515
4517
  */
4516
4518
  textDecoration : shaka.text.Cue.textDecoration [] ;
4519
+ /**
4520
+ * Text shadow color as a CSS text-shadow value.
4521
+ */
4522
+ textShadow : string ;
4517
4523
  /**
4518
4524
  * Text stroke color as a CSS color, e.g. "#FFFFFF" or "white".
4519
4525
  */
@@ -4808,7 +4814,7 @@ nameSpan : HTMLElement ;
4808
4814
  }
4809
4815
  // Generated from /home/runner/work/shaka-player/shaka-player/ui/externs/ui.js
4810
4816
  declare namespace shaka.extern {
4811
- type UIConfiguration = { addBigPlayButton : boolean , addSeekBar : boolean , castReceiverAppId : string , clearBufferOnQualityChange : boolean , contextMenuElements : string [] , controlPanelElements : string [] , customContextMenu : boolean , doubleClickForFullscreen : boolean , enableFullscreenOnRotation : boolean , enableKeyboardPlaybackControls : boolean , enableTooltips : boolean , fadeDelay : number , fastForwardRates : number [] , forceLandscapeOnFullscreen : boolean , overflowMenuButtons : string [] , playbackRates : number [] , rewindRates : number [] , seekBarColors : shaka.extern.UISeekBarColors , showUnbufferedStart : boolean , singleClickForPlayAndPause : boolean , statisticsList : string [] , trackLabelFormat : shaka.ui.Overlay.TrackLabelFormat , volumeBarColors : shaka.extern.UIVolumeBarColors } ;
4817
+ type UIConfiguration = { addBigPlayButton : boolean , addSeekBar : boolean , castAndroidReceiverCompatible : boolean , castReceiverAppId : string , clearBufferOnQualityChange : boolean , contextMenuElements : string [] , controlPanelElements : string [] , customContextMenu : boolean , doubleClickForFullscreen : boolean , enableFullscreenOnRotation : boolean , enableKeyboardPlaybackControls : boolean , enableTooltips : boolean , fadeDelay : number , fastForwardRates : number [] , forceLandscapeOnFullscreen : boolean , keyboardSeekDistance : number , overflowMenuButtons : string [] , playbackRates : number [] , rewindRates : number [] , seekBarColors : shaka.extern.UISeekBarColors , showUnbufferedStart : boolean , singleClickForPlayAndPause : boolean , statisticsList : string [] , trackLabelFormat : shaka.ui.Overlay.TrackLabelFormat , volumeBarColors : shaka.extern.UIVolumeBarColors } ;
4812
4818
  }
4813
4819
  // Generated from /home/runner/work/shaka-player/shaka-player/ui/externs/ui.js
4814
4820
  declare namespace shaka.extern {
@@ -671,10 +671,10 @@ declare namespace shaka.ads {
671
671
  declare namespace shaka.cast {
672
672
  class CastProxy extends shaka.util.FakeEventTarget implements shaka.util.IDestroyable {
673
673
  private noStructuralTyping_shaka_cast_CastProxy : any;
674
- constructor (video : HTMLMediaElement , player : shaka.Player , receiverAppId : string ) ;
674
+ constructor (video : HTMLMediaElement , player : shaka.Player , receiverAppId : string , androidReceiverCompatible : boolean ) ;
675
675
  canCast ( ) : boolean ;
676
676
  cast ( ) : Promise < any > ;
677
- changeReceiverId (newAppId : string ) : any ;
677
+ changeReceiverId (newAppId : string , newCastAndroidReceiver ? : boolean ) : any ;
678
678
  /**
679
679
  * Destroys the proxy and the underlying local Player.
680
680
  * @param forceDisconnect If true, force the receiver app to shut down by disconnecting. Does nothing if not connected.
@@ -1663,6 +1663,7 @@ declare namespace shaka.text {
1663
1663
  startTime : any ;
1664
1664
  textAlign : any ;
1665
1665
  textDecoration : any ;
1666
+ textShadow : any ;
1666
1667
  textStrokeColor : any ;
1667
1668
  textStrokeWidth : any ;
1668
1669
  wrapLine : any ;
@@ -2745,6 +2746,7 @@ declare namespace shaka.util.Error {
2745
2746
  REQUEST_FILTER_ERROR = 1006.0 ,
2746
2747
  RESPONSE_FILTER_ERROR = 1007.0 ,
2747
2748
  RESTRICTIONS_CANNOT_BE_MET = 4012.0 ,
2749
+ SEGMENT_MISSING = 1011.0 ,
2748
2750
  SERVER_CERTIFICATE_REQUEST_FAILED = 6017.0 ,
2749
2751
  SERVER_CERTIFICATE_REQUIRED = 6015.0 ,
2750
2752
  SS_AD_MANAGER_NOT_INITIALIZED = 10003.0 ,
@@ -3355,7 +3357,7 @@ declare namespace chrome.cast {
3355
3357
  declare namespace chrome.cast {
3356
3358
  class SessionRequest {
3357
3359
  private noStructuralTyping_chrome_cast_SessionRequest : any;
3358
- constructor (appId : string ) ;
3360
+ constructor (appId : string , capabilities : ( object | null ) [] | null , timeout : number | null , androidReceiverCompatible : boolean , credentialsData : object | null ) ;
3359
3361
  }
3360
3362
  }
3361
3363
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/chromecast.js
@@ -3911,7 +3913,7 @@ declare namespace shaka.extern {
3911
3913
  }
3912
3914
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
3913
3915
  declare namespace shaka.extern {
3914
- type Variant = { allowedByApplication : boolean , allowedByKeySystem : boolean , audio : shaka.extern.Stream | null , bandwidth : number , decodingInfos : ( any | null ) [] , id : number , language : string , primary : boolean , video : shaka.extern.Stream | null } ;
3916
+ type Variant = { allowedByApplication : boolean , allowedByKeySystem : boolean , audio : shaka.extern.Stream | null , bandwidth : number , decodingInfos : ( any | null ) [] , disabledUntilTime : number , id : number , language : string , primary : boolean , video : shaka.extern.Stream | null } ;
3915
3917
  }
3916
3918
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
3917
3919
  declare namespace shaka.extern {
@@ -4271,7 +4273,7 @@ declare namespace shaka.extern {
4271
4273
  }
4272
4274
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4273
4275
  declare namespace shaka.extern {
4274
- type Chapter = { endTime : number , startTime : number , title : string } ;
4276
+ type Chapter = { endTime : number , id : string , startTime : number , title : string } ;
4275
4277
  }
4276
4278
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4277
4279
  declare namespace shaka.extern {
@@ -4283,7 +4285,7 @@ declare namespace shaka.extern {
4283
4285
  }
4284
4286
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4285
4287
  declare namespace shaka.extern {
4286
- 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 } ;
4288
+ 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 , keySystemsMapping : { [ key: string ]: string } , logLicenseExchange : boolean , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
4287
4289
  }
4288
4290
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4289
4291
  declare namespace shaka.extern {
@@ -4331,11 +4333,11 @@ declare namespace shaka.extern {
4331
4333
  }
4332
4334
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4333
4335
  declare namespace shaka.extern {
4334
- type Stats = { bufferingTime : number , completionPercent : number , corruptedFrames : number , decodedFrames : number , drmTimeSeconds : number , droppedFrames : number , estimatedBandwidth : number , height : number , licenseTime : number , liveLatency : number , loadLatency : number , manifestTimeSeconds : number , maxSegmentDuration : number , pauseTime : number , playTime : number , stateHistory : shaka.extern.StateChange [] , streamBandwidth : number , switchHistory : shaka.extern.TrackChoice [] , width : number } ;
4336
+ type Stats = { bufferingTime : number , completionPercent : number , corruptedFrames : number , decodedFrames : number , drmTimeSeconds : number , droppedFrames : number , estimatedBandwidth : number , gapsJumped : number , height : number , licenseTime : number , liveLatency : number , loadLatency : number , manifestTimeSeconds : number , maxSegmentDuration : number , pauseTime : number , playTime : number , stallsDetected : number , stateHistory : shaka.extern.StateChange [] , streamBandwidth : number , switchHistory : shaka.extern.TrackChoice [] , width : number } ;
4335
4337
  }
4336
4338
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4337
4339
  declare namespace shaka.extern {
4338
- type StreamingConfiguration = { alwaysStreamText : boolean , autoLowLatencyMode : boolean , bufferBehind : number , bufferingGoal : number , dispatchAllEmsgBoxes : boolean , durationBackoff : number , failureCallback : (a : shaka.util.Error ) => any , forceHTTPS : boolean , forceTransmuxTS : boolean , gapDetectionThreshold : number , ignoreTextStreamFailures : boolean , inaccurateManifestTolerance : number , lowLatencyMode : boolean , observeQualityChanges : boolean , preferNativeHls : boolean , rebufferingGoal : number , retryParameters : shaka.extern.RetryParameters , safeSeekOffset : number , stallEnabled : boolean , stallSkip : number , stallThreshold : number , startAtSegmentBoundary : boolean , updateIntervalSeconds : number , useNativeHlsOnSafari : boolean } ;
4340
+ type StreamingConfiguration = { alwaysStreamText : boolean , autoLowLatencyMode : boolean , bufferBehind : number , bufferingGoal : number , dispatchAllEmsgBoxes : boolean , durationBackoff : number , failureCallback : (a : shaka.util.Error ) => any , forceHTTPS : boolean , forceTransmuxTS : boolean , gapDetectionThreshold : number , ignoreTextStreamFailures : boolean , inaccurateManifestTolerance : number , lowLatencyMode : boolean , maxDisabledTime : number , observeQualityChanges : boolean , preferNativeHls : boolean , rebufferingGoal : number , retryParameters : shaka.extern.RetryParameters , safeSeekOffset : number , stallEnabled : boolean , stallSkip : number , stallThreshold : number , startAtSegmentBoundary : boolean , updateIntervalSeconds : number , useNativeHlsOnSafari : boolean } ;
4339
4341
  }
4340
4342
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4341
4343
  declare namespace shaka.extern {
@@ -4514,6 +4516,10 @@ declare namespace shaka.extern {
4514
4516
  * and line through. Empty array means no decoration.
4515
4517
  */
4516
4518
  textDecoration : shaka.text.Cue.textDecoration [] ;
4519
+ /**
4520
+ * Text shadow color as a CSS text-shadow value.
4521
+ */
4522
+ textShadow : string ;
4517
4523
  /**
4518
4524
  * Text stroke color as a CSS color, e.g. "#FFFFFF" or "white".
4519
4525
  */
@@ -4808,7 +4814,7 @@ nameSpan : HTMLElement ;
4808
4814
  }
4809
4815
  // Generated from /home/runner/work/shaka-player/shaka-player/ui/externs/ui.js
4810
4816
  declare namespace shaka.extern {
4811
- type UIConfiguration = { addBigPlayButton : boolean , addSeekBar : boolean , castReceiverAppId : string , clearBufferOnQualityChange : boolean , contextMenuElements : string [] , controlPanelElements : string [] , customContextMenu : boolean , doubleClickForFullscreen : boolean , enableFullscreenOnRotation : boolean , enableKeyboardPlaybackControls : boolean , enableTooltips : boolean , fadeDelay : number , fastForwardRates : number [] , forceLandscapeOnFullscreen : boolean , overflowMenuButtons : string [] , playbackRates : number [] , rewindRates : number [] , seekBarColors : shaka.extern.UISeekBarColors , showUnbufferedStart : boolean , singleClickForPlayAndPause : boolean , statisticsList : string [] , trackLabelFormat : shaka.ui.Overlay.TrackLabelFormat , volumeBarColors : shaka.extern.UIVolumeBarColors } ;
4817
+ type UIConfiguration = { addBigPlayButton : boolean , addSeekBar : boolean , castAndroidReceiverCompatible : boolean , castReceiverAppId : string , clearBufferOnQualityChange : boolean , contextMenuElements : string [] , controlPanelElements : string [] , customContextMenu : boolean , doubleClickForFullscreen : boolean , enableFullscreenOnRotation : boolean , enableKeyboardPlaybackControls : boolean , enableTooltips : boolean , fadeDelay : number , fastForwardRates : number [] , forceLandscapeOnFullscreen : boolean , keyboardSeekDistance : number , overflowMenuButtons : string [] , playbackRates : number [] , rewindRates : number [] , seekBarColors : shaka.extern.UISeekBarColors , showUnbufferedStart : boolean , singleClickForPlayAndPause : boolean , statisticsList : string [] , trackLabelFormat : shaka.ui.Overlay.TrackLabelFormat , volumeBarColors : shaka.extern.UIVolumeBarColors } ;
4812
4818
  }
4813
4819
  // Generated from /home/runner/work/shaka-player/shaka-player/ui/externs/ui.js
4814
4820
  declare namespace shaka.extern {
@@ -198,6 +198,7 @@ shaka.util.Error.Code = {
198
198
  'MALFORMED_TEST_URI': 1008,
199
199
  'UNEXPECTED_TEST_REQUEST': 1009,
200
200
  'ATTEMPTS_EXHAUSTED': 1010,
201
+ 'SEGMENT_MISSING': 1011,
201
202
  'INVALID_TEXT_HEADER': 2000,
202
203
  'INVALID_TEXT_CUE': 2001,
203
204
  'UNABLE_TO_DETECT_ENCODING': 2003,
@@ -651,6 +652,10 @@ shaka.text.Cue.prototype.backgroundImage;
651
652
  * @override
652
653
  */
653
654
  shaka.text.Cue.prototype.border;
655
+ /**
656
+ * @override
657
+ */
658
+ shaka.text.Cue.prototype.textShadow;
654
659
  /**
655
660
  * @override
656
661
  */
@@ -3313,8 +3318,10 @@ shaka.cast.CastProxy = class extends shaka.util.FakeEventTarget {
3313
3318
  * @param {string} receiverAppId The ID of the cast receiver application.
3314
3319
  * If blank, casting will not be available, but the proxy will still
3315
3320
  * function otherwise.
3321
+ * @param {boolean} androidReceiverCompatible Indicates if the app is
3322
+ * compatible with an Android Receiver.
3316
3323
  */
3317
- constructor(video, player, receiverAppId) {}
3324
+ constructor(video, player, receiverAppId, androidReceiverCompatible) {}
3318
3325
  /**
3319
3326
  * Destroys the proxy and the underlying local Player.
3320
3327
  * @param {boolean=} forceDisconnect If true, force the receiver app to shut
@@ -3369,8 +3376,9 @@ shaka.cast.CastProxy = class extends shaka.util.FakeEventTarget {
3369
3376
  forceDisconnect() {}
3370
3377
  /**
3371
3378
  * @param {string} newAppId
3379
+ * @param {boolean=} newCastAndroidReceiver
3372
3380
  */
3373
- changeReceiverId(newAppId) {}
3381
+ changeReceiverId(newAppId, newCastAndroidReceiver) {}
3374
3382
  };
3375
3383
  /**
3376
3384
  * A receiver to communicate between the Chromecast-hosted player and the