@byteplus/veplayer-plugin 2.4.1-rc.1 → 2.4.2-rc.0
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/esm/index.development.js +42074 -43370
- package/esm/index.production.js +3 -3
- package/esm/veplayer.plugin.abr.development.js +2238 -2555
- package/esm/veplayer.plugin.abr.production.js +1 -1
- package/esm/veplayer.plugin.flv.development.js +158 -419
- package/esm/veplayer.plugin.flv.production.js +1 -1
- package/esm/veplayer.plugin.hls.development.js +79 -738
- package/esm/veplayer.plugin.hls.production.js +1 -1
- package/esm/veplayer.plugin.mp4.development.js +2 -2
- package/esm/veplayer.plugin.mp4.production.js +1 -1
- package/esm/veplayer.plugin.rtm.development.js +82 -43
- package/esm/veplayer.plugin.rtm.production.js +1 -1
- package/esm/veplayer.plugin.shaka.development.js +1 -1
- package/esm/veplayer.plugin.shaka.production.js +1 -1
- package/package.json +1 -1
- package/umd/veplayer.plugin.abr.development.js +2238 -2555
- package/umd/veplayer.plugin.abr.production.js +1 -1
- package/umd/veplayer.plugin.flv.development.js +158 -419
- package/umd/veplayer.plugin.flv.production.js +1 -1
- package/umd/veplayer.plugin.hls.development.js +79 -738
- package/umd/veplayer.plugin.hls.production.js +1 -1
- package/umd/veplayer.plugin.mp4.development.js +2 -2
- package/umd/veplayer.plugin.mp4.production.js +1 -1
- package/umd/veplayer.plugin.rtm.development.js +82 -43
- package/umd/veplayer.plugin.rtm.production.js +1 -1
- package/umd/veplayer.plugin.shaka.development.js +1 -1
- package/umd/veplayer.plugin.shaka.production.js +1 -1
|
@@ -1644,7 +1644,7 @@
|
|
|
1644
1644
|
}
|
|
1645
1645
|
return offsetTime;
|
|
1646
1646
|
};
|
|
1647
|
-
var version = "3.0.
|
|
1647
|
+
var version = "3.0.19-rc.0";
|
|
1648
1648
|
var ERROR_MAP = {
|
|
1649
1649
|
1: 5101,
|
|
1650
1650
|
2: 5102,
|
|
@@ -2678,7 +2678,7 @@
|
|
|
2678
2678
|
arr2[i] = arr[i];
|
|
2679
2679
|
return arr2;
|
|
2680
2680
|
}
|
|
2681
|
-
function _createForOfIteratorHelper
|
|
2681
|
+
function _createForOfIteratorHelper(o, allowArrayLike) {
|
|
2682
2682
|
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
2683
2683
|
if (!it) {
|
|
2684
2684
|
if (Array.isArray(o) || (it = _unsupportedIterableToArray$1(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
@@ -2866,21 +2866,6 @@
|
|
|
2866
2866
|
length: Buffer2.totalLength && Buffer2.totalLength(buffers)
|
|
2867
2867
|
};
|
|
2868
2868
|
}
|
|
2869
|
-
}, {
|
|
2870
|
-
key: "isBuffered",
|
|
2871
|
-
value: function isBuffered(media, pos) {
|
|
2872
|
-
if (media) {
|
|
2873
|
-
var buffered = Buffer2.get(media);
|
|
2874
|
-
if (buffered !== null && buffered !== void 0 && buffered.length) {
|
|
2875
|
-
for (var i = 0; i < buffered.length; i++) {
|
|
2876
|
-
if (pos >= buffered.start(i) && pos <= buffered.end(i)) {
|
|
2877
|
-
return true;
|
|
2878
|
-
}
|
|
2879
|
-
}
|
|
2880
|
-
}
|
|
2881
|
-
}
|
|
2882
|
-
return false;
|
|
2883
|
-
}
|
|
2884
2869
|
}]);
|
|
2885
2870
|
return Buffer2;
|
|
2886
2871
|
}();
|
|
@@ -4785,7 +4770,7 @@
|
|
|
4785
4770
|
value: function _getHeaders(xhr) {
|
|
4786
4771
|
var headerLines = xhr.getAllResponseHeaders().trim().split("\r\n");
|
|
4787
4772
|
var headers = {};
|
|
4788
|
-
var _iterator = _createForOfIteratorHelper
|
|
4773
|
+
var _iterator = _createForOfIteratorHelper(headerLines), _step;
|
|
4789
4774
|
try {
|
|
4790
4775
|
for (_iterator.s(); !(_step = _iterator.n()).done; ) {
|
|
4791
4776
|
var header = _step.value;
|
|
@@ -5623,60 +5608,6 @@
|
|
|
5623
5608
|
function _nonIterableRest() {
|
|
5624
5609
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
5625
5610
|
}
|
|
5626
|
-
function _createForOfIteratorHelper(o, allowArrayLike) {
|
|
5627
|
-
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
5628
|
-
if (!it) {
|
|
5629
|
-
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
5630
|
-
if (it)
|
|
5631
|
-
o = it;
|
|
5632
|
-
var i = 0;
|
|
5633
|
-
var F = function() {
|
|
5634
|
-
};
|
|
5635
|
-
return {
|
|
5636
|
-
s: F,
|
|
5637
|
-
n: function() {
|
|
5638
|
-
if (i >= o.length)
|
|
5639
|
-
return {
|
|
5640
|
-
done: true
|
|
5641
|
-
};
|
|
5642
|
-
return {
|
|
5643
|
-
done: false,
|
|
5644
|
-
value: o[i++]
|
|
5645
|
-
};
|
|
5646
|
-
},
|
|
5647
|
-
e: function(e) {
|
|
5648
|
-
throw e;
|
|
5649
|
-
},
|
|
5650
|
-
f: F
|
|
5651
|
-
};
|
|
5652
|
-
}
|
|
5653
|
-
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
5654
|
-
}
|
|
5655
|
-
var normalCompletion = true, didErr = false, err;
|
|
5656
|
-
return {
|
|
5657
|
-
s: function() {
|
|
5658
|
-
it = it.call(o);
|
|
5659
|
-
},
|
|
5660
|
-
n: function() {
|
|
5661
|
-
var step = it.next();
|
|
5662
|
-
normalCompletion = step.done;
|
|
5663
|
-
return step;
|
|
5664
|
-
},
|
|
5665
|
-
e: function(e) {
|
|
5666
|
-
didErr = true;
|
|
5667
|
-
err = e;
|
|
5668
|
-
},
|
|
5669
|
-
f: function() {
|
|
5670
|
-
try {
|
|
5671
|
-
if (!normalCompletion && it.return != null)
|
|
5672
|
-
it.return();
|
|
5673
|
-
} finally {
|
|
5674
|
-
if (didErr)
|
|
5675
|
-
throw err;
|
|
5676
|
-
}
|
|
5677
|
-
}
|
|
5678
|
-
};
|
|
5679
|
-
}
|
|
5680
5611
|
function _toPrimitive(input, hint) {
|
|
5681
5612
|
if (typeof input !== "object" || input === null)
|
|
5682
5613
|
return input;
|
|
@@ -5699,7 +5630,6 @@
|
|
|
5699
5630
|
METADATA: "metadata"
|
|
5700
5631
|
};
|
|
5701
5632
|
var VideoCodecType = {
|
|
5702
|
-
AV1: "av1",
|
|
5703
5633
|
AVC: "avc",
|
|
5704
5634
|
HEVC: "hevc"
|
|
5705
5635
|
};
|
|
@@ -5746,7 +5676,6 @@
|
|
|
5746
5676
|
_defineProperty(this, "isVideoEncryption", false);
|
|
5747
5677
|
_defineProperty(this, "isAudioEncryption", false);
|
|
5748
5678
|
_defineProperty(this, "isVideo", true);
|
|
5749
|
-
_defineProperty(this, "lastKeyFrameDts", 0);
|
|
5750
5679
|
_defineProperty(this, "kid", null);
|
|
5751
5680
|
_defineProperty(this, "pssh", null);
|
|
5752
5681
|
_defineProperty(this, "ext", void 0);
|
|
@@ -5789,9 +5718,6 @@
|
|
|
5789
5718
|
}, {
|
|
5790
5719
|
key: "exist",
|
|
5791
5720
|
value: function exist() {
|
|
5792
|
-
if (/av01/.test(this.codec)) {
|
|
5793
|
-
return true;
|
|
5794
|
-
}
|
|
5795
5721
|
return !!(this.pps.length && this.sps.length && this.codec);
|
|
5796
5722
|
}
|
|
5797
5723
|
}, {
|
|
@@ -6060,7 +5986,7 @@
|
|
|
6060
5986
|
continue;
|
|
6061
5987
|
}
|
|
6062
5988
|
frameLength = (data[i + 3] & 3) << 11 | data[i + 4] << 3 | (data[i + 5] & 224) >> 5;
|
|
6063
|
-
if (
|
|
5989
|
+
if (len - i < frameLength)
|
|
6064
5990
|
break;
|
|
6065
5991
|
protectionSkipBytes = (~data[i + 1] & 1) * 2;
|
|
6066
5992
|
frames.push({
|
|
@@ -6254,15 +6180,6 @@
|
|
|
6254
6180
|
return parseInt(item, 16);
|
|
6255
6181
|
});
|
|
6256
6182
|
}
|
|
6257
|
-
function combineToFloat(integer, decimal) {
|
|
6258
|
-
return Number(integer + "." + decimal);
|
|
6259
|
-
}
|
|
6260
|
-
function toDegree(matrix) {
|
|
6261
|
-
if (matrix.length < 5)
|
|
6262
|
-
return 0;
|
|
6263
|
-
var scaled0 = Math.hypot(matrix[0], matrix[3]), scaled1 = Math.hypot(matrix[1], matrix[4]);
|
|
6264
|
-
return 0 === scaled0 || 0 === scaled1 ? 0 : 180 * Math.atan2(matrix[1] / scaled1, matrix[0] / scaled0) / Math.PI;
|
|
6265
|
-
}
|
|
6266
6183
|
var NALu = /* @__PURE__ */ function() {
|
|
6267
6184
|
function NALu2() {
|
|
6268
6185
|
_classCallCheck(this, NALu2);
|
|
@@ -6925,16 +6842,13 @@
|
|
|
6925
6842
|
var AUDIO_EXCETION_LOG_EMIT_DURATION = 5 * 9e4;
|
|
6926
6843
|
var MAX_VIDEO_FRAME_DURATION = 9e4;
|
|
6927
6844
|
var MAX_DTS_DELTA_WITH_NEXT_CHUNK = 9e4 / 2;
|
|
6928
|
-
var LARGE_AV_FIRST_FRAME_FORCE_FIX_THRESHOLD = 9e4 * 5;
|
|
6929
6845
|
var TsFixer = /* @__PURE__ */ function() {
|
|
6930
|
-
function TsFixer2(videoTrack, audioTrack, metadataTrack
|
|
6846
|
+
function TsFixer2(videoTrack, audioTrack, metadataTrack) {
|
|
6931
6847
|
_classCallCheck(this, TsFixer2);
|
|
6932
6848
|
this.videoTrack = videoTrack;
|
|
6933
6849
|
this.audioTrack = audioTrack;
|
|
6934
6850
|
this.metadataTrack = metadataTrack;
|
|
6935
6851
|
this._baseDts = -1;
|
|
6936
|
-
this._baseVideoDts = -1;
|
|
6937
|
-
this._baseAudioDts = -1;
|
|
6938
6852
|
this._baseDtsInited = false;
|
|
6939
6853
|
this._audioNextPts = void 0;
|
|
6940
6854
|
this._videoNextDts = void 0;
|
|
@@ -6943,8 +6857,6 @@
|
|
|
6943
6857
|
this._lastAudioExceptionGapDot = 0;
|
|
6944
6858
|
this._lastAudioExceptionOverlapDot = 0;
|
|
6945
6859
|
this._lastAudioExceptionLargeGapDot = 0;
|
|
6946
|
-
this._needForceFixLargeGap = fixerConfig === null || fixerConfig === void 0 ? void 0 : fixerConfig.forceFixLargeGap;
|
|
6947
|
-
this._largeGapThreshold = (fixerConfig === null || fixerConfig === void 0 ? void 0 : fixerConfig.largeGapThreshold) || LARGE_AV_FIRST_FRAME_FORCE_FIX_THRESHOLD;
|
|
6948
6860
|
}
|
|
6949
6861
|
_createClass(TsFixer2, [{
|
|
6950
6862
|
key: "fix",
|
|
@@ -6972,16 +6884,10 @@
|
|
|
6972
6884
|
if (discontinuity) {
|
|
6973
6885
|
this._calculateBaseDts(this.audioTrack, this.videoTrack);
|
|
6974
6886
|
this._baseDts -= startTime;
|
|
6975
|
-
this._baseAudioDts -= startTime;
|
|
6976
|
-
this._baseVideoDts -= startTime;
|
|
6977
6887
|
}
|
|
6978
6888
|
if (!contiguous) {
|
|
6979
6889
|
this._videoNextDts = vaDelta > 0 ? startTime + vaDelta : startTime;
|
|
6980
6890
|
this._audioNextPts = vaDelta > 0 ? startTime : startTime - vaDelta;
|
|
6981
|
-
if (this._needForceFixLargeGap) {
|
|
6982
|
-
this._videoNextDts = 0;
|
|
6983
|
-
this._audioNextPts = 0;
|
|
6984
|
-
}
|
|
6985
6891
|
var vDeltaToNextDts = firstVideoSample ? firstVideoSample.dts - this._baseDts - this._videoNextDts : 0;
|
|
6986
6892
|
var aDeltaToNextDts = firstAudioSample ? firstAudioSample.pts - this._baseDts - this._audioNextPts : 0;
|
|
6987
6893
|
if (Math.abs(vDeltaToNextDts || aDeltaToNextDts) > MAX_VIDEO_FRAME_DURATION) {
|
|
@@ -7014,8 +6920,8 @@
|
|
|
7014
6920
|
if (!samples.length)
|
|
7015
6921
|
return;
|
|
7016
6922
|
samples.forEach(function(x) {
|
|
7017
|
-
x.dts -= _this2.
|
|
7018
|
-
x.pts -= _this2.
|
|
6923
|
+
x.dts -= _this2._baseDts;
|
|
6924
|
+
x.pts -= _this2._baseDts;
|
|
7019
6925
|
});
|
|
7020
6926
|
if (this._videoNextDts === void 0) {
|
|
7021
6927
|
var samp0 = samples[0];
|
|
@@ -7108,7 +7014,7 @@
|
|
|
7108
7014
|
if (!samples.length)
|
|
7109
7015
|
return;
|
|
7110
7016
|
samples.forEach(function(x) {
|
|
7111
|
-
x.pts -= _this3.
|
|
7017
|
+
x.pts -= _this3._baseDts;
|
|
7112
7018
|
x.dts = x.pts;
|
|
7113
7019
|
});
|
|
7114
7020
|
this._doFixAudioInternal(audioTrack, samples, 9e4);
|
|
@@ -7125,15 +7031,12 @@
|
|
|
7125
7031
|
var videoBaseDts = Infinity;
|
|
7126
7032
|
if (audioSamps.length) {
|
|
7127
7033
|
audioTrack.baseDts = audioBasePts = audioSamps[0].pts;
|
|
7128
|
-
this._baseAudioDts = audioBasePts;
|
|
7129
7034
|
}
|
|
7130
7035
|
if (videoSamps.length) {
|
|
7131
7036
|
videoTrack.baseDts = videoBaseDts = videoSamps[0].dts;
|
|
7132
|
-
this._baseVideoDts = videoBaseDts;
|
|
7133
7037
|
}
|
|
7134
7038
|
this._baseDts = Math.min(audioBasePts, videoBaseDts);
|
|
7135
7039
|
var delta = videoBaseDts - audioBasePts;
|
|
7136
|
-
var largeGap = false;
|
|
7137
7040
|
if (Number.isFinite(delta) && Math.abs(delta) > LARGE_AV_FIRST_FRAME_GAP) {
|
|
7138
7041
|
videoTrack.warnings.push({
|
|
7139
7042
|
type: WarningType.LARGE_AV_SHIFT,
|
|
@@ -7143,16 +7046,6 @@
|
|
|
7143
7046
|
delta
|
|
7144
7047
|
});
|
|
7145
7048
|
}
|
|
7146
|
-
if (Number.isFinite(delta) && Math.abs(delta) > this._largeGapThreshold * MAX_SILENT_FRAME_DURATION) {
|
|
7147
|
-
largeGap = true;
|
|
7148
|
-
}
|
|
7149
|
-
if (!this._baseDtsInited) {
|
|
7150
|
-
if (largeGap && this._needForceFixLargeGap) {
|
|
7151
|
-
this._needForceFixLargeGap = true;
|
|
7152
|
-
} else {
|
|
7153
|
-
this._needForceFixLargeGap = false;
|
|
7154
|
-
}
|
|
7155
|
-
}
|
|
7156
7049
|
this._baseDtsInited = true;
|
|
7157
7050
|
return true;
|
|
7158
7051
|
}
|
|
@@ -7246,7 +7139,6 @@
|
|
|
7246
7139
|
var logger$4 = new Logger$1("TsDemuxer");
|
|
7247
7140
|
var TsDemuxer = /* @__PURE__ */ function() {
|
|
7248
7141
|
function TsDemuxer2(videoTrack, audioTrack, metadataTrack) {
|
|
7249
|
-
var fixerConfig = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
|
|
7250
7142
|
_classCallCheck(this, TsDemuxer2);
|
|
7251
7143
|
_defineProperty(this, "_pmtId", -1);
|
|
7252
7144
|
_defineProperty(this, "_remainingPacketData", null);
|
|
@@ -7256,7 +7148,7 @@
|
|
|
7256
7148
|
this.videoTrack = videoTrack || new VideoTrack();
|
|
7257
7149
|
this.audioTrack = audioTrack || new AudioTrack();
|
|
7258
7150
|
this.metadataTrack = metadataTrack || new MetadataTrack();
|
|
7259
|
-
this._fixer = new TsFixer(this.videoTrack, this.audioTrack, this.metadataTrack
|
|
7151
|
+
this._fixer = new TsFixer(this.videoTrack, this.audioTrack, this.metadataTrack);
|
|
7260
7152
|
}
|
|
7261
7153
|
_createClass(TsDemuxer2, [{
|
|
7262
7154
|
key: "demux",
|
|
@@ -7603,207 +7495,6 @@
|
|
|
7603
7495
|
}]);
|
|
7604
7496
|
return TsDemuxer2;
|
|
7605
7497
|
}();
|
|
7606
|
-
var ByteReader = /* @__PURE__ */ function() {
|
|
7607
|
-
function ByteReader2(buf, offset, len) {
|
|
7608
|
-
_classCallCheck(this, ByteReader2);
|
|
7609
|
-
this.dv = new DataView(buf);
|
|
7610
|
-
this.start = this.offset = offset || this.dv.byteOffset;
|
|
7611
|
-
this.end = len ? this.start + len : this.start + this.dv.byteLength;
|
|
7612
|
-
}
|
|
7613
|
-
_createClass(ByteReader2, [{
|
|
7614
|
-
key: "buffer",
|
|
7615
|
-
get: function get() {
|
|
7616
|
-
return this.dv.buffer;
|
|
7617
|
-
}
|
|
7618
|
-
}, {
|
|
7619
|
-
key: "unreadLength",
|
|
7620
|
-
get: function get() {
|
|
7621
|
-
return Math.max(this.end - this.offset, 0);
|
|
7622
|
-
}
|
|
7623
|
-
}, {
|
|
7624
|
-
key: "size",
|
|
7625
|
-
get: function get() {
|
|
7626
|
-
return this.end - this.start;
|
|
7627
|
-
}
|
|
7628
|
-
}, {
|
|
7629
|
-
key: "readFloat",
|
|
7630
|
-
value: function readFloat(byteNum) {
|
|
7631
|
-
var val = 0;
|
|
7632
|
-
switch (byteNum) {
|
|
7633
|
-
case 4:
|
|
7634
|
-
val = this.dv.getFloat32(this.offset);
|
|
7635
|
-
break;
|
|
7636
|
-
case 8:
|
|
7637
|
-
val = this.dv.getFloat64(this.offset);
|
|
7638
|
-
break;
|
|
7639
|
-
default:
|
|
7640
|
-
throw new Error("read ".concat(byteNum, "-byte float is not supported"));
|
|
7641
|
-
}
|
|
7642
|
-
this.offset += byteNum;
|
|
7643
|
-
return val;
|
|
7644
|
-
}
|
|
7645
|
-
}, {
|
|
7646
|
-
key: "back",
|
|
7647
|
-
value: function back(byteNum) {
|
|
7648
|
-
this.offset -= byteNum;
|
|
7649
|
-
}
|
|
7650
|
-
}, {
|
|
7651
|
-
key: "skip",
|
|
7652
|
-
value: function skip(byteNum) {
|
|
7653
|
-
this.offset += byteNum;
|
|
7654
|
-
}
|
|
7655
|
-
}, {
|
|
7656
|
-
key: "readInt",
|
|
7657
|
-
value: function readInt(byteNum) {
|
|
7658
|
-
var offset = this.offset;
|
|
7659
|
-
this.offset += byteNum;
|
|
7660
|
-
switch (byteNum) {
|
|
7661
|
-
case 1:
|
|
7662
|
-
return this.dv.getInt8(offset);
|
|
7663
|
-
case 2:
|
|
7664
|
-
return this.dv.getInt16(offset);
|
|
7665
|
-
case 4:
|
|
7666
|
-
return this.dv.getInt32(offset);
|
|
7667
|
-
default:
|
|
7668
|
-
throw new Error("read ".concat(byteNum, "-byte integers is not supported"));
|
|
7669
|
-
}
|
|
7670
|
-
}
|
|
7671
|
-
}, {
|
|
7672
|
-
key: "read",
|
|
7673
|
-
value: function read(byteNum) {
|
|
7674
|
-
var offset = this.offset;
|
|
7675
|
-
this.offset += byteNum;
|
|
7676
|
-
switch (byteNum) {
|
|
7677
|
-
case 1:
|
|
7678
|
-
return this.dv.getUint8(offset);
|
|
7679
|
-
case 2:
|
|
7680
|
-
return this.dv.getUint16(offset);
|
|
7681
|
-
case 3:
|
|
7682
|
-
return (this.dv.getUint16(offset) << 8) + this.dv.getUint8(offset + 2);
|
|
7683
|
-
case 4:
|
|
7684
|
-
return this.dv.getUint32(offset);
|
|
7685
|
-
default:
|
|
7686
|
-
this.back(byteNum - 4);
|
|
7687
|
-
return this.read(byteNum - 4) + this.dv.getUint32(offset) * Math.pow(256, byteNum - 4);
|
|
7688
|
-
}
|
|
7689
|
-
}
|
|
7690
|
-
}, {
|
|
7691
|
-
key: "write",
|
|
7692
|
-
value: function write(byteNum, val) {
|
|
7693
|
-
var offset = this.offset;
|
|
7694
|
-
this.offset += byteNum;
|
|
7695
|
-
switch (byteNum) {
|
|
7696
|
-
case 1:
|
|
7697
|
-
return this.dv.setUint8(offset, val);
|
|
7698
|
-
case 2:
|
|
7699
|
-
return this.dv.setUint16(offset, val);
|
|
7700
|
-
case 3:
|
|
7701
|
-
return this.dv.setUint8(offset, val >>> 16), this.dv.setUint16(offset + 1, 65535 & val);
|
|
7702
|
-
case 4:
|
|
7703
|
-
return this.dv.setUint32(offset, val);
|
|
7704
|
-
default:
|
|
7705
|
-
throw new Error("write ".concat(byteNum, "-byte integers is not supported"));
|
|
7706
|
-
}
|
|
7707
|
-
}
|
|
7708
|
-
}, {
|
|
7709
|
-
key: "readToBuffer",
|
|
7710
|
-
value: function readToBuffer(len) {
|
|
7711
|
-
var buffer;
|
|
7712
|
-
if (this.offset || len) {
|
|
7713
|
-
buffer = this.dv.buffer.slice(this.offset, len ? this.offset + len : this.end);
|
|
7714
|
-
} else {
|
|
7715
|
-
buffer = this.dv.buffer;
|
|
7716
|
-
}
|
|
7717
|
-
this.offset += buffer.byteLength;
|
|
7718
|
-
return buffer;
|
|
7719
|
-
}
|
|
7720
|
-
}, {
|
|
7721
|
-
key: "readToUint8",
|
|
7722
|
-
value: function readToUint8(len) {
|
|
7723
|
-
var uint8 = new Uint8Array(this.dv.buffer, this.offset, len || this.unreadLength);
|
|
7724
|
-
this.offset += uint8.byteLength;
|
|
7725
|
-
return uint8;
|
|
7726
|
-
}
|
|
7727
|
-
}, {
|
|
7728
|
-
key: "readString",
|
|
7729
|
-
value: function readString(len) {
|
|
7730
|
-
var i = 0, str = "";
|
|
7731
|
-
for (; i < len; i++) {
|
|
7732
|
-
str += String.fromCharCode(this.dv.getUint8(this.offset));
|
|
7733
|
-
this.offset++;
|
|
7734
|
-
}
|
|
7735
|
-
return str;
|
|
7736
|
-
}
|
|
7737
|
-
}], [{
|
|
7738
|
-
key: "fromUint8",
|
|
7739
|
-
value: function fromUint8(uint8) {
|
|
7740
|
-
return new ByteReader2(uint8.buffer, uint8.byteOffset, uint8.byteLength);
|
|
7741
|
-
}
|
|
7742
|
-
}, {
|
|
7743
|
-
key: "concatUint8s",
|
|
7744
|
-
value: function concatUint8s(args) {
|
|
7745
|
-
var uint8 = new Uint8Array(args.reduce(function(ret, v) {
|
|
7746
|
-
return ret + v.byteLength;
|
|
7747
|
-
}, 0));
|
|
7748
|
-
var offset = 0;
|
|
7749
|
-
args.forEach(function(v) {
|
|
7750
|
-
uint8.set(v, offset);
|
|
7751
|
-
offset += v.byteLength;
|
|
7752
|
-
});
|
|
7753
|
-
return uint8;
|
|
7754
|
-
}
|
|
7755
|
-
}, {
|
|
7756
|
-
key: "concatUint8",
|
|
7757
|
-
value: function concatUint8() {
|
|
7758
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
7759
|
-
args[_key] = arguments[_key];
|
|
7760
|
-
}
|
|
7761
|
-
return this.concatUint8s(args);
|
|
7762
|
-
}
|
|
7763
|
-
}]);
|
|
7764
|
-
return ByteReader2;
|
|
7765
|
-
}();
|
|
7766
|
-
var BitReader = /* @__PURE__ */ function() {
|
|
7767
|
-
function BitReader2(val, size) {
|
|
7768
|
-
_classCallCheck(this, BitReader2);
|
|
7769
|
-
this.offset = 0;
|
|
7770
|
-
this.val = val;
|
|
7771
|
-
this.size = size;
|
|
7772
|
-
}
|
|
7773
|
-
_createClass(BitReader2, [{
|
|
7774
|
-
key: "skip",
|
|
7775
|
-
value: function skip(len) {
|
|
7776
|
-
this.offset += len;
|
|
7777
|
-
}
|
|
7778
|
-
}, {
|
|
7779
|
-
key: "read",
|
|
7780
|
-
value: function read(len) {
|
|
7781
|
-
var unreadLength = this.size - this.offset - len;
|
|
7782
|
-
if (unreadLength >= 0) {
|
|
7783
|
-
var bits = 0, i = 0;
|
|
7784
|
-
this.offset += len;
|
|
7785
|
-
if (this.size > 31) {
|
|
7786
|
-
for (; i < len; i++) {
|
|
7787
|
-
bits += Math.pow(2, i);
|
|
7788
|
-
}
|
|
7789
|
-
return this.val / Math.pow(2, unreadLength) & bits;
|
|
7790
|
-
} else {
|
|
7791
|
-
for (; i < len; i++) {
|
|
7792
|
-
bits += 1 << i;
|
|
7793
|
-
}
|
|
7794
|
-
return this.val >>> unreadLength & bits;
|
|
7795
|
-
}
|
|
7796
|
-
}
|
|
7797
|
-
throw new Error("the number of the read operation exceeds the total length limit of bits");
|
|
7798
|
-
}
|
|
7799
|
-
}], [{
|
|
7800
|
-
key: "fromByte",
|
|
7801
|
-
value: function fromByte(byte, len) {
|
|
7802
|
-
return new BitReader2(byte.read(len), len << 3);
|
|
7803
|
-
}
|
|
7804
|
-
}]);
|
|
7805
|
-
return BitReader2;
|
|
7806
|
-
}();
|
|
7807
7498
|
var MP4Parser = /* @__PURE__ */ function() {
|
|
7808
7499
|
function MP4Parser2() {
|
|
7809
7500
|
_classCallCheck(this, MP4Parser2);
|
|
@@ -7961,36 +7652,18 @@
|
|
|
7961
7652
|
key: "tkhd",
|
|
7962
7653
|
value: function tkhd(box) {
|
|
7963
7654
|
return parseBox(box, true, function(ret, data) {
|
|
7964
|
-
var
|
|
7655
|
+
var start = 0;
|
|
7965
7656
|
if (ret.version === 1) {
|
|
7966
|
-
|
|
7967
|
-
|
|
7968
|
-
|
|
7969
|
-
byte.read(4);
|
|
7970
|
-
ret.duration = byte.read(8);
|
|
7657
|
+
ret.trackId = readBig32(data, 16);
|
|
7658
|
+
ret.duration = readBig64(data, 24);
|
|
7659
|
+
start += 32;
|
|
7971
7660
|
} else {
|
|
7972
|
-
|
|
7973
|
-
|
|
7974
|
-
|
|
7975
|
-
byte.read(4);
|
|
7976
|
-
ret.duration = byte.read(4);
|
|
7977
|
-
}
|
|
7978
|
-
byte.skip(16);
|
|
7979
|
-
ret.matrix = [];
|
|
7980
|
-
for (var i = 0; i < 36; i++) {
|
|
7981
|
-
ret.matrix.push(byte.read(1));
|
|
7982
|
-
}
|
|
7983
|
-
byte.back(36);
|
|
7984
|
-
var caculatedMatrix = [];
|
|
7985
|
-
for (var _i = 0, int32; _i < 3; _i++) {
|
|
7986
|
-
caculatedMatrix.push(combineToFloat(byte.readInt(2), byte.readInt(2)));
|
|
7987
|
-
caculatedMatrix.push(combineToFloat(byte.readInt(2), byte.readInt(2)));
|
|
7988
|
-
int32 = byte.readInt(4);
|
|
7989
|
-
caculatedMatrix.push(combineToFloat(int32 >> 30, int32 & 1073741823));
|
|
7661
|
+
ret.trackId = readBig32(data, 8);
|
|
7662
|
+
ret.duration = readBig32(data, 16);
|
|
7663
|
+
start += 20;
|
|
7990
7664
|
}
|
|
7991
|
-
ret.
|
|
7992
|
-
ret.
|
|
7993
|
-
ret.height = byte.read(4);
|
|
7665
|
+
ret.width = readBig32(data, start + 52);
|
|
7666
|
+
ret.height = readBig32(data, start + 56);
|
|
7994
7667
|
});
|
|
7995
7668
|
}
|
|
7996
7669
|
}, {
|
|
@@ -8120,7 +7793,7 @@
|
|
|
8120
7793
|
if (ret.version > 0) {
|
|
8121
7794
|
var numKeyIds = readBig32(data, start);
|
|
8122
7795
|
start += 4;
|
|
8123
|
-
for (var
|
|
7796
|
+
for (var _i = 0; _i < ("" + numKeyIds).length; _i++) {
|
|
8124
7797
|
for (var j = 0; j < 16; j++) {
|
|
8125
7798
|
var keyId = data[start];
|
|
8126
7799
|
start += 1;
|
|
@@ -8143,8 +7816,6 @@
|
|
|
8143
7816
|
ret.entryCount = readBig32(data);
|
|
8144
7817
|
ret.entries = MP4Parser2.findBox(data.subarray(4), [], start + 4).map(function(b) {
|
|
8145
7818
|
switch (b.type) {
|
|
8146
|
-
case "av01":
|
|
8147
|
-
return MP4Parser2.av01(b);
|
|
8148
7819
|
case "avc1":
|
|
8149
7820
|
case "avc2":
|
|
8150
7821
|
case "avc3":
|
|
@@ -8224,69 +7895,6 @@
|
|
|
8224
7895
|
}
|
|
8225
7896
|
});
|
|
8226
7897
|
}
|
|
8227
|
-
}, {
|
|
8228
|
-
key: "colr",
|
|
8229
|
-
value: function colr(box) {
|
|
8230
|
-
return parseBox(box, false, function(ret, data) {
|
|
8231
|
-
var byte = ByteReader.fromUint8(data);
|
|
8232
|
-
ret.data = box.data;
|
|
8233
|
-
ret.colorType = byte.readString(4);
|
|
8234
|
-
if (ret.colorType === "nclx") {
|
|
8235
|
-
ret.colorPrimaries = byte.read(2);
|
|
8236
|
-
ret.transferCharacteristics = byte.read(2);
|
|
8237
|
-
ret.matrixCoefficients = byte.read(2);
|
|
8238
|
-
ret.fullRangeFlag = byte.read(1) >> 7;
|
|
8239
|
-
} else if (ret.colorType === "rICC" || ret.colorType === "prof") {
|
|
8240
|
-
ret.iccProfile = data.readToUint8();
|
|
8241
|
-
}
|
|
8242
|
-
});
|
|
8243
|
-
}
|
|
8244
|
-
}, {
|
|
8245
|
-
key: "av01",
|
|
8246
|
-
value: function av01(box) {
|
|
8247
|
-
return parseBox(box, false, function(ret, data, start) {
|
|
8248
|
-
var bodyStart = parseVisualSampleEntry(ret, data);
|
|
8249
|
-
var bodyData = data.subarray(bodyStart);
|
|
8250
|
-
start += bodyStart;
|
|
8251
|
-
ret.av1C = MP4Parser2.av1C(MP4Parser2.findBox(bodyData, ["av1C"], start)[0]);
|
|
8252
|
-
ret.colr = MP4Parser2.colr(MP4Parser2.findBox(bodyData, ["colr"], start)[0]);
|
|
8253
|
-
});
|
|
8254
|
-
}
|
|
8255
|
-
}, {
|
|
8256
|
-
key: "av1C",
|
|
8257
|
-
value: function av1C(box) {
|
|
8258
|
-
return parseBox(box, false, function(ret, data) {
|
|
8259
|
-
ret.data = box.data;
|
|
8260
|
-
var byte = ByteReader.fromUint8(data);
|
|
8261
|
-
var bit = BitReader.fromByte(byte, 4);
|
|
8262
|
-
ret.marker = bit.read(1);
|
|
8263
|
-
ret.version = bit.read(7);
|
|
8264
|
-
ret.seqProfile = bit.read(3);
|
|
8265
|
-
ret.seqLevelIdx0 = bit.read(5);
|
|
8266
|
-
ret.seqTier0 = bit.read(1);
|
|
8267
|
-
ret.highBitdepth = bit.read(1);
|
|
8268
|
-
ret.twelveBit = bit.read(1);
|
|
8269
|
-
ret.monochrome = bit.read(1);
|
|
8270
|
-
ret.chromaSubsamplingX = bit.read(1);
|
|
8271
|
-
ret.chromaSubsamplingY = bit.read(1);
|
|
8272
|
-
ret.chromaSamplePosition = bit.read(2);
|
|
8273
|
-
ret.reserved = bit.read(3);
|
|
8274
|
-
ret.initialPresentationDelayPresent = bit.read(1);
|
|
8275
|
-
if (ret.initialPresentationDelayPresent) {
|
|
8276
|
-
ret.initialPresentationDelayMinusOne = bit.read(4);
|
|
8277
|
-
} else {
|
|
8278
|
-
ret.initialPresentationDelayMinusOne = 0;
|
|
8279
|
-
}
|
|
8280
|
-
ret.configOBUs = byte.readToUint8();
|
|
8281
|
-
var bitdepth;
|
|
8282
|
-
if (ret.seqLevelIdx0 === 2 && ret.highBitdepth === 1) {
|
|
8283
|
-
bitdepth = ret.twelveBit === 1 ? "12" : "10";
|
|
8284
|
-
} else if (ret.seqProfile <= 2) {
|
|
8285
|
-
bitdepth = ret.highBitdepth === 1 ? "10" : "08";
|
|
8286
|
-
}
|
|
8287
|
-
ret.codec = ["av01", ret.seqProfile, (ret.seqLevelIdx0 < 10 ? "0" + ret.seqLevelIdx0 : ret.seqLevelIdx0) + (ret.seqTier0 ? "H" : "M"), bitdepth].join(".");
|
|
8288
|
-
});
|
|
8289
|
-
}
|
|
8290
7898
|
}, {
|
|
8291
7899
|
key: "avc1",
|
|
8292
7900
|
value: function avc1(box) {
|
|
@@ -8321,7 +7929,7 @@
|
|
|
8321
7929
|
ret.ppsLength = data[start];
|
|
8322
7930
|
start += 1;
|
|
8323
7931
|
ret.pps = [];
|
|
8324
|
-
for (var
|
|
7932
|
+
for (var _i2 = 0; _i2 < ret.ppsLength; _i2++) {
|
|
8325
7933
|
var _size = readBig16(data, start);
|
|
8326
7934
|
start += 2;
|
|
8327
7935
|
ret.pps.push(data.subarray(start, start += _size));
|
|
@@ -8490,7 +8098,7 @@
|
|
|
8490
8098
|
start += 8;
|
|
8491
8099
|
}
|
|
8492
8100
|
} else {
|
|
8493
|
-
for (var
|
|
8101
|
+
for (var _i3 = 0; _i3 < entryCount; _i3++) {
|
|
8494
8102
|
entries.push({
|
|
8495
8103
|
count: readBig32(data, start),
|
|
8496
8104
|
offset: -(~readBig32(data, start + 4) + 1)
|
|
@@ -8712,20 +8320,13 @@
|
|
|
8712
8320
|
v.mvhdTimecale = moov.mvhd.timescale;
|
|
8713
8321
|
v.timescale = v.formatTimescale = vTrack.mdia.mdhd.timescale;
|
|
8714
8322
|
v.duration = vTrack.mdia.mdhd.duration || v.mvhdDurtion / v.mvhdTimecale * v.timescale;
|
|
8715
|
-
v.rotation = vTrack.tkhd.rotation;
|
|
8716
|
-
v.matrix = vTrack.tkhd.matrix;
|
|
8717
8323
|
var e1 = vTrack.mdia.minf.stbl.stsd.entries[0];
|
|
8718
8324
|
v.width = e1.width;
|
|
8719
8325
|
v.height = e1.height;
|
|
8720
8326
|
if (e1.pasp) {
|
|
8721
8327
|
v.sarRatio = [e1.pasp.hSpacing, e1.pasp.vSpacing];
|
|
8722
8328
|
}
|
|
8723
|
-
if (e1.
|
|
8724
|
-
v.codecType = VideoCodecType.AV1;
|
|
8725
|
-
v.codec = e1.av1C.codec;
|
|
8726
|
-
v.av1C = e1.av1C.data;
|
|
8727
|
-
v.colr = e1.colr.data;
|
|
8728
|
-
} else if (e1.hvcC) {
|
|
8329
|
+
if (e1.hvcC) {
|
|
8729
8330
|
v.codecType = VideoCodecType.HEVC;
|
|
8730
8331
|
v.codec = e1.hvcC.codec;
|
|
8731
8332
|
v.vps = e1.hvcC.vps;
|
|
@@ -9044,9 +8645,8 @@
|
|
|
9044
8645
|
function parseBox(box, isFullBox, parse2) {
|
|
9045
8646
|
if (!box)
|
|
9046
8647
|
return;
|
|
9047
|
-
if (box.size !== box.data.length)
|
|
8648
|
+
if (box.size !== box.data.length)
|
|
9048
8649
|
throw new Error("box ".concat(box.type, " size !== data.length"));
|
|
9049
|
-
}
|
|
9050
8650
|
var ret = {
|
|
9051
8651
|
start: box.start,
|
|
9052
8652
|
size: box.size,
|
|
@@ -9085,167 +8685,11 @@
|
|
|
9085
8685
|
var FMP4Demuxer = /* @__PURE__ */ function() {
|
|
9086
8686
|
function FMP4Demuxer2(videoTrack, audioTrack, metadataTrack) {
|
|
9087
8687
|
_classCallCheck(this, FMP4Demuxer2);
|
|
9088
|
-
_defineProperty(this, "__loadedMoofWraps", []);
|
|
9089
|
-
_defineProperty(this, "__lastRemainData", null);
|
|
9090
|
-
_defineProperty(this, "__lastRemainDataStart", 0);
|
|
9091
|
-
_defineProperty(this, "__nextMoofStart", -1);
|
|
9092
8688
|
this.videoTrack = videoTrack || new VideoTrack();
|
|
9093
8689
|
this.audioTrack = audioTrack || new AudioTrack();
|
|
9094
8690
|
this.metadataTrack = metadataTrack || new MetadataTrack();
|
|
9095
8691
|
}
|
|
9096
8692
|
_createClass(FMP4Demuxer2, [{
|
|
9097
|
-
key: "demuxPart",
|
|
9098
|
-
value: function demuxPart(partData, partDataStart, moov) {
|
|
9099
|
-
var _this = this;
|
|
9100
|
-
var videoTrack = this.videoTrack, audioTrack = this.audioTrack;
|
|
9101
|
-
var videoExist = videoTrack.exist();
|
|
9102
|
-
var audioExist = audioTrack.exist();
|
|
9103
|
-
var isAV01 = /av01/.test(videoTrack.codec);
|
|
9104
|
-
videoTrack.samples = [];
|
|
9105
|
-
audioTrack.samples = [];
|
|
9106
|
-
var data = partData;
|
|
9107
|
-
var dataStart = partDataStart;
|
|
9108
|
-
if (this.__lastRemainData) {
|
|
9109
|
-
var lastRemainDataEnd = this.__lastRemainDataStart + this.__lastRemainData.byteLength;
|
|
9110
|
-
var continuous = partDataStart <= lastRemainDataEnd && partDataStart > this.__lastRemainDataStart && partDataStart + partData.byteLength > lastRemainDataEnd;
|
|
9111
|
-
if (continuous) {
|
|
9112
|
-
var noDuplicateData = partData.subarray(this.__lastRemainData.byteLength + this.__lastRemainDataStart - partDataStart);
|
|
9113
|
-
data = concatUint8Array(this.__lastRemainData, noDuplicateData);
|
|
9114
|
-
dataStart = this.__lastRemainDataStart;
|
|
9115
|
-
this.__lastRemainData = null;
|
|
9116
|
-
} else {
|
|
9117
|
-
this.__lastRemainData = null;
|
|
9118
|
-
this.__lastRemainDataStart = 0;
|
|
9119
|
-
this.__nextMoofStart = -1;
|
|
9120
|
-
}
|
|
9121
|
-
}
|
|
9122
|
-
if (!moov) {
|
|
9123
|
-
var moovBox = MP4Parser.findBox(data, ["moov"])[0];
|
|
9124
|
-
if (!moovBox)
|
|
9125
|
-
throw new Error("cannot found moov box");
|
|
9126
|
-
moov = MP4Parser.moov(moovBox);
|
|
9127
|
-
}
|
|
9128
|
-
if (data) {
|
|
9129
|
-
var dataEnd = dataStart + data.byteLength;
|
|
9130
|
-
if (!videoExist && !audioExist) {
|
|
9131
|
-
MP4Parser.moovToTrack(moov, videoTrack, audioTrack);
|
|
9132
|
-
}
|
|
9133
|
-
var moofBoxes = [];
|
|
9134
|
-
if (this.__nextMoofStart < 0) {
|
|
9135
|
-
MP4Parser.findBox(data, ["moof"], dataStart).forEach(function(v) {
|
|
9136
|
-
return moofBoxes.push(v);
|
|
9137
|
-
});
|
|
9138
|
-
} else if (this.__nextMoofStart >= dataStart && this.__nextMoofStart <= dataEnd - 8) {
|
|
9139
|
-
MP4Parser.findBox(data.subarray(this.__nextMoofStart - dataStart), ["moof"], this.__nextMoofStart).forEach(function(v) {
|
|
9140
|
-
return moofBoxes.push(v);
|
|
9141
|
-
});
|
|
9142
|
-
}
|
|
9143
|
-
moofBoxes.filter(function(moofBox) {
|
|
9144
|
-
return moofBox.size <= moofBox.data.length;
|
|
9145
|
-
}).forEach(function(moofBox) {
|
|
9146
|
-
var moof = MP4Parser.moof(moofBox);
|
|
9147
|
-
_this.__nextMoofStart = moof.start + Math.max.apply(Math, _toConsumableArray(moof.traf.map(function(v) {
|
|
9148
|
-
return v.trun.samples.reduce(function(ret, w) {
|
|
9149
|
-
return ret + w.size;
|
|
9150
|
-
}, v.trun.dataOffset || 0);
|
|
9151
|
-
})));
|
|
9152
|
-
_this.__loadedMoofWraps.push({
|
|
9153
|
-
start: moof.start,
|
|
9154
|
-
nextMoofStart: _this.__nextMoofStart,
|
|
9155
|
-
moof
|
|
9156
|
-
});
|
|
9157
|
-
_this.__loadedMoofWraps.sort(function(p, n) {
|
|
9158
|
-
return p.start - n.start;
|
|
9159
|
-
});
|
|
9160
|
-
});
|
|
9161
|
-
var _iterator = _createForOfIteratorHelper(this.__loadedMoofWraps), _step;
|
|
9162
|
-
try {
|
|
9163
|
-
var _loop = function _loop2() {
|
|
9164
|
-
var moofWrap = _step.value;
|
|
9165
|
-
if (moofWrap.start > dataEnd || moofWrap.nextMoofStart < dataStart) {
|
|
9166
|
-
return "continue";
|
|
9167
|
-
}
|
|
9168
|
-
var moofStart = moofWrap.start;
|
|
9169
|
-
var tracks = MP4Parser.moofToSamples(moofWrap.moof, videoTrack, audioTrack);
|
|
9170
|
-
var videoBaseMediaDecodeTime = videoTrack.baseMediaDecodeTime;
|
|
9171
|
-
var audioBaseMediaDecodeTime = audioTrack.baseMediaDecodeTime;
|
|
9172
|
-
var nalSize;
|
|
9173
|
-
Object.keys(tracks).forEach(function(k) {
|
|
9174
|
-
if (videoTrack.id == k) {
|
|
9175
|
-
tracks[k].some(function(x) {
|
|
9176
|
-
var xStart = x.offset += moofStart;
|
|
9177
|
-
if (xStart < dataStart) {
|
|
9178
|
-
return;
|
|
9179
|
-
}
|
|
9180
|
-
if (xStart + x.size > dataEnd) {
|
|
9181
|
-
return true;
|
|
9182
|
-
}
|
|
9183
|
-
var sample = new VideoSample((x.pts || x.dts) + videoBaseMediaDecodeTime, x.dts + videoBaseMediaDecodeTime);
|
|
9184
|
-
sample.duration = x.duration;
|
|
9185
|
-
sample.gopId = x.gopId;
|
|
9186
|
-
if (x.keyframe)
|
|
9187
|
-
sample.setToKeyframe();
|
|
9188
|
-
var sampleData = data.subarray(xStart - dataStart, xStart - dataStart + x.size);
|
|
9189
|
-
sample.data = sampleData;
|
|
9190
|
-
if (!isAV01) {
|
|
9191
|
-
var start = 0;
|
|
9192
|
-
var len = sampleData.length - 1;
|
|
9193
|
-
while (start < len) {
|
|
9194
|
-
nalSize = readBig32(sampleData, start);
|
|
9195
|
-
start += 4;
|
|
9196
|
-
sample.units.push(sampleData.subarray(start, start + nalSize));
|
|
9197
|
-
start += nalSize;
|
|
9198
|
-
}
|
|
9199
|
-
}
|
|
9200
|
-
_this.__lastRemainDataStart = xStart + x.size;
|
|
9201
|
-
videoTrack.samples.push(sample);
|
|
9202
|
-
});
|
|
9203
|
-
} else if (audioTrack.id == k) {
|
|
9204
|
-
tracks[k].some(function(x) {
|
|
9205
|
-
var xStart = x.offset + moofStart;
|
|
9206
|
-
if (xStart < dataStart) {
|
|
9207
|
-
return;
|
|
9208
|
-
}
|
|
9209
|
-
if (xStart + x.size > dataEnd) {
|
|
9210
|
-
return true;
|
|
9211
|
-
}
|
|
9212
|
-
var sampleData = data.subarray(xStart - dataStart, xStart - dataStart + x.size);
|
|
9213
|
-
audioTrack.samples.push(new AudioSample(x.dts + audioBaseMediaDecodeTime, sampleData, x.duration));
|
|
9214
|
-
_this.__lastRemainDataStart = xStart + x.size;
|
|
9215
|
-
});
|
|
9216
|
-
}
|
|
9217
|
-
});
|
|
9218
|
-
};
|
|
9219
|
-
for (_iterator.s(); !(_step = _iterator.n()).done; ) {
|
|
9220
|
-
var _ret = _loop();
|
|
9221
|
-
if (_ret === "continue")
|
|
9222
|
-
continue;
|
|
9223
|
-
}
|
|
9224
|
-
} catch (err) {
|
|
9225
|
-
_iterator.e(err);
|
|
9226
|
-
} finally {
|
|
9227
|
-
_iterator.f();
|
|
9228
|
-
}
|
|
9229
|
-
}
|
|
9230
|
-
if (this.__lastRemainDataStart > dataStart && this.__lastRemainDataStart < data.byteLength + dataStart) {
|
|
9231
|
-
this.__lastRemainData = data.subarray(this.__lastRemainDataStart - dataStart);
|
|
9232
|
-
} else {
|
|
9233
|
-
this.__lastRemainData = data;
|
|
9234
|
-
this.__lastRemainDataStart = dataStart;
|
|
9235
|
-
}
|
|
9236
|
-
if (videoTrack.samples.length) {
|
|
9237
|
-
videoTrack.baseMediaDecodeTime = videoTrack.samples[0].pts;
|
|
9238
|
-
}
|
|
9239
|
-
if (audioTrack.samples.length) {
|
|
9240
|
-
audioTrack.baseMediaDecodeTime = audioTrack.samples[0].pts;
|
|
9241
|
-
}
|
|
9242
|
-
return {
|
|
9243
|
-
videoTrack,
|
|
9244
|
-
audioTrack,
|
|
9245
|
-
metadataTrack: this.metadataTrack
|
|
9246
|
-
};
|
|
9247
|
-
}
|
|
9248
|
-
}, {
|
|
9249
8693
|
key: "demux",
|
|
9250
8694
|
value: function demux(videoData, audioData) {
|
|
9251
8695
|
var videoTrack = this.videoTrack, audioTrack = this.audioTrack;
|
|
@@ -9741,8 +9185,6 @@
|
|
|
9741
9185
|
}
|
|
9742
9186
|
} else if (track.useEME && track.encv) {
|
|
9743
9187
|
content = MP42.encv(track);
|
|
9744
|
-
} else if (track.av1C) {
|
|
9745
|
-
content = MP42.av01(track);
|
|
9746
9188
|
} else {
|
|
9747
9189
|
content = MP42.avc1hev1(track);
|
|
9748
9190
|
}
|
|
@@ -9955,90 +9397,6 @@
|
|
|
9955
9397
|
var schi = MP42.schi(data);
|
|
9956
9398
|
return MP42.box(MP42.types.sinf, content, MP42.box(MP42.types.frma, frma), MP42.box(MP42.types.schm, schm), schi);
|
|
9957
9399
|
}
|
|
9958
|
-
}, {
|
|
9959
|
-
key: "av01",
|
|
9960
|
-
value: function av01(track) {
|
|
9961
|
-
return MP42.box(MP42.types.av01, new Uint8Array([
|
|
9962
|
-
0,
|
|
9963
|
-
0,
|
|
9964
|
-
0,
|
|
9965
|
-
0,
|
|
9966
|
-
0,
|
|
9967
|
-
0,
|
|
9968
|
-
0,
|
|
9969
|
-
1,
|
|
9970
|
-
0,
|
|
9971
|
-
0,
|
|
9972
|
-
0,
|
|
9973
|
-
0,
|
|
9974
|
-
0,
|
|
9975
|
-
0,
|
|
9976
|
-
0,
|
|
9977
|
-
0,
|
|
9978
|
-
0,
|
|
9979
|
-
0,
|
|
9980
|
-
0,
|
|
9981
|
-
0,
|
|
9982
|
-
0,
|
|
9983
|
-
0,
|
|
9984
|
-
0,
|
|
9985
|
-
0,
|
|
9986
|
-
track.width >> 8 & 255,
|
|
9987
|
-
track.width & 255,
|
|
9988
|
-
track.height >> 8 & 255,
|
|
9989
|
-
track.height & 255,
|
|
9990
|
-
0,
|
|
9991
|
-
72,
|
|
9992
|
-
0,
|
|
9993
|
-
0,
|
|
9994
|
-
0,
|
|
9995
|
-
72,
|
|
9996
|
-
0,
|
|
9997
|
-
0,
|
|
9998
|
-
0,
|
|
9999
|
-
0,
|
|
10000
|
-
0,
|
|
10001
|
-
0,
|
|
10002
|
-
0,
|
|
10003
|
-
1,
|
|
10004
|
-
0,
|
|
10005
|
-
0,
|
|
10006
|
-
0,
|
|
10007
|
-
0,
|
|
10008
|
-
0,
|
|
10009
|
-
0,
|
|
10010
|
-
0,
|
|
10011
|
-
0,
|
|
10012
|
-
0,
|
|
10013
|
-
0,
|
|
10014
|
-
0,
|
|
10015
|
-
0,
|
|
10016
|
-
0,
|
|
10017
|
-
0,
|
|
10018
|
-
0,
|
|
10019
|
-
0,
|
|
10020
|
-
0,
|
|
10021
|
-
0,
|
|
10022
|
-
0,
|
|
10023
|
-
0,
|
|
10024
|
-
0,
|
|
10025
|
-
0,
|
|
10026
|
-
0,
|
|
10027
|
-
0,
|
|
10028
|
-
0,
|
|
10029
|
-
0,
|
|
10030
|
-
0,
|
|
10031
|
-
0,
|
|
10032
|
-
0,
|
|
10033
|
-
0,
|
|
10034
|
-
0,
|
|
10035
|
-
0,
|
|
10036
|
-
0,
|
|
10037
|
-
24,
|
|
10038
|
-
17,
|
|
10039
|
-
17
|
|
10040
|
-
]), track.av1C, track.colr);
|
|
10041
|
-
}
|
|
10042
9400
|
}, {
|
|
10043
9401
|
key: "avc1hev1",
|
|
10044
9402
|
value: function avc1hev1(track) {
|
|
@@ -11011,7 +10369,7 @@
|
|
|
11011
10369
|
}]);
|
|
11012
10370
|
return MP42;
|
|
11013
10371
|
}();
|
|
11014
|
-
_defineProperty(MP4, "types", ["
|
|
10372
|
+
_defineProperty(MP4, "types", ["avc1", "avcC", "hvc1", "hvcC", "dinf", "dref", "esds", "ftyp", "hdlr", "mdat", "mdhd", "mdia", "mfhd", "minf", "moof", "moov", "mp4a", "mvex", "mvhd", "pasp", "stbl", "stco", "stsc", "stsd", "stsz", "stts", "tfdt", "tfhd", "traf", "trak", "trex", "tkhd", "vmhd", "smhd", "ctts", "stss", "styp", "pssh", "sidx", "sbgp", "saiz", "saio", "senc", "trun", "encv", "enca", "sinf", "btrt", "frma", "tenc", "schm", "schi", "mehd", "fiel", "sdtp"].reduce(function(p, c) {
|
|
11015
10373
|
p[c] = [c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2), c.charCodeAt(3)];
|
|
11016
10374
|
return p;
|
|
11017
10375
|
}, /* @__PURE__ */ Object.create(null)));
|
|
@@ -11346,46 +10704,30 @@
|
|
|
11346
10704
|
};
|
|
11347
10705
|
}
|
|
11348
10706
|
var samples = track.samples;
|
|
11349
|
-
var isAV01 = /av01/.test(track.codec);
|
|
11350
10707
|
var mdatSize = 0;
|
|
11351
|
-
|
|
11352
|
-
|
|
11353
|
-
|
|
11354
|
-
});
|
|
11355
|
-
|
|
11356
|
-
|
|
11357
|
-
mdatSize += s.units.reduce(function(t, c) {
|
|
11358
|
-
return t + c.byteLength;
|
|
11359
|
-
}, 0);
|
|
11360
|
-
mdatSize += s.units.length * 4;
|
|
11361
|
-
});
|
|
11362
|
-
}
|
|
10708
|
+
samples.forEach(function(s) {
|
|
10709
|
+
mdatSize += s.units.reduce(function(t, c) {
|
|
10710
|
+
return t + c.byteLength;
|
|
10711
|
+
}, 0);
|
|
10712
|
+
mdatSize += s.units.length * 4;
|
|
10713
|
+
});
|
|
11363
10714
|
var mdata = new Uint8Array(mdatSize);
|
|
11364
|
-
|
|
11365
|
-
|
|
11366
|
-
|
|
11367
|
-
|
|
11368
|
-
|
|
11369
|
-
|
|
11370
|
-
|
|
11371
|
-
|
|
11372
|
-
|
|
11373
|
-
|
|
11374
|
-
|
|
11375
|
-
|
|
11376
|
-
|
|
11377
|
-
|
|
11378
|
-
|
|
11379
|
-
|
|
11380
|
-
_offset2 += u.byteLength;
|
|
11381
|
-
sampleSize += 4 + u.byteLength;
|
|
11382
|
-
});
|
|
11383
|
-
_sample2.size = sampleSize;
|
|
11384
|
-
_offset = _offset2, _sample = _sample2;
|
|
11385
|
-
};
|
|
11386
|
-
for (var _i = 0, _l = samples.length, _offset = 0, _sample; _i < _l; _i++) {
|
|
11387
|
-
_loop(_offset, _sample);
|
|
11388
|
-
}
|
|
10715
|
+
var mdatView = new DataView(mdata.buffer);
|
|
10716
|
+
var _loop = function _loop2(_offset, _sample) {
|
|
10717
|
+
_sample = samples[i];
|
|
10718
|
+
var sampleSize = 0;
|
|
10719
|
+
_sample.units.forEach(function(u) {
|
|
10720
|
+
mdatView.setUint32(_offset, u.byteLength);
|
|
10721
|
+
_offset += 4;
|
|
10722
|
+
mdata.set(u, _offset);
|
|
10723
|
+
_offset += u.byteLength;
|
|
10724
|
+
sampleSize += 4 + u.byteLength;
|
|
10725
|
+
});
|
|
10726
|
+
_sample.size = sampleSize;
|
|
10727
|
+
offset = _offset, sample = _sample;
|
|
10728
|
+
};
|
|
10729
|
+
for (var i = 0, l = samples.length, offset = 0, sample; i < l; i++) {
|
|
10730
|
+
_loop(offset, sample);
|
|
11389
10731
|
}
|
|
11390
10732
|
var mdat = MP4.mdat(mdata);
|
|
11391
10733
|
var moof = MP4.moof([track]);
|
|
@@ -11544,11 +10886,11 @@
|
|
|
11544
10886
|
});
|
|
11545
10887
|
var logger$3 = new Logger$2("Transmuxer");
|
|
11546
10888
|
var Transmuxer = /* @__PURE__ */ function() {
|
|
11547
|
-
function Transmuxer2(hls, isMP4, needRemux
|
|
10889
|
+
function Transmuxer2(hls, isMP4, needRemux) {
|
|
11548
10890
|
_classCallCheck$3(this, Transmuxer2);
|
|
11549
10891
|
_defineProperty$3(this, "_initSegmentId", "");
|
|
11550
10892
|
this.hls = hls;
|
|
11551
|
-
this._demuxer = isMP4 ? new FMP4Demuxer() : new TsDemuxer(
|
|
10893
|
+
this._demuxer = isMP4 ? new FMP4Demuxer() : new TsDemuxer();
|
|
11552
10894
|
this._isMP4 = isMP4;
|
|
11553
10895
|
if (needRemux)
|
|
11554
10896
|
this._remuxer = new FMP4Remuxer(this._demuxer.videoTrack, this._demuxer.audioTrack);
|
|
@@ -11815,11 +11157,11 @@
|
|
|
11815
11157
|
return;
|
|
11816
11158
|
if (TsDemuxer.probe(chunk)) {
|
|
11817
11159
|
if (!this._transmuxer)
|
|
11818
|
-
this._transmuxer = new Transmuxer(this.hls, false, !this._softVideo
|
|
11160
|
+
this._transmuxer = new Transmuxer(this.hls, false, !this._softVideo);
|
|
11819
11161
|
} else if (MP4Parser.probe(chunk)) {
|
|
11820
11162
|
if (this._softVideo) {
|
|
11821
11163
|
if (!this._transmuxer)
|
|
11822
|
-
this._transmuxer = new Transmuxer(this.hls, true
|
|
11164
|
+
this._transmuxer = new Transmuxer(this.hls, true);
|
|
11823
11165
|
} else {
|
|
11824
11166
|
this._directAppend = true;
|
|
11825
11167
|
var mix = false;
|
|
@@ -12262,11 +11604,7 @@
|
|
|
12262
11604
|
minSegmentsStartPlay: 3,
|
|
12263
11605
|
preferMMS: false,
|
|
12264
11606
|
preferMMSStreaming: false,
|
|
12265
|
-
mseLowLatency: true
|
|
12266
|
-
fixerConfig: {
|
|
12267
|
-
forceFixLargeGap: false,
|
|
12268
|
-
largeGapThreshold: 5
|
|
12269
|
-
}
|
|
11607
|
+
mseLowLatency: true
|
|
12270
11608
|
}, cfg), {}, {
|
|
12271
11609
|
media
|
|
12272
11610
|
});
|
|
@@ -12660,6 +11998,9 @@
|
|
|
12660
11998
|
var endOfList = false;
|
|
12661
11999
|
var partSegmentIndex = 0;
|
|
12662
12000
|
while (line = lines[index++]) {
|
|
12001
|
+
if (endOfList) {
|
|
12002
|
+
break;
|
|
12003
|
+
}
|
|
12663
12004
|
if (line[0] !== "#") {
|
|
12664
12005
|
if (media.lowLatency) {
|
|
12665
12006
|
curSN++;
|
|
@@ -12713,6 +12054,11 @@
|
|
|
12713
12054
|
break;
|
|
12714
12055
|
case "ENDLIST":
|
|
12715
12056
|
{
|
|
12057
|
+
var _lastSegment = media.segments[media.segments.length - 1];
|
|
12058
|
+
if (_lastSegment) {
|
|
12059
|
+
_lastSegment.isLast = true;
|
|
12060
|
+
}
|
|
12061
|
+
media.live = false;
|
|
12716
12062
|
endOfList = true;
|
|
12717
12063
|
}
|
|
12718
12064
|
break;
|
|
@@ -12816,14 +12162,11 @@
|
|
|
12816
12162
|
});
|
|
12817
12163
|
var lastSegment = media.segments[media.segments.length - 1];
|
|
12818
12164
|
if (lastSegment) {
|
|
12819
|
-
if (endOfList) {
|
|
12820
|
-
lastSegment.isLast = true;
|
|
12821
|
-
}
|
|
12822
12165
|
media.endSN = lastSegment.sn;
|
|
12823
12166
|
media.endPartIndex = lastSegment.partIndex;
|
|
12824
|
-
|
|
12825
|
-
|
|
12826
|
-
|
|
12167
|
+
if (endOfList && !lastSegment.isLast) {
|
|
12168
|
+
lastSegment.isLast = true;
|
|
12169
|
+
}
|
|
12827
12170
|
}
|
|
12828
12171
|
media.totalDuration = totalDuration;
|
|
12829
12172
|
media.endCC = curCC;
|
|
@@ -13920,7 +13263,7 @@
|
|
|
13920
13263
|
_defineProperty$3(_assertThisInitialized$2(_this), "_switchUrlOpts", null);
|
|
13921
13264
|
_defineProperty$3(_assertThisInitialized$2(_this), "_isProcessQuotaExceeded", false);
|
|
13922
13265
|
_defineProperty$3(_assertThisInitialized$2(_this), "_loadSegment", /* @__PURE__ */ _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee() {
|
|
13923
|
-
var
|
|
13266
|
+
var nextSeg, _assertThisInitialize, config, bInfo, bufferThroughout;
|
|
13924
13267
|
return _regeneratorRuntime$1().wrap(function _callee$(_context) {
|
|
13925
13268
|
while (1)
|
|
13926
13269
|
switch (_context.prev = _context.next) {
|
|
@@ -13931,44 +13274,42 @@
|
|
|
13931
13274
|
}
|
|
13932
13275
|
return _context.abrupt("return");
|
|
13933
13276
|
case 2:
|
|
13934
|
-
|
|
13277
|
+
nextSeg = _this._playlist.nextSegment;
|
|
13935
13278
|
_assertThisInitialize = _assertThisInitialized$2(_this), config = _assertThisInitialize.config;
|
|
13936
|
-
|
|
13937
|
-
|
|
13938
|
-
if (nextSegment) {
|
|
13939
|
-
_context.next = 8;
|
|
13279
|
+
if (nextSeg) {
|
|
13280
|
+
_context.next = 6;
|
|
13940
13281
|
break;
|
|
13941
13282
|
}
|
|
13942
13283
|
return _context.abrupt("return");
|
|
13943
|
-
case
|
|
13284
|
+
case 6:
|
|
13944
13285
|
if (_this.isLive) {
|
|
13945
|
-
_context.next =
|
|
13286
|
+
_context.next = 16;
|
|
13946
13287
|
break;
|
|
13947
13288
|
}
|
|
13948
13289
|
bInfo = _this.bufferInfo();
|
|
13949
13290
|
if (_this.media.paused && !_this.media.currentTime) {
|
|
13950
13291
|
bInfo = _this.bufferInfo(bInfo.nextStart || 0.5);
|
|
13951
13292
|
}
|
|
13952
|
-
bufferThroughout = Math.abs(bInfo.end - _this.media.duration) <
|
|
13293
|
+
bufferThroughout = Math.abs(bInfo.end - _this.media.duration) < 0.1;
|
|
13953
13294
|
if (!(bInfo.remaining >= config.preloadTime || bufferThroughout)) {
|
|
13954
|
-
_context.next =
|
|
13295
|
+
_context.next = 13;
|
|
13955
13296
|
break;
|
|
13956
13297
|
}
|
|
13957
13298
|
_this._tryEos();
|
|
13958
13299
|
return _context.abrupt("return");
|
|
13959
|
-
case
|
|
13300
|
+
case 13:
|
|
13960
13301
|
if (!(config.preferMMSStreaming && !_this._bufferService.msStreaming)) {
|
|
13961
|
-
_context.next =
|
|
13302
|
+
_context.next = 15;
|
|
13962
13303
|
break;
|
|
13963
13304
|
}
|
|
13964
13305
|
return _context.abrupt("return");
|
|
13965
|
-
case
|
|
13966
|
-
if (!_this._urlSwitching && _this._prevSegSn !==
|
|
13306
|
+
case 15:
|
|
13307
|
+
if (!_this._urlSwitching && _this._prevSegSn !== nextSeg.sn - 1 && bInfo.end && Math.abs(nextSeg.start - bInfo.end) > 1) {
|
|
13967
13308
|
_this._playlist.setNextSegmentByIndex(_this._playlist.findSegmentIndexByTime(bInfo.end + 0.1));
|
|
13968
13309
|
}
|
|
13969
|
-
case
|
|
13310
|
+
case 16:
|
|
13970
13311
|
return _context.abrupt("return", _this._loadSegmentDirect());
|
|
13971
|
-
case
|
|
13312
|
+
case 17:
|
|
13972
13313
|
case "end":
|
|
13973
13314
|
return _context.stop();
|
|
13974
13315
|
}
|
|
@@ -15221,8 +14562,8 @@
|
|
|
15221
14562
|
value: function _tryEos() {
|
|
15222
14563
|
var _this$_bufferService3, _this$_bufferService4;
|
|
15223
14564
|
var media = this.media;
|
|
15224
|
-
var _this$
|
|
15225
|
-
var eosAllowed =
|
|
14565
|
+
var _this$_playlist = this._playlist, nextSegment = _this$_playlist.nextSegment, lastSegment = _this$_playlist.lastSegment;
|
|
14566
|
+
var eosAllowed = !nextSegment && media.readyState && media.duration > 0 && ((_this$_bufferService3 = this._bufferService) === null || _this$_bufferService3 === void 0 ? void 0 : _this$_bufferService3.msIsOpened) && !((_this$_bufferService4 = this._bufferService) !== null && _this$_bufferService4 !== void 0 && _this$_bufferService4.msHasOpTasks);
|
|
15226
14567
|
if (!eosAllowed) {
|
|
15227
14568
|
return;
|
|
15228
14569
|
}
|
|
@@ -15258,7 +14599,7 @@
|
|
|
15258
14599
|
}]);
|
|
15259
14600
|
return Hls2;
|
|
15260
14601
|
}(EventEmitter);
|
|
15261
|
-
_defineProperty$3(Hls, "version", "3.0.
|
|
14602
|
+
_defineProperty$3(Hls, "version", "3.0.19-rc.0");
|
|
15262
14603
|
try {
|
|
15263
14604
|
if (localStorage.getItem("xgd")) {
|
|
15264
14605
|
Hls.enableLogger();
|