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.light.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 => {
|
@@ -18848,9 +18861,10 @@ class LatencyController {
|
|
18848
18861
|
if (inLiveRange && distanceFromTarget > 0.05 && this.forwardBufferLength > 1) {
|
18849
18862
|
const max = Math.min(2, Math.max(1.0, maxLiveSyncPlaybackRate));
|
18850
18863
|
const rate = Math.round(2 / (1 + Math.exp(-0.75 * distanceFromTarget - this.edgeStalled)) * 20) / 20;
|
18851
|
-
|
18864
|
+
const playbackRate = Math.min(max, Math.max(1, rate));
|
18865
|
+
this.changeMediaPlaybackRate(media, playbackRate);
|
18852
18866
|
} else if (media.playbackRate !== 1 && media.playbackRate !== 0) {
|
18853
|
-
media
|
18867
|
+
this.changeMediaPlaybackRate(media, 1);
|
18854
18868
|
}
|
18855
18869
|
};
|
18856
18870
|
this.hls = hls;
|
@@ -19009,6 +19023,14 @@ class LatencyController {
|
|
19009
19023
|
this.hls.logger.warn('[latency-controller]: Stall detected, adjusting target latency');
|
19010
19024
|
}
|
19011
19025
|
}
|
19026
|
+
changeMediaPlaybackRate(media, playbackRate) {
|
19027
|
+
var _this$hls2, _this$targetLatency;
|
19028
|
+
if (media.playbackRate === playbackRate) {
|
19029
|
+
return;
|
19030
|
+
}
|
19031
|
+
(_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}`);
|
19032
|
+
media.playbackRate = playbackRate;
|
19033
|
+
}
|
19012
19034
|
estimateLiveEdge() {
|
19013
19035
|
const levelDetails = this.levelDetails;
|
19014
19036
|
if (levelDetails === null) {
|
@@ -19624,7 +19646,7 @@ function assignTrackIdsByGroup(tracks) {
|
|
19624
19646
|
});
|
19625
19647
|
}
|
19626
19648
|
|
19627
|
-
const version = "1.6.0-rc.1.0.canary.
|
19649
|
+
const version = "1.6.0-rc.1.0.canary.11079";
|
19628
19650
|
|
19629
19651
|
// ensure the worker ends up in the bundle
|
19630
19652
|
// If the worker should not be included this gets aliased to empty.js
|