shaka-player 4.3.5 → 4.3.6

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 (88) hide show
  1. package/.github/workflows/selenium-lab-tests.yaml +23 -1
  2. package/AUTHORS +2 -1
  3. package/CHANGELOG.md +32 -0
  4. package/CONTRIBUTORS +4 -1
  5. package/dist/controls.css +2 -2
  6. package/dist/controls.css.map +1 -1
  7. package/dist/demo.compiled.debug.js +167 -296
  8. package/dist/demo.compiled.debug.map +4 -4
  9. package/dist/demo.compiled.js +167 -296
  10. package/dist/demo.compiled.map +4 -4
  11. package/dist/deps.js +1 -1
  12. package/dist/locales.js +32 -32
  13. package/dist/receiver.compiled.debug.js +34 -63
  14. package/dist/receiver.compiled.debug.map +4 -4
  15. package/dist/receiver.compiled.js +34 -63
  16. package/dist/receiver.compiled.map +4 -4
  17. package/dist/shaka-player.compiled.d.ts +12 -3
  18. package/dist/shaka-player.compiled.debug.d.ts +12 -3
  19. package/dist/shaka-player.compiled.debug.externs.js +20 -14
  20. package/dist/shaka-player.compiled.debug.js +261 -255
  21. package/dist/shaka-player.compiled.debug.map +4 -4
  22. package/dist/shaka-player.compiled.externs.js +20 -14
  23. package/dist/shaka-player.compiled.js +862 -858
  24. package/dist/shaka-player.compiled.map +3 -3
  25. package/dist/shaka-player.ui.d.ts +12 -3
  26. package/dist/shaka-player.ui.debug.d.ts +12 -3
  27. package/dist/shaka-player.ui.debug.externs.js +8 -2
  28. package/dist/shaka-player.ui.debug.js +271 -264
  29. package/dist/shaka-player.ui.debug.map +3 -3
  30. package/dist/shaka-player.ui.externs.js +8 -2
  31. package/dist/shaka-player.ui.js +1005 -1002
  32. package/dist/shaka-player.ui.map +3 -3
  33. package/docs/tutorials/a11y.md +0 -4
  34. package/docs/tutorials/ad_monetization.md +0 -4
  35. package/docs/tutorials/basic-usage.md +0 -5
  36. package/docs/tutorials/config.md +0 -5
  37. package/docs/tutorials/debugging.md +0 -5
  38. package/docs/tutorials/drm-config.md +0 -5
  39. package/docs/tutorials/fairplay.md +2 -2
  40. package/docs/tutorials/license-server-auth.md +0 -5
  41. package/docs/tutorials/license-wrapping.md +0 -5
  42. package/docs/tutorials/network-and-buffering-config.md +0 -5
  43. package/docs/tutorials/ui-customization.md +0 -5
  44. package/docs/tutorials/ui.md +0 -7
  45. package/docs/tutorials/welcome.md +0 -5
  46. package/externs/network_information.js +7 -2
  47. package/externs/shaka/abr_manager.js +6 -0
  48. package/externs/shaka/net.js +1 -0
  49. package/externs/shaka/player.js +13 -7
  50. package/lib/abr/simple_abr_manager.js +27 -3
  51. package/lib/ads/client_side_ad_manager.js +6 -3
  52. package/lib/dash/dash_parser.js +49 -48
  53. package/lib/debug/log.js +9 -13
  54. package/lib/hls/hls_parser.js +17 -5
  55. package/lib/media/media_source_engine.js +27 -9
  56. package/lib/media/presentation_timeline.js +9 -2
  57. package/lib/media/segment_index.js +2 -0
  58. package/lib/media/segment_reference.js +3 -2
  59. package/lib/media/streaming_engine.js +31 -7
  60. package/lib/net/http_fetch_plugin.js +79 -57
  61. package/lib/net/networking_engine.js +1 -0
  62. package/lib/player.js +22 -3
  63. package/lib/polyfill/media_capabilities.js +13 -0
  64. package/lib/text/mp4_vtt_parser.js +4 -0
  65. package/lib/text/text_engine.js +1 -0
  66. package/lib/util/manifest_parser_utils.js +1 -2
  67. package/lib/util/mime_utils.js +11 -0
  68. package/lib/util/periods.js +5 -5
  69. package/lib/util/stream_utils.js +2 -2
  70. package/maintained-branches.md +2 -3
  71. package/package.json +1 -1
  72. package/test/dash/dash_parser_live_unit.js +3 -2
  73. package/test/hls/hls_parser_unit.js +156 -0
  74. package/test/media/content_workarounds_unit.js +43 -0
  75. package/test/media/drm_engine_integration.js +4 -17
  76. package/test/media/streaming_engine_unit.js +6 -1
  77. package/test/net/networking_engine_unit.js +6 -1
  78. package/test/player_integration.js +39 -0
  79. package/test/player_unit.js +57 -0
  80. package/test/polyfill/media_capabilities_unit.js +1 -0
  81. package/test/test/assets/text-clip-alt.vtt +63 -0
  82. package/test/test/util/fake_drm_engine.js +3 -0
  83. package/test/test/util/fake_media_source_engine.js +4 -0
  84. package/test/test/util/simple_fakes.js +6 -0
  85. package/test/test/util/test_scheme.js +9 -14
  86. package/test/text/mp4_vtt_parser_unit.js +8 -0
  87. package/test/util/mime_utils_unit.js +10 -0
  88. package/ui/less/containers.less +4 -0
