shaka-player 4.2.8 → 4.2.10

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 (104) 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 +50 -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 +1 -1
  16. package/dist/demo.compiled.debug.js +170 -290
  17. package/dist/demo.compiled.debug.map +4 -4
  18. package/dist/demo.compiled.js +170 -290
  19. package/dist/demo.compiled.map +4 -4
  20. package/dist/deps.js +2 -2
  21. package/dist/locales.js +30 -30
  22. package/dist/receiver.compiled.debug.js +52 -81
  23. package/dist/receiver.compiled.debug.map +4 -4
  24. package/dist/receiver.compiled.js +52 -81
  25. package/dist/receiver.compiled.map +4 -4
  26. package/dist/shaka-player.compiled.d.ts +19 -3
  27. package/dist/shaka-player.compiled.debug.d.ts +19 -3
  28. package/dist/shaka-player.compiled.debug.externs.js +17 -12
  29. package/dist/shaka-player.compiled.debug.js +181 -176
  30. package/dist/shaka-player.compiled.debug.map +4 -4
  31. package/dist/shaka-player.compiled.externs.js +17 -12
  32. package/dist/shaka-player.compiled.js +825 -823
  33. package/dist/shaka-player.compiled.map +3 -3
  34. package/dist/shaka-player.ui.d.ts +19 -3
  35. package/dist/shaka-player.ui.debug.d.ts +19 -3
  36. package/dist/shaka-player.ui.debug.externs.js +5 -0
  37. package/dist/shaka-player.ui.debug.js +191 -186
  38. package/dist/shaka-player.ui.debug.map +3 -3
  39. package/dist/shaka-player.ui.externs.js +5 -0
  40. package/dist/shaka-player.ui.js +955 -951
  41. package/dist/shaka-player.ui.map +3 -3
  42. package/docs/tutorials/a11y.md +0 -4
  43. package/docs/tutorials/ad_monetization.md +0 -4
  44. package/docs/tutorials/basic-usage.md +0 -5
  45. package/docs/tutorials/config.md +0 -5
  46. package/docs/tutorials/debugging.md +0 -5
  47. package/docs/tutorials/drm-config.md +0 -5
  48. package/docs/tutorials/errors.md +94 -0
  49. package/docs/tutorials/fairplay.md +4 -4
  50. package/docs/tutorials/index.json +2 -0
  51. package/docs/tutorials/license-server-auth.md +0 -5
  52. package/docs/tutorials/license-wrapping.md +0 -5
  53. package/docs/tutorials/network-and-buffering-config.md +0 -5
  54. package/docs/tutorials/ui-customization.md +0 -5
  55. package/docs/tutorials/ui.md +0 -7
  56. package/docs/tutorials/welcome.md +0 -5
  57. package/docs/tutorials/widevine-service-certs.md +45 -0
  58. package/externs/ima.js +9 -0
  59. package/externs/network_information.js +7 -2
  60. package/externs/shaka/abr_manager.js +6 -0
  61. package/externs/shaka/net.js +1 -0
  62. package/externs/shaka/player.js +13 -7
  63. package/lib/abr/simple_abr_manager.js +27 -3
  64. package/lib/ads/client_side_ad_manager.js +11 -5
  65. package/lib/dash/dash_parser.js +49 -48
  66. package/lib/debug/log.js +9 -13
  67. package/lib/hls/hls_parser.js +2 -0
  68. package/lib/media/drm_engine.js +4 -2
  69. package/lib/media/media_source_engine.js +11 -4
  70. package/lib/media/segment_index.js +2 -0
  71. package/lib/media/streaming_engine.js +8 -3
  72. package/lib/media/transmuxer.js +13 -7
  73. package/lib/media/video_wrapper.js +3 -3
  74. package/lib/net/http_fetch_plugin.js +79 -57
  75. package/lib/net/networking_engine.js +1 -0
  76. package/lib/offline/indexeddb/storage_mechanism.js +1 -1
  77. package/lib/player.js +24 -3
  78. package/lib/polyfill/media_capabilities.js +15 -8
  79. package/lib/polyfill/mediasource.js +24 -2
  80. package/lib/text/mp4_vtt_parser.js +4 -0
  81. package/lib/text/text_engine.js +1 -0
  82. package/lib/text/ui_text_displayer.js +1 -0
  83. package/lib/text/vtt_text_parser.js +4 -5
  84. package/lib/util/manifest_parser_utils.js +1 -2
  85. package/lib/util/mime_utils.js +12 -1
  86. package/lib/util/periods.js +5 -5
  87. package/lib/util/stream_utils.js +28 -16
  88. package/maintained-branches.md +3 -4
  89. package/package.json +1 -1
  90. package/test/media/content_workarounds_unit.js +43 -0
  91. package/test/media/drm_engine_integration.js +4 -17
  92. package/test/media/streaming_engine_unit.js +6 -1
  93. package/test/net/networking_engine_unit.js +6 -1
  94. package/test/player_integration.js +39 -0
  95. package/test/player_unit.js +57 -0
  96. package/test/polyfill/media_capabilities_unit.js +20 -23
  97. package/test/test/assets/text-clip-alt.vtt +63 -0
  98. package/test/test/util/fake_drm_engine.js +3 -0
  99. package/test/test/util/simple_fakes.js +6 -0
  100. package/test/test/util/test_scheme.js +9 -14
  101. package/test/text/mp4_vtt_parser_unit.js +8 -0
  102. package/test/text/vtt_text_parser_unit.js +26 -2
  103. package/test/text/web_vtt_layout_integration.js +0 -3
  104. package/test/util/mime_utils_unit.js +10 -0
