shaka-player 4.3.5 → 4.3.7

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 (102) hide show
  1. package/.github/workflows/demo-version-index.yaml +3 -3
  2. package/.github/workflows/selenium-lab-tests.yaml +23 -1
  3. package/AUTHORS +2 -1
  4. package/CHANGELOG.md +53 -0
  5. package/CONTRIBUTORS +4 -1
  6. package/README.md +3 -0
  7. package/demo/demo.less +1 -0
  8. package/dist/controls.css +2 -2
  9. package/dist/controls.css.map +1 -1
  10. package/dist/demo.compiled.debug.js +167 -296
  11. package/dist/demo.compiled.debug.map +4 -4
  12. package/dist/demo.compiled.js +167 -296
  13. package/dist/demo.compiled.map +4 -4
  14. package/dist/demo.css +1 -1
  15. package/dist/demo.css.map +1 -1
  16. package/dist/deps.js +1 -1
  17. package/dist/locales.js +32 -32
  18. package/dist/receiver.compiled.debug.js +34 -63
  19. package/dist/receiver.compiled.debug.map +4 -4
  20. package/dist/receiver.compiled.js +34 -63
  21. package/dist/receiver.compiled.map +4 -4
  22. package/dist/shaka-player.compiled.d.ts +20 -3
  23. package/dist/shaka-player.compiled.debug.d.ts +20 -3
  24. package/dist/shaka-player.compiled.debug.externs.js +29 -14
  25. package/dist/shaka-player.compiled.debug.js +303 -292
  26. package/dist/shaka-player.compiled.debug.map +4 -4
  27. package/dist/shaka-player.compiled.externs.js +29 -14
  28. package/dist/shaka-player.compiled.js +886 -879
  29. package/dist/shaka-player.compiled.map +3 -3
  30. package/dist/shaka-player.ui.d.ts +20 -3
  31. package/dist/shaka-player.ui.debug.d.ts +20 -3
  32. package/dist/shaka-player.ui.debug.externs.js +17 -2
  33. package/dist/shaka-player.ui.debug.js +321 -309
  34. package/dist/shaka-player.ui.debug.map +3 -3
  35. package/dist/shaka-player.ui.externs.js +17 -2
  36. package/dist/shaka-player.ui.js +1027 -1021
  37. package/dist/shaka-player.ui.map +3 -3
  38. package/docs/tutorials/a11y.md +0 -4
  39. package/docs/tutorials/ad_monetization.md +0 -4
  40. package/docs/tutorials/basic-usage.md +0 -5
  41. package/docs/tutorials/config.md +0 -5
  42. package/docs/tutorials/debugging.md +0 -5
  43. package/docs/tutorials/drm-config.md +0 -5
  44. package/docs/tutorials/fairplay.md +2 -2
  45. package/docs/tutorials/license-server-auth.md +0 -5
  46. package/docs/tutorials/license-wrapping.md +0 -5
  47. package/docs/tutorials/network-and-buffering-config.md +0 -5
  48. package/docs/tutorials/ui-customization.md +0 -5
  49. package/docs/tutorials/ui.md +0 -7
  50. package/docs/tutorials/welcome.md +1 -6
  51. package/externs/network_information.js +7 -2
  52. package/externs/shaka/abr_manager.js +6 -0
  53. package/externs/shaka/net.js +1 -0
  54. package/externs/shaka/player.js +13 -7
  55. package/lib/abr/simple_abr_manager.js +27 -3
  56. package/lib/ads/client_side_ad_manager.js +6 -3
  57. package/lib/cea/mp4_cea_parser.js +5 -2
  58. package/lib/dash/dash_parser.js +49 -48
  59. package/lib/debug/log.js +9 -13
  60. package/lib/hls/hls_parser.js +60 -7
  61. package/lib/hls/manifest_text_parser.js +10 -1
  62. package/lib/media/drm_engine.js +9 -6
  63. package/lib/media/media_source_engine.js +33 -13
  64. package/lib/media/presentation_timeline.js +9 -2
  65. package/lib/media/segment_index.js +2 -0
  66. package/lib/media/segment_reference.js +25 -2
  67. package/lib/media/streaming_engine.js +40 -11
  68. package/lib/net/http_fetch_plugin.js +79 -57
  69. package/lib/net/networking_engine.js +1 -0
  70. package/lib/player.js +26 -3
  71. package/lib/polyfill/media_capabilities.js +13 -0
  72. package/lib/text/mp4_vtt_parser.js +4 -0
  73. package/lib/text/text_engine.js +1 -0
  74. package/lib/util/manifest_parser_utils.js +1 -2
  75. package/lib/util/mime_utils.js +11 -0
  76. package/lib/util/periods.js +5 -5
  77. package/lib/util/stream_utils.js +2 -2
  78. package/maintained-branches.md +2 -3
  79. package/package.json +8 -3
  80. package/test/cea/mp4_cea_parser_unit.js +19 -0
  81. package/test/dash/dash_parser_live_unit.js +3 -2
  82. package/test/hls/hls_live_unit.js +3 -1
  83. package/test/hls/hls_parser_unit.js +156 -0
  84. package/test/media/content_workarounds_unit.js +43 -0
  85. package/test/media/drm_engine_integration.js +4 -17
  86. package/test/media/media_source_engine_unit.js +30 -0
  87. package/test/media/streaming_engine_unit.js +6 -1
  88. package/test/net/networking_engine_unit.js +6 -1
  89. package/test/player_integration.js +39 -0
  90. package/test/player_unit.js +57 -0
  91. package/test/polyfill/media_capabilities_unit.js +1 -0
  92. package/test/test/assets/h265-cea-init.mp4 +0 -0
  93. package/test/test/assets/h265-cea-segment.mp4 +0 -0
  94. package/test/test/assets/text-clip-alt.vtt +63 -0
  95. package/test/test/util/fake_drm_engine.js +3 -0
  96. package/test/test/util/fake_media_source_engine.js +4 -0
  97. package/test/test/util/layout_tests.js +4 -3
  98. package/test/test/util/simple_fakes.js +6 -0
  99. package/test/test/util/test_scheme.js +9 -14
  100. package/test/text/mp4_vtt_parser_unit.js +8 -0
  101. package/test/util/mime_utils_unit.js +10 -0
  102. 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.ui.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 ;