@@ -467,7 +467,7 @@ declare namespace shaka.Player {
467
467
  }
468
468
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.compiled.externs.js
469
469
  declare namespace shaka.abr {
470
- class SimpleAbrManager implements shaka.extern.AbrManager {
470
+ class SimpleAbrManager implements shaka.extern.AbrManager , shaka.util.IReleasable {
471
471
  private noStructuralTyping_shaka_abr_SimpleAbrManager : any;
472
472
  chooseVariant ( ) : any ;
473
473
  configure (config : any ) : any ;
@@ -476,6 +476,7 @@ declare namespace shaka.abr {
476
476
  getBandwidthEstimate ( ) : any ;
477
477
  init (switchCallback : any ) : any ;
478
478
  playbackRateChanged (rate : any ) : any ;
479
+ release ( ) : any ;
479
480
  segmentDownloaded (deltaTimeMs : any , numBytes : any ) : any ;
480
481
  setMediaElement (mediaElement : any ) : any ;
481
482
  setVariants (variants : any ) : any ;
@@ -3490,6 +3491,10 @@ declare namespace shaka.extern {
3490
3491
  * Updates manager playback rate.
3491
3492
  */
3492
3493
  playbackRateChanged (rate : number ) : any ;
3494
+ /**
3495
+ * Request that this object release all internal references.
3496
+ */
3497
+ release ( ) : any ;
3493
3498
  /**
3494
3499
  * Notifies the AbrManager that a segment has been downloaded (includes MP4
3495
3500
  * SIDX data, WebM Cues data, initialization segments, and media segments).
@@ -3768,7 +3773,7 @@ declare namespace shaka.extern {
3768
3773
  }
3769
3774
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/net.js
3770
3775
  declare namespace shaka.extern {
3771
- type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , status ? : number , timeMs ? : number , uri : string } ;
3776
+ type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , originalUri : string , status ? : number , timeMs ? : number , uri : string } ;
3772
3777
  }
3773
3778
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/net.js
3774
3779
  declare namespace shaka.extern {
@@ -4035,7 +4040,7 @@ declare namespace shaka.extern {
4035
4040
  }
4036
4041
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4037
4042
  declare namespace shaka.extern {
4038
- 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 , parseInbandPsshEnabled : boolean , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
4043
+ type DrmConfiguration = { advanced : { [ key: string ]: shaka.extern.AdvancedDrmConfiguration } | null , clearKeys : { [ key: string ]: string } , delayLicenseRequestUntilPlayed : boolean , initDataTransform ? : shaka.extern.InitDataTransform , keySystemsMapping : { [ key: string ]: string } , logLicenseExchange : boolean , parseInbandPsshEnabled : boolean , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
4039
4044
  }
4040
4045
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4041
4046
  declare namespace shaka.extern {
@@ -4054,6 +4059,10 @@ declare namespace shaka.extern {
4054
4059
  type ID3Metadata = { cueTime : number | null , data : Uint8Array , dts : number | null , frames : shaka.extern.MetadataFrame [] , pts : number | null } ;
4055
4060
  }
4056
4061
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4062
+ declare namespace shaka.extern {
4063
+ type InitDataTransform = (a : Uint8Array , b : string , c : shaka.extern.DrmInfo | null ) => Uint8Array ;
4064
+ }
4065
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4057
4066
  declare namespace shaka.extern {
4058
4067
  type LanguageRole = { label : string | null , language : string , role : string } ;
4059
4068
  }
@@ -467,7 +467,7 @@ declare namespace shaka.Player {
467
467
  }
468
468
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.compiled.debug.externs.js
469
469
  declare namespace shaka.abr {
470
- class SimpleAbrManager implements shaka.extern.AbrManager {
470
+ class SimpleAbrManager implements shaka.extern.AbrManager , shaka.util.IReleasable {
471
471
  private noStructuralTyping_shaka_abr_SimpleAbrManager : any;
472
472
  chooseVariant ( ) : any ;
473
473
  configure (config : any ) : any ;
@@ -476,6 +476,7 @@ declare namespace shaka.abr {
476
476
  getBandwidthEstimate ( ) : any ;
477
477
  init (switchCallback : any ) : any ;
478
478
  playbackRateChanged (rate : any ) : any ;
479
+ release ( ) : any ;
479
480
  segmentDownloaded (deltaTimeMs : any , numBytes : any ) : any ;
480
481
  setMediaElement (mediaElement : any ) : any ;
481
482
  setVariants (variants : any ) : any ;
@@ -3490,6 +3491,10 @@ declare namespace shaka.extern {
3490
3491
  * Updates manager playback rate.
3491
3492
  */
3492
3493
  playbackRateChanged (rate : number ) : any ;
3494
+ /**
3495
+ * Request that this object release all internal references.
3496
+ */
3497
+ release ( ) : any ;
3493
3498
  /**
3494
3499
  * Notifies the AbrManager that a segment has been downloaded (includes MP4
3495
3500
  * SIDX data, WebM Cues data, initialization segments, and media segments).
@@ -3768,7 +3773,7 @@ declare namespace shaka.extern {
3768
3773
  }
3769
3774
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/net.js
3770
3775
  declare namespace shaka.extern {
3771
- type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , status ? : number , timeMs ? : number , uri : string } ;
3776
+ type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , originalUri : string , status ? : number , timeMs ? : number , uri : string } ;
3772
3777
  }
3773
3778
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/net.js
3774
3779
  declare namespace shaka.extern {
@@ -4035,7 +4040,7 @@ declare namespace shaka.extern {
4035
4040
  }
4036
4041
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4037
4042
  declare namespace shaka.extern {
4038
- 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 , parseInbandPsshEnabled : boolean , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
4043
+ type DrmConfiguration = { advanced : { [ key: string ]: shaka.extern.AdvancedDrmConfiguration } | null , clearKeys : { [ key: string ]: string } , delayLicenseRequestUntilPlayed : boolean , initDataTransform ? : shaka.extern.InitDataTransform , keySystemsMapping : { [ key: string ]: string } , logLicenseExchange : boolean , parseInbandPsshEnabled : boolean , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
4039
4044
  }
4040
4045
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4041
4046
  declare namespace shaka.extern {
@@ -4054,6 +4059,10 @@ declare namespace shaka.extern {
4054
4059
  type ID3Metadata = { cueTime : number | null , data : Uint8Array , dts : number | null , frames : shaka.extern.MetadataFrame [] , pts : number | null } ;
4055
4060
  }
4056
4061
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4062
+ declare namespace shaka.extern {
4063
+ type InitDataTransform = (a : Uint8Array , b : string , c : shaka.extern.DrmInfo | null ) => Uint8Array ;
4064
+ }
4065
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4057
4066
  declare namespace shaka.extern {
4058
4067
  type LanguageRole = { label : string | null , language : string , role : string } ;
4059
4068
  }
@@ -40,6 +40,18 @@ shaka.util = {};
40
40
  /** @const */
41
41
  shaka.util.CmcdManager = {};
42
42
 
43
+ /**
44
+ * An interface to standardize how objects release internal references
45
+ * synchronously. If an object needs to asynchronously release references, then
46
+ * it should use 'shaka.util.IDestroyable'.
47
+ * @interface
48
+ */
49
+ shaka.util.IReleasable = class {
50
+ /**
51
+ * Request that this object release all internal references.
52
+ */
53
+ release() {}
54
+ };
43
55
  /**
44
56
  * @implements {shaka.extern.Cue}
45
57
  */
@@ -993,6 +1005,7 @@ shaka.util.LanguageUtils = class {
993
1005
  * per ({@link shaka.abr.SimpleAbrManager.SWITCH_INTERVAL_MS}).
994
1006
  * </p>
995
1007
  * @implements {shaka.extern.AbrManager}
1008
+ * @implements {shaka.util.IReleasable}
996
1009
  */
997
1010
  shaka.abr.SimpleAbrManager = class {
998
1011
  /** */
@@ -1001,6 +1014,10 @@ shaka.abr.SimpleAbrManager = class {
1001
1014
  * @override
1002
1015
  */
1003
1016
  stop() {}
1017
+ /**
1018
+ * @override
1019
+ */
1020
+ release() {}
1004
1021
  /**
1005
1022
  * @override
1006
1023
  */
@@ -1149,18 +1166,6 @@ shaka.util.FakeEvent = class {
1149
1166
  */
1150
1167
  constructor(type, dict) {}
1151
1168
  };
1152
- /**
1153
- * An interface to standardize how objects release internal references
1154
- * synchronously. If an object needs to asynchronously release references, then
1155
- * it should use 'shaka.util.IDestroyable'.
1156
- * @interface
1157
- */
1158
- shaka.util.IReleasable = class {
1159
- /**
1160
- * Request that this object release all internal references.
1161
- */
1162
- release() {}
1163
- };
1164
1169
  /**
1165
1170
  * @summary A work-alike for EventTarget. Only DOM elements may be true
1166
1171
  * EventTargets, but this can be used as a base class to provide event dispatch
@@ -1708,8 +1713,9 @@ shaka.media.SegmentReference = class {
1708
1713
  * minus the first segment's tfdt box's 'baseMediaDecodeTime' field (after
1709
1714
  * it has been converted to seconds).
1710
1715
  * <br>
1711
- * For HLS, this value should be 0 to keep the presentation time at the most
1712
- * recent discontinuity minus the corresponding media time.
1716
+ * For HLS, this value should be the start time of the most recent
1717
+ * discontinuity, or 0 if there is no preceding discontinuity. Only used
1718
+ * in segments mode.
1713
1719
  * @param {number} appendWindowStart
1714
1720
  * The start of the append window for this reference, relative to the
1715
1721
  * presentation. Any content from before this time will be removed by