@@ -454,7 +454,7 @@ declare namespace shaka.Player {
454
454
  }
455
455
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.ui.externs.js
456
456
  declare namespace shaka.abr {
457
- class SimpleAbrManager implements shaka.extern.AbrManager {
457
+ class SimpleAbrManager implements shaka.extern.AbrManager , shaka.util.IReleasable {
458
458
  private noStructuralTyping_shaka_abr_SimpleAbrManager : any;
459
459
  chooseVariant ( ) : any ;
460
460
  configure (config : any ) : any ;
@@ -463,6 +463,7 @@ declare namespace shaka.abr {
463
463
  getBandwidthEstimate ( ) : any ;
464
464
  init (switchCallback : any ) : any ;
465
465
  playbackRateChanged (rate : any ) : any ;
466
+ release ( ) : any ;
466
467
  segmentDownloaded (deltaTimeMs : any , numBytes : any ) : any ;
467
468
  setMediaElement (mediaElement : any ) : any ;
468
469
  setVariants (variants : any ) : any ;
@@ -3570,6 +3571,13 @@ declare namespace google.ima.dai.api {
3570
3571
  }
3571
3572
  }
3572
3573
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3574
+ declare namespace google.ima.dai.api.StreamRequest {
3575
+ enum StreamFormat {
3576
+ DASH = 'dash' ,
3577
+ HLS = 'hls' ,
3578
+ }
3579
+ }
3580
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3573
3581
  declare namespace google.ima {
3574
3582
  let settings : google.ima.ImaSdkSettings ;
3575
3583
  }
@@ -3818,6 +3826,10 @@ declare namespace shaka.extern {
3818
3826
  * Updates manager playback rate.
3819
3827
  */
3820
3828
  playbackRateChanged (rate : number ) : any ;
3829
+ /**
3830
+ * Request that this object release all internal references.
3831
+ */
3832
+ release ( ) : any ;
3821
3833
  /**
3822
3834
  * Notifies the AbrManager that a segment has been downloaded (includes MP4
3823
3835
  * SIDX data, WebM Cues data, initialization segments, and media segments).
@@ -4094,7 +4106,7 @@ declare namespace shaka.extern {
4094
4106
  }
4095
4107
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/net.js
4096
4108
  declare namespace shaka.extern {
4097
- type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , status ? : number , timeMs ? : number , uri : string } ;
4109
+ type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , originalUri : string , status ? : number , timeMs ? : number , uri : string } ;
4098
4110
  }
4099
4111
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/net.js
4100
4112
  declare namespace shaka.extern {
@@ -4361,7 +4373,7 @@ declare namespace shaka.extern {
4361
4373
  }
4362
4374
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4363
4375
  declare namespace shaka.extern {
4364
- 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 } ;
4376
+ 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 } ;
4365
4377
  }
4366
4378
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4367
4379
  declare namespace shaka.extern {
@@ -4380,6 +4392,10 @@ declare namespace shaka.extern {
4380
4392
  type ID3Metadata = { [ key: string ]: any } ;
4381
4393
  }
4382
4394
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4395
+ declare namespace shaka.extern {
4396
+ type InitDataTransform = (a : Uint8Array , b : string , c : shaka.extern.DrmInfo | null ) => Uint8Array ;
4397
+ }
4398
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4383
4399
  declare namespace shaka.extern {
4384
4400
  type LanguageRole = { label : string | null , language : string , role : string } ;
4385
4401
  }
@@ -454,7 +454,7 @@ declare namespace shaka.Player {
454
454
  }
455
455
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.ui.debug.externs.js
456
456
  declare namespace shaka.abr {
457
- class SimpleAbrManager implements shaka.extern.AbrManager {
457
+ class SimpleAbrManager implements shaka.extern.AbrManager , shaka.util.IReleasable {
458
458
  private noStructuralTyping_shaka_abr_SimpleAbrManager : any;
459
459
  chooseVariant ( ) : any ;
460
460
  configure (config : any ) : any ;
@@ -463,6 +463,7 @@ declare namespace shaka.abr {
463
463
  getBandwidthEstimate ( ) : any ;
464
464
  init (switchCallback : any ) : any ;
465
465
  playbackRateChanged (rate : any ) : any ;
466
+ release ( ) : any ;
466
467
  segmentDownloaded (deltaTimeMs : any , numBytes : any ) : any ;
467
468
  setMediaElement (mediaElement : any ) : any ;
468
469
  setVariants (variants : any ) : any ;
@@ -3570,6 +3571,13 @@ declare namespace google.ima.dai.api {
3570
3571
  }
3571
3572
  }
3572
3573
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3574
+ declare namespace google.ima.dai.api.StreamRequest {
3575
+ enum StreamFormat {
3576
+ DASH = 'dash' ,
3577
+ HLS = 'hls' ,
3578
+ }
3579
+ }
3580
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3573
3581
  declare namespace google.ima {
3574
3582
  let settings : google.ima.ImaSdkSettings ;
3575
3583
  }
@@ -3818,6 +3826,10 @@ declare namespace shaka.extern {
3818
3826
  * Updates manager playback rate.
3819
3827
  */
3820
3828
  playbackRateChanged (rate : number ) : any ;
3829
+ /**
3830
+ * Request that this object release all internal references.
3831
+ */
3832
+ release ( ) : any ;
3821
3833
  /**
3822
3834
  * Notifies the AbrManager that a segment has been downloaded (includes MP4
3823
3835
  * SIDX data, WebM Cues data, initialization segments, and media segments).
@@ -4094,7 +4106,7 @@ declare namespace shaka.extern {
4094
4106
  }
4095
4107
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/net.js
4096
4108
  declare namespace shaka.extern {
4097
- type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , status ? : number , timeMs ? : number , uri : string } ;
4109
+ type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , originalUri : string , status ? : number , timeMs ? : number , uri : string } ;
4098
4110
  }
4099
4111
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/net.js
4100
4112
  declare namespace shaka.extern {
@@ -4361,7 +4373,7 @@ declare namespace shaka.extern {
4361
4373
  }
4362
4374
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4363
4375
  declare namespace shaka.extern {
4364
- 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 } ;
4376
+ 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 } ;
4365
4377
  }
4366
4378
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4367
4379
  declare namespace shaka.extern {
@@ -4380,6 +4392,10 @@ declare namespace shaka.extern {
4380
4392
  type ID3Metadata = { [ key: string ]: any } ;
4381
4393
  }
4382
4394
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4395
+ declare namespace shaka.extern {
4396
+ type InitDataTransform = (a : Uint8Array , b : string , c : shaka.extern.DrmInfo | null ) => Uint8Array ;
4397
+ }
4398
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4383
4399
  declare namespace shaka.extern {
4384
4400
  type LanguageRole = { label : string | null , language : string , role : string } ;
4385
4401
  }
@@ -1170,6 +1170,7 @@ shaka.text.TextEngine = class {
1170
1170
  * per ({@link shaka.abr.SimpleAbrManager.SWITCH_INTERVAL_MS}).
1171
1171
  * </p>
1172
1172
  * @implements {shaka.extern.AbrManager}
1173
+ * @implements {shaka.util.IReleasable}
1173
1174
  */
1174
1175
  shaka.abr.SimpleAbrManager = class {
1175
1176
  /** */
@@ -1178,6 +1179,10 @@ shaka.abr.SimpleAbrManager = class {
1178
1179
  * @override
1179
1180
  */
1180
1181
  stop() {}
1182
+ /**
1183
+ * @override
1184
+ */
1185
+ release() {}
1181
1186
  /**
1182
1187
  * @override
1183
1188
  */