shaka-player 4.0.2 → 4.1.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 (86) hide show
  1. package/AUTHORS +1 -0
  2. package/CHANGELOG.md +36 -16
  3. package/CONTRIBUTORS +2 -0
  4. package/build/test.py +1 -1
  5. package/demo/common/assets.js +1 -1
  6. package/demo/common/message_ids.js +1 -0
  7. package/demo/config.js +3 -1
  8. package/demo/locales/en.json +1 -0
  9. package/demo/locales/source.json +4 -0
  10. package/demo/main.js +3 -3
  11. package/dist/demo.compiled.debug.js +7 -7
  12. package/dist/demo.compiled.debug.map +2 -2
  13. package/dist/demo.compiled.js +7 -7
  14. package/dist/demo.compiled.map +2 -2
  15. package/dist/deps.js +2 -2
  16. package/dist/locales.js +30 -30
  17. package/dist/receiver.compiled.debug.js +3 -3
  18. package/dist/receiver.compiled.debug.map +2 -2
  19. package/dist/receiver.compiled.js +3 -3
  20. package/dist/receiver.compiled.map +2 -2
  21. package/dist/shaka-player.compiled.d.ts +14 -8
  22. package/dist/shaka-player.compiled.debug.d.ts +14 -8
  23. package/dist/shaka-player.compiled.debug.externs.js +13 -4
  24. package/dist/shaka-player.compiled.debug.js +296 -282
  25. package/dist/shaka-player.compiled.debug.map +4 -4
  26. package/dist/shaka-player.compiled.externs.js +13 -4
  27. package/dist/shaka-player.compiled.js +781 -773
  28. package/dist/shaka-player.compiled.map +4 -4
  29. package/dist/shaka-player.ui.d.ts +15 -9
  30. package/dist/shaka-player.ui.debug.d.ts +15 -9
  31. package/dist/shaka-player.ui.debug.externs.js +13 -4
  32. package/dist/shaka-player.ui.debug.js +345 -326
  33. package/dist/shaka-player.ui.debug.map +4 -4
  34. package/dist/shaka-player.ui.externs.js +13 -4
  35. package/dist/shaka-player.ui.js +955 -949
  36. package/dist/shaka-player.ui.map +4 -4
  37. package/docs/design/chromecast.md +3 -1
  38. package/docs/tutorials/drm-config.md +16 -0
  39. package/docs/tutorials/ui.md +26 -0
  40. package/externs/chromecast.js +9 -2
  41. package/externs/shaka/manifest.js +7 -0
  42. package/externs/shaka/player.js +25 -4
  43. package/externs/shaka/text.js +7 -0
  44. package/lib/cast/cast_proxy.js +19 -8
  45. package/lib/cast/cast_receiver.js +3 -3
  46. package/lib/cast/cast_sender.js +12 -2
  47. package/lib/hls/hls_parser.js +189 -69
  48. package/lib/media/drm_engine.js +17 -8
  49. package/lib/media/gap_jumping_controller.js +23 -1
  50. package/lib/media/playhead.js +47 -4
  51. package/lib/media/segment_index.js +26 -1
  52. package/lib/media/segment_reference.js +10 -3
  53. package/lib/media/stall_detector.js +19 -2
  54. package/lib/media/streaming_engine.js +9 -2
  55. package/lib/offline/manifest_converter.js +1 -0
  56. package/lib/player.js +175 -69
  57. package/lib/text/cue.js +6 -0
  58. package/lib/text/ui_text_displayer.js +1 -0
  59. package/lib/text/vtt_text_parser.js +4 -0
  60. package/lib/util/error.js +6 -0
  61. package/lib/util/fake_event.js +39 -0
  62. package/lib/util/player_configuration.js +2 -0
  63. package/lib/util/stats.js +28 -1
  64. package/lib/util/stream_utils.js +8 -0
  65. package/package.json +2 -2
  66. package/test/cast/cast_proxy_unit.js +3 -1
  67. package/test/cast/cast_sender_unit.js +21 -6
  68. package/test/demo/demo_unit.js +2 -1
  69. package/test/hls/hls_parser_unit.js +102 -8
  70. package/test/media/adaptation_set_unit.js +1 -0
  71. package/test/media/playhead_unit.js +114 -25
  72. package/test/media/stall_detector_unit.js +20 -2
  73. package/test/media/streaming_engine_integration.js +2 -1
  74. package/test/media/streaming_engine_unit.js +1 -0
  75. package/test/player_integration.js +3 -0
  76. package/test/player_unit.js +142 -1
  77. package/test/test/util/manifest_generator.js +2 -0
  78. package/test/test/util/simple_fakes.js +14 -0
  79. package/test/test/util/streaming_engine_util.js +1 -0
  80. package/test/text/vtt_text_parser_unit.js +4 -0
  81. package/test/ui/ui_unit.js +18 -5
  82. package/test/util/stream_utils_unit.js +108 -0
  83. package/ui/controls.js +12 -8
  84. package/ui/externs/ui.js +10 -1
  85. package/ui/statistics_button.js +10 -0
  86. 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.
