shaka-player 4.0.0 → 4.1.0

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 (114) hide show
  1. package/.github/config.yml +1 -0
  2. package/.github/workflows/release-please.yaml +6 -11
  3. package/CHANGELOG.md +33 -0
  4. package/CONTRIBUTORS +1 -0
  5. package/README.md +4 -4
  6. package/build/misspellings.txt +1 -0
  7. package/demo/common/message_ids.js +1 -0
  8. package/demo/config.js +3 -1
  9. package/demo/demo.less +0 -1
  10. package/demo/locales/en.json +1 -0
  11. package/demo/locales/source.json +4 -0
  12. package/dist/controls.css +3 -3
  13. package/dist/controls.css.map +1 -1
  14. package/dist/demo.compiled.debug.js +4 -4
  15. package/dist/demo.compiled.debug.map +2 -2
  16. package/dist/demo.compiled.js +4 -4
  17. package/dist/demo.compiled.map +2 -2
  18. package/dist/demo.css +1 -1
  19. package/dist/demo.css.map +1 -1
  20. package/dist/deps.js +3 -3
  21. package/dist/locales.js +32 -32
  22. package/dist/receiver.compiled.debug.js +2 -2
  23. package/dist/receiver.compiled.debug.map +2 -2
  24. package/dist/receiver.compiled.js +2 -2
  25. package/dist/receiver.compiled.map +2 -2
  26. package/dist/shaka-player.compiled.d.ts +15 -8
  27. package/dist/shaka-player.compiled.debug.d.ts +15 -8
  28. package/dist/shaka-player.compiled.debug.externs.js +11 -2
  29. package/dist/shaka-player.compiled.debug.js +266 -253
  30. package/dist/shaka-player.compiled.debug.map +3 -3
  31. package/dist/shaka-player.compiled.externs.js +11 -2
  32. package/dist/shaka-player.compiled.js +792 -784
  33. package/dist/shaka-player.compiled.map +3 -3
  34. package/dist/shaka-player.ui.d.ts +16 -9
  35. package/dist/shaka-player.ui.debug.d.ts +16 -9
  36. package/dist/shaka-player.ui.debug.externs.js +11 -2
  37. package/dist/shaka-player.ui.debug.js +299 -282
  38. package/dist/shaka-player.ui.debug.map +3 -3
  39. package/dist/shaka-player.ui.externs.js +11 -2
  40. package/dist/shaka-player.ui.js +948 -941
  41. package/dist/shaka-player.ui.map +3 -3
  42. package/docs/design/chromecast.md +3 -1
  43. package/docs/tutorials/drm-config.md +16 -0
  44. package/docs/tutorials/ui.md +26 -0
  45. package/docs/tutorials/upgrade.md +4 -2
  46. package/externs/chromecast.js +9 -2
  47. package/externs/shaka/manifest.js +7 -0
  48. package/externs/shaka/player.js +32 -2
  49. package/externs/shaka/text.js +7 -0
  50. package/karma.conf.js +4 -0
  51. package/lib/abr/simple_abr_manager.js +2 -1
  52. package/lib/cast/cast_proxy.js +19 -8
  53. package/lib/cast/cast_receiver.js +3 -3
  54. package/lib/cast/cast_sender.js +12 -2
  55. package/lib/dash/dash_parser.js +2 -2
  56. package/lib/hls/hls_parser.js +46 -15
  57. package/lib/media/drm_engine.js +36 -8
  58. package/lib/media/gap_jumping_controller.js +23 -1
  59. package/lib/media/media_source_engine.js +91 -37
  60. package/lib/media/playhead.js +47 -4
  61. package/lib/media/stall_detector.js +19 -2
  62. package/lib/media/streaming_engine.js +9 -3
  63. package/lib/offline/indexeddb/storage_mechanism.js +4 -2
  64. package/lib/offline/manifest_converter.js +1 -0
  65. package/lib/player.js +339 -175
  66. package/lib/text/cue.js +6 -0
  67. package/lib/text/ui_text_displayer.js +1 -0
  68. package/lib/text/vtt_text_parser.js +11 -7
  69. package/lib/util/config_utils.js +25 -0
  70. package/lib/util/error.js +13 -0
  71. package/lib/util/fake_event.js +39 -0
  72. package/lib/util/manifest_parser_utils.js +1 -1
  73. package/lib/util/mime_utils.js +62 -6
  74. package/lib/util/periods.js +5 -4
  75. package/lib/util/player_configuration.js +16 -14
  76. package/lib/util/stats.js +28 -1
  77. package/lib/util/stream_utils.js +11 -2
  78. package/package.json +5 -2
  79. package/test/cast/cast_proxy_unit.js +3 -1
  80. package/test/cast/cast_sender_unit.js +21 -6
  81. package/test/demo/demo_unit.js +2 -1
  82. package/test/hls/hls_live_unit.js +79 -7
  83. package/test/hls/manifest_text_parser_unit.js +19 -0
  84. package/test/media/adaptation_set_unit.js +1 -0
  85. package/test/media/playhead_unit.js +114 -25
  86. package/test/media/stall_detector_unit.js +20 -2
  87. package/test/media/streaming_engine_integration.js +2 -1
  88. package/test/media/streaming_engine_unit.js +1 -0
  89. package/test/offline/indexeddb_storage_unit.js +1 -1
  90. package/test/offline/storage_compatibility_unit.js +1 -1
  91. package/test/player_external.js +7 -1
  92. package/test/player_integration.js +9 -10
  93. package/test/player_src_equals_integration.js +81 -83
  94. package/test/player_unit.js +240 -2
  95. package/test/test/boot.js +9 -0
  96. package/test/test/externs/filters.js +4 -0
  97. package/test/test/util/manifest_generator.js +2 -0
  98. package/test/test/util/simple_fakes.js +45 -2
  99. package/test/test/util/streaming_engine_util.js +1 -0
  100. package/test/text/vtt_text_parser_unit.js +68 -5
  101. package/test/ui/ui_unit.js +18 -5
  102. package/test/util/mime_utils_unit.js +54 -0
  103. package/test/util/periods_unit.js +79 -0
  104. package/test/util/stream_utils_unit.js +108 -0
  105. package/ui/controls.js +12 -8
  106. package/ui/externs/ui.js +10 -1
  107. package/ui/less/containers.less +1 -1
  108. package/ui/less/general.less +1 -1
  109. package/ui/less/range_elements.less +1 -0
  110. package/ui/resolution_selection.js +1 -1
  111. package/ui/statistics_button.js +10 -0
  112. package/ui/ui.js +12 -1
  113. package/.github/pull_request_template.md +0 -10
  114. package/docs/tutorials/gsoc-ideas-list.md +0 -3
