hls.js 1.6.3-0.canary.11254 → 1.6.3-0.canary.11257

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.
package/dist/hls.light.js CHANGED
@@ -1165,7 +1165,7 @@
1165
1165
  // Some browsers don't allow to use bind on console object anyway
1166
1166
  // fallback to default if needed
1167
1167
  try {
1168
- newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.6.3-0.canary.11254");
1168
+ newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.6.3-0.canary.11257");
1169
1169
  } catch (e) {
1170
1170
  /* log fn threw an exception. All logger methods are no-ops. */
1171
1171
  return createLogger();
@@ -15399,6 +15399,8 @@
15399
15399
  // used by eme-controller
15400
15400
  requestMediaKeySystemAccessFunc: null,
15401
15401
  // used by eme-controller
15402
+ requireKeySystemAccessOnStart: false,
15403
+ // used by eme-controller
15402
15404
  testBandwidth: true,
15403
15405
  progressive: false,
15404
15406
  lowLatencyMode: true,
@@ -17261,8 +17263,11 @@
17261
17263
  if (this.fragCurrent === null) {
17262
17264
  keyLoadingPromise = Promise.reject(new Error("frag load aborted, context changed in KEY_LOADING"));
17263
17265
  }
17264
- } else if (!frag.encrypted && details.encryptedFragments.length) {
17265
- this.keyLoader.loadClear(frag, details.encryptedFragments);
17266
+ } else if (!frag.encrypted) {
17267
+ keyLoadingPromise = this.keyLoader.loadClear(frag, details.encryptedFragments);
17268
+ if (keyLoadingPromise) {
17269
+ this.log("[eme] blocking frag load until media-keys acquired");
17270
+ }
17266
17271
  }
17267
17272
  var fragPrevious = this.fragPrevious;
17268
17273
  if (isMediaFragment(frag) && (!fragPrevious || frag.sn !== fragPrevious.sn)) {
@@ -20519,7 +20524,7 @@
20519
20524
  return !remuxResult.audio && !remuxResult.video && !remuxResult.text && !remuxResult.id3 && !remuxResult.initSegment;
20520
20525
  }
20521
20526
 
20522
- var version = "1.6.3-0.canary.11254";
20527
+ var version = "1.6.3-0.canary.11257";
20523
20528
 
20524
20529
  // ensure the worker ends up in the bundle
20525
20530
  // If the worker should not be included this gets aliased to empty.js
@@ -22238,23 +22243,40 @@
22238
22243
  };
22239
22244
  _proto.loadClear = function loadClear(loadingFrag, encryptedFragments) {
22240
22245
  var _this = this;
22241
- if (this.emeController && this.config.emeEnabled) {
22242
- // access key-system with nearest key on start (loaidng frag is unencrypted)
22243
- var sn = loadingFrag.sn,
22244
- cc = loadingFrag.cc;
22245
- var _loop = function _loop() {
22246
- var frag = encryptedFragments[i];
22247
- if (cc <= frag.cc && (sn === 'initSegment' || frag.sn === 'initSegment' || sn < frag.sn)) {
22248
- _this.emeController.selectKeySystemFormat(frag).then(function (keySystemFormat) {
22249
- frag.setKeyFormat(keySystemFormat);
22250
- });
22251
- return 1; // break
22246
+ if (this.emeController && this.config.emeEnabled && !this.emeController.getSelectedKeySystemFormats().length) {
22247
+ // access key-system with nearest key on start (loading frag is unencrypted)
22248
+ if (encryptedFragments.length) {
22249
+ var sn = loadingFrag.sn,
22250
+ cc = loadingFrag.cc;
22251
+ var _loop = function _loop() {
22252
+ var frag = encryptedFragments[i];
22253
+ if (cc <= frag.cc && (sn === 'initSegment' || frag.sn === 'initSegment' || sn < frag.sn)) {
22254
+ return {
22255
+ v: _this.emeController.selectKeySystemFormat(frag).then(function (keySystemFormat) {
22256
+ frag.setKeyFormat(keySystemFormat);
22257
+ if (_this.emeController && _this.config.requireKeySystemAccessOnStart) {
22258
+ var keySystem = emptyExports.keySystemFormatToKeySystemDomain(keySystemFormat);
22259
+ if (keySystem) {
22260
+ return _this.emeController.getKeySystemAccess([keySystem]);
22261
+ }
22262
+ }
22263
+ })
22264
+ };
22265
+ }
22266
+ },
22267
+ _ret;
22268
+ for (var i = 0; i < encryptedFragments.length; i++) {
22269
+ _ret = _loop();
22270
+ if (_ret) return _ret.v;
22271
+ }
22272
+ } else if (this.config.requireKeySystemAccessOnStart) {
22273
+ var keySystemsInConfig = emptyExports.getKeySystemsForConfig(this.config);
22274
+ if (keySystemsInConfig.length) {
22275
+ return this.emeController.getKeySystemAccess(keySystemsInConfig);
22252
22276
  }
22253
- };
22254
- for (var i = 0; i < encryptedFragments.length; i++) {
22255
- if (_loop()) break;
22256
22277
  }
22257
22278
  }
22279
+ return null;
22258
22280
  };
22259
22281
  _proto.load = function load(frag) {
22260
22282
  var _this2 = this;