@@ -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 ;
@@ -2267,6 +2268,7 @@ declare namespace shaka.util.Error {
2267
2268
  REQUEST_FILTER_ERROR = 1006.0 ,
2268
2269
  RESPONSE_FILTER_ERROR = 1007.0 ,
2269
2270
  RESTRICTIONS_CANNOT_BE_MET = 4012.0 ,
2271
+ SEGMENT_MISSING = 1011.0 ,
2270
2272
  SERVER_CERTIFICATE_REQUEST_FAILED = 6017.0 ,
2271
2273
  SERVER_CERTIFICATE_REQUIRED = 6015.0 ,
2272
2274
  SS_AD_MANAGER_NOT_INITIALIZED = 10003.0 ,
@@ -2877,7 +2879,7 @@ declare namespace chrome.cast {
2877
2879
  declare namespace chrome.cast {
2878
2880
  class SessionRequest {
2879
2881
  private noStructuralTyping_chrome_cast_SessionRequest : any;
2880
- constructor (appId : string ) ;
2882
+ constructor (appId : string , capabilities : ( object | null ) [] | null , timeout : number | null , androidReceiverCompatible : boolean , credentialsData : object | null ) ;
2881
2883
  }
2882
2884
  }
2883
2885
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/chromecast.js
@@ -3433,7 +3435,7 @@ declare namespace shaka.extern {
3433
3435
  }
3434
3436
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
3435
3437
  declare namespace shaka.extern {
3436
- 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 } ;
3437
3439
  }
3438
3440
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
3439
3441
  declare namespace shaka.extern {
@@ -3793,7 +3795,7 @@ declare namespace shaka.extern {
3793
3795
  }
3794
3796
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3795
3797
  declare namespace shaka.extern {
3796
- type Chapter = { endTime : number , startTime : number , title : string } ;
3798
+ type Chapter = { endTime : number , id : string , startTime : number , title : string } ;
3797
3799
  }
3798
3800
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3799
3801
  declare namespace shaka.extern {
@@ -3805,7 +3807,7 @@ declare namespace shaka.extern {
3805
3807
  }
3806
3808
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3807
3809
  declare namespace shaka.extern {
3808
- 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 } ;
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 } ;
3809
3811
  }
3810
3812
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3811
3813
  declare namespace shaka.extern {
@@ -3853,11 +3855,11 @@ declare namespace shaka.extern {
3853
3855
  }
3854
3856
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3855
3857
  declare namespace shaka.extern {
3856
- 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 } ;
3857
3859
  }
3858
3860
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3859
3861
  declare namespace shaka.extern {
3860
- 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 } ;
3861
3863
  }