@@ -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.
@@ -1652,6 +1652,7 @@ declare namespace shaka.text {
1652
1652
  startTime : any ;
1653
1653
  textAlign : any ;
1654
1654
  textDecoration : any ;
1655
+ textShadow : any ;
1655
1656
  textStrokeColor : any ;
1656
1657
  textStrokeWidth : any ;
1657
1658
  wrapLine : any ;
@@ -2180,6 +2181,7 @@ declare namespace shaka.util.Error {
2180
2181
  CAST_CANCELED_BY_USER = 8004.0 ,
2181
2182
  CAST_CONNECTION_TIMED_OUT = 8005.0 ,
2182
2183
  CAST_RECEIVER_APP_UNAVAILABLE = 8006.0 ,
2184
+ CHAPTERS_TRACK_FAILED = 2015.0 ,
2183
2185
  CONTENT_NOT_LOADED = 7004.0 ,
2184
2186
  CONTENT_TRANSFORMATION_FAILED = 3019.0 ,
2185
2187
  CONTENT_UNSUPPORTED_BY_BROWSER = 4032.0 ,
@@ -2266,6 +2268,7 @@ declare namespace shaka.util.Error {
2266
2268
  REQUEST_FILTER_ERROR = 1006.0 ,
2267
2269
  RESPONSE_FILTER_ERROR = 1007.0 ,
2268
2270
  RESTRICTIONS_CANNOT_BE_MET = 4012.0 ,
2271
+ SEGMENT_MISSING = 1011.0 ,
2269
2272
  SERVER_CERTIFICATE_REQUEST_FAILED = 6017.0 ,
2270
2273
  SERVER_CERTIFICATE_REQUIRED = 6015.0 ,
2271
2274
  SS_AD_MANAGER_NOT_INITIALIZED = 10003.0 ,
@@ -2876,7 +2879,7 @@ declare namespace chrome.cast {
2876
2879
  declare namespace chrome.cast {
2877
2880
  class SessionRequest {
2878
2881
  private noStructuralTyping_chrome_cast_SessionRequest : any;
2879
- constructor (appId : string ) ;
2882
+ constructor (appId : string , capabilities : ( object | null ) [] | null , timeout : number | null , androidReceiverCompatible : boolean , credentialsData : object | null ) ;
2880
2883
  }
2881
2884
  }
2882
2885
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/chromecast.js
@@ -3432,7 +3435,7 @@ declare namespace shaka.extern {
3432
3435
  }
3433
3436
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
3434
3437
  declare namespace shaka.extern {
3435
- 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 } ;
3438
+ 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 } ;
3436
3439
  }
3437
3440
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
3438
3441
  declare namespace shaka.extern {
@@ -3792,7 +3795,7 @@ declare namespace shaka.extern {
3792
3795
  }
3793
3796
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3794
3797
  declare namespace shaka.extern {
3795
- type Chapter = { endTime : number , startTime : number , title : string } ;
3798
+ type Chapter = { endTime : number , id : string , startTime : number , title : string } ;
3796
3799
  }
3797
3800
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3798
3801
  declare namespace shaka.extern {
@@ -3804,7 +3807,7 @@ declare namespace shaka.extern {
3804
3807
  }
3805
3808
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3806
3809
  declare namespace shaka.extern {
3807
- type DrmConfiguration = { advanced : { [ key: string ]: shaka.extern.AdvancedDrmConfiguration } | null , clearKeys : { [ key: string ]: string } , delayLicenseRequestUntilPlayed : boolean , logLicenseExchange : boolean , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
3810
+ 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 } ;
3808
3811
  }
3809
3812
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3810
3813
  declare namespace shaka.extern {
@@ -3852,11 +3855,11 @@ declare namespace shaka.extern {
3852
3855
  }
3853
3856
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3854
3857
  declare namespace shaka.extern {
3855
- 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 } ;
3858
+ 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 } ;
3856
3859
  }
3857
3860
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3858
3861
  declare namespace shaka.extern {
3859
- 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 } ;
3862
+ 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 } ;
3860
3863
  }
3861
3864
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3862
3865
  declare namespace shaka.extern {
@@ -4035,6 +4038,10 @@ declare namespace shaka.extern {
4035
4038
  * and line through. Empty array means no decoration.
4036
4039
  */
4037
4040
  textDecoration : shaka.text.Cue.textDecoration [] ;
4041
+ /**
4042
+ * Text shadow color as a CSS text-shadow value.
4043
+ */
4044
+ textShadow : string ;
4038
4045
  /**
4039
4046
  * Text stroke color as a CSS color, e.g. "#FFFFFF" or "white".
4040
4047
  */
@@ -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.
@@ -1652,6 +1652,7 @@ declare namespace shaka.text {
1652
1652
  startTime : any ;
1653
1653
  textAlign : any ;
1654
1654
  textDecoration : any ;
1655
+ textShadow : any ;
1655
1656
  textStrokeColor : any ;
1656
1657
  textStrokeWidth : any ;
1657
1658
  wrapLine : any ;
@@ -2180,6 +2181,7 @@ declare namespace shaka.util.Error {
2180
2181
  CAST_CANCELED_BY_USER = 8004.0 ,
2181
2182
  CAST_CONNECTION_TIMED_OUT = 8005.0 ,
2182
2183
  CAST_RECEIVER_APP_UNAVAILABLE = 8006.0 ,
2184
+ CHAPTERS_TRACK_FAILED = 2015.0 ,
2183
2185
  CONTENT_NOT_LOADED = 7004.0 ,
2184
2186
  CONTENT_TRANSFORMATION_FAILED = 3019.0 ,
2185
2187
  CONTENT_UNSUPPORTED_BY_BROWSER = 4032.0 ,
@@ -2266,6 +2268,7 @@ declare namespace shaka.util.Error {
2266
2268
  REQUEST_FILTER_ERROR = 1006.0 ,
2267
2269
  RESPONSE_FILTER_ERROR = 1007.0 ,
2268
2270
  RESTRICTIONS_CANNOT_BE_MET = 4012.0 ,
2271
+ SEGMENT_MISSING = 1011.0 ,
2269
2272
  SERVER_CERTIFICATE_REQUEST_FAILED = 6017.0 ,
2270
2273
  SERVER_CERTIFICATE_REQUIRED = 6015.0 ,
2271
2274
  SS_AD_MANAGER_NOT_INITIALIZED = 10003.0 ,
@@ -2876,7 +2879,7 @@ declare namespace chrome.cast {
2876
2879
  declare namespace chrome.cast {
2877
2880
  class SessionRequest {
2878
2881
  private noStructuralTyping_chrome_cast_SessionRequest : any;
2879
- constructor (appId : string ) ;
2882
+ constructor (appId : string , capabilities : ( object | null ) [] | null , timeout : number | null , androidReceiverCompatible : boolean , credentialsData : object | null ) ;
2880
2883
  }
2881
2884
  }
2882
2885
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/chromecast.js
@@ -3432,7 +3435,7 @@ declare namespace shaka.extern {
3432
3435
  }
3433
3436
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
3434
3437
  declare namespace shaka.extern {
3435
- 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 } ;
3438
+ 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 } ;
3436
3439
  }
3437
3440
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
3438
3441
  declare namespace shaka.extern {
@@ -3792,7 +3795,7 @@ declare namespace shaka.extern {
3792
3795
  }
3793
3796
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3794
3797
  declare namespace shaka.extern {
3795
- type Chapter = { endTime : number , startTime : number , title : string } ;
3798
+ type Chapter = { endTime : number , id : string , startTime : number , title : string } ;
3796
3799
  }
3797
3800
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3798
3801
  declare namespace shaka.extern {
@@ -3804,7 +3807,7 @@ declare namespace shaka.extern {
3804
3807
  }
3805
3808
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3806
3809
  declare namespace shaka.extern {
3807
- type DrmConfiguration = { advanced : { [ key: string ]: shaka.extern.AdvancedDrmConfiguration } | null , clearKeys : { [ key: string ]: string } , delayLicenseRequestUntilPlayed : boolean , logLicenseExchange : boolean , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
3810
+ 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 } ;
3808
3811
  }
3809
3812
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3810
3813
  declare namespace shaka.extern {
@@ -3852,11 +3855,11 @@ declare namespace shaka.extern {
3852
3855
  }
3853
3856
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3854
3857
  declare namespace shaka.extern {
3855
- 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 } ;
3858
+ 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 } ;
3856
3859
  }
3857
3860
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3858
3861
  declare namespace shaka.extern {
3859
- 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 } ;
3862
+ 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 } ;
3860
3863
  }
3861
3864
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3862
3865
  declare namespace shaka.extern {
@@ -4035,6 +4038,10 @@ declare namespace shaka.extern {
4035
4038
  * and line through. Empty array means no decoration.
4036
4039
  */
4037
4040
  textDecoration : shaka.text.Cue.textDecoration [] ;
4041
+ /**
4042
+ * Text shadow color as a CSS text-shadow value.
4043
+ */
4044
+ textShadow : string ;
4038
4045
  /**
4039
4046
  * Text stroke color as a CSS color, e.g. "#FFFFFF" or "white".
4040
4047
  */
@@ -126,6 +126,10 @@ shaka.text.Cue.prototype.backgroundImage;
126
126
  * @override
127
127
  */
128
128
  shaka.text.Cue.prototype.border;
129
+ /**
130
+ * @override
131
+ */
132
+ shaka.text.Cue.prototype.textShadow;
129
133
  /**
130
134
  * @override
131
135
  */
@@ -533,6 +537,7 @@ shaka.util.Error.Code = {
533
537
  'MALFORMED_TEST_URI': 1008,
534
538
  'UNEXPECTED_TEST_REQUEST': 1009,
535
539
  'ATTEMPTS_EXHAUSTED': 1010,
540
+ 'SEGMENT_MISSING': 1011,
536
541
  'INVALID_TEXT_HEADER': 2000,
537
542
  'INVALID_TEXT_CUE': 2001,
538
543
  'UNABLE_TO_DETECT_ENCODING': 2003,
@@ -546,6 +551,7 @@ shaka.util.Error.Code = {
546
551
  'CANNOT_ADD_EXTERNAL_TEXT_TO_SRC_EQUALS': 2012,
547
552
  'TEXT_ONLY_WEBVTT_SRC_EQUALS': 2013,
548
553
  'MISSING_TEXT_PLUGIN': 2014,
554
+ 'CHAPTERS_TRACK_FAILED': 2015,
549
555
  'BUFFER_READ_OUT_OF_BOUNDS': 3000,
550
556
  'JS_INTEGER_OVERFLOW': 3001,
551
557
  'EBML_OVERFLOW': 3002,
@@ -3193,8 +3199,10 @@ shaka.cast.CastProxy = class extends shaka.util.FakeEventTarget {
3193
3199
  * @param {string} receiverAppId The ID of the cast receiver application.
3194
3200
  * If blank, casting will not be available, but the proxy will still
3195
3201
  * function otherwise.
3202
+ * @param {boolean} androidReceiverCompatible Indicates if the app is
3203
+ * compatible with an Android Receiver.
3196
3204
  */
3197
- constructor(video, player, receiverAppId) {}
3205
+ constructor(video, player, receiverAppId, androidReceiverCompatible) {}
3198
3206
  /**
3199
3207
  * Destroys the proxy and the underlying local Player.
3200
3208
  * @param {boolean=} forceDisconnect If true, force the receiver app to shut
@@ -3249,8 +3257,9 @@ shaka.cast.CastProxy = class extends shaka.util.FakeEventTarget {
3249
3257
  forceDisconnect() {}
3250
3258
  /**
3251
3259
  * @param {string} newAppId
3260
+ * @param {boolean=} newCastAndroidReceiver
3252
3261
  */
3253
- changeReceiverId(newAppId) {}
3262
+ changeReceiverId(newAppId, newCastAndroidReceiver) {}
3254
3263
  };
3255
3264
  /**
3256
3265
  * A receiver to communicate between the Chromecast-hosted player and the