@@ -1198,6 +1199,14 @@ declare namespace shaka.media {
1198
1199
  * Creates and returns the URIs of the resource containing the segment.
1199
1200
  */
1200
1201
  getUris ( ) : string [] ;
1202
+ /**
1203
+ * Returns true if the segment is preloaded.
1204
+ */
1205
+ isPreload ( ) : boolean ;
1206
+ /**
1207
+ * Mark the reference as preload.
1208
+ */
1209
+ markAsPreload ( ) : any ;
1201
1210
  /**
1202
1211
  * Mark the reference as unavailable.
1203
1212
  */
@@ -3957,6 +3966,10 @@ declare namespace shaka.extern {
3957
3966
  * Updates manager playback rate.
3958
3967
  */
3959
3968
  playbackRateChanged (rate : number ) : any ;
3969
+ /**
3970
+ * Request that this object release all internal references.
3971
+ */
3972
+ release ( ) : any ;
3960
3973
  /**
3961
3974
  * Notifies the AbrManager that a segment has been downloaded (includes MP4
3962
3975
  * SIDX data, WebM Cues data, initialization segments, and media segments).
@@ -4235,7 +4248,7 @@ declare namespace shaka.extern {
4235
4248
  }
4236
4249
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/net.js
4237
4250
  declare namespace shaka.extern {
4238
- type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , status ? : number , timeMs ? : number , uri : string } ;
4251
+ type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , originalUri : string , status ? : number , timeMs ? : number , uri : string } ;
4239
4252
  }
4240
4253
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/net.js
4241
4254
  declare namespace shaka.extern {
@@ -4502,7 +4515,7 @@ declare namespace shaka.extern {
4502
4515
  }
4503
4516
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4504
4517
  declare namespace shaka.extern {
4505
- 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 } ;
4518
+ 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 } ;
4506
4519
  }
4507
4520
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4508
4521
  declare namespace shaka.extern {
@@ -4521,6 +4534,10 @@ declare namespace shaka.extern {
4521
4534
  type ID3Metadata = { cueTime : number | null , data : Uint8Array , dts : number | null , frames : shaka.extern.MetadataFrame [] , pts : number | null } ;
4522
4535
  }
4523
4536
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4537
+ declare namespace shaka.extern {
4538
+ type InitDataTransform = (a : Uint8Array , b : string , c : shaka.extern.DrmInfo | null ) => Uint8Array ;
4539
+ }
4540
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4524
4541
  declare namespace shaka.extern {
4525
4542
  type LanguageRole = { label : string | null , language : string , role : string } ;
4526
4543
  }
@@ -467,7 +467,7 @@ declare namespace shaka.Player {
467
467
  }
468
468
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.ui.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 ;
@@ -1198,6 +1199,14 @@ declare namespace shaka.media {
1198
1199
  * Creates and returns the URIs of the resource containing the segment.
1199
1200
  */
1200
1201
  getUris ( ) : string [] ;
1202
+ /**
1203
+ * Returns true if the segment is preloaded.
1204
+ */
1205
+ isPreload ( ) : boolean ;
1206
+ /**
1207
+ * Mark the reference as preload.
1208
+ */
1209
+ markAsPreload ( ) : any ;
1201
1210
  /**
1202
1211
  * Mark the reference as unavailable.
1203
1212
  */
@@ -3957,6 +3966,10 @@ declare namespace shaka.extern {
3957
3966
  * Updates manager playback rate.
3958
3967
  */
3959
3968
  playbackRateChanged (rate : number ) : any ;
3969
+ /**
3970
+ * Request that this object release all internal references.
3971
+ */
3972
+ release ( ) : any ;
3960
3973
  /**
3961
3974
  * Notifies the AbrManager that a segment has been downloaded (includes MP4
3962
3975
  * SIDX data, WebM Cues data, initialization segments, and media segments).
@@ -4235,7 +4248,7 @@ declare namespace shaka.extern {
4235
4248
  }
4236
4249
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/net.js
4237
4250
  declare namespace shaka.extern {
4238
- type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , status ? : number , timeMs ? : number , uri : string } ;
4251
+ type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , originalUri : string , status ? : number , timeMs ? : number , uri : string } ;
4239
4252
  }
4240
4253
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/net.js
4241
4254
  declare namespace shaka.extern {
@@ -4502,7 +4515,7 @@ declare namespace shaka.extern {
4502
4515
  }
4503
4516
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4504
4517
  declare namespace shaka.extern {
4505
- 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 } ;
4518
+ 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 } ;
4506
4519
  }
4507
4520
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4508
4521
  declare namespace shaka.extern {
@@ -4521,6 +4534,10 @@ declare namespace shaka.extern {
4521
4534
  type ID3Metadata = { cueTime : number | null , data : Uint8Array , dts : number | null , frames : shaka.extern.MetadataFrame [] , pts : number | null } ;
4522
4535
  }
4523
4536
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4537
+ declare namespace shaka.extern {
4538
+ type InitDataTransform = (a : Uint8Array , b : string , c : shaka.extern.DrmInfo | null ) => Uint8Array ;
4539
+ }
4540
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4524
4541
  declare namespace shaka.extern {
4525
4542
  type LanguageRole = { label : string | null , language : string , role : string } ;
4526
4543
  }
@@ -1177,6 +1177,7 @@ shaka.text.TextEngine = class {
1177
1177
  * per ({@link shaka.abr.SimpleAbrManager.SWITCH_INTERVAL_MS}).
1178
1178
  * </p>
1179
1179
  * @implements {shaka.extern.AbrManager}
1180
+ * @implements {shaka.util.IReleasable}
1180
1181
  */
1181
1182
  shaka.abr.SimpleAbrManager = class {
1182
1183
  /** */
@@ -1185,6 +1186,10 @@ shaka.abr.SimpleAbrManager = class {
1185
1186
  * @override
1186
1187
  */
1187
1188
  stop() {}
1189
+ /**
1190
+ * @override
1191
+ */
1192
+ release() {}
1188
1193
  /**
1189
1194
  * @override
1190
1195
  */
@@ -1815,8 +1820,9 @@ shaka.media.SegmentReference = class {
1815
1820
  * minus the first segment's tfdt box's 'baseMediaDecodeTime' field (after
1816
1821
  * it has been converted to seconds).
1817
1822
  * <br>
1818
- * For HLS, this value should be 0 to keep the presentation time at the most
1819
- * recent discontinuity minus the corresponding media time.
1823
+ * For HLS, this value should be the start time of the most recent
1824
+ * discontinuity, or 0 if there is no preceding discontinuity. Only used
1825
+ * in segments mode.
1820
1826
  * @param {number} appendWindowStart
1821
1827
  * The start of the append window for this reference, relative to the
1822
1828
  * presentation. Any content from before this time will be removed by
@@ -1894,6 +1900,15 @@ shaka.media.SegmentReference = class {
1894
1900
  * Mark the reference as unavailable.
1895
1901
  */
1896
1902
  markAsUnavailable() {}
1903
+ /**
1904
+ * Mark the reference as preload.
1905
+ */
1906
+ markAsPreload() {}
1907
+ /**
1908
+ * Returns true if the segment is preloaded.
1909
+ * @return {boolean}
1910
+ */
1911
+ isPreload() {}
1897
1912
  /**
1898
1913
  * Set the segment's thumbnail sprite.
1899
1914
  * @param {shaka.media.SegmentReference.ThumbnailSprite} thumbnailSprite