hls.js 1.6.0-rc.1.0.canary.11077 → 1.6.0-rc.1.0.canary.11079
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 +38 -16
- package/dist/hls.js.map +1 -1
- package/dist/hls.light.js +38 -16
- 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 +36 -14
- 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 +36 -14
- 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/latency-controller.ts +16 -2
- package/src/utils/mp4-tools.ts +28 -10
package/dist/hls.mjs
CHANGED
@@ -402,7 +402,7 @@ function enableLogs(debugConfig, context, id) {
|
|
402
402
|
// Some browsers don't allow to use bind on console object anyway
|
403
403
|
// fallback to default if needed
|
404
404
|
try {
|
405
|
-
newLogger.log(`Debug logs enabled for "${context}" in hls.js version ${"1.6.0-rc.1.0.canary.
|
405
|
+
newLogger.log(`Debug logs enabled for "${context}" in hls.js version ${"1.6.0-rc.1.0.canary.11079"}`);
|
406
406
|
} catch (e) {
|
407
407
|
/* log fn threw an exception. All logger methods are no-ops. */
|
408
408
|
return createLogger();
|
@@ -1310,16 +1310,27 @@ function parseInitSegment(initSegment) {
|
|
1310
1310
|
}[hdlrType];
|
1311
1311
|
if (type) {
|
1312
1312
|
// Parse codec details
|
1313
|
-
const
|
1314
|
-
const
|
1315
|
-
|
1316
|
-
|
1317
|
-
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
1321
|
-
|
1322
|
-
|
1313
|
+
const stsdBox = findBox(trak, ['mdia', 'minf', 'stbl', 'stsd'])[0];
|
1314
|
+
const stsd = parseStsd(stsdBox);
|
1315
|
+
if (type) {
|
1316
|
+
// Add 'audio', 'video', and 'audiovideo' track records that will map to SourceBuffers
|
1317
|
+
result[trackId] = {
|
1318
|
+
timescale,
|
1319
|
+
type,
|
1320
|
+
stsd
|
1321
|
+
};
|
1322
|
+
result[type] = _objectSpread2({
|
1323
|
+
timescale,
|
1324
|
+
id: trackId
|
1325
|
+
}, stsd);
|
1326
|
+
} else {
|
1327
|
+
// Add 'meta' and other track records required by `offsetStartDTS`
|
1328
|
+
result[trackId] = {
|
1329
|
+
timescale,
|
1330
|
+
type: hdlrType,
|
1331
|
+
stsd
|
1332
|
+
};
|
1333
|
+
}
|
1323
1334
|
}
|
1324
1335
|
}
|
1325
1336
|
}
|
@@ -1767,6 +1778,8 @@ function computeRawDurationFromSamples(trun) {
|
|
1767
1778
|
}
|
1768
1779
|
return duration;
|
1769
1780
|
}
|
1781
|
+
|
1782
|
+
// TODO: Remove `offsetStartDTS` in favor of using `timestampOffset` (issue #5715)
|
1770
1783
|
function offsetStartDTS(initData, fmp4, timeOffset) {
|
1771
1784
|
findBox(fmp4, ['moof', 'traf']).forEach(traf => {
|
1772
1785
|
findBox(traf, ['tfhd']).forEach(tfhd => {
|
@@ -10073,7 +10086,7 @@ function requireEventemitter3 () {
|
|
10073
10086
|
var eventemitter3Exports = requireEventemitter3();
|
10074
10087
|
var EventEmitter = /*@__PURE__*/getDefaultExportFromCjs(eventemitter3Exports);
|
10075
10088
|
|
10076
|
-
const version = "1.6.0-rc.1.0.canary.
|
10089
|
+
const version = "1.6.0-rc.1.0.canary.11079";
|
10077
10090
|
|
10078
10091
|
// ensure the worker ends up in the bundle
|
10079
10092
|
// If the worker should not be included this gets aliased to empty.js
|
@@ -31077,9 +31090,10 @@ class LatencyController {
|
|
31077
31090
|
if (inLiveRange && distanceFromTarget > 0.05 && this.forwardBufferLength > 1) {
|
31078
31091
|
const max = Math.min(2, Math.max(1.0, maxLiveSyncPlaybackRate));
|
31079
31092
|
const rate = Math.round(2 / (1 + Math.exp(-0.75 * distanceFromTarget - this.edgeStalled)) * 20) / 20;
|
31080
|
-
|
31093
|
+
const playbackRate = Math.min(max, Math.max(1, rate));
|
31094
|
+
this.changeMediaPlaybackRate(media, playbackRate);
|
31081
31095
|
} else if (media.playbackRate !== 1 && media.playbackRate !== 0) {
|
31082
|
-
media
|
31096
|
+
this.changeMediaPlaybackRate(media, 1);
|
31083
31097
|
}
|
31084
31098
|
};
|
31085
31099
|
this.hls = hls;
|
@@ -31238,6 +31252,14 @@ class LatencyController {
|
|
31238
31252
|
this.hls.logger.warn('[latency-controller]: Stall detected, adjusting target latency');
|
31239
31253
|
}
|
31240
31254
|
}
|
31255
|
+
changeMediaPlaybackRate(media, playbackRate) {
|
31256
|
+
var _this$hls2, _this$targetLatency;
|
31257
|
+
if (media.playbackRate === playbackRate) {
|
31258
|
+
return;
|
31259
|
+
}
|
31260
|
+
(_this$hls2 = this.hls) == null ? void 0 : _this$hls2.logger.debug(`[latency-controller]: latency=${this.latency.toFixed(3)}, targetLatency=${(_this$targetLatency = this.targetLatency) == null ? void 0 : _this$targetLatency.toFixed(3)}, forwardBufferLength=${this.forwardBufferLength.toFixed(3)}: adjusting playback rate from ${media.playbackRate} to ${playbackRate}`);
|
31261
|
+
media.playbackRate = playbackRate;
|
31262
|
+
}
|
31241
31263
|
estimateLiveEdge() {
|
31242
31264
|
const levelDetails = this.levelDetails;
|
31243
31265
|
if (levelDetails === null) {
|