shaka-player 4.3.4 → 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 (111) hide show
  1. package/.github/workflows/build-and-test.yaml +4 -4
  2. package/.github/workflows/demo-version-index.yaml +6 -0
  3. package/.github/workflows/selenium-lab-tests.yaml +78 -17
  4. package/.github/workflows/update-screenshots.yaml +142 -0
  5. package/AUTHORS +2 -1
  6. package/CHANGELOG.md +56 -0
  7. package/CONTRIBUTORS +4 -1
  8. package/demo/common/asset.js +15 -0
  9. package/demo/common/assets.js +4 -2
  10. package/demo/common/message_ids.js +1 -0
  11. package/demo/custom.js +19 -0
  12. package/demo/locales/en.json +1 -0
  13. package/demo/locales/source.json +4 -0
  14. package/demo/main.js +14 -0
  15. package/dist/controls.css +2 -2
  16. package/dist/controls.css.map +1 -1
  17. package/dist/demo.compiled.debug.js +184 -311
  18. package/dist/demo.compiled.debug.map +4 -4
  19. package/dist/demo.compiled.js +184 -311
  20. package/dist/demo.compiled.map +4 -4
  21. package/dist/deps.js +2 -2
  22. package/dist/locales.js +29 -29
  23. package/dist/receiver.compiled.debug.js +51 -80
  24. package/dist/receiver.compiled.debug.map +4 -4
  25. package/dist/receiver.compiled.js +51 -80
  26. package/dist/receiver.compiled.map +4 -4
  27. package/dist/shaka-player.compiled.d.ts +19 -3
  28. package/dist/shaka-player.compiled.debug.d.ts +19 -3
  29. package/dist/shaka-player.compiled.debug.externs.js +20 -14
  30. package/dist/shaka-player.compiled.debug.js +291 -283
  31. package/dist/shaka-player.compiled.debug.map +4 -4
  32. package/dist/shaka-player.compiled.externs.js +20 -14
  33. package/dist/shaka-player.compiled.js +830 -825
  34. package/dist/shaka-player.compiled.map +3 -3
  35. package/dist/shaka-player.ui.d.ts +19 -3
  36. package/dist/shaka-player.ui.debug.d.ts +19 -3
  37. package/dist/shaka-player.ui.debug.externs.js +8 -2
  38. package/dist/shaka-player.ui.debug.js +301 -292
  39. package/dist/shaka-player.ui.debug.map +3 -3
  40. package/dist/shaka-player.ui.externs.js +8 -2
  41. package/dist/shaka-player.ui.js +927 -922
  42. package/dist/shaka-player.ui.map +3 -3
  43. package/docs/tutorials/a11y.md +0 -4
  44. package/docs/tutorials/ad_monetization.md +0 -4
  45. package/docs/tutorials/basic-usage.md +0 -5
  46. package/docs/tutorials/config.md +0 -5
  47. package/docs/tutorials/debugging.md +0 -5
  48. package/docs/tutorials/drm-config.md +0 -5
  49. package/docs/tutorials/errors.md +94 -0
  50. package/docs/tutorials/fairplay.md +4 -4
  51. package/docs/tutorials/index.json +2 -0
  52. package/docs/tutorials/license-server-auth.md +0 -5
  53. package/docs/tutorials/license-wrapping.md +0 -5
  54. package/docs/tutorials/network-and-buffering-config.md +0 -5
  55. package/docs/tutorials/ui-customization.md +0 -5
  56. package/docs/tutorials/ui.md +0 -7
  57. package/docs/tutorials/welcome.md +0 -5
  58. package/docs/tutorials/widevine-service-certs.md +45 -0
  59. package/externs/ima.js +9 -0
  60. package/externs/network_information.js +7 -2
  61. package/externs/shaka/abr_manager.js +6 -0
  62. package/externs/shaka/net.js +1 -0
  63. package/externs/shaka/player.js +13 -7
  64. package/lib/abr/simple_abr_manager.js +27 -3
  65. package/lib/ads/client_side_ad_manager.js +11 -5
  66. package/lib/dash/dash_parser.js +49 -48
  67. package/lib/debug/log.js +9 -13
  68. package/lib/hls/hls_parser.js +23 -6
  69. package/lib/media/drm_engine.js +4 -2
  70. package/lib/media/media_source_engine.js +27 -9
  71. package/lib/media/presentation_timeline.js +9 -2
  72. package/lib/media/segment_index.js +2 -0
  73. package/lib/media/segment_reference.js +3 -2
  74. package/lib/media/streaming_engine.js +31 -7
  75. package/lib/media/transmuxer.js +13 -7
  76. package/lib/media/video_wrapper.js +3 -3
  77. package/lib/net/http_fetch_plugin.js +79 -57
  78. package/lib/net/networking_engine.js +1 -0
  79. package/lib/offline/indexeddb/storage_mechanism.js +1 -1
  80. package/lib/player.js +24 -3
  81. package/lib/polyfill/media_capabilities.js +15 -8
  82. package/lib/polyfill/mediasource.js +24 -2
  83. package/lib/text/mp4_vtt_parser.js +4 -0
  84. package/lib/text/text_engine.js +1 -0
  85. package/lib/text/ui_text_displayer.js +1 -0
  86. package/lib/text/vtt_text_parser.js +4 -5
  87. package/lib/util/manifest_parser_utils.js +1 -2
  88. package/lib/util/mime_utils.js +12 -1
  89. package/lib/util/periods.js +5 -5
  90. package/lib/util/stream_utils.js +28 -16
  91. package/maintained-branches.md +2 -3
  92. package/package.json +1 -1
  93. package/test/dash/dash_parser_live_unit.js +3 -2
  94. package/test/hls/hls_parser_unit.js +156 -0
  95. package/test/media/content_workarounds_unit.js +43 -0
  96. package/test/media/drm_engine_integration.js +4 -17
  97. package/test/media/streaming_engine_unit.js +6 -1
  98. package/test/net/networking_engine_unit.js +6 -1
  99. package/test/player_integration.js +39 -0
  100. package/test/player_unit.js +57 -0
  101. package/test/polyfill/media_capabilities_unit.js +22 -22
  102. package/test/test/assets/text-clip-alt.vtt +63 -0
  103. package/test/test/util/fake_drm_engine.js +3 -0
  104. package/test/test/util/fake_media_source_engine.js +4 -0
  105. package/test/test/util/simple_fakes.js +6 -0
  106. package/test/test/util/test_scheme.js +9 -14
  107. package/test/text/mp4_vtt_parser_unit.js +8 -0
  108. package/test/text/vtt_text_parser_unit.js +26 -2
  109. package/test/text/web_vtt_layout_integration.js +0 -3
  110. package/test/util/mime_utils_unit.js +10 -0
  111. 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 ;