3862
3864
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3863
3865
  declare namespace shaka.extern {
@@ -4036,6 +4038,10 @@ declare namespace shaka.extern {
4036
4038
  * and line through. Empty array means no decoration.
4037
4039
  */
4038
4040
  textDecoration : shaka.text.Cue.textDecoration [] ;
4041
+ /**
4042
+ * Text shadow color as a CSS text-shadow value.
4043
+ */
4044
+ textShadow : string ;
4039
4045
  /**
4040
4046
  * Text stroke color as a CSS color, e.g. "#FFFFFF" or "white".
4041
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 ;
@@ -2267,6 +2268,7 @@ declare namespace shaka.util.Error {
2267
2268
  REQUEST_FILTER_ERROR = 1006.0 ,
2268
2269
  RESPONSE_FILTER_ERROR = 1007.0 ,
2269
2270
  RESTRICTIONS_CANNOT_BE_MET = 4012.0 ,
2271
+ SEGMENT_MISSING = 1011.0 ,
2270
2272
  SERVER_CERTIFICATE_REQUEST_FAILED = 6017.0 ,
2271
2273
  SERVER_CERTIFICATE_REQUIRED = 6015.0 ,
2272
2274
  SS_AD_MANAGER_NOT_INITIALIZED = 10003.0 ,
@@ -2877,7 +2879,7 @@ declare namespace chrome.cast {
2877
2879
  declare namespace chrome.cast {
2878
2880
  class SessionRequest {
2879
2881
  private noStructuralTyping_chrome_cast_SessionRequest : any;
2880
- constructor (appId : string ) ;
2882
+ constructor (appId : string , capabilities : ( object | null ) [] | null , timeout : number | null , androidReceiverCompatible : boolean , credentialsData : object | null ) ;
2881
2883
  }
2882
2884
  }
2883
2885
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/chromecast.js
@@ -3433,7 +3435,7 @@ declare namespace shaka.extern {
3433
3435
  }
3434
3436
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
3435
3437
  declare namespace shaka.extern {
3436
- 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 } ;
3437
3439
  }
3438
3440
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
3439
3441
  declare namespace shaka.extern {
@@ -3793,7 +3795,7 @@ declare namespace shaka.extern {
3793
3795
  }
3794
3796
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3795
3797
  declare namespace shaka.extern {
3796
- type Chapter = { endTime : number , startTime : number , title : string } ;
3798
+ type Chapter = { endTime : number , id : string , startTime : number , title : string } ;
3797
3799
  }
3798
3800
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3799
3801
  declare namespace shaka.extern {
@@ -3805,7 +3807,7 @@ declare namespace shaka.extern {
3805
3807
  }
3806
3808
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3807
3809
  declare namespace shaka.extern {
3808
- 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 } ;
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 } ;
3809
3811
  }
3810
3812
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3811
3813
  declare namespace shaka.extern {
@@ -3853,11 +3855,11 @@ declare namespace shaka.extern {
3853
3855
  }
3854
3856
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3855
3857
  declare namespace shaka.extern {
3856
- 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 } ;
3857
3859
  }
3858
3860
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3859
3861
  declare namespace shaka.extern {
3860
- 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 } ;
3861
3863
  }
3862
3864
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3863
3865
  declare namespace shaka.extern {
@@ -4036,6 +4038,10 @@ declare namespace shaka.extern {
4036
4038
  * and line through. Empty array means no decoration.
4037
4039
  */
4038
4040
  textDecoration : shaka.text.Cue.textDecoration [] ;
4041
+ /**
4042
+ * Text shadow color as a CSS text-shadow value.
4043
+ */
4044
+ textShadow : string ;
4039
4045
  /**
4040
4046
  * Text stroke color as a CSS color, e.g. "#FFFFFF" or "white".
4041
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,
@@ -1691,8 +1696,9 @@ shaka.media.SegmentReference = class {
1691
1696
  * If not provided, the duration should be automatically calculated based on
1692
1697
  * the duration of the reference.
1693
1698
  * @param {?number=} syncTime
1694
- * A time value, expressed in the same scale as the start and end time, which
1695
- * is used to synchronize between streams.
1699
+ * A time value, expressed in seconds since 1970, which is used to
1700
+ * synchronize between streams. Both produced and consumed by the HLS
1701
+ * parser. Other components should not need this value.
1696
1702
  * @param {shaka.media.SegmentReference.Status=} status
1697
1703
  * The segment status is used to indicate that a segment does not exist or is
1698
1704
  * not available.
@@ -3194,8 +3200,10 @@ shaka.cast.CastProxy = class extends shaka.util.FakeEventTarget {
3194
3200
  * @param {string} receiverAppId The ID of the cast receiver application.
3195
3201
  * If blank, casting will not be available, but the proxy will still
3196
3202
  * function otherwise.
3203
+ * @param {boolean} androidReceiverCompatible Indicates if the app is
3204
+ * compatible with an Android Receiver.
3197
3205
  */
3198
- constructor(video, player, receiverAppId) {}
3206
+ constructor(video, player, receiverAppId, androidReceiverCompatible) {}
3199
3207
  /**
3200
3208
  * Destroys the proxy and the underlying local Player.
3201
3209
  * @param {boolean=} forceDisconnect If true, force the receiver app to shut
@@ -3250,8 +3258,9 @@ shaka.cast.CastProxy = class extends shaka.util.FakeEventTarget {
3250
3258
  forceDisconnect() {}
3251
3259
  /**
3252
3260
  * @param {string} newAppId
3261
+ * @param {boolean=} newCastAndroidReceiver
3253
3262
  */
3254
- changeReceiverId(newAppId) {}
3263
+ changeReceiverId(newAppId, newCastAndroidReceiver) {}
3255
3264
  };
3256
3265
  /**
3257
3266
  * A receiver to communicate between the Chromecast-hosted player and the