@volcengine/veplayer-plugin 2.5.0-rc.0 → 2.6.0-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.css +8 -4
- package/esm/index.development.js +12133 -6733
- package/esm/index.production.css +1 -1
- package/esm/index.production.js +6 -6
- package/esm/veplayer.plugin.abr.development.js +12 -0
- package/esm/veplayer.plugin.abr.production.js +1 -1
- package/esm/veplayer.plugin.ad.development.css +8 -4
- package/esm/veplayer.plugin.ad.development.js +4807 -655
- package/esm/veplayer.plugin.ad.production.css +1 -1
- package/esm/veplayer.plugin.ad.production.js +2 -2
- package/esm/veplayer.plugin.drm.development.js +12 -0
- package/esm/veplayer.plugin.drm.production.js +1 -1
- package/esm/veplayer.plugin.flv.development.js +670 -193
- package/esm/veplayer.plugin.flv.production.js +1 -1
- package/esm/veplayer.plugin.hls.development.js +1159 -369
- package/esm/veplayer.plugin.hls.production.js +1 -1
- package/esm/veplayer.plugin.mp4.development.js +13 -1
- package/esm/veplayer.plugin.mp4.production.js +1 -1
- package/esm/veplayer.plugin.rtm.development.js +13 -1
- package/esm/veplayer.plugin.rtm.production.js +1 -1
- package/esm/veplayer.plugin.shaka.development.js +12 -0
- package/esm/veplayer.plugin.shaka.production.js +1 -1
- package/package.json +1 -1
- package/umd/veplayer.plugin.abr.development.js +12 -0
- package/umd/veplayer.plugin.abr.production.js +1 -1
- package/umd/veplayer.plugin.ad.development.css +8 -4
- package/umd/veplayer.plugin.ad.development.js +4786 -634
- package/umd/veplayer.plugin.ad.production.css +1 -1
- package/umd/veplayer.plugin.ad.production.js +1 -1
- package/umd/veplayer.plugin.drm.development.js +12 -0
- package/umd/veplayer.plugin.drm.production.js +1 -1
- package/umd/veplayer.plugin.flv.development.js +670 -193
- package/umd/veplayer.plugin.flv.production.js +1 -1
- package/umd/veplayer.plugin.hls.development.js +1126 -336
- package/umd/veplayer.plugin.hls.production.js +1 -1
- package/umd/veplayer.plugin.mp4.development.js +13 -1
- package/umd/veplayer.plugin.mp4.production.js +1 -1
- package/umd/veplayer.plugin.rtm.development.js +13 -1
- package/umd/veplayer.plugin.rtm.production.js +1 -1
- package/umd/veplayer.plugin.shaka.development.js +12 -0
- package/umd/veplayer.plugin.shaka.production.js +1 -1
|
@@ -1542,7 +1542,7 @@
|
|
|
1542
1542
|
}
|
|
1543
1543
|
return offsetTime;
|
|
1544
1544
|
};
|
|
1545
|
-
var version = "3.0.
|
|
1545
|
+
var version = "3.0.21-rc.3";
|
|
1546
1546
|
var ERROR_MAP = {
|
|
1547
1547
|
1: 5101,
|
|
1548
1548
|
2: 5102,
|
|
@@ -2009,6 +2009,18 @@
|
|
|
2009
2009
|
}
|
|
2010
2010
|
}
|
|
2011
2011
|
}
|
|
2012
|
+
}, {
|
|
2013
|
+
key: "defineMethod",
|
|
2014
|
+
value: function defineMethod(Obj, map) {
|
|
2015
|
+
for (var key in map) {
|
|
2016
|
+
if (Object.prototype.hasOwnProperty.call(map, key) && typeof map[key] === "function") {
|
|
2017
|
+
Object.defineProperty(Obj, key, {
|
|
2018
|
+
configurable: true,
|
|
2019
|
+
value: map[key]
|
|
2020
|
+
});
|
|
2021
|
+
}
|
|
2022
|
+
}
|
|
2023
|
+
}
|
|
2012
2024
|
}, {
|
|
2013
2025
|
key: "defaultConfig",
|
|
2014
2026
|
get: function get() {
|
|
@@ -2819,6 +2831,21 @@
|
|
|
2819
2831
|
length: Buffer2.totalLength && Buffer2.totalLength(buffers)
|
|
2820
2832
|
};
|
|
2821
2833
|
}
|
|
2834
|
+
}, {
|
|
2835
|
+
key: "isBuffered",
|
|
2836
|
+
value: function isBuffered(media, pos) {
|
|
2837
|
+
if (media) {
|
|
2838
|
+
var buffered = Buffer2.get(media);
|
|
2839
|
+
if (buffered !== null && buffered !== void 0 && buffered.length) {
|
|
2840
|
+
for (var i = 0; i < buffered.length; i++) {
|
|
2841
|
+
if (pos >= buffered.start(i) && pos <= buffered.end(i)) {
|
|
2842
|
+
return true;
|
|
2843
|
+
}
|
|
2844
|
+
}
|
|
2845
|
+
}
|
|
2846
|
+
}
|
|
2847
|
+
return false;
|
|
2848
|
+
}
|
|
2822
2849
|
}]);
|
|
2823
2850
|
return Buffer2;
|
|
2824
2851
|
}();
|
|
@@ -2971,7 +2998,7 @@
|
|
|
2971
2998
|
this.logCache.apply(this, [LogCacheLevel.DEBUG].concat(args));
|
|
2972
2999
|
if (Logger2.disabled)
|
|
2973
3000
|
return;
|
|
2974
|
-
(_console = console).debug.apply(_console, [
|
|
3001
|
+
(_console = console).debug.apply(_console, ["[".concat(nowTime$1(), "]"), this._prefix].concat(args));
|
|
2975
3002
|
}
|
|
2976
3003
|
}, {
|
|
2977
3004
|
key: "log",
|
|
@@ -2983,7 +3010,7 @@
|
|
|
2983
3010
|
this.logCache.apply(this, [LogCacheLevel.LOG].concat(args));
|
|
2984
3011
|
if (Logger2.disabled)
|
|
2985
3012
|
return;
|
|
2986
|
-
(_console2 = console).log.apply(_console2, [
|
|
3013
|
+
(_console2 = console).log.apply(_console2, ["[".concat(nowTime$1(), "]"), this._prefix].concat(args));
|
|
2987
3014
|
}
|
|
2988
3015
|
}, {
|
|
2989
3016
|
key: "warn",
|
|
@@ -2995,7 +3022,7 @@
|
|
|
2995
3022
|
this.logCache.apply(this, [LogCacheLevel.WARN].concat(args));
|
|
2996
3023
|
if (Logger2.disabled)
|
|
2997
3024
|
return;
|
|
2998
|
-
(_console3 = console).warn.apply(_console3, [
|
|
3025
|
+
(_console3 = console).warn.apply(_console3, ["[".concat(nowTime$1(), "]"), this._prefix].concat(args));
|
|
2999
3026
|
}
|
|
3000
3027
|
}, {
|
|
3001
3028
|
key: "error",
|
|
@@ -3007,7 +3034,7 @@
|
|
|
3007
3034
|
this.logCache.apply(this, [LogCacheLevel.ERROR].concat(args));
|
|
3008
3035
|
if (Logger2.disabled)
|
|
3009
3036
|
return;
|
|
3010
|
-
(_console4 = console).error.apply(_console4, [
|
|
3037
|
+
(_console4 = console).error.apply(_console4, ["[".concat(nowTime$1(), "]"), this._prefix].concat(args));
|
|
3011
3038
|
}
|
|
3012
3039
|
}, {
|
|
3013
3040
|
key: "logCache",
|
|
@@ -3022,7 +3049,7 @@
|
|
|
3022
3049
|
var finLogText = logText.map(function(item) {
|
|
3023
3050
|
return logable(item);
|
|
3024
3051
|
});
|
|
3025
|
-
text =
|
|
3052
|
+
text = "[".concat(nowTime$1(), "]") + this._prefix + JSON.stringify(finLogText);
|
|
3026
3053
|
} catch (e) {
|
|
3027
3054
|
return;
|
|
3028
3055
|
}
|
|
@@ -3938,8 +3965,8 @@
|
|
|
3938
3965
|
response
|
|
3939
3966
|
};
|
|
3940
3967
|
}
|
|
3941
|
-
function calculateSpeed(byteLen,
|
|
3942
|
-
return Math.round(byteLen * 8 * 1e3 /
|
|
3968
|
+
function calculateSpeed(byteLen, milliSecond) {
|
|
3969
|
+
return Math.round(byteLen * 8 * 1e3 / milliSecond / 1024);
|
|
3943
3970
|
}
|
|
3944
3971
|
var EVENT = {
|
|
3945
3972
|
ERROR: "error",
|
|
@@ -3951,6 +3978,7 @@
|
|
|
3951
3978
|
SOURCEBUFFER_CREATED: "core.sourcebuffercreated",
|
|
3952
3979
|
MEDIASOURCE_OPENED: "core.mediasourceopened",
|
|
3953
3980
|
ANALYZE_DURATION_EXCEEDED: "core.analyzedurationexceeded",
|
|
3981
|
+
APPEND_BUFFER: "core.appendbuffer",
|
|
3954
3982
|
REMOVE_BUFFER: "core.removebuffer",
|
|
3955
3983
|
BUFFEREOS: "core.buffereos",
|
|
3956
3984
|
KEYFRAME: "core.keyframe",
|
|
@@ -5583,13 +5611,16 @@
|
|
|
5583
5611
|
METADATA: "metadata"
|
|
5584
5612
|
};
|
|
5585
5613
|
var VideoCodecType = {
|
|
5614
|
+
AV1: "av1",
|
|
5586
5615
|
AVC: "avc",
|
|
5587
5616
|
HEVC: "hevc"
|
|
5588
5617
|
};
|
|
5589
5618
|
var AudioCodecType = {
|
|
5590
5619
|
AAC: "aac",
|
|
5591
5620
|
G711PCMA: "g7110a",
|
|
5592
|
-
G711PCMU: "g7110m"
|
|
5621
|
+
G711PCMU: "g7110m",
|
|
5622
|
+
OPUS: "opus",
|
|
5623
|
+
MP3: "mp3"
|
|
5593
5624
|
};
|
|
5594
5625
|
var WarningType = {
|
|
5595
5626
|
LARGE_AV_SHIFT: "LARGE_AV_SHIFT",
|
|
@@ -5629,6 +5660,7 @@
|
|
|
5629
5660
|
_defineProperty(this, "isVideoEncryption", false);
|
|
5630
5661
|
_defineProperty(this, "isAudioEncryption", false);
|
|
5631
5662
|
_defineProperty(this, "isVideo", true);
|
|
5663
|
+
_defineProperty(this, "lastKeyFrameDts", 0);
|
|
5632
5664
|
_defineProperty(this, "kid", null);
|
|
5633
5665
|
_defineProperty(this, "pssh", null);
|
|
5634
5666
|
_defineProperty(this, "ext", void 0);
|
|
@@ -5671,6 +5703,9 @@
|
|
|
5671
5703
|
}, {
|
|
5672
5704
|
key: "exist",
|
|
5673
5705
|
value: function exist() {
|
|
5706
|
+
if (/av01/.test(this.codec)) {
|
|
5707
|
+
return true;
|
|
5708
|
+
}
|
|
5674
5709
|
return !!(this.pps.length && this.sps.length && this.codec);
|
|
5675
5710
|
}
|
|
5676
5711
|
}, {
|
|
@@ -5694,6 +5729,7 @@
|
|
|
5694
5729
|
_defineProperty(this, "codecType", AudioCodecType.AAC);
|
|
5695
5730
|
_defineProperty(this, "pid", -1);
|
|
5696
5731
|
_defineProperty(this, "codec", "");
|
|
5732
|
+
_defineProperty(this, "container", "");
|
|
5697
5733
|
_defineProperty(this, "sequenceNumber", 0);
|
|
5698
5734
|
_defineProperty(this, "sampleDuration", 0);
|
|
5699
5735
|
_defineProperty(this, "timescale", 0);
|
|
@@ -5734,7 +5770,7 @@
|
|
|
5734
5770
|
}, {
|
|
5735
5771
|
key: "exist",
|
|
5736
5772
|
value: function exist() {
|
|
5737
|
-
return !!(this.sampleRate && this.channelCount && this.codec && this.codecType === AudioCodecType.AAC);
|
|
5773
|
+
return !!(this.sampleRate && this.channelCount && (this.codec || this.container) && (this.codecType === AudioCodecType.AAC || this.codecType === AudioCodecType.G711PCMA || this.codecType === AudioCodecType.G711PCMU || this.codecType === AudioCodecType.OPUS || this.codecType === AudioCodecType.MP3));
|
|
5738
5774
|
}
|
|
5739
5775
|
}, {
|
|
5740
5776
|
key: "hasSample",
|
|
@@ -5948,7 +5984,7 @@
|
|
|
5948
5984
|
continue;
|
|
5949
5985
|
}
|
|
5950
5986
|
frameLength = (data[i + 3] & 3) << 11 | data[i + 4] << 3 | (data[i + 5] & 224) >> 5;
|
|
5951
|
-
if (len - i < frameLength)
|
|
5987
|
+
if (!frameLength || len - i < frameLength)
|
|
5952
5988
|
break;
|
|
5953
5989
|
protectionSkipBytes = (~data[i + 1] & 1) * 2;
|
|
5954
5990
|
frames.push({
|
|
@@ -6082,14 +6118,57 @@
|
|
|
6082
6118
|
return AAC2;
|
|
6083
6119
|
}();
|
|
6084
6120
|
_defineProperty(AAC, "FREQ", [96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050, 16e3, 12e3, 11025, 8e3, 7350]);
|
|
6121
|
+
var OPUS = /* @__PURE__ */ function() {
|
|
6122
|
+
function OPUS2() {
|
|
6123
|
+
_classCallCheck$1(this, OPUS2);
|
|
6124
|
+
}
|
|
6125
|
+
_createClass$1(OPUS2, null, [{
|
|
6126
|
+
key: "getFrameDuration",
|
|
6127
|
+
value: function getFrameDuration(samples) {
|
|
6128
|
+
return 20;
|
|
6129
|
+
}
|
|
6130
|
+
}, {
|
|
6131
|
+
key: "parseHeaderPackets",
|
|
6132
|
+
value: function parseHeaderPackets(data) {
|
|
6133
|
+
if (!data.length)
|
|
6134
|
+
return;
|
|
6135
|
+
var dv = new DataView(data.buffer, data.byteOffset, data.byteLength);
|
|
6136
|
+
var magicSignature = "";
|
|
6137
|
+
for (var i = 0; i < 8; i++) {
|
|
6138
|
+
magicSignature += String.fromCodePoint(data[i]);
|
|
6139
|
+
}
|
|
6140
|
+
if (magicSignature !== "OpusHead") {
|
|
6141
|
+
throw new Error("Invalid Opus MagicSignature");
|
|
6142
|
+
}
|
|
6143
|
+
var channelCount = data[9];
|
|
6144
|
+
console.log("Pre-skip", data[10], data[11]);
|
|
6145
|
+
var sampleRate = dv.getUint32(12, true);
|
|
6146
|
+
var outputGain = dv.getInt16(16, true);
|
|
6147
|
+
if (!sampleRate)
|
|
6148
|
+
return;
|
|
6149
|
+
var codec = "opus";
|
|
6150
|
+
var originCodec = "opus";
|
|
6151
|
+
var config = new Uint8Array(data.buffer, data.byteOffset + 8, data.byteLength - 8);
|
|
6152
|
+
return {
|
|
6153
|
+
outputGain,
|
|
6154
|
+
sampleRate,
|
|
6155
|
+
channelCount,
|
|
6156
|
+
config,
|
|
6157
|
+
codec,
|
|
6158
|
+
originCodec
|
|
6159
|
+
};
|
|
6160
|
+
}
|
|
6161
|
+
}]);
|
|
6162
|
+
return OPUS2;
|
|
6163
|
+
}();
|
|
6085
6164
|
var LARGE_AV_FIRST_FRAME_GAP = 500;
|
|
6086
6165
|
var AUDIO_GAP_OVERLAP_THRESHOLD_COUNT = 3;
|
|
6087
6166
|
var MAX_SILENT_FRAME_DURATION = 1e3;
|
|
6088
|
-
var
|
|
6167
|
+
var AUDIO_EXCEPTION_LOG_EMIT_DURATION = 5e3;
|
|
6089
6168
|
var MAX_VIDEO_FRAME_DURATION = 1e3;
|
|
6090
6169
|
var MAX_DTS_DELTA_WITH_NEXT_CHUNK = 200;
|
|
6091
|
-
var
|
|
6092
|
-
var
|
|
6170
|
+
var VIDEO_EXCEPTION_LOG_EMIT_DURATION = 5e3;
|
|
6171
|
+
var TRACK_BROKEN_CHECK_TIME = 5;
|
|
6093
6172
|
var FlvFixer = /* @__PURE__ */ function() {
|
|
6094
6173
|
function FlvFixer2(videoTrack, audioTrack, metadataTrack) {
|
|
6095
6174
|
_classCallCheck$1(this, FlvFixer2);
|
|
@@ -6205,7 +6284,7 @@
|
|
|
6205
6284
|
var firstSample = samples[0];
|
|
6206
6285
|
var vDelta = this._videoNextDts - firstSample.dts;
|
|
6207
6286
|
if (Math.abs(vDelta) > MAX_DTS_DELTA_WITH_NEXT_CHUNK) {
|
|
6208
|
-
if (Math.abs(firstSample.dts - this._lastVideoExceptionChunkFirstDtsDot) >
|
|
6287
|
+
if (Math.abs(firstSample.dts - this._lastVideoExceptionChunkFirstDtsDot) > VIDEO_EXCEPTION_LOG_EMIT_DURATION) {
|
|
6209
6288
|
var _samples$;
|
|
6210
6289
|
this._lastVideoExceptionChunkFirstDtsDot = firstSample.dts;
|
|
6211
6290
|
videoTrack.warnings.push({
|
|
@@ -6216,7 +6295,7 @@
|
|
|
6216
6295
|
sampleDuration: vDelta
|
|
6217
6296
|
});
|
|
6218
6297
|
}
|
|
6219
|
-
if (this._videoTimestampBreak >=
|
|
6298
|
+
if (this._videoTimestampBreak >= TRACK_BROKEN_CHECK_TIME) {
|
|
6220
6299
|
this._videoNextDts = firstSample.dts;
|
|
6221
6300
|
this._videoTimestampBreak = 0;
|
|
6222
6301
|
} else {
|
|
@@ -6239,7 +6318,7 @@
|
|
|
6239
6318
|
}
|
|
6240
6319
|
if (sampleDuration > MAX_VIDEO_FRAME_DURATION || sampleDuration < 0) {
|
|
6241
6320
|
this._videoTimestampBreak++;
|
|
6242
|
-
if (Math.abs(dts - this._lastVideoExceptionLargeGapDot) >
|
|
6321
|
+
if (Math.abs(dts - this._lastVideoExceptionLargeGapDot) > VIDEO_EXCEPTION_LOG_EMIT_DURATION) {
|
|
6243
6322
|
this._lastVideoExceptionLargeGapDot = dts;
|
|
6244
6323
|
videoTrack.warnings.push({
|
|
6245
6324
|
type: WarningType.LARGE_VIDEO_GAP,
|
|
@@ -6320,10 +6399,27 @@
|
|
|
6320
6399
|
key: "_doFixAudioInternal",
|
|
6321
6400
|
value: function _doFixAudioInternal(audioTrack, samples, timescale) {
|
|
6322
6401
|
if (!audioTrack.sampleDuration) {
|
|
6323
|
-
|
|
6402
|
+
switch (audioTrack.codecType) {
|
|
6403
|
+
case AudioCodecType.AAC: {
|
|
6404
|
+
audioTrack.sampleDuration = AAC.getFrameDuration(audioTrack.timescale, timescale);
|
|
6405
|
+
break;
|
|
6406
|
+
}
|
|
6407
|
+
case AudioCodecType.OPUS: {
|
|
6408
|
+
audioTrack.sampleDuration = OPUS.getFrameDuration(audioTrack.samples, timescale);
|
|
6409
|
+
break;
|
|
6410
|
+
}
|
|
6411
|
+
case AudioCodecType.G711PCMA:
|
|
6412
|
+
case AudioCodecType.G711PCMU: {
|
|
6413
|
+
audioTrack.sampleDuration = this._getG711Duration(audioTrack);
|
|
6414
|
+
break;
|
|
6415
|
+
}
|
|
6416
|
+
default:
|
|
6417
|
+
console.error("can't fix audio codecType:", audioTrack.codecType);
|
|
6418
|
+
break;
|
|
6419
|
+
}
|
|
6324
6420
|
}
|
|
6325
6421
|
var refSampleDuration = audioTrack.sampleDuration;
|
|
6326
|
-
var sampleDurationInSampleRate = audioTrack.codecType === AudioCodecType.AAC ? 1024 : refSampleDuration * audioTrack.timescale / 1e3;
|
|
6422
|
+
var sampleDurationInSampleRate = audioTrack.codecType === AudioCodecType.OPUS ? 20 : audioTrack.codecType === AudioCodecType.AAC ? 1024 : refSampleDuration * audioTrack.timescale / 1e3;
|
|
6327
6423
|
if (this._audioNextPts === void 0) {
|
|
6328
6424
|
var samp0 = samples[0];
|
|
6329
6425
|
this._audioNextPts = samp0.pts;
|
|
@@ -6332,7 +6428,7 @@
|
|
|
6332
6428
|
var nextPts = this._audioNextPts;
|
|
6333
6429
|
var sample = samples[i];
|
|
6334
6430
|
var delta = sample.pts - nextPts;
|
|
6335
|
-
if (i === 0 && this._audioTimestampBreak >=
|
|
6431
|
+
if (i === 0 && this._audioTimestampBreak >= TRACK_BROKEN_CHECK_TIME && this._keyFrameInNextChunk) {
|
|
6336
6432
|
nextPts = this._audioNextPts = sample.dts;
|
|
6337
6433
|
delta = 0;
|
|
6338
6434
|
this._audioTimestampBreak = 0;
|
|
@@ -6340,7 +6436,7 @@
|
|
|
6340
6436
|
if (!this._audioTimestampBreak && delta >= AUDIO_GAP_OVERLAP_THRESHOLD_COUNT * refSampleDuration && delta <= MAX_SILENT_FRAME_DURATION && !isSafari) {
|
|
6341
6437
|
var silentFrame = this._getSilentFrame(audioTrack) || samples[0].data.subarray();
|
|
6342
6438
|
var count = Math.floor(delta / refSampleDuration);
|
|
6343
|
-
if (Math.abs(sample.pts - this._lastAudioExceptionGapDot) >
|
|
6439
|
+
if (Math.abs(sample.pts - this._lastAudioExceptionGapDot) > AUDIO_EXCEPTION_LOG_EMIT_DURATION) {
|
|
6344
6440
|
this._lastAudioExceptionGapDot = sample.pts;
|
|
6345
6441
|
audioTrack.warnings.push({
|
|
6346
6442
|
type: WarningType.AUDIO_FILLED,
|
|
@@ -6360,7 +6456,7 @@
|
|
|
6360
6456
|
}
|
|
6361
6457
|
i--;
|
|
6362
6458
|
} else if (delta <= -AUDIO_GAP_OVERLAP_THRESHOLD_COUNT * refSampleDuration && delta >= -1 * MAX_SILENT_FRAME_DURATION) {
|
|
6363
|
-
if (Math.abs(sample.pts - this._lastAudioExceptionOverlapDot) >
|
|
6459
|
+
if (Math.abs(sample.pts - this._lastAudioExceptionOverlapDot) > AUDIO_EXCEPTION_LOG_EMIT_DURATION) {
|
|
6364
6460
|
this._lastAudioExceptionOverlapDot = sample.pts;
|
|
6365
6461
|
audioTrack.warnings.push({
|
|
6366
6462
|
type: WarningType.AUDIO_DROPPED,
|
|
@@ -6375,7 +6471,7 @@
|
|
|
6375
6471
|
} else {
|
|
6376
6472
|
if (Math.abs(delta) > MAX_SILENT_FRAME_DURATION) {
|
|
6377
6473
|
this._audioTimestampBreak++;
|
|
6378
|
-
if (Math.abs(sample.pts - this._lastAudioExceptionLargeGapDot) >
|
|
6474
|
+
if (Math.abs(sample.pts - this._lastAudioExceptionLargeGapDot) > AUDIO_EXCEPTION_LOG_EMIT_DURATION) {
|
|
6379
6475
|
this._lastAudioExceptionLargeGapDot = sample.pts;
|
|
6380
6476
|
audioTrack.warnings.push({
|
|
6381
6477
|
type: WarningType.LARGE_AUDIO_GAP,
|
|
@@ -6388,8 +6484,15 @@
|
|
|
6388
6484
|
});
|
|
6389
6485
|
}
|
|
6390
6486
|
}
|
|
6391
|
-
|
|
6392
|
-
|
|
6487
|
+
if (audioTrack.codecType === AudioCodecType.OPUS) {
|
|
6488
|
+
var lastSample = samples[samples.length - 1];
|
|
6489
|
+
if (lastSample) {
|
|
6490
|
+
lastSample.duration = sample.pts - lastSample.pts;
|
|
6491
|
+
}
|
|
6492
|
+
} else {
|
|
6493
|
+
sample.dts = sample.pts = nextPts;
|
|
6494
|
+
sample.duration = sampleDurationInSampleRate;
|
|
6495
|
+
}
|
|
6393
6496
|
this._audioNextPts += refSampleDuration;
|
|
6394
6497
|
}
|
|
6395
6498
|
}
|
|
@@ -7348,6 +7451,13 @@
|
|
|
7348
7451
|
}]);
|
|
7349
7452
|
return AMF2;
|
|
7350
7453
|
}();
|
|
7454
|
+
var FlvSoundFormat = {
|
|
7455
|
+
MP3: 2,
|
|
7456
|
+
G711A: 7,
|
|
7457
|
+
G711M: 8,
|
|
7458
|
+
AAC: 10,
|
|
7459
|
+
OPUS: 13
|
|
7460
|
+
};
|
|
7351
7461
|
var logger$2 = new Logger$1("FlvDemuxer");
|
|
7352
7462
|
var FlvDemuxer = /* @__PURE__ */ function() {
|
|
7353
7463
|
function FlvDemuxer2(videoTrack, audioTrack, metadataTrack) {
|
|
@@ -7364,8 +7474,10 @@
|
|
|
7364
7474
|
_createClass$1(FlvDemuxer2, [{
|
|
7365
7475
|
key: "demux",
|
|
7366
7476
|
value: function demux(data) {
|
|
7477
|
+
var _scriptDataObject$dat;
|
|
7367
7478
|
var discontinuity = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
|
|
7368
7479
|
var contiguous = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
|
|
7480
|
+
var seamlessLoadingSwitching = arguments.length > 3 ? arguments[3] : void 0;
|
|
7369
7481
|
var audioTrack = this.audioTrack, videoTrack = this.videoTrack, metadataTrack = this.metadataTrack;
|
|
7370
7482
|
if (discontinuity || !contiguous) {
|
|
7371
7483
|
this._remainingData = null;
|
|
@@ -7423,6 +7535,8 @@
|
|
|
7423
7535
|
if (tagType === 8) {
|
|
7424
7536
|
this._parseAudio(bodyData, timestamp);
|
|
7425
7537
|
} else if (tagType === 9) {
|
|
7538
|
+
if (seamlessLoadingSwitching)
|
|
7539
|
+
this.seamlessLoadingSwitching = true;
|
|
7426
7540
|
this._parseVideo(bodyData, timestamp);
|
|
7427
7541
|
} else if (tagType === 18) {
|
|
7428
7542
|
this._parseScript(bodyData, timestamp);
|
|
@@ -7440,13 +7554,31 @@
|
|
|
7440
7554
|
this._remainingData = data.subarray(offset);
|
|
7441
7555
|
}
|
|
7442
7556
|
audioTrack.formatTimescale = videoTrack.formatTimescale = videoTrack.timescale = metadataTrack.timescale = 1e3;
|
|
7443
|
-
audioTrack.timescale = audioTrack.sampleRate || 0;
|
|
7557
|
+
audioTrack.timescale = audioTrack.codecType === AudioCodecType.OPUS ? 1e3 : audioTrack.sampleRate || 0;
|
|
7444
7558
|
if (!audioTrack.exist() && audioTrack.hasSample()) {
|
|
7445
7559
|
audioTrack.reset();
|
|
7446
7560
|
}
|
|
7447
7561
|
if (!videoTrack.exist() && videoTrack.hasSample()) {
|
|
7448
7562
|
videoTrack.reset();
|
|
7449
7563
|
}
|
|
7564
|
+
var scriptDataObject = metadataTrack.flvScriptSamples[metadataTrack.flvScriptSamples.length - 1];
|
|
7565
|
+
var metaData = scriptDataObject === null || scriptDataObject === void 0 ? void 0 : (_scriptDataObject$dat = scriptDataObject.data) === null || _scriptDataObject$dat === void 0 ? void 0 : _scriptDataObject$dat.onMetaData;
|
|
7566
|
+
if (metaData) {
|
|
7567
|
+
if (videoTrack !== null && videoTrack !== void 0 && videoTrack.exist()) {
|
|
7568
|
+
if (metaData.hasOwnProperty("duration")) {
|
|
7569
|
+
videoTrack.duration = metaData.duration * 1e3;
|
|
7570
|
+
}
|
|
7571
|
+
if (metaData.hasOwnProperty("width") && metaData.hasOwnProperty("height")) {
|
|
7572
|
+
videoTrack.width = metaData.width;
|
|
7573
|
+
videoTrack.height = metaData.height;
|
|
7574
|
+
}
|
|
7575
|
+
}
|
|
7576
|
+
if (audioTrack !== null && audioTrack !== void 0 && audioTrack.exist()) {
|
|
7577
|
+
if (metaData.hasOwnProperty("duration")) {
|
|
7578
|
+
audioTrack.duration = metaData.duration * 1e3;
|
|
7579
|
+
}
|
|
7580
|
+
}
|
|
7581
|
+
}
|
|
7450
7582
|
return {
|
|
7451
7583
|
videoTrack,
|
|
7452
7584
|
audioTrack,
|
|
@@ -7465,8 +7597,8 @@
|
|
|
7465
7597
|
}
|
|
7466
7598
|
}, {
|
|
7467
7599
|
key: "demuxAndFix",
|
|
7468
|
-
value: function demuxAndFix(data, discontinuity, contiguous, startTime) {
|
|
7469
|
-
this.demux(data, discontinuity, contiguous);
|
|
7600
|
+
value: function demuxAndFix(data, discontinuity, contiguous, startTime, seamlessLoadingSwitching) {
|
|
7601
|
+
this.demux(data, discontinuity, contiguous, seamlessLoadingSwitching);
|
|
7470
7602
|
return this.fix(startTime, discontinuity, contiguous);
|
|
7471
7603
|
}
|
|
7472
7604
|
}, {
|
|
@@ -7476,12 +7608,12 @@
|
|
|
7476
7608
|
return;
|
|
7477
7609
|
var format = (data[0] & 240) >>> 4;
|
|
7478
7610
|
var track = this.audioTrack;
|
|
7479
|
-
if (format !==
|
|
7611
|
+
if (format !== FlvSoundFormat.AAC && format !== FlvSoundFormat.G711A && format !== FlvSoundFormat.G711M && format !== FlvSoundFormat.OPUS) {
|
|
7480
7612
|
logger$2.warn("Unsupported sound format: ".concat(format));
|
|
7481
7613
|
track.reset();
|
|
7482
7614
|
return;
|
|
7483
7615
|
}
|
|
7484
|
-
if (format !==
|
|
7616
|
+
if (format !== FlvSoundFormat.AAC && format !== FlvSoundFormat.OPUS) {
|
|
7485
7617
|
var soundRate = (data[0] & 12) >> 2;
|
|
7486
7618
|
var soundSize = (data[0] & 2) >> 1;
|
|
7487
7619
|
var soundType = data[0] & 1;
|
|
@@ -7489,10 +7621,49 @@
|
|
|
7489
7621
|
track.sampleSize = soundSize ? 16 : 8;
|
|
7490
7622
|
track.channelCount = soundType + 1;
|
|
7491
7623
|
}
|
|
7492
|
-
|
|
7493
|
-
|
|
7494
|
-
|
|
7495
|
-
|
|
7624
|
+
switch (format) {
|
|
7625
|
+
case FlvSoundFormat.G711A:
|
|
7626
|
+
case FlvSoundFormat.G711M:
|
|
7627
|
+
this._parseG711(data, pts, format);
|
|
7628
|
+
break;
|
|
7629
|
+
case FlvSoundFormat.AAC:
|
|
7630
|
+
this._parseAac(data, pts);
|
|
7631
|
+
break;
|
|
7632
|
+
case FlvSoundFormat.OPUS:
|
|
7633
|
+
this._parseOpus(data, pts);
|
|
7634
|
+
break;
|
|
7635
|
+
}
|
|
7636
|
+
}
|
|
7637
|
+
}, {
|
|
7638
|
+
key: "_parseOpus",
|
|
7639
|
+
value: function _parseOpus(data, pts) {
|
|
7640
|
+
var track = this.audioTrack;
|
|
7641
|
+
var packetType = data[1];
|
|
7642
|
+
track.codecType = AudioCodecType.OPUS;
|
|
7643
|
+
switch (packetType) {
|
|
7644
|
+
case 0: {
|
|
7645
|
+
var ret = OPUS.parseHeaderPackets(data.subarray(2));
|
|
7646
|
+
if (ret) {
|
|
7647
|
+
track.codec = ret.codec;
|
|
7648
|
+
track.channelCount = ret.channelCount;
|
|
7649
|
+
track.sampleRate = ret.sampleRate;
|
|
7650
|
+
track.config = ret.config;
|
|
7651
|
+
track.sampleDuration = OPUS.getFrameDuration([], track.timescale);
|
|
7652
|
+
} else {
|
|
7653
|
+
track.reset();
|
|
7654
|
+
logger$2.warn("Cannot parse AudioSpecificConfig", data);
|
|
7655
|
+
}
|
|
7656
|
+
break;
|
|
7657
|
+
}
|
|
7658
|
+
case 1: {
|
|
7659
|
+
if (pts === void 0 || pts === null)
|
|
7660
|
+
return;
|
|
7661
|
+
var newSample = new AudioSample(pts, data.subarray(2), track.sampleDuration);
|
|
7662
|
+
track.samples.push(newSample);
|
|
7663
|
+
break;
|
|
7664
|
+
}
|
|
7665
|
+
default:
|
|
7666
|
+
logger$2.warn("Unknown OpusPacketType: ".concat(packetType));
|
|
7496
7667
|
}
|
|
7497
7668
|
}
|
|
7498
7669
|
}, {
|
|
@@ -7580,8 +7751,13 @@
|
|
|
7580
7751
|
units = this._checkAddMetaNalToUnits(isHevc, units, track);
|
|
7581
7752
|
if (units && units.length) {
|
|
7582
7753
|
var sample = new VideoSample(dts + cts, dts, units);
|
|
7754
|
+
if (this.seamlessLoadingSwitching && dts < track.lastKeyFrameDts) {
|
|
7755
|
+
return;
|
|
7756
|
+
}
|
|
7757
|
+
this.seamlessLoadingSwitching = false;
|
|
7583
7758
|
if (frameType === 1) {
|
|
7584
7759
|
sample.setToKeyframe();
|
|
7760
|
+
track.lastKeyFrameDts = dts;
|
|
7585
7761
|
}
|
|
7586
7762
|
track.samples.push(sample);
|
|
7587
7763
|
units.forEach(function(unit) {
|
|
@@ -8055,10 +8231,16 @@
|
|
|
8055
8231
|
if (track.useEME && track.enca) {
|
|
8056
8232
|
content = MP42.enca(track);
|
|
8057
8233
|
} else {
|
|
8058
|
-
|
|
8234
|
+
if (track.codecType === AudioCodecType.OPUS) {
|
|
8235
|
+
content = MP42.opus(track);
|
|
8236
|
+
} else {
|
|
8237
|
+
content = MP42.mp4a(track);
|
|
8238
|
+
}
|
|
8059
8239
|
}
|
|
8060
8240
|
} else if (track.useEME && track.encv) {
|
|
8061
8241
|
content = MP42.encv(track);
|
|
8242
|
+
} else if (track.av1C) {
|
|
8243
|
+
content = MP42.av01(track);
|
|
8062
8244
|
} else {
|
|
8063
8245
|
content = MP42.avc1hev1(track);
|
|
8064
8246
|
}
|
|
@@ -8271,6 +8453,90 @@
|
|
|
8271
8453
|
var schi = MP42.schi(data);
|
|
8272
8454
|
return MP42.box(MP42.types.sinf, content, MP42.box(MP42.types.frma, frma), MP42.box(MP42.types.schm, schm), schi);
|
|
8273
8455
|
}
|
|
8456
|
+
}, {
|
|
8457
|
+
key: "av01",
|
|
8458
|
+
value: function av01(track) {
|
|
8459
|
+
return MP42.box(MP42.types.av01, new Uint8Array([
|
|
8460
|
+
0,
|
|
8461
|
+
0,
|
|
8462
|
+
0,
|
|
8463
|
+
0,
|
|
8464
|
+
0,
|
|
8465
|
+
0,
|
|
8466
|
+
0,
|
|
8467
|
+
1,
|
|
8468
|
+
0,
|
|
8469
|
+
0,
|
|
8470
|
+
0,
|
|
8471
|
+
0,
|
|
8472
|
+
0,
|
|
8473
|
+
0,
|
|
8474
|
+
0,
|
|
8475
|
+
0,
|
|
8476
|
+
0,
|
|
8477
|
+
0,
|
|
8478
|
+
0,
|
|
8479
|
+
0,
|
|
8480
|
+
0,
|
|
8481
|
+
0,
|
|
8482
|
+
0,
|
|
8483
|
+
0,
|
|
8484
|
+
track.width >> 8 & 255,
|
|
8485
|
+
track.width & 255,
|
|
8486
|
+
track.height >> 8 & 255,
|
|
8487
|
+
track.height & 255,
|
|
8488
|
+
0,
|
|
8489
|
+
72,
|
|
8490
|
+
0,
|
|
8491
|
+
0,
|
|
8492
|
+
0,
|
|
8493
|
+
72,
|
|
8494
|
+
0,
|
|
8495
|
+
0,
|
|
8496
|
+
0,
|
|
8497
|
+
0,
|
|
8498
|
+
0,
|
|
8499
|
+
0,
|
|
8500
|
+
0,
|
|
8501
|
+
1,
|
|
8502
|
+
0,
|
|
8503
|
+
0,
|
|
8504
|
+
0,
|
|
8505
|
+
0,
|
|
8506
|
+
0,
|
|
8507
|
+
0,
|
|
8508
|
+
0,
|
|
8509
|
+
0,
|
|
8510
|
+
0,
|
|
8511
|
+
0,
|
|
8512
|
+
0,
|
|
8513
|
+
0,
|
|
8514
|
+
0,
|
|
8515
|
+
0,
|
|
8516
|
+
0,
|
|
8517
|
+
0,
|
|
8518
|
+
0,
|
|
8519
|
+
0,
|
|
8520
|
+
0,
|
|
8521
|
+
0,
|
|
8522
|
+
0,
|
|
8523
|
+
0,
|
|
8524
|
+
0,
|
|
8525
|
+
0,
|
|
8526
|
+
0,
|
|
8527
|
+
0,
|
|
8528
|
+
0,
|
|
8529
|
+
0,
|
|
8530
|
+
0,
|
|
8531
|
+
0,
|
|
8532
|
+
0,
|
|
8533
|
+
0,
|
|
8534
|
+
0,
|
|
8535
|
+
24,
|
|
8536
|
+
17,
|
|
8537
|
+
17
|
|
8538
|
+
]), track.av1C, track.colr);
|
|
8539
|
+
}
|
|
8274
8540
|
}, {
|
|
8275
8541
|
key: "avc1hev1",
|
|
8276
8542
|
value: function avc1hev1(track) {
|
|
@@ -8641,6 +8907,53 @@
|
|
|
8641
8907
|
)));
|
|
8642
8908
|
return esds2;
|
|
8643
8909
|
}
|
|
8910
|
+
}, {
|
|
8911
|
+
key: "opus",
|
|
8912
|
+
value: function opus(track) {
|
|
8913
|
+
var opusAudioDescription = new Uint8Array([
|
|
8914
|
+
0,
|
|
8915
|
+
0,
|
|
8916
|
+
0,
|
|
8917
|
+
0,
|
|
8918
|
+
0,
|
|
8919
|
+
0,
|
|
8920
|
+
0,
|
|
8921
|
+
1,
|
|
8922
|
+
0,
|
|
8923
|
+
0,
|
|
8924
|
+
0,
|
|
8925
|
+
0,
|
|
8926
|
+
0,
|
|
8927
|
+
0,
|
|
8928
|
+
0,
|
|
8929
|
+
0,
|
|
8930
|
+
0,
|
|
8931
|
+
track.channelCount,
|
|
8932
|
+
0,
|
|
8933
|
+
16,
|
|
8934
|
+
0,
|
|
8935
|
+
0,
|
|
8936
|
+
0,
|
|
8937
|
+
0,
|
|
8938
|
+
track.sampleRate >> 8 & 255,
|
|
8939
|
+
track.sampleRate & 255,
|
|
8940
|
+
0,
|
|
8941
|
+
0
|
|
8942
|
+
]);
|
|
8943
|
+
var opusSpecificConfig = track.config.length ? MP42.dOps(track) : [];
|
|
8944
|
+
return MP42.box(MP42.types.Opus, opusAudioDescription, opusSpecificConfig);
|
|
8945
|
+
}
|
|
8946
|
+
}, {
|
|
8947
|
+
key: "dOps",
|
|
8948
|
+
value: function dOps(track) {
|
|
8949
|
+
if (track.config) {
|
|
8950
|
+
track.config[4] = track.sampleRate >>> 24 & 255;
|
|
8951
|
+
track.config[5] = track.sampleRate >>> 16 & 255;
|
|
8952
|
+
track.config[6] = track.sampleRate >>> 8 & 255;
|
|
8953
|
+
track.config[7] = track.sampleRate & 255;
|
|
8954
|
+
return MP42.box(MP42.types.dOps, track.config);
|
|
8955
|
+
}
|
|
8956
|
+
}
|
|
8644
8957
|
}, {
|
|
8645
8958
|
key: "mvex",
|
|
8646
8959
|
value: function mvex(tracks) {
|
|
@@ -9243,7 +9556,7 @@
|
|
|
9243
9556
|
}]);
|
|
9244
9557
|
return MP42;
|
|
9245
9558
|
}();
|
|
9246
|
-
_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) {
|
|
9559
|
+
_defineProperty(MP4, "types", ["Opus", "dOps", "av01", "av1C", "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) {
|
|
9247
9560
|
p[c] = [c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2), c.charCodeAt(3)];
|
|
9248
9561
|
return p;
|
|
9249
9562
|
}, /* @__PURE__ */ Object.create(null)));
|
|
@@ -9578,30 +9891,46 @@
|
|
|
9578
9891
|
};
|
|
9579
9892
|
}
|
|
9580
9893
|
var samples = track.samples;
|
|
9894
|
+
var isAV01 = /av01/.test(track.codec);
|
|
9581
9895
|
var mdatSize = 0;
|
|
9582
|
-
|
|
9583
|
-
|
|
9584
|
-
|
|
9585
|
-
}
|
|
9586
|
-
|
|
9587
|
-
|
|
9588
|
-
|
|
9589
|
-
|
|
9590
|
-
|
|
9591
|
-
|
|
9592
|
-
var sampleSize = 0;
|
|
9593
|
-
_sample.units.forEach(function(u) {
|
|
9594
|
-
mdatView.setUint32(_offset, u.byteLength);
|
|
9595
|
-
_offset += 4;
|
|
9596
|
-
mdata.set(u, _offset);
|
|
9597
|
-
_offset += u.byteLength;
|
|
9598
|
-
sampleSize += 4 + u.byteLength;
|
|
9896
|
+
if (isAV01) {
|
|
9897
|
+
samples.forEach(function(s) {
|
|
9898
|
+
mdatSize += s.data.byteLength;
|
|
9899
|
+
});
|
|
9900
|
+
} else {
|
|
9901
|
+
samples.forEach(function(s) {
|
|
9902
|
+
mdatSize += s.units.reduce(function(t, c) {
|
|
9903
|
+
return t + c.byteLength;
|
|
9904
|
+
}, 0);
|
|
9905
|
+
mdatSize += s.units.length * 4;
|
|
9599
9906
|
});
|
|
9600
|
-
|
|
9601
|
-
|
|
9602
|
-
|
|
9603
|
-
|
|
9604
|
-
|
|
9907
|
+
}
|
|
9908
|
+
var mdata = new Uint8Array(mdatSize);
|
|
9909
|
+
if (isAV01) {
|
|
9910
|
+
for (var i = 0, l = samples.length, offset = 0, sample; i < l; i++) {
|
|
9911
|
+
sample = samples[i];
|
|
9912
|
+
mdata.set(sample.data, offset);
|
|
9913
|
+
sample.size = sample.data.byteLength;
|
|
9914
|
+
offset += sample.size;
|
|
9915
|
+
}
|
|
9916
|
+
} else {
|
|
9917
|
+
var mdatView = new DataView(mdata.buffer);
|
|
9918
|
+
var _loop = function _loop2(_offset2, _sample2) {
|
|
9919
|
+
_sample2 = samples[_i];
|
|
9920
|
+
var sampleSize = 0;
|
|
9921
|
+
_sample2.units.forEach(function(u) {
|
|
9922
|
+
mdatView.setUint32(_offset2, u.byteLength);
|
|
9923
|
+
_offset2 += 4;
|
|
9924
|
+
mdata.set(u, _offset2);
|
|
9925
|
+
_offset2 += u.byteLength;
|
|
9926
|
+
sampleSize += 4 + u.byteLength;
|
|
9927
|
+
});
|
|
9928
|
+
_sample2.size = sampleSize;
|
|
9929
|
+
_offset = _offset2, _sample = _sample2;
|
|
9930
|
+
};
|
|
9931
|
+
for (var _i = 0, _l = samples.length, _offset = 0, _sample; _i < _l; _i++) {
|
|
9932
|
+
_loop(_offset, _sample);
|
|
9933
|
+
}
|
|
9605
9934
|
}
|
|
9606
9935
|
var mdat = MP4.mdat(mdata);
|
|
9607
9936
|
var moof = MP4.moof([track]);
|
|
@@ -9631,6 +9960,55 @@
|
|
|
9631
9960
|
}]);
|
|
9632
9961
|
return FMP4Remuxer2;
|
|
9633
9962
|
}();
|
|
9963
|
+
var TransferCost = /* @__PURE__ */ function() {
|
|
9964
|
+
function TransferCost2() {
|
|
9965
|
+
_classCallCheck$4(this, TransferCost2);
|
|
9966
|
+
_defineProperty$3(this, "_ttfb", 0);
|
|
9967
|
+
_defineProperty$3(this, "_demuxStart", 0);
|
|
9968
|
+
_defineProperty$3(this, "_demuxEnd", 0);
|
|
9969
|
+
_defineProperty$3(this, "_demuxCost", 0);
|
|
9970
|
+
_defineProperty$3(this, "_remuxStart", 0);
|
|
9971
|
+
_defineProperty$3(this, "_remuxEnd", 0);
|
|
9972
|
+
_defineProperty$3(this, "_remuxCost", 0);
|
|
9973
|
+
_defineProperty$3(this, "_appendStart", 0);
|
|
9974
|
+
_defineProperty$3(this, "_appendEnd", 0);
|
|
9975
|
+
_defineProperty$3(this, "_appendCost", 0);
|
|
9976
|
+
}
|
|
9977
|
+
_createClass$4(TransferCost2, [{
|
|
9978
|
+
key: "set",
|
|
9979
|
+
value: function set(event, value) {
|
|
9980
|
+
this["_".concat(event)] = value;
|
|
9981
|
+
}
|
|
9982
|
+
}, {
|
|
9983
|
+
key: "start",
|
|
9984
|
+
value: function start(event) {
|
|
9985
|
+
this["_".concat(event, "Start")] = Date.now();
|
|
9986
|
+
}
|
|
9987
|
+
}, {
|
|
9988
|
+
key: "end",
|
|
9989
|
+
value: function end(event) {
|
|
9990
|
+
this["_".concat(event, "End")] = Date.now();
|
|
9991
|
+
this["_".concat(event, "Cost")] = this["_".concat(event, "Cost")] + (this["_".concat(event, "End")] - this["_".concat(event, "Start")]);
|
|
9992
|
+
}
|
|
9993
|
+
}, {
|
|
9994
|
+
key: "transferCost",
|
|
9995
|
+
get: function get() {
|
|
9996
|
+
return {
|
|
9997
|
+
ttfbCost: this._ttfb,
|
|
9998
|
+
demuxCost: this._demuxCost,
|
|
9999
|
+
remuxCost: this._remuxCost,
|
|
10000
|
+
appendCost: this._appendCost
|
|
10001
|
+
};
|
|
10002
|
+
}
|
|
10003
|
+
}]);
|
|
10004
|
+
return TransferCost2;
|
|
10005
|
+
}();
|
|
10006
|
+
var TRANSFER_EVENT = {
|
|
10007
|
+
TTFB: "ttfb",
|
|
10008
|
+
DEMUX: "demux",
|
|
10009
|
+
REMUX: "remux",
|
|
10010
|
+
APPEND: "append"
|
|
10011
|
+
};
|
|
9634
10012
|
var logger$1 = new Logger$2("BufferService");
|
|
9635
10013
|
var BufferService = /* @__PURE__ */ function() {
|
|
9636
10014
|
function BufferService2(flv, softVideo) {
|
|
@@ -9718,7 +10096,8 @@
|
|
|
9718
10096
|
this._contiguous = false;
|
|
9719
10097
|
this._sourceCreated = false;
|
|
9720
10098
|
this._initSegmentId = "";
|
|
9721
|
-
|
|
10099
|
+
this.resetSeamlessSwitchStats();
|
|
10100
|
+
case 12:
|
|
9722
10101
|
case "end":
|
|
9723
10102
|
return _context.stop();
|
|
9724
10103
|
}
|
|
@@ -9729,6 +10108,15 @@
|
|
|
9729
10108
|
}
|
|
9730
10109
|
return reset;
|
|
9731
10110
|
}()
|
|
10111
|
+
}, {
|
|
10112
|
+
key: "resetSeamlessSwitchStats",
|
|
10113
|
+
value: function resetSeamlessSwitchStats() {
|
|
10114
|
+
this.seamlessLoadingSwitch = null;
|
|
10115
|
+
this.seamlessLoadingSwitching = false;
|
|
10116
|
+
if (this._demuxer) {
|
|
10117
|
+
this._demuxer.seamlessLoadingSwitching = false;
|
|
10118
|
+
}
|
|
10119
|
+
}
|
|
9732
10120
|
}, {
|
|
9733
10121
|
key: "endOfStream",
|
|
9734
10122
|
value: function() {
|
|
@@ -9834,32 +10222,56 @@
|
|
|
9834
10222
|
key: "appendBuffer",
|
|
9835
10223
|
value: function() {
|
|
9836
10224
|
var _appendBuffer = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee5(chunk) {
|
|
9837
|
-
var
|
|
10225
|
+
var _this = this;
|
|
10226
|
+
var switchingNoReset, demuxer, videoTrack, audioTrack, metadataTrack, idx, videoExist, audioExist, duration, track, videoType, audioType, mse, afterAppend, newId, remuxResult, p;
|
|
9838
10227
|
return _regeneratorRuntime$1().wrap(function _callee5$(_context5) {
|
|
9839
10228
|
while (1)
|
|
9840
10229
|
switch (_context5.prev = _context5.next) {
|
|
9841
10230
|
case 0:
|
|
10231
|
+
switchingNoReset = false;
|
|
9842
10232
|
if (this._cachedBuffer) {
|
|
9843
10233
|
chunk = concatUint8Array$1(this._cachedBuffer, chunk);
|
|
9844
10234
|
this._cachedBuffer = null;
|
|
9845
10235
|
}
|
|
9846
10236
|
demuxer = this._demuxer;
|
|
9847
10237
|
if (!(!chunk || !chunk.length || !demuxer)) {
|
|
9848
|
-
_context5.next =
|
|
10238
|
+
_context5.next = 5;
|
|
9849
10239
|
break;
|
|
9850
10240
|
}
|
|
9851
10241
|
return _context5.abrupt("return");
|
|
9852
|
-
case
|
|
9853
|
-
_context5.prev =
|
|
9854
|
-
|
|
9855
|
-
|
|
10242
|
+
case 5:
|
|
10243
|
+
_context5.prev = 5;
|
|
10244
|
+
this.flv._transferCost.start(TRANSFER_EVENT.DEMUX);
|
|
10245
|
+
demuxer.demuxAndFix(chunk, this.seamlessLoadingSwitching || this._discontinuity, this._contiguous, this._demuxStartTime, this.seamlessLoadingSwitching);
|
|
10246
|
+
this.seamlessLoadingSwitching = false;
|
|
10247
|
+
this.flv._transferCost.end(TRANSFER_EVENT.DEMUX);
|
|
10248
|
+
_context5.next = 15;
|
|
9856
10249
|
break;
|
|
9857
|
-
case
|
|
9858
|
-
_context5.prev =
|
|
9859
|
-
_context5.t0 = _context5["catch"](
|
|
10250
|
+
case 12:
|
|
10251
|
+
_context5.prev = 12;
|
|
10252
|
+
_context5.t0 = _context5["catch"](5);
|
|
9860
10253
|
throw new StreamingError(ERR.DEMUX, ERR.SUB_TYPES.FLV, _context5.t0);
|
|
9861
|
-
case
|
|
10254
|
+
case 15:
|
|
9862
10255
|
videoTrack = demuxer.videoTrack, audioTrack = demuxer.audioTrack, metadataTrack = demuxer.metadataTrack;
|
|
10256
|
+
if (!this.seamlessLoadingSwitch) {
|
|
10257
|
+
_context5.next = 25;
|
|
10258
|
+
break;
|
|
10259
|
+
}
|
|
10260
|
+
idx = videoTrack.samples.findIndex(function(sample) {
|
|
10261
|
+
return sample.originDts === videoTrack.lastKeyFrameDts;
|
|
10262
|
+
});
|
|
10263
|
+
if (!(idx >= 0)) {
|
|
10264
|
+
_context5.next = 25;
|
|
10265
|
+
break;
|
|
10266
|
+
}
|
|
10267
|
+
videoTrack.samples.splice(idx);
|
|
10268
|
+
_context5.next = 22;
|
|
10269
|
+
return this.seamlessLoadingSwitch();
|
|
10270
|
+
case 22:
|
|
10271
|
+
this.seamlessLoadingSwitch = null;
|
|
10272
|
+
chunk = null;
|
|
10273
|
+
switchingNoReset = true;
|
|
10274
|
+
case 25:
|
|
9863
10275
|
videoExist = videoTrack.exist();
|
|
9864
10276
|
audioExist = audioTrack.exist();
|
|
9865
10277
|
if (this._opts.onlyAudio) {
|
|
@@ -9871,7 +10283,7 @@
|
|
|
9871
10283
|
audioTrack.present = false;
|
|
9872
10284
|
}
|
|
9873
10285
|
if (!(!videoExist && videoTrack.present || !audioExist && audioTrack.present)) {
|
|
9874
|
-
_context5.next =
|
|
10286
|
+
_context5.next = 42;
|
|
9875
10287
|
break;
|
|
9876
10288
|
}
|
|
9877
10289
|
duration = 0;
|
|
@@ -9880,7 +10292,7 @@
|
|
|
9880
10292
|
duration = (track.samples[track.samples.length - 1].originPts - track.samples[0].originPts) / track.timescale * 1e3;
|
|
9881
10293
|
}
|
|
9882
10294
|
if (!(duration > this._opts.analyzeDuration)) {
|
|
9883
|
-
_context5.next =
|
|
10295
|
+
_context5.next = 40;
|
|
9884
10296
|
break;
|
|
9885
10297
|
}
|
|
9886
10298
|
logger$1.warn("analyze duration exceeded, ".concat(duration, "ms"), track);
|
|
@@ -9889,19 +10301,28 @@
|
|
|
9889
10301
|
this.flv.emit(EVENT.ANALYZE_DURATION_EXCEEDED, {
|
|
9890
10302
|
duration
|
|
9891
10303
|
});
|
|
9892
|
-
_context5.next =
|
|
10304
|
+
_context5.next = 42;
|
|
9893
10305
|
break;
|
|
9894
|
-
case
|
|
10306
|
+
case 40:
|
|
9895
10307
|
this._cachedBuffer = chunk;
|
|
9896
10308
|
return _context5.abrupt("return");
|
|
9897
|
-
case
|
|
10309
|
+
case 42:
|
|
9898
10310
|
videoType = videoTrack.type;
|
|
9899
10311
|
audioType = audioTrack.type;
|
|
9900
10312
|
this._fireEvents(videoTrack, audioTrack, metadataTrack);
|
|
9901
|
-
|
|
9902
|
-
|
|
9903
|
-
|
|
10313
|
+
if (!switchingNoReset) {
|
|
10314
|
+
this._discontinuity = false;
|
|
10315
|
+
this._contiguous = true;
|
|
10316
|
+
this._demuxStartTime = 0;
|
|
10317
|
+
}
|
|
9904
10318
|
mse = this._mse;
|
|
10319
|
+
afterAppend = function afterAppend2() {
|
|
10320
|
+
var _this$flv;
|
|
10321
|
+
if ((_this$flv = _this.flv) !== null && _this$flv !== void 0 && _this$flv.emit) {
|
|
10322
|
+
var _this$flv2;
|
|
10323
|
+
(_this$flv2 = _this.flv) === null || _this$flv2 === void 0 ? void 0 : _this$flv2.emit(EVENT.APPEND_BUFFER, {});
|
|
10324
|
+
}
|
|
10325
|
+
};
|
|
9905
10326
|
this.flv.emit(EVENT.DEMUXED_TRACK, {
|
|
9906
10327
|
videoTrack
|
|
9907
10328
|
});
|
|
@@ -9912,16 +10333,16 @@
|
|
|
9912
10333
|
this._emitMetaParsedEvent(videoTrack, audioTrack);
|
|
9913
10334
|
}
|
|
9914
10335
|
if (!mse) {
|
|
9915
|
-
_context5.next =
|
|
10336
|
+
_context5.next = 81;
|
|
9916
10337
|
break;
|
|
9917
10338
|
}
|
|
9918
10339
|
if (this._sourceCreated) {
|
|
9919
|
-
_context5.next =
|
|
10340
|
+
_context5.next = 59;
|
|
9920
10341
|
break;
|
|
9921
10342
|
}
|
|
9922
|
-
_context5.next =
|
|
10343
|
+
_context5.next = 55;
|
|
9923
10344
|
return mse.open();
|
|
9924
|
-
case
|
|
10345
|
+
case 55:
|
|
9925
10346
|
if (videoExist) {
|
|
9926
10347
|
logger$1.log("codec: video/mp4;codecs=".concat(videoTrack.codec));
|
|
9927
10348
|
mse.createSource(videoType, "video/mp4;codecs=".concat(videoTrack.codec));
|
|
@@ -9932,26 +10353,28 @@
|
|
|
9932
10353
|
}
|
|
9933
10354
|
this._sourceCreated = true;
|
|
9934
10355
|
this.flv.emit(EVENT.SOURCEBUFFER_CREATED);
|
|
9935
|
-
case
|
|
9936
|
-
_context5.prev =
|
|
10356
|
+
case 59:
|
|
10357
|
+
_context5.prev = 59;
|
|
9937
10358
|
if (this._needInitSegment && !this._opts.mseLowLatency) {
|
|
9938
10359
|
videoTrack.duration = this._opts.durationForMSELowLatencyOff * videoTrack.timescale;
|
|
9939
10360
|
audioTrack.duration = this._opts.durationForMSELowLatencyOff * audioExist.timescale;
|
|
9940
10361
|
}
|
|
10362
|
+
this.flv._transferCost.start(TRANSFER_EVENT.REMUX);
|
|
9941
10363
|
remuxResult = this._remuxer.remux(this._needInitSegment);
|
|
9942
|
-
|
|
10364
|
+
this.flv._transferCost.end(TRANSFER_EVENT.REMUX);
|
|
10365
|
+
_context5.next = 69;
|
|
9943
10366
|
break;
|
|
9944
|
-
case
|
|
9945
|
-
_context5.prev =
|
|
9946
|
-
_context5.t1 = _context5["catch"](
|
|
10367
|
+
case 66:
|
|
10368
|
+
_context5.prev = 66;
|
|
10369
|
+
_context5.t1 = _context5["catch"](59);
|
|
9947
10370
|
throw new StreamingError(ERR.REMUX, ERR.SUB_TYPES.FMP4, _context5.t1);
|
|
9948
|
-
case
|
|
10371
|
+
case 69:
|
|
9949
10372
|
if (!(this._needInitSegment && !remuxResult.videoInitSegment && !remuxResult.audioInitSegment)) {
|
|
9950
|
-
_context5.next =
|
|
10373
|
+
_context5.next = 71;
|
|
9951
10374
|
break;
|
|
9952
10375
|
}
|
|
9953
10376
|
return _context5.abrupt("return");
|
|
9954
|
-
case
|
|
10377
|
+
case 71:
|
|
9955
10378
|
this._needInitSegment = false;
|
|
9956
10379
|
p = [];
|
|
9957
10380
|
if (remuxResult.videoInitSegment)
|
|
@@ -9962,16 +10385,21 @@
|
|
|
9962
10385
|
p.push(mse.append(videoType, remuxResult.videoSegment));
|
|
9963
10386
|
if (remuxResult.audioSegment)
|
|
9964
10387
|
p.push(mse.append(audioType, remuxResult.audioSegment));
|
|
9965
|
-
|
|
9966
|
-
|
|
10388
|
+
this.flv._transferCost.start(TRANSFER_EVENT.APPEND);
|
|
10389
|
+
return _context5.abrupt("return", Promise.all(p).then(afterAppend).then(function() {
|
|
10390
|
+
_this.flv._transferCost.end(TRANSFER_EVENT.APPEND);
|
|
10391
|
+
afterAppend();
|
|
10392
|
+
}));
|
|
10393
|
+
case 81:
|
|
9967
10394
|
if (this._softVideo) {
|
|
9968
10395
|
this._softVideo.appendBuffer(videoTrack, audioTrack);
|
|
10396
|
+
afterAppend();
|
|
9969
10397
|
}
|
|
9970
|
-
case
|
|
10398
|
+
case 82:
|
|
9971
10399
|
case "end":
|
|
9972
10400
|
return _context5.stop();
|
|
9973
10401
|
}
|
|
9974
|
-
}, _callee5, this, [[
|
|
10402
|
+
}, _callee5, this, [[5, 12], [59, 66]]);
|
|
9975
10403
|
}));
|
|
9976
10404
|
function appendBuffer(_x2) {
|
|
9977
10405
|
return _appendBuffer.apply(this, arguments);
|
|
@@ -9982,7 +10410,7 @@
|
|
|
9982
10410
|
key: "evictBuffer",
|
|
9983
10411
|
value: function() {
|
|
9984
10412
|
var _evictBuffer = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee6(bufferBehind) {
|
|
9985
|
-
var
|
|
10413
|
+
var _this2 = this;
|
|
9986
10414
|
var media, currentTime, removeEnd, start;
|
|
9987
10415
|
return _regeneratorRuntime$1().wrap(function _callee6$(_context6) {
|
|
9988
10416
|
while (1)
|
|
@@ -10011,7 +10439,7 @@
|
|
|
10011
10439
|
return _context6.abrupt("return");
|
|
10012
10440
|
case 10:
|
|
10013
10441
|
return _context6.abrupt("return", this._mse.clearBuffer(0, removeEnd).then(function() {
|
|
10014
|
-
return
|
|
10442
|
+
return _this2.flv.emit(EVENT.REMOVE_BUFFER, {
|
|
10015
10443
|
removeEnd
|
|
10016
10444
|
});
|
|
10017
10445
|
}));
|
|
@@ -10061,16 +10489,16 @@
|
|
|
10061
10489
|
}, {
|
|
10062
10490
|
key: "_fireEvents",
|
|
10063
10491
|
value: function _fireEvents(videoTrack, audioTrack, metadataTrack) {
|
|
10064
|
-
var
|
|
10065
|
-
logger$1.debug(videoTrack.samples, audioTrack.samples);
|
|
10492
|
+
var _this3 = this;
|
|
10493
|
+
logger$1.debug("videoTrack samples count: ".concat(videoTrack.samples.length, ", audioTrack samples count: ").concat(audioTrack.samples.length));
|
|
10066
10494
|
metadataTrack.flvScriptSamples.forEach(function(sample) {
|
|
10067
|
-
|
|
10495
|
+
_this3.flv.emit(EVENT.FLV_SCRIPT_DATA, sample);
|
|
10068
10496
|
logger$1.debug("flvScriptData", sample);
|
|
10069
10497
|
});
|
|
10070
10498
|
videoTrack.samples.forEach(function(sample) {
|
|
10071
10499
|
if (sample.keyframe) {
|
|
10072
|
-
|
|
10073
|
-
pts: sample.
|
|
10500
|
+
_this3.flv.emit(EVENT.KEYFRAME, {
|
|
10501
|
+
pts: sample.originPts
|
|
10074
10502
|
});
|
|
10075
10503
|
}
|
|
10076
10504
|
});
|
|
@@ -10088,7 +10516,7 @@
|
|
|
10088
10516
|
break;
|
|
10089
10517
|
}
|
|
10090
10518
|
if (type)
|
|
10091
|
-
|
|
10519
|
+
_this3.flv.emit(EVENT.STREAM_EXCEPTION, _objectSpread2$2(_objectSpread2$2({}, warn), {}, {
|
|
10092
10520
|
type
|
|
10093
10521
|
}));
|
|
10094
10522
|
logger$1.warn("video exception", warn);
|
|
@@ -10107,13 +10535,13 @@
|
|
|
10107
10535
|
break;
|
|
10108
10536
|
}
|
|
10109
10537
|
if (type)
|
|
10110
|
-
|
|
10538
|
+
_this3.flv.emit(EVENT.STREAM_EXCEPTION, _objectSpread2$2(_objectSpread2$2({}, warn), {}, {
|
|
10111
10539
|
type
|
|
10112
10540
|
}));
|
|
10113
10541
|
logger$1.warn("audio exception", warn);
|
|
10114
10542
|
});
|
|
10115
10543
|
metadataTrack.seiSamples.forEach(function(sei) {
|
|
10116
|
-
|
|
10544
|
+
_this3.flv.emit(EVENT.SEI, _objectSpread2$2(_objectSpread2$2({}, sei), {}, {
|
|
10117
10545
|
sei: {
|
|
10118
10546
|
code: sei.data.type,
|
|
10119
10547
|
content: sei.data.payload,
|
|
@@ -10148,7 +10576,8 @@
|
|
|
10148
10576
|
durationForMSELowLatencyOff: 6,
|
|
10149
10577
|
chunkCountForSpeed: 50,
|
|
10150
10578
|
skipChunkSize: 1e3,
|
|
10151
|
-
longtimeNoReceived: 3e3
|
|
10579
|
+
longtimeNoReceived: 3e3,
|
|
10580
|
+
enableStartGapJump: true
|
|
10152
10581
|
}, opts);
|
|
10153
10582
|
if (ret.isLive) {
|
|
10154
10583
|
if (ret.preloadTime) {
|
|
@@ -10216,7 +10645,7 @@
|
|
|
10216
10645
|
_defineProperty$3(_assertThisInitialized$3(_this), "_acceptRanges", true);
|
|
10217
10646
|
_defineProperty$3(_assertThisInitialized$3(_this), "_onProgress", /* @__PURE__ */ function() {
|
|
10218
10647
|
var _ref2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee(chunk, done, _ref, response) {
|
|
10219
|
-
var startTime, endTime, st, firstByteTime, _this$_mediaLoader, headers, _this$_bufferService, remaining, maxReaderInterval;
|
|
10648
|
+
var startTime, endTime, st, firstByteTime, _this$_mediaLoader, headers, elapsed, _this$_bufferService, remaining, maxReaderInterval;
|
|
10220
10649
|
return _regeneratorRuntime$1().wrap(function _callee$(_context) {
|
|
10221
10650
|
while (1)
|
|
10222
10651
|
switch (_context.prev = _context.next) {
|
|
@@ -10224,7 +10653,7 @@
|
|
|
10224
10653
|
startTime = _ref.startTime, endTime = _ref.endTime, st = _ref.st, firstByteTime = _ref.firstByteTime;
|
|
10225
10654
|
_this._loading = !done;
|
|
10226
10655
|
if (_this._firstProgressEmit) {
|
|
10227
|
-
_context.next =
|
|
10656
|
+
_context.next = 13;
|
|
10228
10657
|
break;
|
|
10229
10658
|
}
|
|
10230
10659
|
if (_this.media) {
|
|
@@ -10235,49 +10664,51 @@
|
|
|
10235
10664
|
return _context.abrupt("return");
|
|
10236
10665
|
case 6:
|
|
10237
10666
|
headers = response.headers;
|
|
10667
|
+
elapsed = st ? firstByteTime - st : endTime - startTime;
|
|
10238
10668
|
_this.emit(EVENT.TTFB, {
|
|
10239
10669
|
url: _this._opts.url,
|
|
10240
10670
|
responseUrl: response.url,
|
|
10241
|
-
elapsed
|
|
10671
|
+
elapsed
|
|
10242
10672
|
});
|
|
10243
10673
|
_this.emit(EVENT.LOAD_RESPONSE_HEADERS, {
|
|
10244
10674
|
headers
|
|
10245
10675
|
});
|
|
10676
|
+
_this._transferCost.set(TRANSFER_EVENT.TTFB, elapsed);
|
|
10246
10677
|
_this._acceptRanges = !!(headers !== null && headers !== void 0 && headers.get("Accept-Ranges")) || !!(headers !== null && headers !== void 0 && headers.get("Content-Range"));
|
|
10247
10678
|
_this._firstProgressEmit = true;
|
|
10248
|
-
case
|
|
10679
|
+
case 13:
|
|
10249
10680
|
if (_this._bufferService) {
|
|
10250
|
-
_context.next =
|
|
10681
|
+
_context.next = 15;
|
|
10251
10682
|
break;
|
|
10252
10683
|
}
|
|
10253
10684
|
return _context.abrupt("return");
|
|
10254
|
-
case
|
|
10685
|
+
case 15:
|
|
10255
10686
|
clearTimeout(_this._maxChunkWaitTimer);
|
|
10256
10687
|
_this._bandwidthService.addChunkRecord(chunk === null || chunk === void 0 ? void 0 : chunk.byteLength, endTime - startTime);
|
|
10257
|
-
_context.prev =
|
|
10258
|
-
_context.next =
|
|
10688
|
+
_context.prev = 17;
|
|
10689
|
+
_context.next = 20;
|
|
10259
10690
|
return _this._bufferService.appendBuffer(chunk);
|
|
10260
|
-
case
|
|
10691
|
+
case 20:
|
|
10261
10692
|
(_this$_bufferService = _this._bufferService) === null || _this$_bufferService === void 0 ? void 0 : _this$_bufferService.evictBuffer(_this._opts.bufferBehind);
|
|
10262
|
-
_context.next =
|
|
10693
|
+
_context.next = 33;
|
|
10263
10694
|
break;
|
|
10264
|
-
case
|
|
10265
|
-
_context.prev =
|
|
10266
|
-
_context.t0 = _context["catch"](
|
|
10695
|
+
case 23:
|
|
10696
|
+
_context.prev = 23;
|
|
10697
|
+
_context.t0 = _context["catch"](17);
|
|
10267
10698
|
if (!(!_this.isLive && _this._bufferService.isFull())) {
|
|
10268
|
-
_context.next =
|
|
10699
|
+
_context.next = 32;
|
|
10269
10700
|
break;
|
|
10270
10701
|
}
|
|
10271
|
-
_context.next =
|
|
10702
|
+
_context.next = 28;
|
|
10272
10703
|
return _this._mediaLoader.cancel();
|
|
10273
|
-
case
|
|
10704
|
+
case 28:
|
|
10274
10705
|
_this._loading = false;
|
|
10275
10706
|
remaining = _this.bufferInfo().remaining;
|
|
10276
10707
|
_this._opts.preloadTime = parseInt(remaining) / 2;
|
|
10277
10708
|
return _context.abrupt("return");
|
|
10278
|
-
case
|
|
10709
|
+
case 32:
|
|
10279
10710
|
return _context.abrupt("return", _this._emitError(StreamingError.create(_context.t0)));
|
|
10280
|
-
case
|
|
10711
|
+
case 33:
|
|
10281
10712
|
if (_this._urlSwitching) {
|
|
10282
10713
|
_this._urlSwitching = false;
|
|
10283
10714
|
_this.emit(EVENT.SWITCH_URL_SUCCESS, {
|
|
@@ -10289,7 +10720,7 @@
|
|
|
10289
10720
|
_this._tick();
|
|
10290
10721
|
}
|
|
10291
10722
|
if (!(done && !_this.media.seeking)) {
|
|
10292
|
-
_context.next =
|
|
10723
|
+
_context.next = 40;
|
|
10293
10724
|
break;
|
|
10294
10725
|
}
|
|
10295
10726
|
_this.emit(EVENT.LOAD_COMPLETE);
|
|
@@ -10298,13 +10729,13 @@
|
|
|
10298
10729
|
_this._end();
|
|
10299
10730
|
}
|
|
10300
10731
|
return _context.abrupt("return");
|
|
10301
|
-
case
|
|
10732
|
+
case 40:
|
|
10302
10733
|
if (_this.isLive) {
|
|
10303
|
-
_context.next =
|
|
10734
|
+
_context.next = 42;
|
|
10304
10735
|
break;
|
|
10305
10736
|
}
|
|
10306
10737
|
return _context.abrupt("return");
|
|
10307
|
-
case
|
|
10738
|
+
case 42:
|
|
10308
10739
|
maxReaderInterval = _this._opts.maxReaderInterval;
|
|
10309
10740
|
if (maxReaderInterval && _this._firstProgressEmit) {
|
|
10310
10741
|
clearTimeout(_this._maxChunkWaitTimer);
|
|
@@ -10318,11 +10749,11 @@
|
|
|
10318
10749
|
_this._end();
|
|
10319
10750
|
}, maxReaderInterval);
|
|
10320
10751
|
}
|
|
10321
|
-
case
|
|
10752
|
+
case 44:
|
|
10322
10753
|
case "end":
|
|
10323
10754
|
return _context.stop();
|
|
10324
10755
|
}
|
|
10325
|
-
}, _callee, null, [[
|
|
10756
|
+
}, _callee, null, [[17, 23]]);
|
|
10326
10757
|
}));
|
|
10327
10758
|
return function(_x, _x2, _x3, _x4) {
|
|
10328
10759
|
return _ref2.apply(this, arguments);
|
|
@@ -10355,19 +10786,19 @@
|
|
|
10355
10786
|
if (bufferEnd < MAX_HOLE || !media.readyState)
|
|
10356
10787
|
return;
|
|
10357
10788
|
var opts = _this._opts;
|
|
10358
|
-
if (isMediaPlaying(media)) {
|
|
10789
|
+
if (isMediaPlaying(media) && media.currentTime) {
|
|
10359
10790
|
if (_this._gapService) {
|
|
10360
10791
|
_this._gapService.do(media, opts.maxJumpDistance, _this.isLive, 3);
|
|
10361
10792
|
}
|
|
10362
10793
|
} else {
|
|
10363
|
-
if (!media.currentTime && _this._gapService) {
|
|
10794
|
+
if (!media.currentTime && _this._gapService && opts.enableStartGapJump) {
|
|
10364
10795
|
var gapJump = _this._opts.mseLowLatency || _this._opts.mseLowLatency === false && _this.bufferInfo(MAX_START_GAP).nextStart;
|
|
10365
10796
|
if (gapJump) {
|
|
10366
10797
|
_this._gapService.do(media, opts.maxJumpDistance, _this.isLive, 3);
|
|
10367
10798
|
}
|
|
10368
10799
|
return;
|
|
10369
10800
|
}
|
|
10370
|
-
if (opts.isLive && media.readyState === 4 && bufferEnd > opts.disconnectTime) {
|
|
10801
|
+
if (opts.isLive && media.readyState === 4 && bufferEnd - media.currentTime > opts.disconnectTime) {
|
|
10371
10802
|
_this.disconnect();
|
|
10372
10803
|
}
|
|
10373
10804
|
}
|
|
@@ -10516,6 +10947,7 @@
|
|
|
10516
10947
|
responseType: "arraybuffer"
|
|
10517
10948
|
}));
|
|
10518
10949
|
_this._disconnectRetryCount = _this._opts.disconnectRetryCount;
|
|
10950
|
+
_this._transferCost = new TransferCost();
|
|
10519
10951
|
_this._bufferService = new BufferService(_assertThisInitialized$3(_this), _this._opts.softDecode ? _this.media : void 0, _this._opts);
|
|
10520
10952
|
_this._seiService = new SeiService(_assertThisInitialized$3(_this));
|
|
10521
10953
|
_this._bandwidthService = new BandwidthService({
|
|
@@ -10539,7 +10971,7 @@
|
|
|
10539
10971
|
_createClass$4(Flv2, [{
|
|
10540
10972
|
key: "version",
|
|
10541
10973
|
get: function get() {
|
|
10542
|
-
return "3.0.
|
|
10974
|
+
return "3.0.21-rc.3";
|
|
10543
10975
|
}
|
|
10544
10976
|
}, {
|
|
10545
10977
|
key: "isLive",
|
|
@@ -10655,9 +11087,9 @@
|
|
|
10655
11087
|
return this._clear();
|
|
10656
11088
|
case 8:
|
|
10657
11089
|
setTimeout(function() {
|
|
11090
|
+
_this2._seamlessSwitching = true;
|
|
10658
11091
|
_this2._loadData(_this2._opts.url);
|
|
10659
11092
|
_this2._bufferService.seamlessSwitch();
|
|
10660
|
-
_this2._seamlessSwitching = true;
|
|
10661
11093
|
});
|
|
10662
11094
|
_context5.next = 13;
|
|
10663
11095
|
break;
|
|
@@ -10681,50 +11113,82 @@
|
|
|
10681
11113
|
}, {
|
|
10682
11114
|
key: "disconnect",
|
|
10683
11115
|
value: function disconnect() {
|
|
11116
|
+
var _this$_bufferService4;
|
|
10684
11117
|
logger.debug("disconnect!");
|
|
11118
|
+
(_this$_bufferService4 = this._bufferService) === null || _this$_bufferService4 === void 0 ? void 0 : _this$_bufferService4.resetSeamlessSwitchStats();
|
|
10685
11119
|
return this._clear();
|
|
10686
11120
|
}
|
|
10687
11121
|
}, {
|
|
10688
11122
|
key: "switchURL",
|
|
10689
11123
|
value: function() {
|
|
10690
|
-
var _switchURL = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function
|
|
11124
|
+
var _switchURL = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee7(url, seamless) {
|
|
10691
11125
|
var _this3 = this;
|
|
10692
|
-
return _regeneratorRuntime$1().wrap(function
|
|
11126
|
+
return _regeneratorRuntime$1().wrap(function _callee7$(_context7) {
|
|
10693
11127
|
while (1)
|
|
10694
|
-
switch (
|
|
11128
|
+
switch (_context7.prev = _context7.next) {
|
|
10695
11129
|
case 0:
|
|
10696
11130
|
if (this._bufferService) {
|
|
10697
|
-
|
|
11131
|
+
_context7.next = 2;
|
|
10698
11132
|
break;
|
|
10699
11133
|
}
|
|
10700
|
-
return
|
|
11134
|
+
return _context7.abrupt("return");
|
|
10701
11135
|
case 2:
|
|
10702
11136
|
this._resetDisconnectCount();
|
|
11137
|
+
if (!(this._loading && seamless)) {
|
|
11138
|
+
_context7.next = 6;
|
|
11139
|
+
break;
|
|
11140
|
+
}
|
|
11141
|
+
this._bufferService.seamlessLoadingSwitch = /* @__PURE__ */ function() {
|
|
11142
|
+
var _ref5 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee6(pts) {
|
|
11143
|
+
return _regeneratorRuntime$1().wrap(function _callee6$(_context6) {
|
|
11144
|
+
while (1)
|
|
11145
|
+
switch (_context6.prev = _context6.next) {
|
|
11146
|
+
case 0:
|
|
11147
|
+
_context6.next = 2;
|
|
11148
|
+
return _this3._clear();
|
|
11149
|
+
case 2:
|
|
11150
|
+
_this3._bufferService.seamlessLoadingSwitching = true;
|
|
11151
|
+
_this3._urlSwitching = true;
|
|
11152
|
+
_this3._seamlessSwitching = true;
|
|
11153
|
+
_this3._bufferService.seamlessSwitch();
|
|
11154
|
+
_this3._loadData(url);
|
|
11155
|
+
case 7:
|
|
11156
|
+
case "end":
|
|
11157
|
+
return _context6.stop();
|
|
11158
|
+
}
|
|
11159
|
+
}, _callee6);
|
|
11160
|
+
}));
|
|
11161
|
+
return function(_x8) {
|
|
11162
|
+
return _ref5.apply(this, arguments);
|
|
11163
|
+
};
|
|
11164
|
+
}();
|
|
11165
|
+
return _context7.abrupt("return");
|
|
11166
|
+
case 6:
|
|
10703
11167
|
if (!(!seamless || !this._opts.isLive)) {
|
|
10704
|
-
|
|
11168
|
+
_context7.next = 11;
|
|
10705
11169
|
break;
|
|
10706
11170
|
}
|
|
10707
|
-
|
|
11171
|
+
_context7.next = 9;
|
|
10708
11172
|
return this.load(url);
|
|
10709
|
-
case
|
|
11173
|
+
case 9:
|
|
10710
11174
|
this._urlSwitching = true;
|
|
10711
|
-
return
|
|
11175
|
+
return _context7.abrupt("return", this.media.play(true).catch(function() {
|
|
10712
11176
|
}));
|
|
10713
|
-
case
|
|
10714
|
-
|
|
11177
|
+
case 11:
|
|
11178
|
+
_context7.next = 13;
|
|
10715
11179
|
return this._clear();
|
|
10716
|
-
case
|
|
11180
|
+
case 13:
|
|
10717
11181
|
setTimeout(function() {
|
|
10718
11182
|
_this3._urlSwitching = true;
|
|
10719
11183
|
_this3._seamlessSwitching = true;
|
|
10720
11184
|
_this3._loadData(url);
|
|
10721
11185
|
_this3._bufferService.seamlessSwitch();
|
|
10722
11186
|
});
|
|
10723
|
-
case
|
|
11187
|
+
case 14:
|
|
10724
11188
|
case "end":
|
|
10725
|
-
return
|
|
11189
|
+
return _context7.stop();
|
|
10726
11190
|
}
|
|
10727
|
-
},
|
|
11191
|
+
}, _callee7, this);
|
|
10728
11192
|
}));
|
|
10729
11193
|
function switchURL(_x6, _x7) {
|
|
10730
11194
|
return _switchURL.apply(this, arguments);
|
|
@@ -10734,16 +11198,16 @@
|
|
|
10734
11198
|
}, {
|
|
10735
11199
|
key: "destroy",
|
|
10736
11200
|
value: function() {
|
|
10737
|
-
var _destroy = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function
|
|
10738
|
-
return _regeneratorRuntime$1().wrap(function
|
|
11201
|
+
var _destroy = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee8() {
|
|
11202
|
+
return _regeneratorRuntime$1().wrap(function _callee8$(_context8) {
|
|
10739
11203
|
while (1)
|
|
10740
|
-
switch (
|
|
11204
|
+
switch (_context8.prev = _context8.next) {
|
|
10741
11205
|
case 0:
|
|
10742
11206
|
if (this.media) {
|
|
10743
|
-
|
|
11207
|
+
_context8.next = 2;
|
|
10744
11208
|
break;
|
|
10745
11209
|
}
|
|
10746
|
-
return
|
|
11210
|
+
return _context8.abrupt("return");
|
|
10747
11211
|
case 2:
|
|
10748
11212
|
this.removeAllListeners();
|
|
10749
11213
|
this._seiService.reset();
|
|
@@ -10753,16 +11217,16 @@
|
|
|
10753
11217
|
this.media.removeEventListener("timeupdate", this._onTimeupdate);
|
|
10754
11218
|
this.media.removeEventListener("waiting", this._onWaiting);
|
|
10755
11219
|
this.media.removeEventListener("progress", this._onBufferUpdate);
|
|
10756
|
-
|
|
11220
|
+
_context8.next = 12;
|
|
10757
11221
|
return Promise.all([this._clear(), this._bufferService.destroy()]);
|
|
10758
11222
|
case 12:
|
|
10759
11223
|
this.media = null;
|
|
10760
11224
|
this._bufferService = null;
|
|
10761
11225
|
case 14:
|
|
10762
11226
|
case "end":
|
|
10763
|
-
return
|
|
11227
|
+
return _context8.stop();
|
|
10764
11228
|
}
|
|
10765
|
-
},
|
|
11229
|
+
}, _callee8, this);
|
|
10766
11230
|
}));
|
|
10767
11231
|
function destroy() {
|
|
10768
11232
|
return _destroy.apply(this, arguments);
|
|
@@ -10791,26 +11255,26 @@
|
|
|
10791
11255
|
}, {
|
|
10792
11256
|
key: "_reset",
|
|
10793
11257
|
value: function() {
|
|
10794
|
-
var _reset2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function
|
|
10795
|
-
var reuseMse,
|
|
10796
|
-
return _regeneratorRuntime$1().wrap(function
|
|
11258
|
+
var _reset2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee9() {
|
|
11259
|
+
var reuseMse, _args9 = arguments;
|
|
11260
|
+
return _regeneratorRuntime$1().wrap(function _callee9$(_context9) {
|
|
10797
11261
|
while (1)
|
|
10798
|
-
switch (
|
|
11262
|
+
switch (_context9.prev = _context9.next) {
|
|
10799
11263
|
case 0:
|
|
10800
|
-
reuseMse =
|
|
11264
|
+
reuseMse = _args9.length > 0 && _args9[0] !== void 0 ? _args9[0] : false;
|
|
10801
11265
|
this._seiService.reset();
|
|
10802
11266
|
this._bandwidthService.reset();
|
|
10803
11267
|
this._stats.reset();
|
|
10804
|
-
|
|
11268
|
+
_context9.next = 6;
|
|
10805
11269
|
return this._clear();
|
|
10806
11270
|
case 6:
|
|
10807
|
-
|
|
11271
|
+
_context9.next = 8;
|
|
10808
11272
|
return this._bufferService.reset(reuseMse);
|
|
10809
11273
|
case 8:
|
|
10810
11274
|
case "end":
|
|
10811
|
-
return
|
|
11275
|
+
return _context9.stop();
|
|
10812
11276
|
}
|
|
10813
|
-
},
|
|
11277
|
+
}, _callee9, this);
|
|
10814
11278
|
}));
|
|
10815
11279
|
function _reset() {
|
|
10816
11280
|
return _reset2.apply(this, arguments);
|
|
@@ -10820,17 +11284,17 @@
|
|
|
10820
11284
|
}, {
|
|
10821
11285
|
key: "_loadData",
|
|
10822
11286
|
value: function() {
|
|
10823
|
-
var _loadData2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function
|
|
11287
|
+
var _loadData2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee10(url, range) {
|
|
10824
11288
|
var finnalUrl;
|
|
10825
|
-
return _regeneratorRuntime$1().wrap(function
|
|
11289
|
+
return _regeneratorRuntime$1().wrap(function _callee10$(_context10) {
|
|
10826
11290
|
while (1)
|
|
10827
|
-
switch (
|
|
11291
|
+
switch (_context10.prev = _context10.next) {
|
|
10828
11292
|
case 0:
|
|
10829
11293
|
if (url)
|
|
10830
11294
|
this._opts.url = url;
|
|
10831
11295
|
finnalUrl = url = this._opts.url;
|
|
10832
11296
|
if (url) {
|
|
10833
|
-
|
|
11297
|
+
_context10.next = 4;
|
|
10834
11298
|
break;
|
|
10835
11299
|
}
|
|
10836
11300
|
throw new Error("Source url is missing");
|
|
@@ -10845,34 +11309,34 @@
|
|
|
10845
11309
|
});
|
|
10846
11310
|
logger.debug("load data, loading:", this._loading, finnalUrl);
|
|
10847
11311
|
if (!this._loading) {
|
|
10848
|
-
|
|
11312
|
+
_context10.next = 11;
|
|
10849
11313
|
break;
|
|
10850
11314
|
}
|
|
10851
|
-
|
|
11315
|
+
_context10.next = 11;
|
|
10852
11316
|
return this._mediaLoader.cancel();
|
|
10853
11317
|
case 11:
|
|
10854
11318
|
this._loading = true;
|
|
10855
|
-
|
|
10856
|
-
|
|
11319
|
+
_context10.prev = 12;
|
|
11320
|
+
_context10.next = 15;
|
|
10857
11321
|
return this._mediaLoader.load({
|
|
10858
11322
|
url: finnalUrl,
|
|
10859
11323
|
range
|
|
10860
11324
|
});
|
|
10861
11325
|
case 15:
|
|
10862
|
-
|
|
11326
|
+
_context10.next = 21;
|
|
10863
11327
|
break;
|
|
10864
11328
|
case 17:
|
|
10865
|
-
|
|
10866
|
-
|
|
11329
|
+
_context10.prev = 17;
|
|
11330
|
+
_context10.t0 = _context10["catch"](12);
|
|
10867
11331
|
this._loading = false;
|
|
10868
|
-
return
|
|
11332
|
+
return _context10.abrupt("return", this._emitError(StreamingError.network(_context10.t0), false));
|
|
10869
11333
|
case 21:
|
|
10870
11334
|
case "end":
|
|
10871
|
-
return
|
|
11335
|
+
return _context10.stop();
|
|
10872
11336
|
}
|
|
10873
|
-
},
|
|
11337
|
+
}, _callee10, this, [[12, 17]]);
|
|
10874
11338
|
}));
|
|
10875
|
-
function _loadData(
|
|
11339
|
+
function _loadData(_x9, _x10) {
|
|
10876
11340
|
return _loadData2.apply(this, arguments);
|
|
10877
11341
|
}
|
|
10878
11342
|
return _loadData;
|
|
@@ -10880,16 +11344,16 @@
|
|
|
10880
11344
|
}, {
|
|
10881
11345
|
key: "_clear",
|
|
10882
11346
|
value: function() {
|
|
10883
|
-
var _clear2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function
|
|
10884
|
-
return _regeneratorRuntime$1().wrap(function
|
|
11347
|
+
var _clear2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee11() {
|
|
11348
|
+
return _regeneratorRuntime$1().wrap(function _callee11$(_context11) {
|
|
10885
11349
|
while (1)
|
|
10886
|
-
switch (
|
|
11350
|
+
switch (_context11.prev = _context11.next) {
|
|
10887
11351
|
case 0:
|
|
10888
11352
|
if (!this._mediaLoader) {
|
|
10889
|
-
|
|
11353
|
+
_context11.next = 3;
|
|
10890
11354
|
break;
|
|
10891
11355
|
}
|
|
10892
|
-
|
|
11356
|
+
_context11.next = 3;
|
|
10893
11357
|
return this._mediaLoader.cancel();
|
|
10894
11358
|
case 3:
|
|
10895
11359
|
clearTimeout(this._maxChunkWaitTimer);
|
|
@@ -10898,9 +11362,9 @@
|
|
|
10898
11362
|
this._firstProgressEmit = false;
|
|
10899
11363
|
case 7:
|
|
10900
11364
|
case "end":
|
|
10901
|
-
return
|
|
11365
|
+
return _context11.stop();
|
|
10902
11366
|
}
|
|
10903
|
-
},
|
|
11367
|
+
}, _callee11, this);
|
|
10904
11368
|
}));
|
|
10905
11369
|
function _clear() {
|
|
10906
11370
|
return _clear2.apply(this, arguments);
|
|
@@ -10987,9 +11451,13 @@
|
|
|
10987
11451
|
_createClass$4(PluginExtension2, [{
|
|
10988
11452
|
key: "_init",
|
|
10989
11453
|
value: function _init() {
|
|
10990
|
-
var _this$_opts2 = this._opts, media = _this$_opts2.media, preloadTime = _this$_opts2.preloadTime, innerDegrade = _this$_opts2.innerDegrade, decodeMode = _this$_opts2.decodeMode;
|
|
11454
|
+
var _this$_opts2 = this._opts, media = _this$_opts2.media, isLive = _this$_opts2.isLive, preloadTime = _this$_opts2.preloadTime, innerDegrade = _this$_opts2.innerDegrade, decodeMode = _this$_opts2.decodeMode;
|
|
10991
11455
|
if (!media)
|
|
10992
11456
|
return;
|
|
11457
|
+
if (!isLive && media.setPlayMode) {
|
|
11458
|
+
media.setPlayMode("VOD");
|
|
11459
|
+
return;
|
|
11460
|
+
}
|
|
10993
11461
|
if (innerDegrade) {
|
|
10994
11462
|
media.setAttribute("innerdegrade", innerDegrade);
|
|
10995
11463
|
}
|
|
@@ -11027,6 +11495,7 @@
|
|
|
11027
11495
|
args[_key] = arguments[_key];
|
|
11028
11496
|
}
|
|
11029
11497
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
11498
|
+
_defineProperty$3(_assertThisInitialized$3(_this), "logger", logger);
|
|
11030
11499
|
_defineProperty$3(_assertThisInitialized$3(_this), "flv", null);
|
|
11031
11500
|
_defineProperty$3(_assertThisInitialized$3(_this), "pluginExtension", null);
|
|
11032
11501
|
_defineProperty$3(_assertThisInitialized$3(_this), "getStats", function() {
|
|
@@ -11094,11 +11563,17 @@
|
|
|
11094
11563
|
var _this$flv3;
|
|
11095
11564
|
return (_this$flv3 = this.flv) === null || _this$flv3 === void 0 ? void 0 : _this$flv3.loader;
|
|
11096
11565
|
}
|
|
11566
|
+
}, {
|
|
11567
|
+
key: "transferCost",
|
|
11568
|
+
get: function get() {
|
|
11569
|
+
return this.flv._transferCost.transferCost;
|
|
11570
|
+
}
|
|
11097
11571
|
}, {
|
|
11098
11572
|
key: "beforePlayerInit",
|
|
11099
11573
|
value: function beforePlayerInit() {
|
|
11100
11574
|
var _this2 = this;
|
|
11101
11575
|
var config = this.player.config;
|
|
11576
|
+
var mediaElem = this.player.media || this.player.video;
|
|
11102
11577
|
if (!config.url)
|
|
11103
11578
|
return;
|
|
11104
11579
|
if (this.flv)
|
|
@@ -11111,10 +11586,10 @@
|
|
|
11111
11586
|
this.flv = new Flv(_objectSpread2$2({
|
|
11112
11587
|
softDecode: this.softDecode,
|
|
11113
11588
|
isLive: config.isLive,
|
|
11114
|
-
media:
|
|
11589
|
+
media: mediaElem,
|
|
11115
11590
|
preProcessUrl: function preProcessUrl(url, ext) {
|
|
11116
|
-
var _this2$player
|
|
11117
|
-
return ((_this2$player
|
|
11591
|
+
var _this2$player, _this2$player$preProc;
|
|
11592
|
+
return ((_this2$player = _this2.player) === null || _this2$player === void 0 ? void 0 : (_this2$player$preProc = _this2$player.preProcessUrl) === null || _this2$player$preProc === void 0 ? void 0 : _this2$player$preProc.call(_this2$player, url, ext)) || {
|
|
11118
11593
|
url,
|
|
11119
11594
|
ext
|
|
11120
11595
|
};
|
|
@@ -11133,7 +11608,8 @@
|
|
|
11133
11608
|
}
|
|
11134
11609
|
if (this.softDecode) {
|
|
11135
11610
|
this.pluginExtension = new PluginExtension(_objectSpread2$2({
|
|
11136
|
-
media: this.player.video
|
|
11611
|
+
media: this.player.video,
|
|
11612
|
+
isLive: config.isLive
|
|
11137
11613
|
}, config.flv), this);
|
|
11138
11614
|
this.player.forceDegradeToVideo = function() {
|
|
11139
11615
|
var _this2$pluginExtensio;
|
|
@@ -11160,6 +11636,7 @@
|
|
|
11160
11636
|
this._transCoreEvent(EVENT.LOAD_RETRY);
|
|
11161
11637
|
this._transCoreEvent(EVENT.SOURCEBUFFER_CREATED);
|
|
11162
11638
|
this._transCoreEvent(EVENT.ANALYZE_DURATION_EXCEEDED);
|
|
11639
|
+
this._transCoreEvent(EVENT.APPEND_BUFFER);
|
|
11163
11640
|
this._transCoreEvent(EVENT.REMOVE_BUFFER);
|
|
11164
11641
|
this._transCoreEvent(EVENT.BUFFEREOS);
|
|
11165
11642
|
this._transCoreEvent(EVENT.KEYFRAME);
|