@@ -3656,6 +3657,13 @@ declare namespace google.ima.dai.api {
3656
3657
  }
3657
3658
  }
3658
3659
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3660
+ declare namespace google.ima.dai.api.StreamRequest {
3661
+ enum StreamFormat {
3662
+ DASH = 'dash' ,
3663
+ HLS = 'hls' ,
3664
+ }
3665
+ }
3666
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3659
3667
  declare namespace google.ima {
3660
3668
  let settings : google.ima.ImaSdkSettings ;
3661
3669
  }
@@ -3950,6 +3958,10 @@ declare namespace shaka.extern {
3950
3958
  * Updates manager playback rate.
3951
3959
  */
3952
3960
  playbackRateChanged (rate : number ) : any ;
3961
+ /**
3962
+ * Request that this object release all internal references.
3963
+ */
3964
+ release ( ) : any ;
3953
3965
  /**
3954
3966
  * Notifies the AbrManager that a segment has been downloaded (includes MP4
3955
3967
  * SIDX data, WebM Cues data, initialization segments, and media segments).
@@ -4228,7 +4240,7 @@ declare namespace shaka.extern {
4228
4240
  }
4229
4241
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/net.js
4230
4242
  declare namespace shaka.extern {
4231
- type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , status ? : number , timeMs ? : number , uri : string } ;
4243
+ type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , originalUri : string , status ? : number , timeMs ? : number , uri : string } ;
4232
4244
  }
4233
4245
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/net.js
4234
4246
  declare namespace shaka.extern {
@@ -4495,7 +4507,7 @@ declare namespace shaka.extern {
4495
4507
  }
4496
4508
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4497
4509
  declare namespace shaka.extern {
4498
- 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 } ;
4510
+ 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 } ;
4499
4511
  }
4500
4512
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4501
4513
  declare namespace shaka.extern {
@@ -4514,6 +4526,10 @@ declare namespace shaka.extern {
4514
4526
  type ID3Metadata = { cueTime : number | null , data : Uint8Array , dts : number | null , frames : shaka.extern.MetadataFrame [] , pts : number | null } ;
4515
4527
  }
4516
4528
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4529
+ declare namespace shaka.extern {
4530
+ type InitDataTransform = (a : Uint8Array , b : string , c : shaka.extern.DrmInfo | null ) => Uint8Array ;
4531
+ }
4532
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4517
4533
  declare namespace shaka.extern {
4518
4534
  type LanguageRole = { label : string | null , language : string , role : string } ;
4519
4535
  }
@@ -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 ;
@@ -3656,6 +3657,13 @@ declare namespace google.ima.dai.api {
3656
3657
  }
3657
3658
  }
3658
3659
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3660
+ declare namespace google.ima.dai.api.StreamRequest {
3661
+ enum StreamFormat {
3662
+ DASH = 'dash' ,
3663
+ HLS = 'hls' ,
3664
+ }
3665
+ }
3666
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3659
3667
  declare namespace google.ima {
3660
3668
  let settings : google.ima.ImaSdkSettings ;
3661
3669
  }
@@ -3950,6 +3958,10 @@ declare namespace shaka.extern {
3950
3958
  * Updates manager playback rate.
3951
3959
  */
3952
3960
  playbackRateChanged (rate : number ) : any ;
3961
+ /**
3962
+ * Request that this object release all internal references.
3963
+ */
3964
+ release ( ) : any ;
3953
3965
  /**
3954
3966
  * Notifies the AbrManager that a segment has been downloaded (includes MP4
3955
3967
  * SIDX data, WebM Cues data, initialization segments, and media segments).
@@ -4228,7 +4240,7 @@ declare namespace shaka.extern {
4228
4240
  }
4229
4241
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/net.js
4230
4242
  declare namespace shaka.extern {
4231
- type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , status ? : number , timeMs ? : number , uri : string } ;
4243
+ type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , originalUri : string , status ? : number , timeMs ? : number , uri : string } ;
4232
4244
  }
4233
4245
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/net.js
4234
4246
  declare namespace shaka.extern {
@@ -4495,7 +4507,7 @@ declare namespace shaka.extern {
4495
4507
  }
4496
4508
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4497
4509
  declare namespace shaka.extern {
4498
- 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 } ;
4510
+ 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 } ;
4499
4511
  }
4500
4512
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4501
4513
  declare namespace shaka.extern {
@@ -4514,6 +4526,10 @@ declare namespace shaka.extern {
4514
4526
  type ID3Metadata = { cueTime : number | null , data : Uint8Array , dts : number | null , frames : shaka.extern.MetadataFrame [] , pts : number | null } ;
4515
4527
  }
4516
4528
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4529
+ declare namespace shaka.extern {
4530
+ type InitDataTransform = (a : Uint8Array , b : string , c : shaka.extern.DrmInfo | null ) => Uint8Array ;
4531
+ }
4532
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4517
4533
  declare namespace shaka.extern {
4518
4534
  type LanguageRole = { label : string | null , language : string , role : string } ;
4519
4535
  }
@@ -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