hls.js 1.5.5-0.canary.9983 → 1.5.5-0.canary.9985
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.js +90 -79
- package/dist/hls.js.map +1 -1
- package/dist/hls.light.js +88 -77
- package/dist/hls.light.js.map +1 -1
- package/dist/hls.light.min.js +1 -1
- package/dist/hls.light.min.js.map +1 -1
- package/dist/hls.light.mjs +90 -79
- package/dist/hls.light.mjs.map +1 -1
- package/dist/hls.min.js +1 -1
- package/dist/hls.min.js.map +1 -1
- package/dist/hls.mjs +92 -81
- package/dist/hls.mjs.map +1 -1
- package/dist/hls.worker.js +1 -1
- package/dist/hls.worker.js.map +1 -1
- package/package.json +1 -1
- package/src/controller/base-playlist-controller.ts +13 -1
- package/src/controller/cmcd-controller.ts +2 -3
- package/src/controller/level-controller.ts +7 -1
- package/src/loader/playlist-loader.ts +4 -5
- package/src/utils/logger.ts +3 -2
package/dist/hls.js
CHANGED
@@ -497,76 +497,6 @@
|
|
497
497
|
return ErrorDetails;
|
498
498
|
}({});
|
499
499
|
|
500
|
-
var Logger = function Logger(label, logger) {
|
501
|
-
this.trace = void 0;
|
502
|
-
this.debug = void 0;
|
503
|
-
this.log = void 0;
|
504
|
-
this.warn = void 0;
|
505
|
-
this.info = void 0;
|
506
|
-
this.error = void 0;
|
507
|
-
var lb = "[" + label + "]:";
|
508
|
-
this.trace = noop;
|
509
|
-
this.debug = logger.debug.bind(null, lb);
|
510
|
-
this.log = logger.log.bind(null, lb);
|
511
|
-
this.warn = logger.warn.bind(null, lb);
|
512
|
-
this.info = logger.info.bind(null, lb);
|
513
|
-
this.error = logger.error.bind(null, lb);
|
514
|
-
};
|
515
|
-
var noop = function noop() {};
|
516
|
-
var fakeLogger = {
|
517
|
-
trace: noop,
|
518
|
-
debug: noop,
|
519
|
-
log: noop,
|
520
|
-
warn: noop,
|
521
|
-
info: noop,
|
522
|
-
error: noop
|
523
|
-
};
|
524
|
-
function createLogger() {
|
525
|
-
return _extends({}, fakeLogger);
|
526
|
-
}
|
527
|
-
|
528
|
-
// let lastCallTime;
|
529
|
-
// function formatMsgWithTimeInfo(type, msg) {
|
530
|
-
// const now = Date.now();
|
531
|
-
// const diff = lastCallTime ? '+' + (now - lastCallTime) : '0';
|
532
|
-
// lastCallTime = now;
|
533
|
-
// msg = (new Date(now)).toISOString() + ' | [' + type + '] > ' + msg + ' ( ' + diff + ' ms )';
|
534
|
-
// return msg;
|
535
|
-
// }
|
536
|
-
|
537
|
-
function consolePrintFn(type, id) {
|
538
|
-
var func = self.console[type];
|
539
|
-
return func ? func.bind(self.console, (id ? '[' + id + '] ' : '') + "[" + type + "] >") : noop;
|
540
|
-
}
|
541
|
-
function getLoggerFn(key, debugConfig, id) {
|
542
|
-
return debugConfig[key] ? debugConfig[key].bind(debugConfig) : consolePrintFn(key, id);
|
543
|
-
}
|
544
|
-
var exportedLogger = createLogger();
|
545
|
-
function enableLogs(debugConfig, context, id) {
|
546
|
-
// check that console is available
|
547
|
-
var newLogger = createLogger();
|
548
|
-
if (typeof console === 'object' && debugConfig === true || typeof debugConfig === 'object') {
|
549
|
-
var keys = [
|
550
|
-
// Remove out from list here to hard-disable a log-level
|
551
|
-
// 'trace',
|
552
|
-
'debug', 'log', 'info', 'warn', 'error'];
|
553
|
-
keys.forEach(function (key) {
|
554
|
-
newLogger[key] = getLoggerFn(key, debugConfig, id);
|
555
|
-
});
|
556
|
-
// Some browsers don't allow to use bind on console object anyway
|
557
|
-
// fallback to default if needed
|
558
|
-
try {
|
559
|
-
newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.5.5-0.canary.9983");
|
560
|
-
} catch (e) {
|
561
|
-
/* log fn threw an exception. All logger methods are no-ops. */
|
562
|
-
return createLogger();
|
563
|
-
}
|
564
|
-
}
|
565
|
-
exportedLogger = newLogger;
|
566
|
-
return newLogger;
|
567
|
-
}
|
568
|
-
var logger = exportedLogger;
|
569
|
-
|
570
500
|
var DECIMAL_RESOLUTION_REGEX = /^(\d+)x(\d+)$/;
|
571
501
|
var ATTR_LIST_REGEX = /(.+?)=(".*?"|.*?)(?:,|$)/g;
|
572
502
|
|
@@ -655,6 +585,77 @@
|
|
655
585
|
return AttrList;
|
656
586
|
}();
|
657
587
|
|
588
|
+
var Logger = function Logger(label, logger) {
|
589
|
+
this.trace = void 0;
|
590
|
+
this.debug = void 0;
|
591
|
+
this.log = void 0;
|
592
|
+
this.warn = void 0;
|
593
|
+
this.info = void 0;
|
594
|
+
this.error = void 0;
|
595
|
+
var lb = "[" + label + "]:";
|
596
|
+
this.trace = noop;
|
597
|
+
this.debug = logger.debug.bind(null, lb);
|
598
|
+
this.log = logger.log.bind(null, lb);
|
599
|
+
this.warn = logger.warn.bind(null, lb);
|
600
|
+
this.info = logger.info.bind(null, lb);
|
601
|
+
this.error = logger.error.bind(null, lb);
|
602
|
+
};
|
603
|
+
var noop = function noop() {};
|
604
|
+
var fakeLogger = {
|
605
|
+
trace: noop,
|
606
|
+
debug: noop,
|
607
|
+
log: noop,
|
608
|
+
warn: noop,
|
609
|
+
info: noop,
|
610
|
+
error: noop
|
611
|
+
};
|
612
|
+
function createLogger() {
|
613
|
+
return _extends({}, fakeLogger);
|
614
|
+
}
|
615
|
+
|
616
|
+
// let lastCallTime;
|
617
|
+
// function formatMsgWithTimeInfo(type, msg) {
|
618
|
+
// const now = Date.now();
|
619
|
+
// const diff = lastCallTime ? '+' + (now - lastCallTime) : '0';
|
620
|
+
// lastCallTime = now;
|
621
|
+
// msg = (new Date(now)).toISOString() + ' | [' + type + '] > ' + msg + ' ( ' + diff + ' ms )';
|
622
|
+
// return msg;
|
623
|
+
// }
|
624
|
+
|
625
|
+
function consolePrintFn(type, id) {
|
626
|
+
var func = self.console[type];
|
627
|
+
return func ? func.bind(self.console, (id ? '[' + id + '] ' : '') + "[" + type + "] >") : noop;
|
628
|
+
}
|
629
|
+
function getLoggerFn(key, debugConfig, id) {
|
630
|
+
return debugConfig[key] ? debugConfig[key].bind(debugConfig) : consolePrintFn(key, id);
|
631
|
+
}
|
632
|
+
var exportedLogger = createLogger();
|
633
|
+
function enableLogs(debugConfig, context, id) {
|
634
|
+
// check that console is available
|
635
|
+
var newLogger = createLogger();
|
636
|
+
if (typeof console === 'object' && debugConfig === true || typeof debugConfig === 'object') {
|
637
|
+
var keys = [
|
638
|
+
// Remove out from list here to hard-disable a log-level
|
639
|
+
// 'trace',
|
640
|
+
'debug', 'log', 'info', 'warn', 'error'];
|
641
|
+
keys.forEach(function (key) {
|
642
|
+
newLogger[key] = getLoggerFn(key, debugConfig, id);
|
643
|
+
});
|
644
|
+
// Some browsers don't allow to use bind on console object anyway
|
645
|
+
// fallback to default if needed
|
646
|
+
try {
|
647
|
+
newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.5.5-0.canary.9985");
|
648
|
+
} catch (e) {
|
649
|
+
/* log fn threw an exception. All logger methods are no-ops. */
|
650
|
+
return createLogger();
|
651
|
+
}
|
652
|
+
}
|
653
|
+
// global exported logger uses the log methods from last call to `enableLogs`
|
654
|
+
_extends(exportedLogger, newLogger);
|
655
|
+
return newLogger;
|
656
|
+
}
|
657
|
+
var logger = exportedLogger;
|
658
|
+
|
658
659
|
// Avoid exporting const enum so that these values can be inlined
|
659
660
|
|
660
661
|
function isDateRangeCueAttribute(attrName) {
|
@@ -4186,10 +4187,10 @@
|
|
4186
4187
|
var loaderContext = loader.context;
|
4187
4188
|
if (loaderContext && loaderContext.url === context.url && loaderContext.level === context.level) {
|
4188
4189
|
// same URL can't overlap
|
4189
|
-
logger.trace('[playlist-loader]: playlist request ongoing');
|
4190
|
+
this.hls.logger.trace('[playlist-loader]: playlist request ongoing');
|
4190
4191
|
return;
|
4191
4192
|
}
|
4192
|
-
logger.log("[playlist-loader]: aborting previous loader for type: " + context.type);
|
4193
|
+
this.hls.logger.log("[playlist-loader]: aborting previous loader for type: " + context.type);
|
4193
4194
|
loader.abort();
|
4194
4195
|
}
|
4195
4196
|
|
@@ -4299,7 +4300,7 @@
|
|
4299
4300
|
// alt audio rendition in which quality levels (main)
|
4300
4301
|
// contains both audio+video. but with mixed audio track not signaled
|
4301
4302
|
if (!embeddedAudioFound && levels[0].audioCodec && !levels[0].attrs.AUDIO) {
|
4302
|
-
logger.log('[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one');
|
4303
|
+
this.hls.logger.log('[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one');
|
4303
4304
|
audioTracks.unshift({
|
4304
4305
|
type: 'main',
|
4305
4306
|
name: 'main',
|
@@ -4399,7 +4400,7 @@
|
|
4399
4400
|
message += " id: " + context.id + " group-id: \"" + context.groupId + "\"";
|
4400
4401
|
}
|
4401
4402
|
var error = new Error(message);
|
4402
|
-
logger.warn("[playlist-loader]: " + message);
|
4403
|
+
this.hls.logger.warn("[playlist-loader]: " + message);
|
4403
4404
|
var details = ErrorDetails.UNKNOWN;
|
4404
4405
|
var fatal = false;
|
4405
4406
|
var loader = this.getInternalLoader(context);
|
@@ -6501,7 +6502,12 @@
|
|
6501
6502
|
var cdnAge = lastAdvanced + details.ageHeader;
|
6502
6503
|
var currentGoal = Math.min(cdnAge - details.partTarget, details.targetduration * 1.5);
|
6503
6504
|
if (currentGoal > 0) {
|
6504
|
-
if (
|
6505
|
+
if (cdnAge > details.targetduration * 3) {
|
6506
|
+
// Omit segment and part directives when the last response was more than 3 target durations ago,
|
6507
|
+
this.log("Playlist last advanced " + lastAdvanced.toFixed(2) + "s ago. Omitting segment and part directives.");
|
6508
|
+
msn = undefined;
|
6509
|
+
part = undefined;
|
6510
|
+
} else if (previousDetails != null && previousDetails.tuneInGoal && cdnAge - details.partTarget > previousDetails.tuneInGoal) {
|
6505
6511
|
// If we attempted to get the next or latest playlist update, but currentGoal increased,
|
6506
6512
|
// then we either can't catchup, or the "age" header cannot be trusted.
|
6507
6513
|
this.warn("CDN Tune-in goal increased from: " + previousDetails.tuneInGoal + " to: " + currentGoal + " with playlist age: " + details.age);
|
@@ -25220,7 +25226,7 @@
|
|
25220
25226
|
su: !_this.initialized
|
25221
25227
|
});
|
25222
25228
|
} catch (error) {
|
25223
|
-
logger.warn('Could not generate manifest CMCD data.', error);
|
25229
|
+
_this.hls.logger.warn('Could not generate manifest CMCD data.', error);
|
25224
25230
|
}
|
25225
25231
|
};
|
25226
25232
|
/**
|
@@ -25248,7 +25254,7 @@
|
|
25248
25254
|
}
|
25249
25255
|
_this.apply(context, data);
|
25250
25256
|
} catch (error) {
|
25251
|
-
logger.warn('Could not generate segment CMCD data.', error);
|
25257
|
+
_this.hls.logger.warn('Could not generate segment CMCD data.', error);
|
25252
25258
|
}
|
25253
25259
|
};
|
25254
25260
|
this.hls = hls;
|
@@ -27202,7 +27208,12 @@
|
|
27202
27208
|
if (curLevel.fragmentError === 0) {
|
27203
27209
|
curLevel.loadError = 0;
|
27204
27210
|
}
|
27205
|
-
|
27211
|
+
// Ignore matching details populated by loading a Media Playlist directly
|
27212
|
+
var previousDetails = curLevel.details;
|
27213
|
+
if (previousDetails === data.details && previousDetails.advanced) {
|
27214
|
+
previousDetails = undefined;
|
27215
|
+
}
|
27216
|
+
this.playlistLoaded(level, data, previousDetails);
|
27206
27217
|
} else if ((_data$deliveryDirecti2 = data.deliveryDirectives) != null && _data$deliveryDirecti2.skip) {
|
27207
27218
|
// received a delta playlist update that cannot be merged
|
27208
27219
|
details.deltaUpdateFailed = true;
|
@@ -30023,7 +30034,7 @@
|
|
30023
30034
|
* Get the video-dev/hls.js package version.
|
30024
30035
|
*/
|
30025
30036
|
function get() {
|
30026
|
-
return "1.5.5-0.canary.
|
30037
|
+
return "1.5.5-0.canary.9985";
|
30027
30038
|
}
|
30028
30039
|
}, {
|
30029
30040
|
key: "Events",
|