@byteplus/veplayer-plugin 2.10.0 → 2.10.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 +1216 -500
- package/esm/index.production.js +7 -7
- package/esm/veplayer.plugin.rtm.development.js +1168 -452
- package/esm/veplayer.plugin.rtm.production.js +1 -1
- package/package.json +1 -1
- package/umd/veplayer.plugin.rtm.development.js +1168 -452
- package/umd/veplayer.plugin.rtm.production.js +1 -1
package/esm/index.development.js
CHANGED
|
@@ -1764,6 +1764,7 @@ var PAUSE$1 = "pause";
|
|
|
1764
1764
|
var ERROR$1 = "error";
|
|
1765
1765
|
var TIME_UPDATE$1 = "timeupdate";
|
|
1766
1766
|
var WAITING = "waiting";
|
|
1767
|
+
var CANPLAY = "canplay";
|
|
1767
1768
|
var LOADED_DATA$1 = "loadeddata";
|
|
1768
1769
|
var LOAD_START = "loadstart";
|
|
1769
1770
|
var DESTROY = "destroy";
|
|
@@ -2245,6 +2246,37 @@ function listener$1(element, selector, type, callback) {
|
|
|
2245
2246
|
}
|
|
2246
2247
|
var delegate_1 = delegate;
|
|
2247
2248
|
var _delegate$1 = /* @__PURE__ */ getDefaultExportFromCjs$3(delegate_1);
|
|
2249
|
+
var STATE_CLASS$1 = {
|
|
2250
|
+
DEFAULT: "xgplayer",
|
|
2251
|
+
DEFAULT_SKIN: "xgplayer-skin-default",
|
|
2252
|
+
ENTER: "xgplayer-is-enter",
|
|
2253
|
+
PAUSED: "xgplayer-pause",
|
|
2254
|
+
PLAYING: "xgplayer-playing",
|
|
2255
|
+
ENDED: "xgplayer-ended",
|
|
2256
|
+
CANPLAY: "xgplayer-canplay",
|
|
2257
|
+
LOADING: "xgplayer-isloading",
|
|
2258
|
+
ERROR: "xgplayer-is-error",
|
|
2259
|
+
REPLAY: "xgplayer-replay",
|
|
2260
|
+
NO_START: "xgplayer-nostart",
|
|
2261
|
+
ACTIVE: "xgplayer-active",
|
|
2262
|
+
INACTIVE: "xgplayer-inactive",
|
|
2263
|
+
FULLSCREEN: "xgplayer-is-fullscreen",
|
|
2264
|
+
CSS_FULLSCREEN: "xgplayer-is-cssfullscreen",
|
|
2265
|
+
ROTATE_FULLSCREEN: "xgplayer-rotate-fullscreen",
|
|
2266
|
+
PARENT_ROTATE_FULLSCREEN: "xgplayer-rotate-parent",
|
|
2267
|
+
PARENT_FULLSCREEN: "xgplayer-fullscreen-parent",
|
|
2268
|
+
INNER_FULLSCREEN: "xgplayer-fullscreen-inner",
|
|
2269
|
+
NO_CONTROLS: "no-controls",
|
|
2270
|
+
FLEX_CONTROLS: "flex-controls",
|
|
2271
|
+
CONTROLS_FOLLOW: "controls-follow",
|
|
2272
|
+
CONTROLS_AUTOHIDE: "controls-autohide",
|
|
2273
|
+
TOP_BAR_AUTOHIDE: "top-bar-autohide",
|
|
2274
|
+
NOT_ALLOW_AUTOPLAY: "not-allow-autoplay",
|
|
2275
|
+
SEEKING: "seeking",
|
|
2276
|
+
PC: "xgplayer-pc",
|
|
2277
|
+
MOBILE: "xgplayer-mobile",
|
|
2278
|
+
MINI: "xgplayer-mini"
|
|
2279
|
+
};
|
|
2248
2280
|
function ownKeys$f(object, enumerableOnly) {
|
|
2249
2281
|
var keys9 = Object.keys(object);
|
|
2250
2282
|
if (Object.getOwnPropertySymbols) {
|
|
@@ -2854,7 +2886,7 @@ function _arrayLikeToArray$f(arr, len) {
|
|
|
2854
2886
|
arr2[i2] = arr[i2];
|
|
2855
2887
|
return arr2;
|
|
2856
2888
|
}
|
|
2857
|
-
function _createForOfIteratorHelper$
|
|
2889
|
+
function _createForOfIteratorHelper$5(o2, allowArrayLike) {
|
|
2858
2890
|
var it = typeof Symbol !== "undefined" && o2[Symbol.iterator] || o2["@@iterator"];
|
|
2859
2891
|
if (!it) {
|
|
2860
2892
|
if (Array.isArray(o2) || (it = _unsupportedIterableToArray$f(o2)) || allowArrayLike && o2 && typeof o2.length === "number") {
|
|
@@ -4990,7 +5022,7 @@ var XhrLoader$4 = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
4990
5022
|
value: function _getHeaders(xhr) {
|
|
4991
5023
|
var headerLines = xhr.getAllResponseHeaders().trim().split("\r\n");
|
|
4992
5024
|
var headers = {};
|
|
4993
|
-
var _iterator = _createForOfIteratorHelper$
|
|
5025
|
+
var _iterator = _createForOfIteratorHelper$5(headerLines), _step;
|
|
4994
5026
|
try {
|
|
4995
5027
|
for (_iterator.s(); !(_step = _iterator.n()).done; ) {
|
|
4996
5028
|
var header = _step.value;
|
|
@@ -28067,6 +28099,60 @@ function _nonIterableSpread$9() {
|
|
|
28067
28099
|
function _nonIterableRest$7() {
|
|
28068
28100
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
28069
28101
|
}
|
|
28102
|
+
function _createForOfIteratorHelper$4(o2, allowArrayLike) {
|
|
28103
|
+
var it = typeof Symbol !== "undefined" && o2[Symbol.iterator] || o2["@@iterator"];
|
|
28104
|
+
if (!it) {
|
|
28105
|
+
if (Array.isArray(o2) || (it = _unsupportedIterableToArray$d(o2)) || allowArrayLike && o2 && typeof o2.length === "number") {
|
|
28106
|
+
if (it)
|
|
28107
|
+
o2 = it;
|
|
28108
|
+
var i2 = 0;
|
|
28109
|
+
var F2 = function() {
|
|
28110
|
+
};
|
|
28111
|
+
return {
|
|
28112
|
+
s: F2,
|
|
28113
|
+
n: function() {
|
|
28114
|
+
if (i2 >= o2.length)
|
|
28115
|
+
return {
|
|
28116
|
+
done: true
|
|
28117
|
+
};
|
|
28118
|
+
return {
|
|
28119
|
+
done: false,
|
|
28120
|
+
value: o2[i2++]
|
|
28121
|
+
};
|
|
28122
|
+
},
|
|
28123
|
+
e: function(e4) {
|
|
28124
|
+
throw e4;
|
|
28125
|
+
},
|
|
28126
|
+
f: F2
|
|
28127
|
+
};
|
|
28128
|
+
}
|
|
28129
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
28130
|
+
}
|
|
28131
|
+
var normalCompletion = true, didErr = false, err;
|
|
28132
|
+
return {
|
|
28133
|
+
s: function() {
|
|
28134
|
+
it = it.call(o2);
|
|
28135
|
+
},
|
|
28136
|
+
n: function() {
|
|
28137
|
+
var step = it.next();
|
|
28138
|
+
normalCompletion = step.done;
|
|
28139
|
+
return step;
|
|
28140
|
+
},
|
|
28141
|
+
e: function(e4) {
|
|
28142
|
+
didErr = true;
|
|
28143
|
+
err = e4;
|
|
28144
|
+
},
|
|
28145
|
+
f: function() {
|
|
28146
|
+
try {
|
|
28147
|
+
if (!normalCompletion && it.return != null)
|
|
28148
|
+
it.return();
|
|
28149
|
+
} finally {
|
|
28150
|
+
if (didErr)
|
|
28151
|
+
throw err;
|
|
28152
|
+
}
|
|
28153
|
+
}
|
|
28154
|
+
};
|
|
28155
|
+
}
|
|
28070
28156
|
function _toPrimitive$b(input, hint) {
|
|
28071
28157
|
if (typeof input !== "object" || input === null)
|
|
28072
28158
|
return input;
|
|
@@ -30248,10 +30334,28 @@ var NetLoader$2 = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
30248
30334
|
}]);
|
|
30249
30335
|
return NetLoader2;
|
|
30250
30336
|
}(EventEmitter$2);
|
|
30251
|
-
var EXTEND_EVENTS = {
|
|
30252
|
-
RTC_STATE_CHANGE
|
|
30253
|
-
RTC_NETWORK
|
|
30254
|
-
|
|
30337
|
+
var EXTEND_EVENTS = /* @__PURE__ */ function(EXTEND_EVENTS2) {
|
|
30338
|
+
EXTEND_EVENTS2["RTC_STATE_CHANGE"] = "core.rtcstatechange";
|
|
30339
|
+
EXTEND_EVENTS2["RTC_NETWORK"] = "core.rtcnetwork";
|
|
30340
|
+
EXTEND_EVENTS2["RTC_FIRST_FRAME"] = "core.rtcfirstframe";
|
|
30341
|
+
return EXTEND_EVENTS2;
|
|
30342
|
+
}(EXTEND_EVENTS || {});
|
|
30343
|
+
var RTC_FIRST_FRAME_STATE = /* @__PURE__ */ function(RTC_FIRST_FRAME_STATE2) {
|
|
30344
|
+
RTC_FIRST_FRAME_STATE2["LOAD_START"] = "start_load";
|
|
30345
|
+
RTC_FIRST_FRAME_STATE2["OFFER_SDP_READY"] = "offer_sdp_ready";
|
|
30346
|
+
RTC_FIRST_FRAME_STATE2["ANSWER_SDP_RECV"] = "answer_sdp_recv";
|
|
30347
|
+
RTC_FIRST_FRAME_STATE2["ANSWER_SDP_READY"] = "answer_sdp_ready";
|
|
30348
|
+
RTC_FIRST_FRAME_STATE2["ICE_CONNECTED"] = "ice_connected";
|
|
30349
|
+
RTC_FIRST_FRAME_STATE2["DTLS_CONNECTED"] = "dtls_connected";
|
|
30350
|
+
RTC_FIRST_FRAME_STATE2["PEER_CONNECTED"] = "peer_connected";
|
|
30351
|
+
RTC_FIRST_FRAME_STATE2["FIRST_PACKET_RECV"] = "first_packet_recv";
|
|
30352
|
+
RTC_FIRST_FRAME_STATE2["FIRST_FRAME_RECV"] = "first_frame_recv";
|
|
30353
|
+
RTC_FIRST_FRAME_STATE2["FIRST_FRAME_DECODED"] = "first_frame_decoded";
|
|
30354
|
+
RTC_FIRST_FRAME_STATE2["VIDEO_PLAYING"] = "video_playing";
|
|
30355
|
+
RTC_FIRST_FRAME_STATE2["VIDEO_CANPLAY"] = "video_canplay";
|
|
30356
|
+
RTC_FIRST_FRAME_STATE2["VIDEO_LOADEDDATA"] = "video_loadeddata";
|
|
30357
|
+
return RTC_FIRST_FRAME_STATE2;
|
|
30358
|
+
}(RTC_FIRST_FRAME_STATE || {});
|
|
30255
30359
|
var lib$1 = {};
|
|
30256
30360
|
var parser$1 = {};
|
|
30257
30361
|
var grammar$2 = { exports: {} };
|
|
@@ -30945,29 +31049,29 @@ function getOption(options) {
|
|
|
30945
31049
|
enableOriginSdpLogger: false,
|
|
30946
31050
|
checkStatsErrorDelay: 5e3,
|
|
30947
31051
|
connectionStateChangeTimeout: 5e3,
|
|
30948
|
-
enableNetworkQuality:
|
|
31052
|
+
enableNetworkQuality: true,
|
|
30949
31053
|
hackCreateOfferIssue: false,
|
|
30950
31054
|
progressiveSetDelay: false,
|
|
30951
31055
|
networkQuality: {
|
|
30952
31056
|
networkQos: {
|
|
30953
31057
|
1: {
|
|
30954
|
-
|
|
30955
|
-
|
|
31058
|
+
maxRtt: 250,
|
|
31059
|
+
maxLoss: 0.15
|
|
30956
31060
|
},
|
|
30957
31061
|
2: {
|
|
30958
|
-
|
|
30959
|
-
|
|
30960
|
-
|
|
31062
|
+
maxRtt: 500,
|
|
31063
|
+
maxLoss: 0.3,
|
|
31064
|
+
minRetransmittedRate: 0.2
|
|
30961
31065
|
},
|
|
30962
31066
|
3: {
|
|
30963
|
-
|
|
30964
|
-
|
|
30965
|
-
|
|
31067
|
+
maxRtt: 750,
|
|
31068
|
+
maxLoss: 0.45,
|
|
31069
|
+
minRetransmittedRate: 0.35
|
|
30966
31070
|
},
|
|
30967
31071
|
4: {
|
|
30968
|
-
|
|
30969
|
-
|
|
30970
|
-
|
|
31072
|
+
maxRtt: 1e3,
|
|
31073
|
+
maxLoss: 0.6,
|
|
31074
|
+
minRetransmittedRate: 0.5
|
|
30971
31075
|
}
|
|
30972
31076
|
},
|
|
30973
31077
|
networkQoe: {
|
|
@@ -30988,19 +31092,19 @@ function getOption(options) {
|
|
|
30988
31092
|
}, adaptiveJitterBuffer),
|
|
30989
31093
|
networkStrategy: {
|
|
30990
31094
|
1: {
|
|
30991
|
-
|
|
31095
|
+
jitterBuffer: null
|
|
30992
31096
|
},
|
|
30993
31097
|
2: {
|
|
30994
|
-
|
|
31098
|
+
jitterBuffer: 1.5
|
|
30995
31099
|
},
|
|
30996
31100
|
3: {
|
|
30997
|
-
|
|
31101
|
+
jitterBuffer: 2
|
|
30998
31102
|
},
|
|
30999
31103
|
4: {
|
|
31000
|
-
|
|
31104
|
+
jitterBuffer: 3
|
|
31001
31105
|
},
|
|
31002
31106
|
5: {
|
|
31003
|
-
|
|
31107
|
+
jitterBuffer: 3
|
|
31004
31108
|
}
|
|
31005
31109
|
}
|
|
31006
31110
|
}, opts);
|
|
@@ -31031,14 +31135,36 @@ function _getStats(stats) {
|
|
|
31031
31135
|
};
|
|
31032
31136
|
});
|
|
31033
31137
|
}
|
|
31034
|
-
function getStats(
|
|
31035
|
-
return
|
|
31036
|
-
|
|
31037
|
-
|
|
31038
|
-
|
|
31039
|
-
|
|
31040
|
-
|
|
31041
|
-
|
|
31138
|
+
function getStats(_x) {
|
|
31139
|
+
return _getStats2.apply(this, arguments);
|
|
31140
|
+
}
|
|
31141
|
+
function _getStats2() {
|
|
31142
|
+
_getStats2 = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee2(pc) {
|
|
31143
|
+
return _regeneratorRuntime$a().wrap(function _callee2$(_context2) {
|
|
31144
|
+
while (1)
|
|
31145
|
+
switch (_context2.prev = _context2.next) {
|
|
31146
|
+
case 0:
|
|
31147
|
+
if (pc) {
|
|
31148
|
+
_context2.next = 2;
|
|
31149
|
+
break;
|
|
31150
|
+
}
|
|
31151
|
+
return _context2.abrupt("return", []);
|
|
31152
|
+
case 2:
|
|
31153
|
+
return _context2.abrupt("return", new Promise(function(resolve3) {
|
|
31154
|
+
var _pc$getStats;
|
|
31155
|
+
(_pc$getStats = pc.getStats(null)) === null || _pc$getStats === void 0 ? void 0 : _pc$getStats.then(function(report) {
|
|
31156
|
+
resolve3(_getStats(report));
|
|
31157
|
+
});
|
|
31158
|
+
}).catch(function() {
|
|
31159
|
+
return [];
|
|
31160
|
+
}));
|
|
31161
|
+
case 3:
|
|
31162
|
+
case "end":
|
|
31163
|
+
return _context2.stop();
|
|
31164
|
+
}
|
|
31165
|
+
}, _callee2);
|
|
31166
|
+
}));
|
|
31167
|
+
return _getStats2.apply(this, arguments);
|
|
31042
31168
|
}
|
|
31043
31169
|
function getStatsSnapshoot(stats) {
|
|
31044
31170
|
var _v$inboundRtp, _v$codec, _v$codec2, _v$codec3, _v$inboundRtp4, _v$inboundRtp5, _v$inboundRtp6, _v$inboundRtp7, _v$inboundRtp8, _v$inboundRtp9, _v$inboundRtp10, _v$inboundRtp11, _v$inboundRtp$framesR, _v$inboundRtp12, _v$track, _v$inboundRtp13, _v$inboundRtp14, _v$inboundRtp15, _v$inboundRtp16, _v$inboundRtp17, _v$inboundRtp18, _a$codec, _a$codec2, _a$codec3, _a$inboundRtp, _a$inboundRtp2, _a$inboundRtp3, _a$inboundRtp4, _a$inboundRtp5, _a$inboundRtp6, _a$inboundRtp7, _a$inboundRtp8;
|
|
@@ -31108,22 +31234,23 @@ function getStatsSnapshoot(stats) {
|
|
|
31108
31234
|
}
|
|
31109
31235
|
var QUEUE_SIZE = 5;
|
|
31110
31236
|
var NetworkEvaluate = /* @__PURE__ */ function() {
|
|
31111
|
-
function NetworkEvaluate2(pc
|
|
31237
|
+
function NetworkEvaluate2(pc) {
|
|
31112
31238
|
var _this = this;
|
|
31239
|
+
var interval = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1e3;
|
|
31113
31240
|
_classCallCheck$k(this, NetworkEvaluate2);
|
|
31114
|
-
|
|
31115
|
-
|
|
31116
|
-
|
|
31117
|
-
|
|
31118
|
-
|
|
31119
|
-
|
|
31120
|
-
|
|
31121
|
-
|
|
31122
|
-
|
|
31123
|
-
|
|
31124
|
-
|
|
31125
|
-
|
|
31126
|
-
var snapshoot, _snapshoot$video, nowBytes, nowPkgLost, nowPkg, _this$_lastVideoStats, preBytes, prePkgLost, prePkg, lost, pkgReceived, nowReceived, preReceived, _snapshoot$videoRemot, nowRemoteSent, preRemoteSent;
|
|
31241
|
+
this._pc = null;
|
|
31242
|
+
this._lastVideoStats = null;
|
|
31243
|
+
this._lastRemoteVideoStats = null;
|
|
31244
|
+
this._timer = 0;
|
|
31245
|
+
this._timerInterval = 0;
|
|
31246
|
+
this._speedQueue = [];
|
|
31247
|
+
this._lostRateQueue = [];
|
|
31248
|
+
this._receivedRateQueue = [];
|
|
31249
|
+
this._currentSpeed = -1;
|
|
31250
|
+
this._currentLostRate = -1;
|
|
31251
|
+
this._currentReceivedRate = -1;
|
|
31252
|
+
this._evaluate = /* @__PURE__ */ _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee() {
|
|
31253
|
+
var snapshoot, _snapshoot$video, nowBytes, nowPkgLost, nowPkg, _this$_lastVideoStats, preBytes, prePkgLost, prePkg, lost, pkgReceived, _ref22, _ref2$bytesReceived, nowReceived, _ref32, _ref3$bytesReceived, preReceived, _snapshoot$videoRemot, nowRemoteSent, preRemoteSent;
|
|
31127
31254
|
return _regeneratorRuntime$a().wrap(function _callee$(_context) {
|
|
31128
31255
|
while (1)
|
|
31129
31256
|
switch (_context.prev = _context.next) {
|
|
@@ -31148,8 +31275,8 @@ var NetworkEvaluate = /* @__PURE__ */ function() {
|
|
|
31148
31275
|
}
|
|
31149
31276
|
}
|
|
31150
31277
|
if (_this._lastRemoteVideoStats && snapshoot !== null && snapshoot !== void 0 && snapshoot.videoRemote) {
|
|
31151
|
-
|
|
31152
|
-
|
|
31278
|
+
_ref22 = snapshoot.video || {}, _ref2$bytesReceived = _ref22.bytesReceived, nowReceived = _ref2$bytesReceived === void 0 ? 0 : _ref2$bytesReceived;
|
|
31279
|
+
_ref32 = _this._lastVideoStats || {}, _ref3$bytesReceived = _ref32.bytesReceived, preReceived = _ref3$bytesReceived === void 0 ? 0 : _ref3$bytesReceived;
|
|
31153
31280
|
_snapshoot$videoRemot = snapshoot === null || snapshoot === void 0 ? void 0 : snapshoot.videoRemote, nowRemoteSent = _snapshoot$videoRemot.bytesSent;
|
|
31154
31281
|
preRemoteSent = _this._lastRemoteVideoStats.bytesSent;
|
|
31155
31282
|
if (preRemoteSent && nowRemoteSent && nowRemoteSent - preRemoteSent > 0) {
|
|
@@ -31168,7 +31295,7 @@ var NetworkEvaluate = /* @__PURE__ */ function() {
|
|
|
31168
31295
|
return _context.stop();
|
|
31169
31296
|
}
|
|
31170
31297
|
}, _callee, null, [[0, 10]]);
|
|
31171
|
-
}))
|
|
31298
|
+
}));
|
|
31172
31299
|
this._pc = pc;
|
|
31173
31300
|
this._timerInterval = interval;
|
|
31174
31301
|
this.start(interval);
|
|
@@ -31283,6 +31410,9 @@ function getCapacity() {
|
|
|
31283
31410
|
return pc.createOffer().then(function(offer) {
|
|
31284
31411
|
var _sdpJson$media, _sdpJson$media2, _vMedia$rtp, _aMedia$rtp;
|
|
31285
31412
|
logger$b.log(offer.sdp);
|
|
31413
|
+
if (!offer.sdp) {
|
|
31414
|
+
return Promise.reject("createOffer no sdp");
|
|
31415
|
+
}
|
|
31286
31416
|
var sdpJson = lib$1.parse(offer.sdp);
|
|
31287
31417
|
var vMedia = (_sdpJson$media = sdpJson.media) === null || _sdpJson$media === void 0 ? void 0 : _sdpJson$media.filter(function(x2) {
|
|
31288
31418
|
return x2.type === "video";
|
|
@@ -31470,7 +31600,7 @@ var Nalunit = {
|
|
|
31470
31600
|
var RTCDataView = /* @__PURE__ */ function() {
|
|
31471
31601
|
function RTCDataView2(buffer2) {
|
|
31472
31602
|
_classCallCheck$k(this, RTCDataView2);
|
|
31473
|
-
|
|
31603
|
+
this._position = 0;
|
|
31474
31604
|
this._dataview = new DataView(buffer2);
|
|
31475
31605
|
}
|
|
31476
31606
|
_createClass$k(RTCDataView2, [{
|
|
@@ -31872,7 +32002,7 @@ if (typeof self !== "undefined" && self.constructor.name === "DedicatedWorkerGlo
|
|
|
31872
32002
|
transformer.readable.pipeThrough(transform).pipeTo(event.transformer.writable);
|
|
31873
32003
|
});
|
|
31874
32004
|
}
|
|
31875
|
-
var encodedJs$5 = "IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlPXtnZXROQUxVbml0czpmdW5jdGlvbih0KXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO2lmKHQubGVuZ3RoLXQucG9zaXRpb248NClyZXR1cm5bXTt2YXIgcj10LnBvc2l0aW9uO3JldHVybiAxPT09dC5nZXRJbnQzMihyKXx8MD09PXQuZ2V0SW50MTYocikmJjE9PT10LmdldEludDgocisyKT9lLmdldEFubmV4Yk5hbHModCxuKTplLmdldEF2Y2NOYWxzKHQsbil9LGdldEFubmV4Yk5hbHM6ZnVuY3Rpb24odCxuKXtmb3IodmFyIHI9W10saT1lLmdldEhlYWRlclBvc2l0aW9uQW5uZXhCKHQpLGE9aS5wb3Msbz1hO2E8dC5sZW5ndGgtNDspe3ZhciB1PW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLnNsaWNlKGEsYStpLmhlYWRlckxlbmd0aCkpO2kucG9zPT09dC5wb3NpdGlvbiYmdC5za2lwKGkuaGVhZGVyTGVuZ3RoKSxvPShpPWUuZ2V0SGVhZGVyUG9zaXRpb25Bbm5leEIodCkpLnBvczt2YXIgcz17aGVhZGVyOnUsYm9keTpuZXcgVWludDhBcnJheSh0LmJ1ZmZlci5zbGljZShhK3UuYnl0ZUxlbmd0aCxvKSksdHlwZTotMX07bj9lLmFuYWx5c2VIMjY1TmFsKHMpOmUuYW5hbHlzZU5hbChzKSwocy50eXBlPD05fHxuJiZzLnR5cGU8PTQwKSYmMCE9PXMudHlwZSYmci5wdXNoKHMpLHQuc2tpcChvLXQucG9zaXRpb24pLGE9b31yZXR1cm4gcn0sZ2V0QXZjY05hbHM6ZnVuY3Rpb24odCxuKXtmb3IodmFyIHI9W107dC5wb3NpdGlvbjx0Lmxlbmd0aC00Oyl7dmFyIGk9dC5nZXRJbnQzMih0LnBvc2l0aW9uKTtpZighKHQubGVuZ3RoLXQucG9zaXRpb24+PWkpKWJyZWFrO3ZhciBhPW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLnNsaWNlKHQucG9zaXRpb24sdC5wb3NpdGlvbis0KSk7dC5za2lwKDQpO3ZhciBvPW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLnNsaWNlKHQucG9zaXRpb24sdC5wb3NpdGlvbitpKSk7dC5za2lwKGkpO3ZhciB1PXtoZWFkZXI6YSxib2R5Om8sdHlwZTotMX07bj9lLmFuYWx5c2VIMjY1TmFsKHUpOmUuYW5hbHlzZU5hbCh1KSx1LnR5cGU8PTkmJjAhPT11LnR5cGUmJnIucHVzaCh1KX1yZXR1cm4gcn0sYW5hbHlzZU5hbDpmdW5jdGlvbihlKXt2YXIgdD0zMSZlLmJvZHlbMF07c3dpdGNoKGUudHlwZT10LHQpe2Nhc2UgMTplLm5kcj0hMDticmVhaztjYXNlIDU6ZS5pZHI9ITA7YnJlYWs7Y2FzZSA2OmUuc2VpPSEwO2JyZWFrO2Nhc2UgNzplLnNwcz0hMDticmVhaztjYXNlIDg6ZS5wcHM9ITB9fSxhbmFseXNlSDI2NU5hbDpmdW5jdGlvbihlKXt2YXIgdD0oMTI2JmUuYm9keVswXSk+PjE7c3dpdGNoKGUudHlwZT10LHQpe2Nhc2UgMzk6Y2FzZSA0MDplLnNlaT0hMH19LGdldEhlYWRlclBvc2l0aW9uQW5uZXhCOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLnBvc2l0aW9uLG49MCxyPWUubGVuZ3RoOzMhPT1uJiY0IT09biYmdDxyLTQ7KTA9PT1lLmdldEludDE2KHQpPzE9PT1lLmdldEludDE2KHQrMik/bj00OjE9PT1lLmdldEludDgodCsyKT9uPTM6dCsrOnQrKztyZXR1cm4gdD09PXItNCYmKDA9PT1lLmdldEludDE2KHQpPzE9PT1lLmdldEludDE2KHQrMik/bj00OnQ9cjoodCsrLDA9PT1lLmdldEludDE2KHQpJiYxPT09ZS5nZXRJbnQ4KHQpP249Mzp0PXIpKSx7cG9zOnQsaGVhZGVyTGVuZ3RoOm59fSxpc0gyNjVWaWRlb0ZyYW1lOmZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuKChudWxsPT09KHQ9ZS5nZXRNZXRhZGF0YSl8fHZvaWQgMD09PXR8fG51bGw9PT0obj10LmNhbGwoZSkpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLm1pbWVUeXBlKXx8IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoImgyNjUiKX19O2Z1bmN0aW9uIHQoZSl7cmV0dXJuKHQ9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9KShlKX1mdW5jdGlvbiBuKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyKGkua2V5KSxpKX19ZnVuY3Rpb24gcihlKXt2YXIgdD1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PW4pe3ZhciByPW4uY2FsbChlLHR8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiByKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09dD9TdHJpbmc6TnVtYmVyKShlKX0oZSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6U3RyaW5nKHQpfXZhciBpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt2YXIgbixpLGE7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksbj10aGlzLGE9MCwoaT1yKGk9Il9wb3NpdGlvbiIpKWluIG4/T2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOm5baV09YSx0aGlzLl9kYXRhdmlldz1uZXcgRGF0YVZpZXcodCl9dmFyIHQsaSxhO3JldHVybiB0PWUsYT1be2tleToicmVhZEJ5dGUiLHZhbHVlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtzd2l0Y2godCl7Y2FzZSAxOnI9bj9lLmdldEludDgoZS5wb3NpdGlvbik6ZS5nZXRVaW50OChlLnBvc2l0aW9uKTticmVhaztjYXNlIDI6cj1uP2UuZ2V0SW50MTYoZS5wb3NpdGlvbik6ZS5nZXRVaW50MTYoZS5wb3NpdGlvbik7YnJlYWs7Y2FzZSAzOmlmKG4pdGhyb3cgbmV3IEVycm9yKCJub3Qgc3VwcG9ydGVkIGZvciByZWFkQnl0ZSAzIik7cj1lLmdldFVpbnQ4KGUucG9zaXRpb24pPDwxNixyfD1lLmdldFVpbnQ4KGUucG9zaXRpb24rMSk8PDgscnw9ZS5nZXRVaW50OChlLnBvc2l0aW9uKzIpO2JyZWFrO2Nhc2UgNDpyPW4/ZS5nZXRJbnQzMihlLnBvc2l0aW9uKTplLmdldFVpbnQzMihlLnBvc2l0aW9uKTticmVhaztjYXNlIDg6aWYobil0aHJvdyBuZXcgRXJyb3IoIm5vdCBzdXBwb3J0ZWQgZm9yIHJlYWRCb2R5IDgiKTtyPWUuZ2V0VWludDMyKGUucG9zaXRpb24pPDwzMixyfD1lLmdldFVpbnQzMihlLnBvc2l0aW9uKzQpO2JyZWFrO2RlZmF1bHQ6cj0iIn1yZXR1cm4gZS5wb3NpdGlvbis9dCxyfX1dLChpPVt7a2V5OiJsZW5ndGgiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJ1ZmZlci5ieXRlTGVuZ3RofX0se2tleToiYnVmZmVyIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGF0YXZpZXcuYnVmZmVyfX0se2tleToicG9zaXRpb24iLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wb3NpdGlvbn0sc2V0OmZ1bmN0aW9uKGUpe3RoaXMuX3Bvc2l0aW9uPWV9fSx7a2V5OiJiYWNrIix2YWx1ZTpmdW5jdGlvbihlKXt0aGlzLnBvc2l0aW9uLT1lfX0se2tleToiZ2V0VWludDgiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9kYXRhdmlldy5nZXRVaW50OChlKX19LHtrZXk6ImdldEludDgiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9kYXRhdmlldy5nZXRJbnQ4KGUpfX0se2tleToiZ2V0SW50MTYiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9kYXRhdmlldy5nZXRJbnQxNihlKX19LHtrZXk6ImdldFVpbnQxNiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2RhdGF2aWV3LmdldFVpbnQxNihlKX19LHtrZXk6ImdldFVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2RhdGF2aWV3LmdldFVpbnQzMihlKX19LHtrZXk6ImdldEludDMyIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fZGF0YXZpZXcuZ2V0SW50MzIoZSl9fSx7a2V5OiJza2lwIix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodmFyIG49TWF0aC5mbG9vcih0LzQpLHI9dCU0LGk9MDtpPG47aSsrKWUucmVhZEJ5dGUodGhpcyw0KTtyPjAmJmUucmVhZEJ5dGUodGhpcyxyKX19LHtrZXk6InJlYWRVaW50OCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDEpfX0se2tleToicmVhZFVpbnQxNiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDIpfX0se2tleToicmVhZFVpbnQyNCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDMpfX0se2tleToicmVhZFVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDQpfX0se2tleToicmVhZFVpbnQ2NCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDgpfX0se2tleToicmVhZEludDgiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGUucmVhZEJ5dGUodGhpcywxLCEwKX19LHtrZXk6InJlYWRJbnQxNiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDIsITApfX0se2tleToicmVhZEludDMyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBlLnJlYWRCeXRlKHRoaXMsNCwhMCl9fSx7a2V5OiJ3cml0ZVVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KFtlPj4+MjQmMjU1LGU+Pj4xNiYyNTUsZT4+PjgmMjU1LDI1NSZlXSl9fV0pJiZuKHQucHJvdG90eXBlLGkpLGEmJm4odCxhKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlfSgpO2Z1bmN0aW9uIGEoZSxuKXtmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGk9bltyXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLChhPWkua2V5LG89dm9pZCAwLG89ZnVuY3Rpb24oZSxuKXtpZigib2JqZWN0IiE9PXQoZSl8fG51bGw9PT1lKXJldHVybiBlO3ZhciByPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1yKXt2YXIgaT1yLmNhbGwoZSxufHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT09dChpKSlyZXR1cm4gaTt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PW4/U3RyaW5nOk51bWJlcikoZSl9KGEsInN0cmluZyIpLCJzeW1ib2wiPT09dChvKT9vOlN0cmluZyhvKSksaSl9dmFyIGEsb31mdW5jdGlvbiBvKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihlW3RdPDwyND4+PjApKyhlW3QrMV08PDE2KSsoZVt0KzJdPDw4KSsoZVt0KzNdfHwwKX12YXIgdT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxlKX12YXIgdCxuLHI7cmV0dXJuIHQ9ZSxyPVt7a2V5OiJwYXJzZUFubmV4QiIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ieXRlTGVuZ3RoLTEsbj0wO2Rve2lmKDAhPT1lW3RdKWJyZWFrO24rKyx0LS19d2hpbGUodD4wKTtuPj0zJiYoZT1lLnN1YmFycmF5KDAsdCsxKSk7Zm9yKHZhciByPWUubGVuZ3RoLGk9MixhPTA7bnVsbCE9PWVbaV0mJnZvaWQgMCE9PWVbaV0mJjEhPT1lW2ldOylpKys7aWYoKGE9MisgKytpKT49cilyZXR1cm5bXTtmb3IodmFyIG89W107YTxyOylzd2l0Y2goZVthXSl7Y2FzZSAwOmlmKDAhPT1lW2EtMV0pe2ErPTI7YnJlYWt9aWYoMCE9PWVbYS0yXSl7YSsrO2JyZWFrfWlmKGE8ci0xJiYxIT09ZVthKzFdKXthKys7YnJlYWt9aSE9PWEtMiYmby5wdXNoKGUuc3ViYXJyYXkoaSxhLTIpKTtkb3thKyt9d2hpbGUoMSE9PWVbYV0mJmE8cik7YT0oaT1hKzEpKzI7YnJlYWs7Y2FzZSAxOmlmKDAhPT1lW2EtMV18fDAhPT1lW2EtMl0pe2ErPTM7YnJlYWt9aSE9PWEtMiYmby5wdXNoKGUuc3ViYXJyYXkoaSxhLTIpKSxhPShpPWErMSkrMjticmVhaztkZWZhdWx0OmErPTN9cmV0dXJuIGk8ciYmby5wdXNoKGUuc3ViYXJyYXkoaSkpLG99fSx7a2V5OiJwYXJzZUF2Y0MiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTo0O2lmKCEoZS5sZW5ndGg8NCkpe2Zvcih2YXIgbixyPWUubGVuZ3RoLGk9W10sYT0wO2ErdDxyOylpZihuPW8oZSxhKSwzPT09dCYmKG4+Pj49OCksYSs9dCxuKXtpZihhK24+cilicmVhaztpLnB1c2goZS5zdWJhcnJheShhLGErbikpLGErPW59cmV0dXJuIGl9fX0se2tleToicGFyc2VTRUkiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWUubGVuZ3RoLHI9dD8yOjEsaT0wLGE9MCxvPSIiOzI1NT09PWVbcl07KWkrPTI1NSxyKys7Zm9yKGkrPWVbcisrXTsyNTU9PT1lW3JdOylhKz0yNTUscisrO2lmKGErPWVbcisrXSw1PT09aSYmbj5yKzE2KWZvcih2YXIgdT0wO3U8MTY7dSsrKW8rPWVbcl0udG9TdHJpbmcoMTYpLHIrKztyZXR1cm57cGF5bG9hZDplLnN1YmFycmF5KHIscithKSx0eXBlOmksc2l6ZTphLHV1aWQ6b319fSx7a2V5OiJyZW1vdmVFUEIiLHZhbHVlOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmJ5dGVMZW5ndGgsbj1bXSxyPTE7cjx0LTI7KTA9PT1lW3JdJiYwPT09ZVtyKzFdJiYzPT09ZVtyKzJdPyhuLnB1c2gocisyKSxyKz0yKTpyKys7aWYoIW4ubGVuZ3RoKXJldHVybiBlO3ZhciBpPXQtbi5sZW5ndGgsYT1uZXcgVWludDhBcnJheShpKSxvPTA7Zm9yKHI9MDtyPGk7bysrLHIrKylvPT09blswXSYmKG8rKyxuLnNoaWZ0KCkpLGFbcl09ZVtvXTtyZXR1cm4gYX19XSwobj1udWxsKSYmYSh0LnByb3RvdHlwZSxuKSxyJiZhKHQsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZX0oKTsidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJiJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSI9PT1zZWxmLmNvbnN0cnVjdG9yLm5hbWUmJnNlbGYuYWRkRXZlbnRMaXN0ZW5lcigicnRjdHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7dmFyIG4scj10LnRyYW5zZm9ybWVyLGE9ci5vcHRpb25zLnBvcnQsbz0obj1mdW5jdGlvbihlKXthLnBvc3RNZXNzYWdlKGUpfSxuZXcgVHJhbnNmb3JtU3RyZWFtKHt0cmFuc2Zvcm06ZnVuY3Rpb24odCxyKXt2YXIgYT1lLmlzSDI2NVZpZGVvRnJhbWUodCk7ZS5nZXROQUxVbml0cyhuZXcgaSh0LmRhdGEpLGEpLmZvckVhY2goKGZ1bmN0aW9uKGUpe2lmKGUuc2VpKXt2YXIgdD11LnBhcnNlU0VJKHUucmVtb3ZlRVBCKGUuYm9keSksITEpO3QmJm4oe2RhdGE6dCxzZWk6e2NvZGU6dC50eXBlLGNvbnRlbnQ6dC5wYXlsb2FkfX0pfX0pKSxyLmVucXVldWUodCl9fSkpO3IucmVhZGFibGUucGlwZVRocm91Z2gobykucGlwZVRvKHQudHJhbnNmb3JtZXIud3JpdGFibGUpfSkpfSgpOwo=";
|
|
32005
|
+
var encodedJs$5 = "IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlPXtnZXROQUxVbml0czpmdW5jdGlvbih0KXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO2lmKHQubGVuZ3RoLXQucG9zaXRpb248NClyZXR1cm5bXTt2YXIgcj10LnBvc2l0aW9uO3JldHVybiAxPT09dC5nZXRJbnQzMihyKXx8MD09PXQuZ2V0SW50MTYocikmJjE9PT10LmdldEludDgocisyKT9lLmdldEFubmV4Yk5hbHModCxuKTplLmdldEF2Y2NOYWxzKHQsbil9LGdldEFubmV4Yk5hbHM6ZnVuY3Rpb24odCxuKXtmb3IodmFyIHI9W10saT1lLmdldEhlYWRlclBvc2l0aW9uQW5uZXhCKHQpLGE9aS5wb3Msbz1hO2E8dC5sZW5ndGgtNDspe3ZhciB1PW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLnNsaWNlKGEsYStpLmhlYWRlckxlbmd0aCkpO2kucG9zPT09dC5wb3NpdGlvbiYmdC5za2lwKGkuaGVhZGVyTGVuZ3RoKSxvPShpPWUuZ2V0SGVhZGVyUG9zaXRpb25Bbm5leEIodCkpLnBvczt2YXIgcz17aGVhZGVyOnUsYm9keTpuZXcgVWludDhBcnJheSh0LmJ1ZmZlci5zbGljZShhK3UuYnl0ZUxlbmd0aCxvKSksdHlwZTotMX07bj9lLmFuYWx5c2VIMjY1TmFsKHMpOmUuYW5hbHlzZU5hbChzKSwocy50eXBlPD05fHxuJiZzLnR5cGU8PTQwKSYmMCE9PXMudHlwZSYmci5wdXNoKHMpLHQuc2tpcChvLXQucG9zaXRpb24pLGE9b31yZXR1cm4gcn0sZ2V0QXZjY05hbHM6ZnVuY3Rpb24odCxuKXtmb3IodmFyIHI9W107dC5wb3NpdGlvbjx0Lmxlbmd0aC00Oyl7dmFyIGk9dC5nZXRJbnQzMih0LnBvc2l0aW9uKTtpZighKHQubGVuZ3RoLXQucG9zaXRpb24+PWkpKWJyZWFrO3ZhciBhPW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLnNsaWNlKHQucG9zaXRpb24sdC5wb3NpdGlvbis0KSk7dC5za2lwKDQpO3ZhciBvPW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLnNsaWNlKHQucG9zaXRpb24sdC5wb3NpdGlvbitpKSk7dC5za2lwKGkpO3ZhciB1PXtoZWFkZXI6YSxib2R5Om8sdHlwZTotMX07bj9lLmFuYWx5c2VIMjY1TmFsKHUpOmUuYW5hbHlzZU5hbCh1KSx1LnR5cGU8PTkmJjAhPT11LnR5cGUmJnIucHVzaCh1KX1yZXR1cm4gcn0sYW5hbHlzZU5hbDpmdW5jdGlvbihlKXt2YXIgdD0zMSZlLmJvZHlbMF07c3dpdGNoKGUudHlwZT10LHQpe2Nhc2UgMTplLm5kcj0hMDticmVhaztjYXNlIDU6ZS5pZHI9ITA7YnJlYWs7Y2FzZSA2OmUuc2VpPSEwO2JyZWFrO2Nhc2UgNzplLnNwcz0hMDticmVhaztjYXNlIDg6ZS5wcHM9ITB9fSxhbmFseXNlSDI2NU5hbDpmdW5jdGlvbihlKXt2YXIgdD0oMTI2JmUuYm9keVswXSk+PjE7c3dpdGNoKGUudHlwZT10LHQpe2Nhc2UgMzk6Y2FzZSA0MDplLnNlaT0hMH19LGdldEhlYWRlclBvc2l0aW9uQW5uZXhCOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLnBvc2l0aW9uLG49MCxyPWUubGVuZ3RoOzMhPT1uJiY0IT09biYmdDxyLTQ7KTA9PT1lLmdldEludDE2KHQpPzE9PT1lLmdldEludDE2KHQrMik/bj00OjE9PT1lLmdldEludDgodCsyKT9uPTM6dCsrOnQrKztyZXR1cm4gdD09PXItNCYmKDA9PT1lLmdldEludDE2KHQpPzE9PT1lLmdldEludDE2KHQrMik/bj00OnQ9cjoodCsrLDA9PT1lLmdldEludDE2KHQpJiYxPT09ZS5nZXRJbnQ4KHQpP249Mzp0PXIpKSx7cG9zOnQsaGVhZGVyTGVuZ3RoOm59fSxpc0gyNjVWaWRlb0ZyYW1lOmZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuKChudWxsPT09KHQ9ZS5nZXRNZXRhZGF0YSl8fHZvaWQgMD09PXR8fG51bGw9PT0obj10LmNhbGwoZSkpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLm1pbWVUeXBlKXx8IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoImgyNjUiKX19O2Z1bmN0aW9uIHQoZSl7cmV0dXJuKHQ9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9KShlKX1mdW5jdGlvbiBuKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwoaT1yLmtleSxhPXZvaWQgMCwic3ltYm9sIj09dHlwZW9mKGE9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgcj1uLmNhbGwoZSx0fHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgcilyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PXQ/U3RyaW5nOk51bWJlcikoZSl9KGksInN0cmluZyIpKT9hOlN0cmluZyhhKSkscil9dmFyIGksYX12YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5fcG9zaXRpb249MCx0aGlzLl9kYXRhdmlldz1uZXcgRGF0YVZpZXcodCl9dmFyIHQscixpO3JldHVybiB0PWUsaT1be2tleToicmVhZEJ5dGUiLHZhbHVlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtzd2l0Y2godCl7Y2FzZSAxOnI9bj9lLmdldEludDgoZS5wb3NpdGlvbik6ZS5nZXRVaW50OChlLnBvc2l0aW9uKTticmVhaztjYXNlIDI6cj1uP2UuZ2V0SW50MTYoZS5wb3NpdGlvbik6ZS5nZXRVaW50MTYoZS5wb3NpdGlvbik7YnJlYWs7Y2FzZSAzOmlmKG4pdGhyb3cgbmV3IEVycm9yKCJub3Qgc3VwcG9ydGVkIGZvciByZWFkQnl0ZSAzIik7cj1lLmdldFVpbnQ4KGUucG9zaXRpb24pPDwxNixyfD1lLmdldFVpbnQ4KGUucG9zaXRpb24rMSk8PDgscnw9ZS5nZXRVaW50OChlLnBvc2l0aW9uKzIpO2JyZWFrO2Nhc2UgNDpyPW4/ZS5nZXRJbnQzMihlLnBvc2l0aW9uKTplLmdldFVpbnQzMihlLnBvc2l0aW9uKTticmVhaztjYXNlIDg6aWYobil0aHJvdyBuZXcgRXJyb3IoIm5vdCBzdXBwb3J0ZWQgZm9yIHJlYWRCb2R5IDgiKTtyPWUuZ2V0VWludDMyKGUucG9zaXRpb24pPDwzMixyfD1lLmdldFVpbnQzMihlLnBvc2l0aW9uKzQpO2JyZWFrO2RlZmF1bHQ6cj0iIn1yZXR1cm4gZS5wb3NpdGlvbis9dCxyfX1dLChyPVt7a2V5OiJsZW5ndGgiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJ1ZmZlci5ieXRlTGVuZ3RofX0se2tleToiYnVmZmVyIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGF0YXZpZXcuYnVmZmVyfX0se2tleToicG9zaXRpb24iLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wb3NpdGlvbn0sc2V0OmZ1bmN0aW9uKGUpe3RoaXMuX3Bvc2l0aW9uPWV9fSx7a2V5OiJiYWNrIix2YWx1ZTpmdW5jdGlvbihlKXt0aGlzLnBvc2l0aW9uLT1lfX0se2tleToiZ2V0VWludDgiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9kYXRhdmlldy5nZXRVaW50OChlKX19LHtrZXk6ImdldEludDgiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9kYXRhdmlldy5nZXRJbnQ4KGUpfX0se2tleToiZ2V0SW50MTYiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9kYXRhdmlldy5nZXRJbnQxNihlKX19LHtrZXk6ImdldFVpbnQxNiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2RhdGF2aWV3LmdldFVpbnQxNihlKX19LHtrZXk6ImdldFVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2RhdGF2aWV3LmdldFVpbnQzMihlKX19LHtrZXk6ImdldEludDMyIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fZGF0YXZpZXcuZ2V0SW50MzIoZSl9fSx7a2V5OiJza2lwIix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodmFyIG49TWF0aC5mbG9vcih0LzQpLHI9dCU0LGk9MDtpPG47aSsrKWUucmVhZEJ5dGUodGhpcyw0KTtyPjAmJmUucmVhZEJ5dGUodGhpcyxyKX19LHtrZXk6InJlYWRVaW50OCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDEpfX0se2tleToicmVhZFVpbnQxNiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDIpfX0se2tleToicmVhZFVpbnQyNCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDMpfX0se2tleToicmVhZFVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDQpfX0se2tleToicmVhZFVpbnQ2NCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDgpfX0se2tleToicmVhZEludDgiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGUucmVhZEJ5dGUodGhpcywxLCEwKX19LHtrZXk6InJlYWRJbnQxNiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDIsITApfX0se2tleToicmVhZEludDMyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBlLnJlYWRCeXRlKHRoaXMsNCwhMCl9fSx7a2V5OiJ3cml0ZVVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KFtlPj4+MjQmMjU1LGU+Pj4xNiYyNTUsZT4+PjgmMjU1LDI1NSZlXSl9fV0pJiZuKHQucHJvdG90eXBlLHIpLGkmJm4odCxpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlfSgpO2Z1bmN0aW9uIGkoZSxuKXtmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGk9bltyXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLChhPWkua2V5LG89dm9pZCAwLG89ZnVuY3Rpb24oZSxuKXtpZigib2JqZWN0IiE9PXQoZSl8fG51bGw9PT1lKXJldHVybiBlO3ZhciByPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1yKXt2YXIgaT1yLmNhbGwoZSxufHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT09dChpKSlyZXR1cm4gaTt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PW4/U3RyaW5nOk51bWJlcikoZSl9KGEsInN0cmluZyIpLCJzeW1ib2wiPT09dChvKT9vOlN0cmluZyhvKSksaSl9dmFyIGEsb31mdW5jdGlvbiBhKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihlW3RdPDwyND4+PjApKyhlW3QrMV08PDE2KSsoZVt0KzJdPDw4KSsoZVt0KzNdfHwwKX12YXIgbz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxlKX12YXIgdCxuLHI7cmV0dXJuIHQ9ZSxyPVt7a2V5OiJwYXJzZUFubmV4QiIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ieXRlTGVuZ3RoLTEsbj0wO2Rve2lmKDAhPT1lW3RdKWJyZWFrO24rKyx0LS19d2hpbGUodD4wKTtuPj0zJiYoZT1lLnN1YmFycmF5KDAsdCsxKSk7Zm9yKHZhciByPWUubGVuZ3RoLGk9MixhPTA7bnVsbCE9PWVbaV0mJnZvaWQgMCE9PWVbaV0mJjEhPT1lW2ldOylpKys7aWYoKGE9MisgKytpKT49cilyZXR1cm5bXTtmb3IodmFyIG89W107YTxyOylzd2l0Y2goZVthXSl7Y2FzZSAwOmlmKDAhPT1lW2EtMV0pe2ErPTI7YnJlYWt9aWYoMCE9PWVbYS0yXSl7YSsrO2JyZWFrfWlmKGE8ci0xJiYxIT09ZVthKzFdKXthKys7YnJlYWt9aSE9PWEtMiYmby5wdXNoKGUuc3ViYXJyYXkoaSxhLTIpKTtkb3thKyt9d2hpbGUoMSE9PWVbYV0mJmE8cik7YT0oaT1hKzEpKzI7YnJlYWs7Y2FzZSAxOmlmKDAhPT1lW2EtMV18fDAhPT1lW2EtMl0pe2ErPTM7YnJlYWt9aSE9PWEtMiYmby5wdXNoKGUuc3ViYXJyYXkoaSxhLTIpKSxhPShpPWErMSkrMjticmVhaztkZWZhdWx0OmErPTN9cmV0dXJuIGk8ciYmby5wdXNoKGUuc3ViYXJyYXkoaSkpLG99fSx7a2V5OiJwYXJzZUF2Y0MiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTo0O2lmKCEoZS5sZW5ndGg8NCkpe2Zvcih2YXIgbixyPWUubGVuZ3RoLGk9W10sbz0wO28rdDxyOylpZihuPWEoZSxvKSwzPT09dCYmKG4+Pj49OCksbys9dCxuKXtpZihvK24+cilicmVhaztpLnB1c2goZS5zdWJhcnJheShvLG8rbikpLG8rPW59cmV0dXJuIGl9fX0se2tleToicGFyc2VTRUkiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWUubGVuZ3RoLHI9dD8yOjEsaT0wLGE9MCxvPSIiOzI1NT09PWVbcl07KWkrPTI1NSxyKys7Zm9yKGkrPWVbcisrXTsyNTU9PT1lW3JdOylhKz0yNTUscisrO2lmKGErPWVbcisrXSw1PT09aSYmbj5yKzE2KWZvcih2YXIgdT0wO3U8MTY7dSsrKW8rPWVbcl0udG9TdHJpbmcoMTYpLHIrKztyZXR1cm57cGF5bG9hZDplLnN1YmFycmF5KHIscithKSx0eXBlOmksc2l6ZTphLHV1aWQ6b319fSx7a2V5OiJyZW1vdmVFUEIiLHZhbHVlOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmJ5dGVMZW5ndGgsbj1bXSxyPTE7cjx0LTI7KTA9PT1lW3JdJiYwPT09ZVtyKzFdJiYzPT09ZVtyKzJdPyhuLnB1c2gocisyKSxyKz0yKTpyKys7aWYoIW4ubGVuZ3RoKXJldHVybiBlO3ZhciBpPXQtbi5sZW5ndGgsYT1uZXcgVWludDhBcnJheShpKSxvPTA7Zm9yKHI9MDtyPGk7bysrLHIrKylvPT09blswXSYmKG8rKyxuLnNoaWZ0KCkpLGFbcl09ZVtvXTtyZXR1cm4gYX19XSwobj1udWxsKSYmaSh0LnByb3RvdHlwZSxuKSxyJiZpKHQsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZX0oKTsidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJiJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSI9PT1zZWxmLmNvbnN0cnVjdG9yLm5hbWUmJnNlbGYuYWRkRXZlbnRMaXN0ZW5lcigicnRjdHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7dmFyIG4saT10LnRyYW5zZm9ybWVyLGE9aS5vcHRpb25zLnBvcnQsdT0obj1mdW5jdGlvbihlKXthLnBvc3RNZXNzYWdlKGUpfSxuZXcgVHJhbnNmb3JtU3RyZWFtKHt0cmFuc2Zvcm06ZnVuY3Rpb24odCxpKXt2YXIgYT1lLmlzSDI2NVZpZGVvRnJhbWUodCk7ZS5nZXROQUxVbml0cyhuZXcgcih0LmRhdGEpLGEpLmZvckVhY2goKGZ1bmN0aW9uKGUpe2lmKGUuc2VpKXt2YXIgdD1vLnBhcnNlU0VJKG8ucmVtb3ZlRVBCKGUuYm9keSksITEpO3QmJm4oe2RhdGE6dCxzZWk6e2NvZGU6dC50eXBlLGNvbnRlbnQ6dC5wYXlsb2FkfX0pfX0pKSxpLmVucXVldWUodCl9fSkpO2kucmVhZGFibGUucGlwZVRocm91Z2godSkucGlwZVRvKHQudHJhbnNmb3JtZXIud3JpdGFibGUpfSkpfSgpOwo=";
|
|
31876
32006
|
var blob$5 = typeof window !== "undefined" && window.Blob && new Blob([atob(encodedJs$5)], {
|
|
31877
32007
|
type: "text/javascript;charset=utf-8"
|
|
31878
32008
|
});
|
|
@@ -31886,21 +32016,19 @@ function WorkerWrapper$5() {
|
|
|
31886
32016
|
objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL);
|
|
31887
32017
|
}
|
|
31888
32018
|
}
|
|
31889
|
-
var
|
|
31890
|
-
function
|
|
31891
|
-
_classCallCheck$k(this,
|
|
31892
|
-
|
|
31893
|
-
|
|
31894
|
-
|
|
31895
|
-
_defineProperty$i(this, "_stallList", []);
|
|
31896
|
-
_defineProperty$i(this, "_audioTransceiver", null);
|
|
32019
|
+
var _AudioStallObserver = /* @__PURE__ */ function() {
|
|
32020
|
+
function _AudioStallObserver2() {
|
|
32021
|
+
_classCallCheck$k(this, _AudioStallObserver2);
|
|
32022
|
+
this._isStallInPreReportEnd = false;
|
|
32023
|
+
this._stallList = [];
|
|
32024
|
+
this._audioTransceiver = null;
|
|
31897
32025
|
}
|
|
31898
|
-
_createClass$k(
|
|
32026
|
+
_createClass$k(_AudioStallObserver2, [{
|
|
31899
32027
|
key: "start",
|
|
31900
32028
|
value: function start(transceiver) {
|
|
31901
32029
|
this.stop();
|
|
31902
32030
|
this._audioTransceiver = transceiver;
|
|
31903
|
-
if (
|
|
32031
|
+
if (_AudioStallObserver2.interval >= 100) {
|
|
31904
32032
|
this._startStallCountInterval();
|
|
31905
32033
|
}
|
|
31906
32034
|
}
|
|
@@ -31910,7 +32038,7 @@ var AudioStallObserver = /* @__PURE__ */ function() {
|
|
|
31910
32038
|
this._stallList = [];
|
|
31911
32039
|
if (this._audioStallTimer) {
|
|
31912
32040
|
clearTimeout(this._audioStallTimer);
|
|
31913
|
-
this._audioStallTimer
|
|
32041
|
+
delete this._audioStallTimer;
|
|
31914
32042
|
}
|
|
31915
32043
|
}
|
|
31916
32044
|
}, {
|
|
@@ -31976,12 +32104,12 @@ var AudioStallObserver = /* @__PURE__ */ function() {
|
|
|
31976
32104
|
switch (_context2.prev = _context2.next) {
|
|
31977
32105
|
case 0:
|
|
31978
32106
|
clearTimeout(_this._audioStallTimer);
|
|
31979
|
-
_this._audioStallTimer
|
|
32107
|
+
delete _this._audioStallTimer;
|
|
31980
32108
|
_context2.next = 4;
|
|
31981
32109
|
return _this._audioStallCount();
|
|
31982
32110
|
case 4:
|
|
31983
32111
|
if (!_this._audioStallTimer) {
|
|
31984
|
-
_this._audioStallTimer = setTimeout(loop,
|
|
32112
|
+
_this._audioStallTimer = setTimeout(loop, _AudioStallObserver2.interval);
|
|
31985
32113
|
}
|
|
31986
32114
|
case 5:
|
|
31987
32115
|
case "end":
|
|
@@ -31993,7 +32121,7 @@ var AudioStallObserver = /* @__PURE__ */ function() {
|
|
|
31993
32121
|
return _ref6.apply(this, arguments);
|
|
31994
32122
|
};
|
|
31995
32123
|
}();
|
|
31996
|
-
this._audioStallTimer = setTimeout(loop,
|
|
32124
|
+
this._audioStallTimer = setTimeout(loop, _AudioStallObserver2.interval);
|
|
31997
32125
|
}
|
|
31998
32126
|
}, {
|
|
31999
32127
|
key: "_audioStallCount",
|
|
@@ -32004,7 +32132,7 @@ var AudioStallObserver = /* @__PURE__ */ function() {
|
|
|
32004
32132
|
while (1)
|
|
32005
32133
|
switch (_context3.prev = _context3.next) {
|
|
32006
32134
|
case 0:
|
|
32007
|
-
if (!(this._preSample && Date.now() - this._preSample.ts <
|
|
32135
|
+
if (!(this._preSample && Date.now() - this._preSample.ts < _AudioStallObserver2.interval * 0.5)) {
|
|
32008
32136
|
_context3.next = 2;
|
|
32009
32137
|
break;
|
|
32010
32138
|
}
|
|
@@ -32058,7 +32186,7 @@ var AudioStallObserver = /* @__PURE__ */ function() {
|
|
|
32058
32186
|
_inboundRTP3 = inboundRTP, concealedSamples = _inboundRTP3.concealedSamples, totalSamplesReceived = _inboundRTP3.totalSamplesReceived;
|
|
32059
32187
|
interval_concealed_samples = concealedSamples - this._preSample.concealedSamples;
|
|
32060
32188
|
interval_samples_received = totalSamplesReceived - this._preSample.totalSamplesReceived;
|
|
32061
|
-
is_stall = interval_concealed_samples >= 0 && interval_samples_received >= 0 && interval_concealed_samples >=
|
|
32189
|
+
is_stall = interval_concealed_samples >= 0 && interval_samples_received >= 0 && interval_concealed_samples >= _AudioStallObserver2.ratio * interval_samples_received;
|
|
32062
32190
|
this._stallList.push({
|
|
32063
32191
|
concealed: interval_concealed_samples,
|
|
32064
32192
|
received: interval_samples_received,
|
|
@@ -32086,10 +32214,11 @@ var AudioStallObserver = /* @__PURE__ */ function() {
|
|
|
32086
32214
|
return _audioStallCount;
|
|
32087
32215
|
}()
|
|
32088
32216
|
}]);
|
|
32089
|
-
return
|
|
32217
|
+
return _AudioStallObserver2;
|
|
32090
32218
|
}();
|
|
32091
|
-
|
|
32092
|
-
|
|
32219
|
+
var AudioStallObserver = _AudioStallObserver;
|
|
32220
|
+
AudioStallObserver.interval = 100;
|
|
32221
|
+
AudioStallObserver.ratio = 0.6;
|
|
32093
32222
|
var computeStallInfo = function computeStallInfo2(list, times, isStallInPreEnd) {
|
|
32094
32223
|
var _list$;
|
|
32095
32224
|
var res = {
|
|
@@ -32158,13 +32287,22 @@ var VideoStallObserver = /* @__PURE__ */ function() {
|
|
|
32158
32287
|
function VideoStallObserver2() {
|
|
32159
32288
|
var _this = this;
|
|
32160
32289
|
_classCallCheck$k(this, VideoStallObserver2);
|
|
32161
|
-
|
|
32290
|
+
this._videoInWaiting100ms = false;
|
|
32291
|
+
this._videoInWaiting500ms = false;
|
|
32292
|
+
this._pauseStart = 0;
|
|
32293
|
+
this._pauseDuration = 0;
|
|
32294
|
+
this._stallTimeThreshold = {
|
|
32295
|
+
stall500ms: isSafari$1() || isFirefox$2() ? 550 : 500,
|
|
32296
|
+
stall100ms: 100
|
|
32297
|
+
};
|
|
32298
|
+
this._support100msStall = checkVideoFrameCallback();
|
|
32299
|
+
this._handleVisibilityChange = function() {
|
|
32162
32300
|
if (document.visibilityState === "hidden") {
|
|
32163
32301
|
_this._framePause();
|
|
32164
32302
|
}
|
|
32165
|
-
}
|
|
32166
|
-
|
|
32167
|
-
if (_this._prePts) {
|
|
32303
|
+
};
|
|
32304
|
+
this._framePause = function() {
|
|
32305
|
+
if (_this._prePts && _this._stallList) {
|
|
32168
32306
|
var current = performance.now();
|
|
32169
32307
|
var delta = current - _this._prePts;
|
|
32170
32308
|
_this._stallList.push({
|
|
@@ -32173,23 +32311,7 @@ var VideoStallObserver = /* @__PURE__ */ function() {
|
|
|
32173
32311
|
});
|
|
32174
32312
|
_this._prePts = void 0;
|
|
32175
32313
|
}
|
|
32176
|
-
});
|
|
32177
|
-
this._removeHandler = void 0;
|
|
32178
|
-
this._remotePlayPauseHandler = void 0;
|
|
32179
|
-
this._prePts = void 0;
|
|
32180
|
-
this._stallList = void 0;
|
|
32181
|
-
this._videoInWaiting100ms = false;
|
|
32182
|
-
this._videoInWaiting500ms = false;
|
|
32183
|
-
this._isPaused = void 0;
|
|
32184
|
-
this._pauseStart = 0;
|
|
32185
|
-
this._pauseDuration = 0;
|
|
32186
|
-
this._requestVideoFrameCallbackTimer = void 0;
|
|
32187
|
-
this._player = void 0;
|
|
32188
|
-
this._stallTimeThreshold = {
|
|
32189
|
-
stall500ms: isSafari$1() || isFirefox$2() ? 550 : 500,
|
|
32190
|
-
stall100ms: 100
|
|
32191
32314
|
};
|
|
32192
|
-
this._support100msStall = checkVideoFrameCallback();
|
|
32193
32315
|
}
|
|
32194
32316
|
_createClass$k(VideoStallObserver2, [{
|
|
32195
32317
|
key: "start",
|
|
@@ -32227,7 +32349,7 @@ var VideoStallObserver = /* @__PURE__ */ function() {
|
|
|
32227
32349
|
player.removeEventListener("play", handlePlay);
|
|
32228
32350
|
};
|
|
32229
32351
|
document.addEventListener("visibilitychange", this._handleVisibilityChange);
|
|
32230
|
-
|
|
32352
|
+
window.addEventListener("pagehide", this._framePause);
|
|
32231
32353
|
}
|
|
32232
32354
|
}, {
|
|
32233
32355
|
key: "stop",
|
|
@@ -32246,7 +32368,7 @@ var VideoStallObserver = /* @__PURE__ */ function() {
|
|
|
32246
32368
|
this._videoInWaiting100ms = false;
|
|
32247
32369
|
this._videoInWaiting500ms = false;
|
|
32248
32370
|
document.removeEventListener("visibilitychange", this._handleVisibilityChange);
|
|
32249
|
-
|
|
32371
|
+
window.removeEventListener("pagehide", this._framePause);
|
|
32250
32372
|
}
|
|
32251
32373
|
}, {
|
|
32252
32374
|
key: "destroy",
|
|
@@ -32315,7 +32437,7 @@ var VideoStallObserver = /* @__PURE__ */ function() {
|
|
|
32315
32437
|
}
|
|
32316
32438
|
var _stallInfo$stall = stallInfo.stall, stallDuration500ms = _stallInfo$stall.stallDuration500ms, stallDuration100ms = _stallInfo$stall.stallDuration100ms;
|
|
32317
32439
|
stallInfo.stall.stallRate500ms = Math.min(Number((stallDuration500ms / interval).toFixed(4)), 1);
|
|
32318
|
-
if (this._support100msStall) {
|
|
32440
|
+
if (this._support100msStall && stallDuration100ms) {
|
|
32319
32441
|
stallInfo.stall.stallRate100ms = Math.min(Number((stallDuration100ms / interval).toFixed(4)), 1);
|
|
32320
32442
|
} else {
|
|
32321
32443
|
delete stallInfo.stall.stallRate100ms;
|
|
@@ -32481,7 +32603,7 @@ function diffRecvAudioStats(oldStats, newStats) {
|
|
|
32481
32603
|
receivedSampleRate: diffNumber(oldStats, newStats, "totalSamplesReceived") / statsInterval,
|
|
32482
32604
|
concealedSamples: Math.round(diffNumber(oldStats, newStats, "concealedSamples")),
|
|
32483
32605
|
concealmentEvent: Math.round(diffNumber(oldStats, newStats, "concealmentEvents")),
|
|
32484
|
-
e2eDelay: Math.round(newStats.rtt + jitterBufferDelay)
|
|
32606
|
+
e2eDelay: Math.round((newStats.rtt || 0) + jitterBufferDelay)
|
|
32485
32607
|
};
|
|
32486
32608
|
}
|
|
32487
32609
|
function getRecvVideoStats(_x2) {
|
|
@@ -32552,12 +32674,16 @@ function diffRecvVideoStats(oldStats, newStats) {
|
|
|
32552
32674
|
var nackCount = diffNumber(oldStats, newStats, "nackCount");
|
|
32553
32675
|
var packetsReceived = diffNumber(oldStats, newStats, "packetsReceived");
|
|
32554
32676
|
var jitterBufferDelay = Math.round(diffNumber(oldStats, newStats, "jitterBufferDelay") / diffNumber(oldStats, newStats, "jitterBufferEmittedCount") * 1e3);
|
|
32677
|
+
var newResolution = (newStats.width || 0) * (newStats.height || 0);
|
|
32678
|
+
var oldResolution = (oldStats.width || 0) * (oldStats.height || 0);
|
|
32679
|
+
var abrState = newResolution === 0 || oldResolution === 0 ? "none" : newResolution > oldResolution ? "upgrade" : newResolution < oldResolution ? "degrade" : "none";
|
|
32555
32680
|
return {
|
|
32556
32681
|
statsInterval,
|
|
32682
|
+
abrState,
|
|
32557
32683
|
width: newStats.width || 0,
|
|
32558
32684
|
height: newStats.height || 0,
|
|
32559
32685
|
estimatedPlayoutTimestamp: newStats.estimatedPlayoutTimestamp,
|
|
32560
|
-
videoLossRate: +(packetsLostDiff / (diffNumber(oldStats, newStats, "packetsReceived") + packetsLostDiff)),
|
|
32686
|
+
videoLossRate: +(packetsLostDiff / (diffNumber(oldStats, newStats, "packetsReceived") + packetsLostDiff)).toFixed(2),
|
|
32561
32687
|
receivedKBitrate: +(diffNumber(oldStats, newStats, "bytesReceived") * 8 / statsInterval).toFixed(2),
|
|
32562
32688
|
decoderOutputFrameRate: Math.round(diffNumber(oldStats, newStats, "framesDecoded") * 1e3 / statsInterval),
|
|
32563
32689
|
receivedFrameRate: Math.round(diffNumber(oldStats, newStats, "framesReceived") * 1e3 / statsInterval),
|
|
@@ -32572,7 +32698,7 @@ function diffRecvVideoStats(oldStats, newStats) {
|
|
|
32572
32698
|
firCount: diffNumber(oldStats, newStats, "firCount"),
|
|
32573
32699
|
nackCount,
|
|
32574
32700
|
pliCount: diffNumber(oldStats, newStats, "pliCount"),
|
|
32575
|
-
e2eDelay: Math.round(newStats.rtt + jitterBufferDelay),
|
|
32701
|
+
e2eDelay: Math.round((newStats.rtt || 0) + jitterBufferDelay),
|
|
32576
32702
|
retransmittedRate: +(nackCount / (packetsReceived + packetsLostDiff)).toFixed(2)
|
|
32577
32703
|
};
|
|
32578
32704
|
}
|
|
@@ -32605,11 +32731,11 @@ var Quality = {
|
|
|
32605
32731
|
DOWN: 6
|
|
32606
32732
|
};
|
|
32607
32733
|
var NetworkQuality = /* @__PURE__ */ function() {
|
|
32608
|
-
function NetworkQuality2(
|
|
32734
|
+
function NetworkQuality2(_peer, _networkQualityParams) {
|
|
32609
32735
|
_classCallCheck$k(this, NetworkQuality2);
|
|
32610
|
-
|
|
32611
|
-
this.
|
|
32612
|
-
this.
|
|
32736
|
+
this._peer = _peer;
|
|
32737
|
+
this._networkQualityParams = _networkQualityParams;
|
|
32738
|
+
this._preDownlinkStats = [];
|
|
32613
32739
|
}
|
|
32614
32740
|
_createClass$k(NetworkQuality2, [{
|
|
32615
32741
|
key: "getDownlinkQuality",
|
|
@@ -32664,11 +32790,11 @@ var NetworkQuality = /* @__PURE__ */ function() {
|
|
|
32664
32790
|
} else {
|
|
32665
32791
|
quality = QosLevel.VBAD;
|
|
32666
32792
|
}
|
|
32667
|
-
if (retransmittedRate > qosQualityParams[QosLevel.BAD].minRetransmittedRate) {
|
|
32793
|
+
if (retransmittedRate > (qosQualityParams[QosLevel.BAD].minRetransmittedRate || 0.5)) {
|
|
32668
32794
|
quality = Math.max(quality, QosLevel.BAD);
|
|
32669
|
-
} else if (retransmittedRate > qosQualityParams[QosLevel.POOR].minRetransmittedRate) {
|
|
32795
|
+
} else if (retransmittedRate > (qosQualityParams[QosLevel.POOR].minRetransmittedRate || 0.35)) {
|
|
32670
32796
|
quality = Math.max(quality, QosLevel.POOR);
|
|
32671
|
-
} else if (retransmittedRate > qosQualityParams[QosLevel.GOOD].minRetransmittedRate) {
|
|
32797
|
+
} else if (retransmittedRate > (qosQualityParams[QosLevel.GOOD].minRetransmittedRate || 0.2)) {
|
|
32672
32798
|
quality = Math.max(quality, QosLevel.GOOD);
|
|
32673
32799
|
}
|
|
32674
32800
|
return quality;
|
|
@@ -32709,6 +32835,240 @@ var NetworkQuality = /* @__PURE__ */ function() {
|
|
|
32709
32835
|
}]);
|
|
32710
32836
|
return NetworkQuality2;
|
|
32711
32837
|
}();
|
|
32838
|
+
var FIRST_FRAME_STATE_ORDER = [RTC_FIRST_FRAME_STATE.LOAD_START, RTC_FIRST_FRAME_STATE.OFFER_SDP_READY, RTC_FIRST_FRAME_STATE.ANSWER_SDP_RECV, RTC_FIRST_FRAME_STATE.ANSWER_SDP_READY, RTC_FIRST_FRAME_STATE.ICE_CONNECTED, RTC_FIRST_FRAME_STATE.DTLS_CONNECTED, RTC_FIRST_FRAME_STATE.PEER_CONNECTED, RTC_FIRST_FRAME_STATE.FIRST_PACKET_RECV, RTC_FIRST_FRAME_STATE.FIRST_FRAME_RECV, RTC_FIRST_FRAME_STATE.FIRST_FRAME_DECODED, RTC_FIRST_FRAME_STATE.VIDEO_LOADEDDATA, RTC_FIRST_FRAME_STATE.VIDEO_CANPLAY, RTC_FIRST_FRAME_STATE.VIDEO_PLAYING];
|
|
32839
|
+
var FirstFrameObserver = /* @__PURE__ */ function() {
|
|
32840
|
+
function FirstFrameObserver2(_emitFirstFrameState) {
|
|
32841
|
+
var _this = this;
|
|
32842
|
+
_classCallCheck$k(this, FirstFrameObserver2);
|
|
32843
|
+
this._emitFirstFrameState = _emitFirstFrameState;
|
|
32844
|
+
this._startConnectTs = 0;
|
|
32845
|
+
this._firstVideoFrameInterval = null;
|
|
32846
|
+
this._preState = null;
|
|
32847
|
+
this._state = {};
|
|
32848
|
+
this._pc = null;
|
|
32849
|
+
this._video = null;
|
|
32850
|
+
this._videoTransceiver = null;
|
|
32851
|
+
this._extraInfo = {
|
|
32852
|
+
is_preload: false
|
|
32853
|
+
};
|
|
32854
|
+
this._handleConnectionStateChange = function() {
|
|
32855
|
+
var _this$_pc;
|
|
32856
|
+
if (((_this$_pc = _this._pc) === null || _this$_pc === void 0 ? void 0 : _this$_pc.connectionState) === "connected" && _this._videoTransceiver) {
|
|
32857
|
+
_this.changeFirstFrameState(RTC_FIRST_FRAME_STATE.PEER_CONNECTED);
|
|
32858
|
+
_this._watchForFirstVideoFrameRecv(_this._videoTransceiver);
|
|
32859
|
+
}
|
|
32860
|
+
};
|
|
32861
|
+
this._handleICEConnectionStateChange = function() {
|
|
32862
|
+
var _this$_pc2;
|
|
32863
|
+
if (((_this$_pc2 = _this._pc) === null || _this$_pc2 === void 0 ? void 0 : _this$_pc2.iceConnectionState) === "connected") {
|
|
32864
|
+
_this.changeFirstFrameState(RTC_FIRST_FRAME_STATE.ICE_CONNECTED);
|
|
32865
|
+
}
|
|
32866
|
+
};
|
|
32867
|
+
this._handlePlaying = function() {
|
|
32868
|
+
if (!_this._state[RTC_FIRST_FRAME_STATE.PEER_CONNECTED]) {
|
|
32869
|
+
return;
|
|
32870
|
+
}
|
|
32871
|
+
_this.changeFirstFrameState(RTC_FIRST_FRAME_STATE.VIDEO_PLAYING);
|
|
32872
|
+
_this.reset();
|
|
32873
|
+
};
|
|
32874
|
+
this._handleCanplay = function() {
|
|
32875
|
+
if (!_this._state[RTC_FIRST_FRAME_STATE.PEER_CONNECTED]) {
|
|
32876
|
+
return;
|
|
32877
|
+
}
|
|
32878
|
+
_this.changeFirstFrameState(RTC_FIRST_FRAME_STATE.VIDEO_CANPLAY);
|
|
32879
|
+
};
|
|
32880
|
+
this._handleLoadeddata = function() {
|
|
32881
|
+
if (!_this._state[RTC_FIRST_FRAME_STATE.PEER_CONNECTED]) {
|
|
32882
|
+
return;
|
|
32883
|
+
}
|
|
32884
|
+
_this.changeFirstFrameState(RTC_FIRST_FRAME_STATE.VIDEO_LOADEDDATA);
|
|
32885
|
+
};
|
|
32886
|
+
this._handleError = function() {
|
|
32887
|
+
_this.reset();
|
|
32888
|
+
};
|
|
32889
|
+
}
|
|
32890
|
+
_createClass$k(FirstFrameObserver2, [{
|
|
32891
|
+
key: "start",
|
|
32892
|
+
value: function start() {
|
|
32893
|
+
this.reset();
|
|
32894
|
+
this._startConnectTs = Date.now();
|
|
32895
|
+
this.changeFirstFrameState(RTC_FIRST_FRAME_STATE.LOAD_START);
|
|
32896
|
+
}
|
|
32897
|
+
}, {
|
|
32898
|
+
key: "changeFirstFrameState",
|
|
32899
|
+
value: function changeFirstFrameState(state) {
|
|
32900
|
+
var _ref6, _this2 = this;
|
|
32901
|
+
var preIdx = (_ref6 = this._preState && FIRST_FRAME_STATE_ORDER.indexOf(this._preState)) !== null && _ref6 !== void 0 ? _ref6 : -1;
|
|
32902
|
+
var curIdx = FIRST_FRAME_STATE_ORDER.indexOf(state);
|
|
32903
|
+
var elapsed = Date.now() - this._startConnectTs;
|
|
32904
|
+
if (curIdx > preIdx) {
|
|
32905
|
+
FIRST_FRAME_STATE_ORDER.slice(preIdx + 1, curIdx + 1).forEach(function(s2) {
|
|
32906
|
+
_this2._state[s2] = elapsed;
|
|
32907
|
+
});
|
|
32908
|
+
this._preState = state;
|
|
32909
|
+
}
|
|
32910
|
+
}
|
|
32911
|
+
}, {
|
|
32912
|
+
key: "setIsPreload",
|
|
32913
|
+
value: function setIsPreload(isPreload) {
|
|
32914
|
+
this._extraInfo.is_preload = isPreload;
|
|
32915
|
+
}
|
|
32916
|
+
}, {
|
|
32917
|
+
key: "setFailureReason",
|
|
32918
|
+
value: function setFailureReason(reason) {
|
|
32919
|
+
this._extraInfo.failure_reason = reason;
|
|
32920
|
+
}
|
|
32921
|
+
}, {
|
|
32922
|
+
key: "bindEvents",
|
|
32923
|
+
value: function bindEvents(pc, videoTransceiver, video2) {
|
|
32924
|
+
var _this3 = this;
|
|
32925
|
+
this._pc = pc;
|
|
32926
|
+
this._video = video2;
|
|
32927
|
+
this._videoTransceiver = videoTransceiver;
|
|
32928
|
+
pc.addEventListener("connectionstatechange", this._handleConnectionStateChange);
|
|
32929
|
+
pc.addEventListener("iceconnectionstatechange", this._handleICEConnectionStateChange);
|
|
32930
|
+
var _ref22 = (videoTransceiver === null || videoTransceiver === void 0 ? void 0 : videoTransceiver.receiver) || {}, transport = _ref22.transport;
|
|
32931
|
+
if (transport) {
|
|
32932
|
+
transport.onstatechange = function() {
|
|
32933
|
+
transport.state === "connected" && _this3.changeFirstFrameState(RTC_FIRST_FRAME_STATE.DTLS_CONNECTED);
|
|
32934
|
+
};
|
|
32935
|
+
}
|
|
32936
|
+
video2 === null || video2 === void 0 ? void 0 : video2.addEventListener("playing", this._handlePlaying);
|
|
32937
|
+
video2 === null || video2 === void 0 ? void 0 : video2.addEventListener("canplay", this._handleCanplay);
|
|
32938
|
+
video2 === null || video2 === void 0 ? void 0 : video2.addEventListener("loadeddata", this._handleLoadeddata);
|
|
32939
|
+
video2 === null || video2 === void 0 ? void 0 : video2.addEventListener("error", this._handleError);
|
|
32940
|
+
}
|
|
32941
|
+
}, {
|
|
32942
|
+
key: "_watchForFirstVideoFrameRecv",
|
|
32943
|
+
value: function _watchForFirstVideoFrameRecv(videoTransceiver) {
|
|
32944
|
+
var _this4 = this;
|
|
32945
|
+
var hasPacketsReceived = false;
|
|
32946
|
+
var hasFrameReceived = false;
|
|
32947
|
+
var hasFrameDecoded = false;
|
|
32948
|
+
this._cancelWatchForFirstVideoFrameRecv();
|
|
32949
|
+
this._firstVideoFrameInterval = window.setInterval(/* @__PURE__ */ _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee() {
|
|
32950
|
+
var _inboundRtpStats, _inboundRtpStats2, _inboundRtpStats3;
|
|
32951
|
+
var receiver, reports, inboundRtpStats;
|
|
32952
|
+
return _regeneratorRuntime$a().wrap(function _callee$(_context) {
|
|
32953
|
+
while (1)
|
|
32954
|
+
switch (_context.prev = _context.next) {
|
|
32955
|
+
case 0:
|
|
32956
|
+
receiver = videoTransceiver.receiver;
|
|
32957
|
+
_context.next = 3;
|
|
32958
|
+
return receiver.getStats();
|
|
32959
|
+
case 3:
|
|
32960
|
+
reports = _context.sent;
|
|
32961
|
+
reports.forEach(function(report) {
|
|
32962
|
+
if (report.type === "inbound-rtp") {
|
|
32963
|
+
inboundRtpStats = report;
|
|
32964
|
+
}
|
|
32965
|
+
});
|
|
32966
|
+
if (!hasPacketsReceived && (_inboundRtpStats = inboundRtpStats) !== null && _inboundRtpStats !== void 0 && _inboundRtpStats.packetsReceived && inboundRtpStats.packetsReceived > 0) {
|
|
32967
|
+
hasPacketsReceived = true;
|
|
32968
|
+
_this4.changeFirstFrameState(RTC_FIRST_FRAME_STATE.FIRST_PACKET_RECV);
|
|
32969
|
+
}
|
|
32970
|
+
if (!hasFrameReceived && (_inboundRtpStats2 = inboundRtpStats) !== null && _inboundRtpStats2 !== void 0 && _inboundRtpStats2.framesReceived && inboundRtpStats.framesReceived > 0) {
|
|
32971
|
+
hasFrameReceived = true;
|
|
32972
|
+
_this4.changeFirstFrameState(RTC_FIRST_FRAME_STATE.FIRST_FRAME_RECV);
|
|
32973
|
+
}
|
|
32974
|
+
if (!hasFrameDecoded && (_inboundRtpStats3 = inboundRtpStats) !== null && _inboundRtpStats3 !== void 0 && _inboundRtpStats3.framesDecoded && inboundRtpStats.framesDecoded > 0) {
|
|
32975
|
+
hasFrameDecoded = true;
|
|
32976
|
+
_this4.changeFirstFrameState(RTC_FIRST_FRAME_STATE.FIRST_FRAME_DECODED);
|
|
32977
|
+
_this4._cancelWatchForFirstVideoFrameRecv();
|
|
32978
|
+
}
|
|
32979
|
+
case 8:
|
|
32980
|
+
case "end":
|
|
32981
|
+
return _context.stop();
|
|
32982
|
+
}
|
|
32983
|
+
}, _callee);
|
|
32984
|
+
})), 200);
|
|
32985
|
+
}
|
|
32986
|
+
}, {
|
|
32987
|
+
key: "_cancelWatchForFirstVideoFrameRecv",
|
|
32988
|
+
value: function _cancelWatchForFirstVideoFrameRecv() {
|
|
32989
|
+
if (this._firstVideoFrameInterval) {
|
|
32990
|
+
window.clearInterval(this._firstVideoFrameInterval);
|
|
32991
|
+
this._firstVideoFrameInterval = null;
|
|
32992
|
+
}
|
|
32993
|
+
}
|
|
32994
|
+
}, {
|
|
32995
|
+
key: "reset",
|
|
32996
|
+
value: function reset() {
|
|
32997
|
+
var _this5 = this, _this$_video, _this$_video2, _this$_video3, _this$_video4, _this$_pc3, _this$_pc4;
|
|
32998
|
+
if (Object.keys(this._state).length > 0) {
|
|
32999
|
+
var state = _objectSpread2$b({}, this._state);
|
|
33000
|
+
var extraInfo = _objectSpread2$b({}, this._extraInfo);
|
|
33001
|
+
getTransportInfo(this._videoTransceiver, extraInfo).then(function() {
|
|
33002
|
+
_this5._emitFirstFrameState(state, extraInfo);
|
|
33003
|
+
});
|
|
33004
|
+
}
|
|
33005
|
+
this._preState = null;
|
|
33006
|
+
this._extraInfo = {
|
|
33007
|
+
is_preload: false
|
|
33008
|
+
};
|
|
33009
|
+
this._state = {};
|
|
33010
|
+
(_this$_video = this._video) === null || _this$_video === void 0 ? void 0 : _this$_video.removeEventListener("playing", this._handlePlaying);
|
|
33011
|
+
(_this$_video2 = this._video) === null || _this$_video2 === void 0 ? void 0 : _this$_video2.removeEventListener("canplay", this._handleCanplay);
|
|
33012
|
+
(_this$_video3 = this._video) === null || _this$_video3 === void 0 ? void 0 : _this$_video3.removeEventListener("loadeddata", this._handleLoadeddata);
|
|
33013
|
+
(_this$_video4 = this._video) === null || _this$_video4 === void 0 ? void 0 : _this$_video4.removeEventListener("error", this._handleError);
|
|
33014
|
+
(_this$_pc3 = this._pc) === null || _this$_pc3 === void 0 ? void 0 : _this$_pc3.removeEventListener("connectionstatechange", this._handleConnectionStateChange);
|
|
33015
|
+
(_this$_pc4 = this._pc) === null || _this$_pc4 === void 0 ? void 0 : _this$_pc4.removeEventListener("iceconnectionstatechange", this._handleICEConnectionStateChange);
|
|
33016
|
+
this._cancelWatchForFirstVideoFrameRecv();
|
|
33017
|
+
this._pc = null;
|
|
33018
|
+
this._video = null;
|
|
33019
|
+
this._videoTransceiver = null;
|
|
33020
|
+
}
|
|
33021
|
+
}]);
|
|
33022
|
+
return FirstFrameObserver2;
|
|
33023
|
+
}();
|
|
33024
|
+
var getTransportInfo = /* @__PURE__ */ function() {
|
|
33025
|
+
var _ref42 = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee2(videoTransceiver, extraInfo) {
|
|
33026
|
+
var _videoTransceiver$rec;
|
|
33027
|
+
var reports, candidatePairStats, localCandidateStats, remoteCandidateStats;
|
|
33028
|
+
return _regeneratorRuntime$a().wrap(function _callee2$(_context2) {
|
|
33029
|
+
while (1)
|
|
33030
|
+
switch (_context2.prev = _context2.next) {
|
|
33031
|
+
case 0:
|
|
33032
|
+
_context2.next = 2;
|
|
33033
|
+
return videoTransceiver === null || videoTransceiver === void 0 ? void 0 : (_videoTransceiver$rec = videoTransceiver.receiver) === null || _videoTransceiver$rec === void 0 ? void 0 : _videoTransceiver$rec.getStats().catch(function() {
|
|
33034
|
+
});
|
|
33035
|
+
case 2:
|
|
33036
|
+
reports = _context2.sent;
|
|
33037
|
+
reports === null || reports === void 0 ? void 0 : reports.forEach(function(report) {
|
|
33038
|
+
if (report.type === "candidate-pair") {
|
|
33039
|
+
candidatePairStats = report;
|
|
33040
|
+
localCandidateStats = reports.get(report.localCandidateId);
|
|
33041
|
+
remoteCandidateStats = reports.get(report.remoteCandidateId);
|
|
33042
|
+
}
|
|
33043
|
+
});
|
|
33044
|
+
if (remoteCandidateStats) {
|
|
33045
|
+
extraInfo.remote_ip = remoteCandidateStats.ip || remoteCandidateStats.address;
|
|
33046
|
+
extraInfo.remote_port = remoteCandidateStats.port;
|
|
33047
|
+
extraInfo.remote_candidate_type = remoteCandidateStats.candidateType;
|
|
33048
|
+
extraInfo.protocol = remoteCandidateStats.protocol;
|
|
33049
|
+
}
|
|
33050
|
+
if (localCandidateStats) {
|
|
33051
|
+
extraInfo.local_ip = localCandidateStats.ip || localCandidateStats.address;
|
|
33052
|
+
extraInfo.local_port = localCandidateStats.port;
|
|
33053
|
+
extraInfo.local_candidate_type = localCandidateStats.candidateType;
|
|
33054
|
+
}
|
|
33055
|
+
if (candidatePairStats) {
|
|
33056
|
+
extraInfo.rtt = candidatePairStats.currentRoundTripTime;
|
|
33057
|
+
extraInfo.stun_requests_sent = candidatePairStats.requestsSent;
|
|
33058
|
+
extraInfo.stun_requests_received = candidatePairStats.requestsReceived;
|
|
33059
|
+
extraInfo.stun_responses_sent = candidatePairStats.responsesSent;
|
|
33060
|
+
extraInfo.stun_responses_received = candidatePairStats.responsesReceived;
|
|
33061
|
+
}
|
|
33062
|
+
case 7:
|
|
33063
|
+
case "end":
|
|
33064
|
+
return _context2.stop();
|
|
33065
|
+
}
|
|
33066
|
+
}, _callee2);
|
|
33067
|
+
}));
|
|
33068
|
+
return function getTransportInfo2(_x, _x2) {
|
|
33069
|
+
return _ref42.apply(this, arguments);
|
|
33070
|
+
};
|
|
33071
|
+
}();
|
|
32712
33072
|
function changeNumberInRange(source, min2, max2, delta) {
|
|
32713
33073
|
var target = source + delta;
|
|
32714
33074
|
if (target > max2) {
|
|
@@ -32719,85 +33079,191 @@ function changeNumberInRange(source, min2, max2, delta) {
|
|
|
32719
33079
|
function isHarmonyOS() {
|
|
32720
33080
|
return /(HarmonyOS|OpenHarmony|ArkWeb)/i.test(navigator.userAgent);
|
|
32721
33081
|
}
|
|
32722
|
-
|
|
32723
|
-
var
|
|
32724
|
-
|
|
32725
|
-
|
|
32726
|
-
|
|
32727
|
-
|
|
32728
|
-
|
|
32729
|
-
|
|
32730
|
-
|
|
32731
|
-
|
|
32732
|
-
|
|
32733
|
-
|
|
32734
|
-
|
|
32735
|
-
|
|
32736
|
-
|
|
32737
|
-
|
|
32738
|
-
|
|
32739
|
-
|
|
32740
|
-
|
|
32741
|
-
|
|
32742
|
-
|
|
32743
|
-
|
|
32744
|
-
|
|
32745
|
-
|
|
32746
|
-
|
|
32747
|
-
|
|
32748
|
-
|
|
32749
|
-
|
|
32750
|
-
|
|
32751
|
-
|
|
32752
|
-
|
|
32753
|
-
|
|
32754
|
-
|
|
32755
|
-
|
|
32756
|
-
|
|
32757
|
-
|
|
32758
|
-
|
|
32759
|
-
|
|
32760
|
-
|
|
32761
|
-
|
|
32762
|
-
|
|
32763
|
-
|
|
32764
|
-
|
|
32765
|
-
|
|
32766
|
-
|
|
32767
|
-
|
|
32768
|
-
|
|
32769
|
-
|
|
32770
|
-
|
|
32771
|
-
|
|
32772
|
-
|
|
32773
|
-
|
|
32774
|
-
|
|
32775
|
-
|
|
32776
|
-
|
|
32777
|
-
|
|
32778
|
-
|
|
32779
|
-
|
|
32780
|
-
|
|
32781
|
-
|
|
32782
|
-
|
|
32783
|
-
|
|
32784
|
-
|
|
32785
|
-
|
|
32786
|
-
|
|
32787
|
-
|
|
32788
|
-
|
|
32789
|
-
|
|
32790
|
-
|
|
32791
|
-
|
|
32792
|
-
|
|
32793
|
-
|
|
33082
|
+
function compareURL(url1, url2) {
|
|
33083
|
+
var queryKeys = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [];
|
|
33084
|
+
if (typeof url1 !== "string" || typeof url2 !== "string") {
|
|
33085
|
+
return false;
|
|
33086
|
+
}
|
|
33087
|
+
if (!url1.includes("://")) {
|
|
33088
|
+
url1 = window.location.protocol + "//" + url1;
|
|
33089
|
+
}
|
|
33090
|
+
if (!url2.includes("://")) {
|
|
33091
|
+
url2 = window.location.protocol + "//" + url2;
|
|
33092
|
+
}
|
|
33093
|
+
var url1Obj;
|
|
33094
|
+
var url2Obj;
|
|
33095
|
+
try {
|
|
33096
|
+
url1Obj = new URL(url1);
|
|
33097
|
+
url2Obj = new URL(url2);
|
|
33098
|
+
} catch (e4) {
|
|
33099
|
+
return false;
|
|
33100
|
+
}
|
|
33101
|
+
if (url1Obj.host + url1Obj.pathname !== url2Obj.host + url2Obj.pathname) {
|
|
33102
|
+
return false;
|
|
33103
|
+
}
|
|
33104
|
+
var _iterator = _createForOfIteratorHelper$4(queryKeys), _step;
|
|
33105
|
+
try {
|
|
33106
|
+
for (_iterator.s(); !(_step = _iterator.n()).done; ) {
|
|
33107
|
+
var key2 = _step.value;
|
|
33108
|
+
if (url1Obj.searchParams.get(key2) !== url2Obj.searchParams.get(key2)) {
|
|
33109
|
+
return false;
|
|
33110
|
+
}
|
|
33111
|
+
}
|
|
33112
|
+
} catch (err) {
|
|
33113
|
+
_iterator.e(err);
|
|
33114
|
+
} finally {
|
|
33115
|
+
_iterator.f();
|
|
33116
|
+
}
|
|
33117
|
+
return true;
|
|
33118
|
+
}
|
|
33119
|
+
function addUrlParams(url2, params) {
|
|
33120
|
+
if (!params || Object.keys(params).length === 0) {
|
|
33121
|
+
return url2;
|
|
33122
|
+
}
|
|
33123
|
+
var urlParams = url2.includes("?") ? new URLSearchParams(url2.split("?")[1]) : new URLSearchParams();
|
|
33124
|
+
Object.keys(params).forEach(function(key2) {
|
|
33125
|
+
urlParams.set(key2, params[key2]);
|
|
33126
|
+
});
|
|
33127
|
+
return url2.split("?")[0] + "?" + urlParams.toString();
|
|
33128
|
+
}
|
|
33129
|
+
function isHeyTapBrowser() {
|
|
33130
|
+
return /(HeyTapBrowser)/i.test(navigator.userAgent);
|
|
33131
|
+
}
|
|
33132
|
+
function isVivoBrowser() {
|
|
33133
|
+
return /(VivoBrowser)/i.test(navigator.userAgent);
|
|
33134
|
+
}
|
|
33135
|
+
var VideoFrameRecvCallback = /* @__PURE__ */ function() {
|
|
33136
|
+
function VideoFrameRecvCallback2() {
|
|
33137
|
+
var _this = this;
|
|
33138
|
+
_classCallCheck$k(this, VideoFrameRecvCallback2);
|
|
33139
|
+
this._onVideoRefresh = function(_, data2) {
|
|
33140
|
+
var _this$_domElement;
|
|
33141
|
+
_this._recentVideoInfo = data2;
|
|
33142
|
+
_this._requestVideoFrameCallbackTimer = (_this$_domElement = _this._domElement) === null || _this$_domElement === void 0 ? void 0 : _this$_domElement.requestVideoFrameCallback(_this._onVideoRefresh);
|
|
33143
|
+
};
|
|
33144
|
+
}
|
|
33145
|
+
_createClass$k(VideoFrameRecvCallback2, [{
|
|
33146
|
+
key: "start",
|
|
33147
|
+
value: function start(domElement) {
|
|
33148
|
+
var _this2 = this;
|
|
33149
|
+
this._domElement = domElement;
|
|
33150
|
+
if (typeof HTMLVideoElement.prototype.requestVideoFrameCallback === "function") {
|
|
33151
|
+
if (domElement) {
|
|
33152
|
+
this._requestVideoFrameCallbackTimer = domElement.requestVideoFrameCallback(this._onVideoRefresh.bind(this));
|
|
33153
|
+
this._removeHandler = function() {
|
|
33154
|
+
_this2._requestVideoFrameCallbackTimer && (domElement === null || domElement === void 0 ? void 0 : domElement.cancelVideoFrameCallback(_this2._requestVideoFrameCallbackTimer));
|
|
33155
|
+
};
|
|
33156
|
+
}
|
|
33157
|
+
}
|
|
33158
|
+
}
|
|
33159
|
+
}, {
|
|
33160
|
+
key: "stop",
|
|
33161
|
+
value: function stop() {
|
|
33162
|
+
var _this$_removeHandler;
|
|
33163
|
+
delete this._recentVideoInfo;
|
|
33164
|
+
delete this._domElement;
|
|
33165
|
+
(_this$_removeHandler = this._removeHandler) === null || _this$_removeHandler === void 0 ? void 0 : _this$_removeHandler.call(this);
|
|
33166
|
+
delete this._removeHandler;
|
|
33167
|
+
}
|
|
33168
|
+
}, {
|
|
33169
|
+
key: "getRecentRenderInfo4Report",
|
|
33170
|
+
value: function getRecentRenderInfo4Report() {
|
|
33171
|
+
var _this3 = this;
|
|
33172
|
+
var obj = {};
|
|
33173
|
+
if (this._recentVideoInfo) {
|
|
33174
|
+
Object.keys(this._recentVideoInfo).forEach(function(k2) {
|
|
33175
|
+
var _this3$_recentVideoIn;
|
|
33176
|
+
var key2 = k2.replace(/[a-z]{1}[A-Z]{1}/g, function(e4) {
|
|
33177
|
+
return "".concat(e4[0], "_").concat(e4[1].toLowerCase());
|
|
33178
|
+
});
|
|
33179
|
+
obj["video_".concat(key2)] = (_this3$_recentVideoIn = _this3._recentVideoInfo) === null || _this3$_recentVideoIn === void 0 ? void 0 : _this3$_recentVideoIn[k2];
|
|
33180
|
+
});
|
|
33181
|
+
}
|
|
33182
|
+
return obj;
|
|
33183
|
+
}
|
|
33184
|
+
}]);
|
|
33185
|
+
return VideoFrameRecvCallback2;
|
|
33186
|
+
}();
|
|
33187
|
+
var logger$b = new Logger$a("rts");
|
|
33188
|
+
var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
33189
|
+
_inherits$f(Rts2, _EventEmitter);
|
|
33190
|
+
var _super = _createSuper$f(Rts2);
|
|
33191
|
+
function Rts2(opts) {
|
|
33192
|
+
var _this;
|
|
33193
|
+
_classCallCheck$k(this, Rts2);
|
|
33194
|
+
_this = _super.call(this);
|
|
33195
|
+
_this._url = "";
|
|
33196
|
+
_this._pc = null;
|
|
33197
|
+
_this._audioTransceicer = null;
|
|
33198
|
+
_this._videoTransceicer = null;
|
|
33199
|
+
_this._mediaStream = null;
|
|
33200
|
+
_this._lastMediaStream = null;
|
|
33201
|
+
_this._loader = null;
|
|
33202
|
+
_this._networkEvaluate = null;
|
|
33203
|
+
_this._retry = 0;
|
|
33204
|
+
_this._player = null;
|
|
33205
|
+
_this._waitingTimer = 0;
|
|
33206
|
+
_this._rctConnectStartTs = 0;
|
|
33207
|
+
_this._isReplacing = false;
|
|
33208
|
+
_this._firstFrameObserver = new FirstFrameObserver(_this._emitFirstFrameState.bind(_assertThisInitialized$f(_this)));
|
|
33209
|
+
_this._audio = null;
|
|
33210
|
+
_this._video = null;
|
|
33211
|
+
_this._preAudioStats = null;
|
|
33212
|
+
_this._preVideoStats = null;
|
|
33213
|
+
_this._rtcReportTimer = null;
|
|
33214
|
+
_this._networkQualityResult = [];
|
|
33215
|
+
_this._videoJitterBufferDelay = 0;
|
|
33216
|
+
_this._checkStatsError = /* @__PURE__ */ _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee2() {
|
|
33217
|
+
return _regeneratorRuntime$a().wrap(function _callee2$(_context2) {
|
|
33218
|
+
while (1)
|
|
33219
|
+
switch (_context2.prev = _context2.next) {
|
|
33220
|
+
case 0:
|
|
33221
|
+
if (_this._checkStatsErrorTimer) {
|
|
33222
|
+
clearTimeout(_this._checkStatsErrorTimer);
|
|
33223
|
+
}
|
|
33224
|
+
_this._checkStatsErrorTimer = setTimeout(/* @__PURE__ */ _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee() {
|
|
33225
|
+
var stats, _stats$video, framesDecoded, bytesReceived;
|
|
33226
|
+
return _regeneratorRuntime$a().wrap(function _callee$(_context) {
|
|
33227
|
+
while (1)
|
|
33228
|
+
switch (_context.prev = _context.next) {
|
|
33229
|
+
case 0:
|
|
33230
|
+
_context.next = 2;
|
|
33231
|
+
return _this.getStatsSnapshoot();
|
|
33232
|
+
case 2:
|
|
33233
|
+
stats = _context.sent;
|
|
33234
|
+
if (stats.video) {
|
|
33235
|
+
_stats$video = stats.video, framesDecoded = _stats$video.framesDecoded, bytesReceived = _stats$video.bytesReceived;
|
|
33236
|
+
if (!bytesReceived) {
|
|
33237
|
+
_this._emitError(StreamingError$2.create(ERR$2.MEDIA, ERR$2.SUB_TYPES.MEDIA_ERR_DECODE, {
|
|
33238
|
+
message: "rts receive empty"
|
|
33239
|
+
}));
|
|
33240
|
+
} else if (!framesDecoded) {
|
|
33241
|
+
_this._emitError(StreamingError$2.create(ERR$2.MEDIA, ERR$2.SUB_TYPES.MEDIA_ERR_DECODE, {
|
|
33242
|
+
message: "rts decode error"
|
|
33243
|
+
}));
|
|
33244
|
+
}
|
|
33245
|
+
}
|
|
33246
|
+
case 4:
|
|
33247
|
+
case "end":
|
|
33248
|
+
return _context.stop();
|
|
33249
|
+
}
|
|
33250
|
+
}, _callee);
|
|
33251
|
+
})), _this._opts.checkStatsErrorDelay);
|
|
33252
|
+
case 2:
|
|
33253
|
+
case "end":
|
|
33254
|
+
return _context2.stop();
|
|
33255
|
+
}
|
|
32794
33256
|
}, _callee2);
|
|
32795
|
-
}))
|
|
32796
|
-
|
|
33257
|
+
}));
|
|
33258
|
+
_this._onTrack = function(e4) {
|
|
32797
33259
|
logger$b.log("addTrack: ", e4.track, e4.streams);
|
|
32798
|
-
|
|
32799
|
-
|
|
32800
|
-
|
|
33260
|
+
if (e4.track.kind === "audio") {
|
|
33261
|
+
_this._audio = e4.track;
|
|
33262
|
+
} else {
|
|
33263
|
+
_this._video = e4.track;
|
|
33264
|
+
}
|
|
33265
|
+
};
|
|
33266
|
+
_this._mockWaitingByTimeupdate = function() {
|
|
32801
33267
|
var _this$_pc, _this$_pc2;
|
|
32802
33268
|
if (!(((_this$_pc = _this._pc) === null || _this$_pc === void 0 ? void 0 : _this$_pc.connectionState) === "connected" || ((_this$_pc2 = _this._pc) === null || _this$_pc2 === void 0 ? void 0 : _this$_pc2.iceConnectionState) === "connected"))
|
|
32803
33269
|
return;
|
|
@@ -32808,8 +33274,8 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
32808
33274
|
return;
|
|
32809
33275
|
_this.emit("waiting");
|
|
32810
33276
|
}, _this._opts.stallInterval);
|
|
32811
|
-
}
|
|
32812
|
-
|
|
33277
|
+
};
|
|
33278
|
+
_this._onLoadedData = function() {
|
|
32813
33279
|
logger$b.log("loadeddata emit");
|
|
32814
33280
|
_this.getStatsSnapshoot().then(function(snap) {
|
|
32815
33281
|
_this.emit(EVENT$2.METADATA_PARSED, {
|
|
@@ -32823,19 +33289,15 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
32823
33289
|
meta: snap.audio
|
|
32824
33290
|
});
|
|
32825
33291
|
});
|
|
32826
|
-
}
|
|
32827
|
-
|
|
33292
|
+
};
|
|
33293
|
+
_this._setDelay = function(delayHint) {
|
|
32828
33294
|
if (_this._opts.progressiveSetDelay) {
|
|
32829
33295
|
_this._startSetDelayLoop(delayHint);
|
|
32830
33296
|
} else {
|
|
32831
33297
|
var _this$_audioTransceic2;
|
|
32832
|
-
var key2 = [
|
|
32833
|
-
"playoutDelayHint",
|
|
32834
|
-
"jitterBufferDelayHint",
|
|
32835
|
-
"jitterBufferTarget"
|
|
32836
|
-
].find(function(key22) {
|
|
33298
|
+
var key2 = ["playoutDelayHint", "jitterBufferDelayHint", "jitterBufferTarget"].find(function(key22) {
|
|
32837
33299
|
var _this$_audioTransceic, _this$_videoTransceic;
|
|
32838
|
-
return key22 in ((_this$_audioTransceic = _this._audioTransceicer) === null || _this$_audioTransceic === void 0 ? void 0 : _this$_audioTransceic.receiver) && key22 in ((_this$_videoTransceic = _this._videoTransceicer) === null || _this$_videoTransceic === void 0 ? void 0 : _this$_videoTransceic.receiver);
|
|
33300
|
+
return key22 in (((_this$_audioTransceic = _this._audioTransceicer) === null || _this$_audioTransceic === void 0 ? void 0 : _this$_audioTransceic.receiver) || {}) && key22 in (((_this$_videoTransceic = _this._videoTransceicer) === null || _this$_videoTransceic === void 0 ? void 0 : _this$_videoTransceic.receiver) || {});
|
|
32839
33301
|
});
|
|
32840
33302
|
if (!key2)
|
|
32841
33303
|
return;
|
|
@@ -32845,24 +33307,19 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
32845
33307
|
_this._audioTransceicer.receiver[key2] = delayHint;
|
|
32846
33308
|
_this._videoTransceicer.receiver[key2] = delayHint;
|
|
32847
33309
|
}
|
|
32848
|
-
}
|
|
32849
|
-
|
|
32850
|
-
|
|
32851
|
-
|
|
32852
|
-
_defineProperty$i(_assertThisInitialized$f(_this), "_startSetDelayLoop", /* @__PURE__ */ function() {
|
|
33310
|
+
};
|
|
33311
|
+
_this._targetDelayHint = null;
|
|
33312
|
+
_this._setDelayError = null;
|
|
33313
|
+
_this._startSetDelayLoop = /* @__PURE__ */ function() {
|
|
32853
33314
|
var _ref32 = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee4(delayHint) {
|
|
32854
33315
|
var key2, preAudioStats, preVideoStats, _this$_opts$adaptiveJ, loopInterval, maxAvSyncDelay, maxJitterBufferDiff, maxStep, avDiffTooMuchCount;
|
|
32855
33316
|
return _regeneratorRuntime$a().wrap(function _callee4$(_context4) {
|
|
32856
33317
|
while (1)
|
|
32857
33318
|
switch (_context4.prev = _context4.next) {
|
|
32858
33319
|
case 0:
|
|
32859
|
-
key2 = [
|
|
32860
|
-
"playoutDelayHint",
|
|
32861
|
-
"jitterBufferDelayHint",
|
|
32862
|
-
"jitterBufferTarget"
|
|
32863
|
-
].find(function(key22) {
|
|
33320
|
+
key2 = ["playoutDelayHint", "jitterBufferDelayHint", "jitterBufferTarget"].find(function(key22) {
|
|
32864
33321
|
var _this$_audioTransceic3, _this$_videoTransceic2;
|
|
32865
|
-
return key22 in ((_this$_audioTransceic3 = _this._audioTransceicer) === null || _this$_audioTransceic3 === void 0 ? void 0 : _this$_audioTransceic3.receiver) && key22 in ((_this$_videoTransceic2 = _this._videoTransceicer) === null || _this$_videoTransceic2 === void 0 ? void 0 : _this$_videoTransceic2.receiver);
|
|
33322
|
+
return key22 in (((_this$_audioTransceic3 = _this._audioTransceicer) === null || _this$_audioTransceic3 === void 0 ? void 0 : _this$_audioTransceic3.receiver) || {}) && key22 in (((_this$_videoTransceic2 = _this._videoTransceicer) === null || _this$_videoTransceic2 === void 0 ? void 0 : _this$_videoTransceic2.receiver) || {});
|
|
32866
33323
|
});
|
|
32867
33324
|
if (key2) {
|
|
32868
33325
|
_context4.next = 3;
|
|
@@ -32877,13 +33334,14 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
32877
33334
|
}
|
|
32878
33335
|
return _context4.abrupt("return");
|
|
32879
33336
|
case 6:
|
|
33337
|
+
logger$b.log("_startSetDelayLoop()", "invoked, delayHint: ".concat(delayHint));
|
|
32880
33338
|
_this._targetDelayHint = delayHint;
|
|
32881
33339
|
if (!_this._setDelayTimer) {
|
|
32882
|
-
_context4.next =
|
|
33340
|
+
_context4.next = 10;
|
|
32883
33341
|
break;
|
|
32884
33342
|
}
|
|
32885
33343
|
return _context4.abrupt("return");
|
|
32886
|
-
case
|
|
33344
|
+
case 10:
|
|
32887
33345
|
preAudioStats = null;
|
|
32888
33346
|
preVideoStats = null;
|
|
32889
33347
|
_this$_opts$adaptiveJ = _this._opts.adaptiveJitterBuffer, loopInterval = _this$_opts$adaptiveJ.loopInterval, maxAvSyncDelay = _this$_opts$adaptiveJ.maxAvSyncDelay, maxJitterBufferDiff = _this$_opts$adaptiveJ.maxJitterBufferDiff, maxStep = _this$_opts$adaptiveJ.maxStep;
|
|
@@ -32910,7 +33368,7 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
32910
33368
|
}
|
|
32911
33369
|
return _context3.abrupt("return");
|
|
32912
33370
|
case 8:
|
|
32913
|
-
targetDelayMs = _this._targetDelayHint * 1e3;
|
|
33371
|
+
targetDelayMs = (_this._targetDelayHint || 0) * 1e3;
|
|
32914
33372
|
currentTargetDelayMs = currentTargetDelay * 1e3;
|
|
32915
33373
|
_context3.next = 12;
|
|
32916
33374
|
return Promise.all([getRecvAudioStats(_this._audioTransceicer.receiver.getStats()), getRecvVideoStats(_this._videoTransceicer.receiver.getStats())]);
|
|
@@ -32939,7 +33397,7 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
32939
33397
|
break;
|
|
32940
33398
|
}
|
|
32941
33399
|
if (avDiffTooMuchCount++ > 8 && currentVideoDelay > currentAudioDelay) {
|
|
32942
|
-
_this._audioTransceicer.receiver[key2] = Math.min(currentVideoDelay / 1e3, _this._targetDelayHint);
|
|
33400
|
+
_this._audioTransceicer.receiver[key2] = Math.min(currentVideoDelay / 1e3, _this._targetDelayHint || 0);
|
|
32943
33401
|
avDiffTooMuchCount = 0;
|
|
32944
33402
|
}
|
|
32945
33403
|
logger$b.log("av_jb_diff(".concat(currentAudioDelay - currentVideoDelay, "=").concat(currentAudioDelay, "-").concat(currentVideoDelay, ") or av_sync_diff(").concat(av_sync_diff, ") too much, skip setting"));
|
|
@@ -32974,7 +33432,7 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
32974
33432
|
}
|
|
32975
33433
|
}, _callee3, null, [[0, 40]]);
|
|
32976
33434
|
})), loopInterval);
|
|
32977
|
-
case
|
|
33435
|
+
case 15:
|
|
32978
33436
|
case "end":
|
|
32979
33437
|
return _context4.stop();
|
|
32980
33438
|
}
|
|
@@ -32983,26 +33441,31 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
32983
33441
|
return function(_x) {
|
|
32984
33442
|
return _ref32.apply(this, arguments);
|
|
32985
33443
|
};
|
|
32986
|
-
}()
|
|
32987
|
-
|
|
33444
|
+
}();
|
|
33445
|
+
_this._getDelay = function() {
|
|
32988
33446
|
try {
|
|
33447
|
+
var _this$_audioTransceic6;
|
|
32989
33448
|
var key2 = ["playoutDelayHint", "jitterBufferDelayHint", "jitterBufferTarget"].find(function(key22) {
|
|
32990
|
-
|
|
33449
|
+
var _this$_videoTransceic4, _this$_audioTransceic5;
|
|
33450
|
+
return key22 in (((_this$_videoTransceic4 = _this._videoTransceicer) === null || _this$_videoTransceic4 === void 0 ? void 0 : _this$_videoTransceic4.receiver) || {}) && key22 in (((_this$_audioTransceic5 = _this._audioTransceicer) === null || _this$_audioTransceic5 === void 0 ? void 0 : _this$_audioTransceic5.receiver) || {});
|
|
32991
33451
|
});
|
|
32992
|
-
|
|
33452
|
+
if (!key2)
|
|
33453
|
+
return;
|
|
33454
|
+
return (_this$_audioTransceic6 = _this._audioTransceicer) === null || _this$_audioTransceic6 === void 0 ? void 0 : _this$_audioTransceic6.receiver[key2];
|
|
32993
33455
|
} catch (error) {
|
|
32994
33456
|
logger$b.error("get delay error");
|
|
32995
33457
|
}
|
|
32996
|
-
}
|
|
32997
|
-
|
|
33458
|
+
};
|
|
33459
|
+
_this._onLoaderRetry = function(error, retryTime) {
|
|
33460
|
+
console.log(error, "retryTime", retryTime);
|
|
32998
33461
|
_this.emit(EVENT$2.LOAD_RETRY, {
|
|
32999
33462
|
error: StreamingError$2.network(error),
|
|
33000
33463
|
retryTime
|
|
33001
33464
|
});
|
|
33002
|
-
}
|
|
33465
|
+
};
|
|
33003
33466
|
_this._opts = getOption(opts);
|
|
33004
33467
|
_this._media = _this._opts.media;
|
|
33005
|
-
_this._player = _this._opts.player;
|
|
33468
|
+
_this._player = _this._opts.player || null;
|
|
33006
33469
|
_this._loader = new NetLoader$2(_objectSpread2$b(_objectSpread2$b({}, opts.fetchOptions), {}, {
|
|
33007
33470
|
responseType: "json",
|
|
33008
33471
|
method: "POST",
|
|
@@ -33012,9 +33475,12 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33012
33475
|
onRetryError: _this._onLoaderRetry,
|
|
33013
33476
|
logger: logger$b
|
|
33014
33477
|
}));
|
|
33015
|
-
_this._retry = _this._opts.retryCount;
|
|
33478
|
+
_this._retry = _this._opts.retryCount || 0;
|
|
33479
|
+
_this._preloadPromise = _this._opts.preloadPromise;
|
|
33016
33480
|
_this._bindMediaEvent();
|
|
33481
|
+
logger$b.log("constructor()", opts);
|
|
33017
33482
|
_this._changeVolumeInHarmonyWorkaround();
|
|
33483
|
+
_this._mutedBeforePlayingWorkaround();
|
|
33018
33484
|
if (_this._opts.mediaStream && _this._opts.seamlesslyReload) {
|
|
33019
33485
|
_this._lastMediaStream = _this._opts.mediaStream;
|
|
33020
33486
|
}
|
|
@@ -33035,6 +33501,11 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33035
33501
|
get: function get4() {
|
|
33036
33502
|
return this._video;
|
|
33037
33503
|
}
|
|
33504
|
+
}, {
|
|
33505
|
+
key: "getJitterBufferDelay",
|
|
33506
|
+
value: function getJitterBufferDelay() {
|
|
33507
|
+
return this._videoJitterBufferDelay;
|
|
33508
|
+
}
|
|
33038
33509
|
}, {
|
|
33039
33510
|
key: "loader",
|
|
33040
33511
|
get: function get4() {
|
|
@@ -33048,9 +33519,24 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33048
33519
|
}
|
|
33049
33520
|
}, {
|
|
33050
33521
|
key: "getStats",
|
|
33051
|
-
value: function
|
|
33052
|
-
|
|
33053
|
-
|
|
33522
|
+
value: function() {
|
|
33523
|
+
var _getStats22 = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee5() {
|
|
33524
|
+
return _regeneratorRuntime$a().wrap(function _callee5$(_context5) {
|
|
33525
|
+
while (1)
|
|
33526
|
+
switch (_context5.prev = _context5.next) {
|
|
33527
|
+
case 0:
|
|
33528
|
+
return _context5.abrupt("return", getStats(this._pc));
|
|
33529
|
+
case 1:
|
|
33530
|
+
case "end":
|
|
33531
|
+
return _context5.stop();
|
|
33532
|
+
}
|
|
33533
|
+
}, _callee5, this);
|
|
33534
|
+
}));
|
|
33535
|
+
function getStats$1() {
|
|
33536
|
+
return _getStats22.apply(this, arguments);
|
|
33537
|
+
}
|
|
33538
|
+
return getStats$1;
|
|
33539
|
+
}()
|
|
33054
33540
|
}, {
|
|
33055
33541
|
key: "getStatsSnapshoot",
|
|
33056
33542
|
value: function getStatsSnapshoot$1() {
|
|
@@ -33061,51 +33547,105 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33061
33547
|
}, {
|
|
33062
33548
|
key: "load",
|
|
33063
33549
|
value: function() {
|
|
33064
|
-
var _load = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function
|
|
33550
|
+
var _load = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee6(url2, failureReason) {
|
|
33065
33551
|
var _this2 = this;
|
|
33066
|
-
var
|
|
33067
|
-
return _regeneratorRuntime$a().wrap(function
|
|
33552
|
+
var lastPc, answerSdp, errorStr, preloadPromise, info, encodedTransformSupported;
|
|
33553
|
+
return _regeneratorRuntime$a().wrap(function _callee6$(_context6) {
|
|
33068
33554
|
while (1)
|
|
33069
|
-
switch (
|
|
33555
|
+
switch (_context6.prev = _context6.next) {
|
|
33070
33556
|
case 0:
|
|
33071
|
-
|
|
33557
|
+
logger$b.log("load()", 'invoked, url: "'.concat(url2, '"'));
|
|
33558
|
+
this._disconnect(failureReason || "invoke load");
|
|
33072
33559
|
this._url = url2;
|
|
33073
|
-
|
|
33560
|
+
lastPc = this._pc;
|
|
33074
33561
|
if (!this._opts.hackCreateOfferIssue) {
|
|
33075
|
-
|
|
33562
|
+
_context6.next = 7;
|
|
33076
33563
|
break;
|
|
33077
33564
|
}
|
|
33078
|
-
|
|
33565
|
+
_context6.next = 7;
|
|
33079
33566
|
return this._createEmptyPeer();
|
|
33080
|
-
case
|
|
33081
|
-
|
|
33082
|
-
|
|
33083
|
-
|
|
33084
|
-
|
|
33085
|
-
|
|
33567
|
+
case 7:
|
|
33568
|
+
_context6.prev = 7;
|
|
33569
|
+
this._firstFrameObserver.start();
|
|
33570
|
+
if (!this._preloadPromise) {
|
|
33571
|
+
_context6.next = 38;
|
|
33572
|
+
break;
|
|
33086
33573
|
}
|
|
33574
|
+
logger$b.log("load()", "in preload process...");
|
|
33575
|
+
_context6.prev = 11;
|
|
33576
|
+
this._firstFrameObserver.setIsPreload(true);
|
|
33577
|
+
if (compareURL(this._url, this._preloadPromise.url, ["tabr_start_bitrate"])) {
|
|
33578
|
+
_context6.next = 17;
|
|
33579
|
+
break;
|
|
33580
|
+
}
|
|
33581
|
+
errorStr = "preload url not match, current url: ".concat(this._url, ", preload url: ").concat(this._preloadPromise.url);
|
|
33582
|
+
delete this._preloadPromise;
|
|
33583
|
+
throw new Error(errorStr);
|
|
33584
|
+
case 17:
|
|
33585
|
+
preloadPromise = this._preloadPromise.promise;
|
|
33586
|
+
delete this._preloadPromise;
|
|
33587
|
+
_context6.next = 21;
|
|
33588
|
+
return preloadPromise;
|
|
33589
|
+
case 21:
|
|
33590
|
+
info = _context6.sent;
|
|
33591
|
+
if (!(info.pc.signalingState !== "have-local-offer")) {
|
|
33592
|
+
_context6.next = 24;
|
|
33593
|
+
break;
|
|
33594
|
+
}
|
|
33595
|
+
throw new Error('pc.signalingState not equal "have-local-offer", current state is '.concat(info.pc.signalingState));
|
|
33596
|
+
case 24:
|
|
33597
|
+
this._pc = info.pc;
|
|
33598
|
+
answerSdp = info.answerSdp;
|
|
33599
|
+
this._videoTransceicer = info.videoTransceiver;
|
|
33600
|
+
this._audioTransceicer = info.audioTransceiver;
|
|
33601
|
+
if (this._opts.enableSei) {
|
|
33602
|
+
this.initVideoEncodedTransform();
|
|
33603
|
+
this.initAudioEncodedTransform();
|
|
33604
|
+
}
|
|
33605
|
+
_context6.next = 36;
|
|
33606
|
+
break;
|
|
33607
|
+
case 31:
|
|
33608
|
+
_context6.prev = 31;
|
|
33609
|
+
_context6.t0 = _context6["catch"](11);
|
|
33610
|
+
logger$b.warn("load()", "preload failed, ".concat(_context6.t0.message || _context6.t0.toString()));
|
|
33611
|
+
this.load(url2, _context6.t0.message || _context6.t0.toString());
|
|
33612
|
+
return _context6.abrupt("return");
|
|
33613
|
+
case 36:
|
|
33614
|
+
_context6.next = 44;
|
|
33615
|
+
break;
|
|
33616
|
+
case 38:
|
|
33617
|
+
encodedTransformSupported = isLegacyEncodedTransformSupported();
|
|
33618
|
+
logger$b.log("load()", "isLegacyEncodedTransformSupported: ".concat(encodedTransformSupported));
|
|
33087
33619
|
this._pc = new RTCPeerConnection({
|
|
33088
33620
|
encodedInsertableStreams: encodedTransformSupported && this._opts.enableSei ? true : void 0
|
|
33089
33621
|
});
|
|
33090
|
-
|
|
33091
|
-
|
|
33092
|
-
|
|
33093
|
-
|
|
33094
|
-
|
|
33622
|
+
_context6.next = 43;
|
|
33623
|
+
return this._getAnswerSdp(this._pc);
|
|
33624
|
+
case 43:
|
|
33625
|
+
answerSdp = _context6.sent;
|
|
33626
|
+
case 44:
|
|
33627
|
+
this._bindRTCEvents(this._pc);
|
|
33628
|
+
_context6.next = 47;
|
|
33629
|
+
return this._handleAnswerSdp(this._pc, answerSdp);
|
|
33630
|
+
case 47:
|
|
33631
|
+
if (lastPc) {
|
|
33632
|
+
lastPc.close();
|
|
33633
|
+
}
|
|
33634
|
+
_context6.next = 53;
|
|
33095
33635
|
break;
|
|
33096
|
-
case
|
|
33097
|
-
|
|
33098
|
-
|
|
33636
|
+
case 50:
|
|
33637
|
+
_context6.prev = 50;
|
|
33638
|
+
_context6.t1 = _context6["catch"](7);
|
|
33099
33639
|
setTimeout(function() {
|
|
33100
|
-
return _this2._emitError(StreamingError$2.create(ERR$2.OTHER, null,
|
|
33640
|
+
return _this2._emitError(StreamingError$2.create(ERR$2.OTHER, null, _context6.t1));
|
|
33101
33641
|
});
|
|
33102
|
-
case
|
|
33642
|
+
case 53:
|
|
33103
33643
|
case "end":
|
|
33104
|
-
return
|
|
33644
|
+
return _context6.stop();
|
|
33105
33645
|
}
|
|
33106
|
-
},
|
|
33646
|
+
}, _callee6, this, [[7, 50], [11, 31]]);
|
|
33107
33647
|
}));
|
|
33108
|
-
function load(_x2) {
|
|
33648
|
+
function load(_x2, _x3) {
|
|
33109
33649
|
return _load.apply(this, arguments);
|
|
33110
33650
|
}
|
|
33111
33651
|
return load;
|
|
@@ -33113,13 +33653,13 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33113
33653
|
}, {
|
|
33114
33654
|
key: "switchURL",
|
|
33115
33655
|
value: function switchURL(url2) {
|
|
33116
|
-
|
|
33656
|
+
logger$b.log("switchURL()", 'invoked, url: "'.concat(url2, '"'));
|
|
33657
|
+
this.load(url2 || this._url, "invoke switchURL");
|
|
33117
33658
|
}
|
|
33118
33659
|
}, {
|
|
33119
33660
|
key: "_bindRTCEvents",
|
|
33120
|
-
value: function _bindRTCEvents() {
|
|
33661
|
+
value: function _bindRTCEvents(pc) {
|
|
33121
33662
|
var _this3 = this;
|
|
33122
|
-
var pc = this._pc;
|
|
33123
33663
|
pc.addEventListener("track", this._onTrack);
|
|
33124
33664
|
pc.addEventListener("connectionstatechange", function() {
|
|
33125
33665
|
logger$b.warn("onconnectionstatechange:", pc.connectionState);
|
|
@@ -33138,7 +33678,7 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33138
33678
|
return;
|
|
33139
33679
|
}
|
|
33140
33680
|
_this3._retry--;
|
|
33141
|
-
_this3.load(_this3._url);
|
|
33681
|
+
_this3.load(_this3._url, "rtc connect failed");
|
|
33142
33682
|
}
|
|
33143
33683
|
if (pc.connectionState === "connected") {
|
|
33144
33684
|
_this3._handleMediaStream();
|
|
@@ -33157,7 +33697,7 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33157
33697
|
value: function _handleMediaStream() {
|
|
33158
33698
|
var _this4 = this;
|
|
33159
33699
|
if (this._lastMediaStream) {
|
|
33160
|
-
var _this$
|
|
33700
|
+
var _this$_player2, _this$_player3, _this$_player3$play;
|
|
33161
33701
|
var videoTrack = this._lastMediaStream.getVideoTracks()[0];
|
|
33162
33702
|
var audioTrack = this._lastMediaStream.getAudioTracks()[0];
|
|
33163
33703
|
if (videoTrack) {
|
|
@@ -33170,20 +33710,15 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33170
33710
|
this._audio && this._mediaStream.addTrack(this._audio);
|
|
33171
33711
|
this._video && this._mediaStream.addTrack(this._video);
|
|
33172
33712
|
this._isReplacing = true;
|
|
33173
|
-
this._player.pause();
|
|
33174
|
-
(_this$_player$play =
|
|
33713
|
+
(_this$_player2 = this._player) === null || _this$_player2 === void 0 ? void 0 : _this$_player2.pause();
|
|
33714
|
+
(_this$_player3 = this._player) === null || _this$_player3 === void 0 ? void 0 : (_this$_player3$play = _this$_player3.play()) === null || _this$_player3$play === void 0 ? void 0 : _this$_player3$play.finally(function() {
|
|
33175
33715
|
_this4._isReplacing = false;
|
|
33176
33716
|
});
|
|
33177
33717
|
} else {
|
|
33178
33718
|
this._mediaStream = new MediaStream();
|
|
33179
33719
|
this._audio && this._mediaStream.addTrack(this._audio);
|
|
33180
33720
|
this._video && this._mediaStream.addTrack(this._video);
|
|
33181
|
-
this._media.srcObject = this._mediaStream;
|
|
33182
|
-
var req = this._player.play();
|
|
33183
|
-
if (req && req.catch) {
|
|
33184
|
-
req.catch(function(e4) {
|
|
33185
|
-
});
|
|
33186
|
-
}
|
|
33721
|
+
this._media && (this._media.srcObject = this._mediaStream);
|
|
33187
33722
|
}
|
|
33188
33723
|
}
|
|
33189
33724
|
}, {
|
|
@@ -33237,21 +33772,22 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33237
33772
|
}, {
|
|
33238
33773
|
key: "_bindMediaEvent",
|
|
33239
33774
|
value: function _bindMediaEvent() {
|
|
33240
|
-
|
|
33241
|
-
this._media.addEventListener("
|
|
33775
|
+
var _this$_media, _this$_media2;
|
|
33776
|
+
(_this$_media = this._media) === null || _this$_media === void 0 ? void 0 : _this$_media.addEventListener("timeupdate", this._mockWaitingByTimeupdate);
|
|
33777
|
+
(_this$_media2 = this._media) === null || _this$_media2 === void 0 ? void 0 : _this$_media2.addEventListener("loadeddata", this._onLoadedData);
|
|
33242
33778
|
}
|
|
33243
33779
|
}, {
|
|
33244
|
-
key: "
|
|
33780
|
+
key: "_getAnswerSdp",
|
|
33245
33781
|
value: function() {
|
|
33246
|
-
var
|
|
33247
|
-
var
|
|
33248
|
-
return _regeneratorRuntime$a().wrap(function
|
|
33782
|
+
var _getAnswerSdp2 = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee7(pc) {
|
|
33783
|
+
var offer, answerSdp, parsed, finnalUrl, _this$_opts, _this$_loader, _this$_opts2, _parsed$media, parseSession, sessionId, reqStart, res, answer, err;
|
|
33784
|
+
return _regeneratorRuntime$a().wrap(function _callee7$(_context7) {
|
|
33249
33785
|
while (1)
|
|
33250
|
-
switch (
|
|
33786
|
+
switch (_context7.prev = _context7.next) {
|
|
33251
33787
|
case 0:
|
|
33252
|
-
|
|
33788
|
+
logger$b.log("_getAnswerSdp()");
|
|
33253
33789
|
if (!pc.addTransceiver) {
|
|
33254
|
-
|
|
33790
|
+
_context7.next = 11;
|
|
33255
33791
|
break;
|
|
33256
33792
|
}
|
|
33257
33793
|
this._audioTransceicer = pc.addTransceiver("audio", {
|
|
@@ -33260,32 +33796,37 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33260
33796
|
this._videoTransceicer = pc.addTransceiver("video", {
|
|
33261
33797
|
direction: "recvonly"
|
|
33262
33798
|
});
|
|
33263
|
-
this._setDelay(this._opts.delayHint);
|
|
33799
|
+
this._setDelay(this._opts.delayHint || null);
|
|
33264
33800
|
if (this._opts.enableSei) {
|
|
33265
33801
|
this.initVideoEncodedTransform();
|
|
33266
33802
|
this.initAudioEncodedTransform();
|
|
33267
33803
|
}
|
|
33268
|
-
|
|
33804
|
+
_context7.next = 8;
|
|
33269
33805
|
return pc.createOffer();
|
|
33270
33806
|
case 8:
|
|
33271
|
-
offer =
|
|
33272
|
-
|
|
33807
|
+
offer = _context7.sent;
|
|
33808
|
+
_context7.next = 14;
|
|
33273
33809
|
break;
|
|
33274
33810
|
case 11:
|
|
33275
|
-
|
|
33811
|
+
_context7.next = 13;
|
|
33276
33812
|
return pc.createOffer({
|
|
33277
33813
|
iceRestart: true,
|
|
33278
33814
|
offerToReceiveAudio: true,
|
|
33279
33815
|
offerToReceiveVideo: true
|
|
33280
33816
|
});
|
|
33281
33817
|
case 13:
|
|
33282
|
-
offer =
|
|
33818
|
+
offer = _context7.sent;
|
|
33283
33819
|
case 14:
|
|
33284
33820
|
if (this._opts.hackCreateOfferIssue) {
|
|
33285
33821
|
this._createEmptyPeer();
|
|
33286
33822
|
}
|
|
33287
|
-
logger$b.log("local offer");
|
|
33288
|
-
|
|
33823
|
+
logger$b.log("local offer", offer);
|
|
33824
|
+
if (offer.sdp) {
|
|
33825
|
+
_context7.next = 18;
|
|
33826
|
+
break;
|
|
33827
|
+
}
|
|
33828
|
+
throw new Error("create offer failed");
|
|
33829
|
+
case 18:
|
|
33289
33830
|
parsed = lib$1.parse(offer.sdp);
|
|
33290
33831
|
parsed.media.filter(function(x2) {
|
|
33291
33832
|
return x2.type === "audio";
|
|
@@ -33306,62 +33847,71 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33306
33847
|
type: "nack"
|
|
33307
33848
|
});
|
|
33308
33849
|
});
|
|
33850
|
+
parsed.media.filter(function(x2) {
|
|
33851
|
+
return x2.type === "video";
|
|
33852
|
+
}).forEach(function(x2) {
|
|
33853
|
+
x2.fmtp.forEach(function(x22) {
|
|
33854
|
+
if (x22.config.indexOf("profile-level-id") !== -1) {
|
|
33855
|
+
x22.config = "".concat(x22.config, ";sps-pps-idr-in-keyframe=1");
|
|
33856
|
+
}
|
|
33857
|
+
});
|
|
33858
|
+
});
|
|
33309
33859
|
offer.sdp = lib$1.write(parsed);
|
|
33310
|
-
logger$b.log("local offer modified:\n", offer
|
|
33311
|
-
|
|
33860
|
+
logger$b.log("local offer modified:\n", offer);
|
|
33861
|
+
_context7.next = 25;
|
|
33312
33862
|
return pc.setLocalDescription(offer);
|
|
33313
|
-
case
|
|
33863
|
+
case 25:
|
|
33314
33864
|
finnalUrl = this._url;
|
|
33315
|
-
|
|
33865
|
+
_context7.prev = 26;
|
|
33316
33866
|
if (this._opts.preProcessUrl) {
|
|
33317
33867
|
finnalUrl = this._opts.preProcessUrl(finnalUrl).url;
|
|
33318
33868
|
}
|
|
33319
|
-
|
|
33869
|
+
finnalUrl = addUrlParams(finnalUrl, this._opts.urlParams);
|
|
33870
|
+
this._loader && (this._loader.finnalUrl = finnalUrl);
|
|
33320
33871
|
parseSession = /_?session_id=([^&$]+)/.exec(finnalUrl);
|
|
33321
33872
|
sessionId = parseSession ? parseSession[1] : Date.now() + "666";
|
|
33873
|
+
this._firstFrameObserver.changeFirstFrameState(RTC_FIRST_FRAME_STATE.OFFER_SDP_READY);
|
|
33322
33874
|
this.emit(EVENT$2.LOAD_START, {
|
|
33323
33875
|
url: finnalUrl,
|
|
33324
33876
|
offersdp: (_this$_opts = this._opts) !== null && _this$_opts !== void 0 && _this$_opts.enableOriginSdpLogger ? offer.sdp : void 0,
|
|
33325
33877
|
sessionId
|
|
33326
33878
|
});
|
|
33327
33879
|
reqStart = Date.now();
|
|
33328
|
-
|
|
33329
|
-
return this._loader.load(finnalUrl, {
|
|
33880
|
+
_context7.next = 37;
|
|
33881
|
+
return (_this$_loader = this._loader) === null || _this$_loader === void 0 ? void 0 : _this$_loader.load(finnalUrl, {
|
|
33330
33882
|
body: JSON.stringify({
|
|
33331
33883
|
sessionId,
|
|
33332
33884
|
version: "1.0-html",
|
|
33333
33885
|
localSdp: offer
|
|
33334
33886
|
})
|
|
33335
33887
|
});
|
|
33336
|
-
case
|
|
33337
|
-
res =
|
|
33888
|
+
case 37:
|
|
33889
|
+
res = _context7.sent;
|
|
33338
33890
|
this.emit(EVENT$2.LOAD_RESPONSE_HEADERS, {
|
|
33339
33891
|
headers: res.response.headers
|
|
33340
33892
|
});
|
|
33341
33893
|
answer = res === null || res === void 0 ? void 0 : res.data;
|
|
33342
33894
|
if (!((answer === null || answer === void 0 ? void 0 : answer.code) === 404 || (answer === null || answer === void 0 ? void 0 : answer.code) === 403)) {
|
|
33343
|
-
|
|
33895
|
+
_context7.next = 45;
|
|
33344
33896
|
break;
|
|
33345
33897
|
}
|
|
33346
33898
|
err = StreamingError$2.create(answer.code === 404 ? ERR$2.NETWORK_NOTFOUND : ERR$2.NETWORK_FORBIDDEN, null, answer);
|
|
33347
33899
|
err.errorType = ERR$2.NETWORK;
|
|
33348
33900
|
this._emitError(err);
|
|
33349
|
-
return
|
|
33350
|
-
case
|
|
33901
|
+
return _context7.abrupt("return");
|
|
33902
|
+
case 45:
|
|
33351
33903
|
if (!((answer === null || answer === void 0 ? void 0 : answer.code) !== 200)) {
|
|
33352
|
-
|
|
33904
|
+
_context7.next = 47;
|
|
33353
33905
|
break;
|
|
33354
33906
|
}
|
|
33355
33907
|
throw new Error("code: ".concat(answer === null || answer === void 0 ? void 0 : answer.code, ", message:").concat(answer === null || answer === void 0 ? void 0 : answer.message));
|
|
33356
|
-
case
|
|
33357
|
-
|
|
33358
|
-
logger$b.log((_answer$remoteSdp = answer.remoteSdp) === null || _answer$remoteSdp === void 0 ? void 0 : _answer$remoteSdp.sdp);
|
|
33359
|
-
_parsed = lib$1.parse(answer.remoteSdp.sdp);
|
|
33908
|
+
case 47:
|
|
33909
|
+
answerSdp = res.data.remoteSdp.sdp;
|
|
33360
33910
|
this.emit(EVENT$2.LOAD_COMPLETE, {
|
|
33361
33911
|
url: finnalUrl,
|
|
33362
33912
|
elapsed: Date.now() - reqStart,
|
|
33363
|
-
answersdp: (_this$_opts2 = this._opts) !== null && _this$_opts2 !== void 0 && _this$_opts2.enableOriginSdpLogger ?
|
|
33364
|
-
parsedSdp:
|
|
33913
|
+
answersdp: (_this$_opts2 = this._opts) !== null && _this$_opts2 !== void 0 && _this$_opts2.enableOriginSdpLogger ? answerSdp : void 0,
|
|
33914
|
+
parsedSdp: parsed === null || parsed === void 0 ? void 0 : (_parsed$media = parsed.media) === null || _parsed$media === void 0 ? void 0 : _parsed$media.map(function(media) {
|
|
33365
33915
|
return {
|
|
33366
33916
|
candidates: media.candidates,
|
|
33367
33917
|
rtp: media.rtp,
|
|
@@ -33369,9 +33919,50 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33369
33919
|
};
|
|
33370
33920
|
})
|
|
33371
33921
|
});
|
|
33372
|
-
|
|
33922
|
+
_context7.next = 54;
|
|
33923
|
+
break;
|
|
33924
|
+
case 51:
|
|
33925
|
+
_context7.prev = 51;
|
|
33926
|
+
_context7.t0 = _context7["catch"](26);
|
|
33927
|
+
this._emitError(StreamingError$2.network(_context7.t0));
|
|
33928
|
+
case 54:
|
|
33929
|
+
return _context7.abrupt("return", answerSdp);
|
|
33930
|
+
case 55:
|
|
33931
|
+
case "end":
|
|
33932
|
+
return _context7.stop();
|
|
33933
|
+
}
|
|
33934
|
+
}, _callee7, this, [[26, 51]]);
|
|
33935
|
+
}));
|
|
33936
|
+
function _getAnswerSdp(_x4) {
|
|
33937
|
+
return _getAnswerSdp2.apply(this, arguments);
|
|
33938
|
+
}
|
|
33939
|
+
return _getAnswerSdp;
|
|
33940
|
+
}()
|
|
33941
|
+
}, {
|
|
33942
|
+
key: "_handleAnswerSdp",
|
|
33943
|
+
value: function() {
|
|
33944
|
+
var _handleAnswerSdp2 = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee8(pc, answerSdp) {
|
|
33945
|
+
var parsed, answer;
|
|
33946
|
+
return _regeneratorRuntime$a().wrap(function _callee8$(_context8) {
|
|
33947
|
+
while (1)
|
|
33948
|
+
switch (_context8.prev = _context8.next) {
|
|
33949
|
+
case 0:
|
|
33950
|
+
logger$b.log("_handleAnswerSdp()", "invoked, answerSdp:", {
|
|
33951
|
+
answerSdp
|
|
33952
|
+
});
|
|
33953
|
+
if (answerSdp) {
|
|
33954
|
+
_context8.next = 3;
|
|
33955
|
+
break;
|
|
33956
|
+
}
|
|
33957
|
+
return _context8.abrupt("return");
|
|
33958
|
+
case 3:
|
|
33959
|
+
this._firstFrameObserver.changeFirstFrameState(RTC_FIRST_FRAME_STATE.ANSWER_SDP_RECV);
|
|
33960
|
+
parsed = lib$1.parse(answerSdp);
|
|
33961
|
+
parsed.media.forEach(function(x2) {
|
|
33373
33962
|
var _x$ssrcs, _x$ssrcs$find;
|
|
33374
|
-
|
|
33963
|
+
if (x2.fingerprint) {
|
|
33964
|
+
x2.fingerprint.hash = x2.fingerprint.hash.toUpperCase();
|
|
33965
|
+
}
|
|
33375
33966
|
var msid = (_x$ssrcs = x2.ssrcs) === null || _x$ssrcs === void 0 ? void 0 : (_x$ssrcs$find = _x$ssrcs.find(function(s2) {
|
|
33376
33967
|
return s2.attribute === "msid";
|
|
33377
33968
|
})) === null || _x$ssrcs$find === void 0 ? void 0 : _x$ssrcs$find.value;
|
|
@@ -33379,42 +33970,43 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33379
33970
|
x2.msid = msid;
|
|
33380
33971
|
}
|
|
33381
33972
|
});
|
|
33382
|
-
answer
|
|
33383
|
-
logger$b.log("answer modified:\n",
|
|
33973
|
+
answer = lib$1.write(parsed);
|
|
33974
|
+
logger$b.log("answer modified:\n", {
|
|
33975
|
+
answer
|
|
33976
|
+
});
|
|
33384
33977
|
this._rctConnectStartTs = Date.now();
|
|
33385
33978
|
if (!(pc.signalingState === "closed")) {
|
|
33386
|
-
|
|
33979
|
+
_context8.next = 11;
|
|
33387
33980
|
break;
|
|
33388
33981
|
}
|
|
33389
|
-
return
|
|
33390
|
-
case
|
|
33391
|
-
|
|
33392
|
-
return pc.setRemoteDescription(
|
|
33393
|
-
|
|
33982
|
+
return _context8.abrupt("return");
|
|
33983
|
+
case 11:
|
|
33984
|
+
_context8.next = 13;
|
|
33985
|
+
return pc.setRemoteDescription({
|
|
33986
|
+
type: "answer",
|
|
33987
|
+
sdp: answer
|
|
33988
|
+
});
|
|
33989
|
+
case 13:
|
|
33990
|
+
this._firstFrameObserver.changeFirstFrameState(RTC_FIRST_FRAME_STATE.ANSWER_SDP_READY);
|
|
33394
33991
|
this._networkEvaluate = new NetworkEvaluate(pc, this._opts.networkEvaluateInterval);
|
|
33395
33992
|
this._listenPeerStateTimeout();
|
|
33396
|
-
|
|
33397
|
-
|
|
33398
|
-
case 59:
|
|
33399
|
-
_context6.prev = 59;
|
|
33400
|
-
_context6.t0 = _context6["catch"](24);
|
|
33401
|
-
this._emitError(StreamingError$2.network(_context6.t0));
|
|
33402
|
-
case 62:
|
|
33993
|
+
this._firstFrameObserver.bindEvents(pc, this._videoTransceicer, this._media);
|
|
33994
|
+
case 17:
|
|
33403
33995
|
case "end":
|
|
33404
|
-
return
|
|
33996
|
+
return _context8.stop();
|
|
33405
33997
|
}
|
|
33406
|
-
},
|
|
33998
|
+
}, _callee8, this);
|
|
33407
33999
|
}));
|
|
33408
|
-
function
|
|
33409
|
-
return
|
|
34000
|
+
function _handleAnswerSdp(_x5, _x6) {
|
|
34001
|
+
return _handleAnswerSdp2.apply(this, arguments);
|
|
33410
34002
|
}
|
|
33411
|
-
return
|
|
34003
|
+
return _handleAnswerSdp;
|
|
33412
34004
|
}()
|
|
33413
34005
|
}, {
|
|
33414
34006
|
key: "_listenPeerStateTimeout",
|
|
33415
34007
|
value: function _listenPeerStateTimeout() {
|
|
33416
34008
|
var _this6 = this;
|
|
33417
|
-
this.
|
|
34009
|
+
this._clearPeerStateTimeout();
|
|
33418
34010
|
if (this._opts.connectionStateChangeTimeout) {
|
|
33419
34011
|
this._peerStateTimer = setTimeout(function() {
|
|
33420
34012
|
_this6._emitError(StreamingError$2.create(ERR$2.MEDIA, ERR$2.SUB_TYPES.MEDIA_ERR_SRC_NOT_SUPPORTED, {
|
|
@@ -33426,128 +34018,162 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33426
34018
|
}, {
|
|
33427
34019
|
key: "_clearPeerStateTimeout",
|
|
33428
34020
|
value: function _clearPeerStateTimeout() {
|
|
33429
|
-
|
|
33430
|
-
|
|
34021
|
+
if (this._peerStateTimer) {
|
|
34022
|
+
clearTimeout(this._peerStateTimer);
|
|
34023
|
+
delete this._peerStateTimer;
|
|
34024
|
+
}
|
|
33431
34025
|
}
|
|
33432
34026
|
}, {
|
|
33433
34027
|
key: "_startRtcReport",
|
|
33434
34028
|
value: function _startRtcReport() {
|
|
33435
34029
|
var _this7 = this;
|
|
33436
34030
|
this._stopRtcReport();
|
|
33437
|
-
|
|
33438
|
-
var
|
|
33439
|
-
|
|
33440
|
-
|
|
33441
|
-
|
|
33442
|
-
|
|
33443
|
-
|
|
33444
|
-
|
|
33445
|
-
|
|
33446
|
-
|
|
33447
|
-
|
|
33448
|
-
|
|
33449
|
-
|
|
33450
|
-
|
|
33451
|
-
|
|
33452
|
-
|
|
33453
|
-
_this7._audioStallObserver
|
|
33454
|
-
|
|
33455
|
-
|
|
33456
|
-
|
|
33457
|
-
_this7._videoStallObserver
|
|
33458
|
-
|
|
33459
|
-
|
|
33460
|
-
|
|
33461
|
-
|
|
33462
|
-
|
|
33463
|
-
|
|
33464
|
-
|
|
33465
|
-
|
|
33466
|
-
|
|
33467
|
-
|
|
33468
|
-
|
|
33469
|
-
|
|
33470
|
-
|
|
33471
|
-
|
|
33472
|
-
|
|
33473
|
-
|
|
33474
|
-
|
|
33475
|
-
|
|
33476
|
-
|
|
33477
|
-
|
|
33478
|
-
|
|
33479
|
-
|
|
33480
|
-
|
|
33481
|
-
|
|
33482
|
-
|
|
33483
|
-
|
|
33484
|
-
|
|
33485
|
-
|
|
33486
|
-
|
|
33487
|
-
|
|
33488
|
-
|
|
33489
|
-
|
|
33490
|
-
|
|
33491
|
-
|
|
33492
|
-
|
|
33493
|
-
|
|
33494
|
-
|
|
33495
|
-
_this7
|
|
33496
|
-
|
|
33497
|
-
|
|
33498
|
-
|
|
33499
|
-
|
|
33500
|
-
|
|
33501
|
-
|
|
33502
|
-
|
|
33503
|
-
|
|
33504
|
-
|
|
33505
|
-
|
|
33506
|
-
|
|
33507
|
-
|
|
33508
|
-
|
|
33509
|
-
|
|
33510
|
-
|
|
33511
|
-
|
|
33512
|
-
|
|
33513
|
-
|
|
33514
|
-
|
|
33515
|
-
|
|
33516
|
-
|
|
33517
|
-
|
|
33518
|
-
|
|
33519
|
-
|
|
33520
|
-
|
|
33521
|
-
|
|
33522
|
-
|
|
33523
|
-
|
|
33524
|
-
|
|
33525
|
-
|
|
33526
|
-
|
|
33527
|
-
|
|
33528
|
-
|
|
33529
|
-
|
|
33530
|
-
|
|
33531
|
-
|
|
33532
|
-
|
|
33533
|
-
|
|
33534
|
-
|
|
33535
|
-
|
|
33536
|
-
|
|
33537
|
-
|
|
33538
|
-
|
|
33539
|
-
|
|
33540
|
-
|
|
33541
|
-
|
|
34031
|
+
var report = /* @__PURE__ */ function() {
|
|
34032
|
+
var _ref52 = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee9() {
|
|
34033
|
+
var _this7$_audioTranscei, _this7$_videoTranscei;
|
|
34034
|
+
var _this7$_frameRecvCall, _yield$Promise$all3, _yield$Promise$all4, curAudioStats, curVideoStats, _this7$_audioStallObs, _this7$_videoStallObs, _this7$_networkQualit, _this7$_networkQualit2, _this7$_media, _this7$_media2, _this7$_media3, _this7$_media4, _this7$_media5, _this7$_media6, _this7$_frameRecvCall2, audioStats, videoStats, audioStallInfo, videoStallInfo, _ref6, _ref7, quality, qualityInfo, av_sync_diff;
|
|
34035
|
+
return _regeneratorRuntime$a().wrap(function _callee9$(_context9) {
|
|
34036
|
+
while (1)
|
|
34037
|
+
switch (_context9.prev = _context9.next) {
|
|
34038
|
+
case 0:
|
|
34039
|
+
if (!(!((_this7$_audioTranscei = _this7._audioTransceicer) !== null && _this7$_audioTranscei !== void 0 && _this7$_audioTranscei.receiver) || !((_this7$_videoTranscei = _this7._videoTransceicer) !== null && _this7$_videoTranscei !== void 0 && _this7$_videoTranscei.receiver))) {
|
|
34040
|
+
_context9.next = 4;
|
|
34041
|
+
break;
|
|
34042
|
+
}
|
|
34043
|
+
_this7._preAudioStats = null;
|
|
34044
|
+
_this7._preVideoStats = null;
|
|
34045
|
+
return _context9.abrupt("return");
|
|
34046
|
+
case 4:
|
|
34047
|
+
if (!_this7._audioStallObserver && _this7._audioTransceicer) {
|
|
34048
|
+
_this7._audioStallObserver = new AudioStallObserver();
|
|
34049
|
+
_this7._audioStallObserver.start(_this7._audioTransceicer);
|
|
34050
|
+
}
|
|
34051
|
+
if (!_this7._videoStallObserver && _this7._video && _this7._media) {
|
|
34052
|
+
_this7._videoStallObserver = new VideoStallObserver();
|
|
34053
|
+
_this7._videoStallObserver.start(_this7._media);
|
|
34054
|
+
}
|
|
34055
|
+
if (!_this7._frameRecvCallback && _this7._media) {
|
|
34056
|
+
_this7._frameRecvCallback = new VideoFrameRecvCallback();
|
|
34057
|
+
(_this7$_frameRecvCall = _this7._frameRecvCallback) === null || _this7$_frameRecvCall === void 0 ? void 0 : _this7$_frameRecvCall.start(_this7._media);
|
|
34058
|
+
}
|
|
34059
|
+
if (_this7._pc && !_this7._networkQuality && _this7._opts.enableNetworkQuality && _this7._opts.networkQuality) {
|
|
34060
|
+
_this7._networkQuality = new NetworkQuality(_this7._pc, _this7._opts.networkQuality);
|
|
34061
|
+
}
|
|
34062
|
+
_context9.next = 10;
|
|
34063
|
+
return Promise.all([getRecvAudioStats(_this7._audioTransceicer.receiver.getStats()), getRecvVideoStats(_this7._videoTransceicer.receiver.getStats())]);
|
|
34064
|
+
case 10:
|
|
34065
|
+
_yield$Promise$all3 = _context9.sent;
|
|
34066
|
+
_yield$Promise$all4 = _slicedToArray$7(_yield$Promise$all3, 2);
|
|
34067
|
+
curAudioStats = _yield$Promise$all4[0];
|
|
34068
|
+
curVideoStats = _yield$Promise$all4[1];
|
|
34069
|
+
if (!(_this7._preAudioStats && _this7._preVideoStats)) {
|
|
34070
|
+
_context9.next = 28;
|
|
34071
|
+
break;
|
|
34072
|
+
}
|
|
34073
|
+
audioStats = diffRecvAudioStats(_this7._preAudioStats, curAudioStats);
|
|
34074
|
+
videoStats = diffRecvVideoStats(_this7._preVideoStats, curVideoStats);
|
|
34075
|
+
_this7._videoJitterBufferDelay = videoStats.jitterBufferDelay;
|
|
34076
|
+
_context9.next = 20;
|
|
34077
|
+
return (_this7$_audioStallObs = _this7._audioStallObserver) === null || _this7$_audioStallObs === void 0 ? void 0 : _this7$_audioStallObs.getAudioStallInfo();
|
|
34078
|
+
case 20:
|
|
34079
|
+
audioStallInfo = _context9.sent;
|
|
34080
|
+
_context9.next = 23;
|
|
34081
|
+
return (_this7$_videoStallObs = _this7._videoStallObserver) === null || _this7$_videoStallObs === void 0 ? void 0 : _this7$_videoStallObs.getStallInfo({
|
|
34082
|
+
interval: videoStats.statsInterval,
|
|
34083
|
+
frameRateReceived: videoStats.receivedFrameRate,
|
|
34084
|
+
frameRateDecoded: videoStats.decoderOutputFrameRate,
|
|
34085
|
+
bitrate: videoStats.receivedKBitrate
|
|
34086
|
+
});
|
|
34087
|
+
case 23:
|
|
34088
|
+
videoStallInfo = _context9.sent;
|
|
34089
|
+
_ref6 = (_this7$_networkQualit = (_this7$_networkQualit2 = _this7._networkQuality) === null || _this7$_networkQualit2 === void 0 ? void 0 : _this7$_networkQualit2.getDownlinkQuality(_objectSpread2$b(_objectSpread2$b({}, audioStats), {}, {
|
|
34090
|
+
stallDuration: (audioStallInfo === null || audioStallInfo === void 0 ? void 0 : audioStallInfo.stallDuration) || 0
|
|
34091
|
+
}), _objectSpread2$b(_objectSpread2$b({}, videoStats), {}, {
|
|
34092
|
+
stallDuration: (videoStallInfo === null || videoStallInfo === void 0 ? void 0 : videoStallInfo.stall.stallDuration100ms) || (videoStallInfo === null || videoStallInfo === void 0 ? void 0 : videoStallInfo.stall.stallDuration500ms) || 0
|
|
34093
|
+
}))) !== null && _this7$_networkQualit !== void 0 ? _this7$_networkQualit : [], _ref7 = _slicedToArray$7(_ref6, 2), quality = _ref7[0], qualityInfo = _ref7[1];
|
|
34094
|
+
if (_this7._opts.enableAdaptiveJitterBuffer) {
|
|
34095
|
+
_this7._handleJitterBuffer(qualityInfo === null || qualityInfo === void 0 ? void 0 : qualityInfo.qualityQos, _this7._opts.adaptiveJitterBuffer, _this7._opts.networkStrategy);
|
|
34096
|
+
}
|
|
34097
|
+
if (videoStats.estimatedPlayoutTimestamp && audioStats.estimatedPlayoutTimestamp) {
|
|
34098
|
+
av_sync_diff = videoStats.estimatedPlayoutTimestamp - audioStats.estimatedPlayoutTimestamp;
|
|
34099
|
+
}
|
|
34100
|
+
_this7.emit(EXTEND_EVENTS.RTC_NETWORK, _objectSpread2$b({
|
|
34101
|
+
interval: videoStats.statsInterval,
|
|
34102
|
+
network_quality: quality,
|
|
34103
|
+
audio_stall_duration: audioStallInfo === null || audioStallInfo === void 0 ? void 0 : audioStallInfo.stallDuration,
|
|
34104
|
+
audio_stall_count: audioStallInfo === null || audioStallInfo === void 0 ? void 0 : audioStallInfo.stallCount,
|
|
34105
|
+
audio_stall_time_per_100sec: ((audioStallInfo === null || audioStallInfo === void 0 ? void 0 : audioStallInfo.stallDuration) || 0) / audioStats.statsInterval * 100,
|
|
34106
|
+
audio_stall_count_per_100sec: ((audioStallInfo === null || audioStallInfo === void 0 ? void 0 : audioStallInfo.stallCount) || 0) / audioStats.statsInterval * 100 * 1e3,
|
|
34107
|
+
video_stall_duration: videoStallInfo === null || videoStallInfo === void 0 ? void 0 : videoStallInfo.stall.stallDuration500ms,
|
|
34108
|
+
video_stall_count: videoStallInfo === null || videoStallInfo === void 0 ? void 0 : videoStallInfo.stall.stallCount500ms,
|
|
34109
|
+
video_stall_duration_100ms: videoStallInfo === null || videoStallInfo === void 0 ? void 0 : videoStallInfo.stall.stallDuration100ms,
|
|
34110
|
+
video_stall_count_100ms: videoStallInfo === null || videoStallInfo === void 0 ? void 0 : videoStallInfo.stall.stallCount100ms,
|
|
34111
|
+
video_stall_time_per_100sec: ((videoStallInfo === null || videoStallInfo === void 0 ? void 0 : videoStallInfo.stall.stallDuration500ms) || 0) / videoStats.statsInterval * 100,
|
|
34112
|
+
video_stall_count_per_100sec: ((videoStallInfo === null || videoStallInfo === void 0 ? void 0 : videoStallInfo.stall.stallCount500ms) || 0) / videoStats.statsInterval * 100 * 1e3,
|
|
34113
|
+
rtt: videoStats.rtt,
|
|
34114
|
+
video_jb_delay: videoStats.jitterBufferDelay,
|
|
34115
|
+
audio_jb_delay: audioStats.jitterBufferDelay,
|
|
34116
|
+
audio_lost_rate: audioStats.audioLossRate,
|
|
34117
|
+
video_lost_rate: videoStats.videoLossRate,
|
|
34118
|
+
video_retransmitted_rate: videoStats.retransmittedRate,
|
|
34119
|
+
quality_audio_level: qualityInfo === null || qualityInfo === void 0 ? void 0 : qualityInfo.audioLevel,
|
|
34120
|
+
quality_video_level: qualityInfo === null || qualityInfo === void 0 ? void 0 : qualityInfo.videoLevel,
|
|
34121
|
+
quality_audio_qos: qualityInfo === null || qualityInfo === void 0 ? void 0 : qualityInfo.audioQos,
|
|
34122
|
+
quality_video_qos: qualityInfo === null || qualityInfo === void 0 ? void 0 : qualityInfo.videoQos,
|
|
34123
|
+
quality_qos: qualityInfo === null || qualityInfo === void 0 ? void 0 : qualityInfo.qualityQos,
|
|
34124
|
+
quality_audio_qoe: qualityInfo === null || qualityInfo === void 0 ? void 0 : qualityInfo.audioQoe,
|
|
34125
|
+
quality_video_qoe: qualityInfo === null || qualityInfo === void 0 ? void 0 : qualityInfo.videoQoe,
|
|
34126
|
+
current_delay: _this7._getDelay(),
|
|
34127
|
+
visibility_state: document.visibilityState,
|
|
34128
|
+
target_delay: _this7._targetDelayHint,
|
|
34129
|
+
av_sync_diff,
|
|
34130
|
+
set_delay_error: _this7._setDelayError || null,
|
|
34131
|
+
video_width: ((_this7$_media = _this7._media) === null || _this7$_media === void 0 ? void 0 : _this7$_media.videoWidth) || 0,
|
|
34132
|
+
video_height: ((_this7$_media2 = _this7._media) === null || _this7$_media2 === void 0 ? void 0 : _this7$_media2.videoHeight) || 0,
|
|
34133
|
+
abr_state: videoStats.abrState || "none",
|
|
34134
|
+
recv_frame_rate: videoStats.receivedFrameRate,
|
|
34135
|
+
decode_frame_rate: videoStats.decoderOutputFrameRate,
|
|
34136
|
+
pli: videoStats.pliCount,
|
|
34137
|
+
drop_frame_rate: videoStats.framesDropped,
|
|
34138
|
+
audio_packets_received: audioStats.packetsReceived,
|
|
34139
|
+
video_packets_received: videoStats.packetsReceived,
|
|
34140
|
+
video_muted: (_this7$_media3 = _this7._media) === null || _this7$_media3 === void 0 ? void 0 : _this7$_media3.muted,
|
|
34141
|
+
video_paused: (_this7$_media4 = _this7._media) === null || _this7$_media4 === void 0 ? void 0 : _this7$_media4.paused,
|
|
34142
|
+
video_volume: (_this7$_media5 = _this7._media) === null || _this7$_media5 === void 0 ? void 0 : _this7$_media5.volume,
|
|
34143
|
+
video_current_time: (_this7$_media6 = _this7._media) === null || _this7$_media6 === void 0 ? void 0 : _this7$_media6.currentTime
|
|
34144
|
+
}, ((_this7$_frameRecvCall2 = _this7._frameRecvCallback) === null || _this7$_frameRecvCall2 === void 0 ? void 0 : _this7$_frameRecvCall2.getRecentRenderInfo4Report()) || {}));
|
|
34145
|
+
case 28:
|
|
34146
|
+
_this7._preAudioStats = curAudioStats;
|
|
34147
|
+
_this7._preVideoStats = curVideoStats;
|
|
34148
|
+
_this7._setDelayError = null;
|
|
34149
|
+
case 31:
|
|
34150
|
+
case "end":
|
|
34151
|
+
return _context9.stop();
|
|
34152
|
+
}
|
|
34153
|
+
}, _callee9);
|
|
34154
|
+
}));
|
|
34155
|
+
return function report2() {
|
|
34156
|
+
return _ref52.apply(this, arguments);
|
|
34157
|
+
};
|
|
34158
|
+
}();
|
|
34159
|
+
this._rtcReportTimer = setInterval(function() {
|
|
34160
|
+
return report();
|
|
34161
|
+
}, 2e3);
|
|
34162
|
+
report();
|
|
33542
34163
|
}
|
|
33543
34164
|
}, {
|
|
33544
34165
|
key: "_handleJitterBuffer",
|
|
33545
34166
|
value: function _handleJitterBuffer(quality, adaptiveJitterBuffer, networkStrategy) {
|
|
34167
|
+
if (!adaptiveJitterBuffer || !networkStrategy) {
|
|
34168
|
+
return;
|
|
34169
|
+
}
|
|
33546
34170
|
this._networkQualityResult.push(quality);
|
|
33547
34171
|
if (this._networkQualityResult.length > adaptiveJitterBuffer.networkWindow) {
|
|
33548
34172
|
this._networkQualityResult.shift();
|
|
33549
34173
|
}
|
|
33550
|
-
var validNetworkQualityResult = this._networkQualityResult.filter(
|
|
34174
|
+
var validNetworkQualityResult = this._networkQualityResult.filter(function(v2) {
|
|
34175
|
+
return typeof v2 === "number";
|
|
34176
|
+
});
|
|
33551
34177
|
if (validNetworkQualityResult.length === adaptiveJitterBuffer.networkWindow) {
|
|
33552
34178
|
var _networkStrategy$aver;
|
|
33553
34179
|
var averageQuality;
|
|
@@ -33571,13 +34197,15 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33571
34197
|
}, {
|
|
33572
34198
|
key: "_stopRtcReport",
|
|
33573
34199
|
value: function _stopRtcReport() {
|
|
33574
|
-
var _this$_audioStallObse, _this$_videoStallObse, _this$_networkQuality;
|
|
34200
|
+
var _this$_audioStallObse, _this$_videoStallObse, _this$_frameRecvCallb, _this$_networkQuality;
|
|
33575
34201
|
(_this$_audioStallObse = this._audioStallObserver) === null || _this$_audioStallObse === void 0 ? void 0 : _this$_audioStallObse.destroy();
|
|
33576
34202
|
(_this$_videoStallObse = this._videoStallObserver) === null || _this$_videoStallObse === void 0 ? void 0 : _this$_videoStallObse.destroy();
|
|
34203
|
+
(_this$_frameRecvCallb = this._frameRecvCallback) === null || _this$_frameRecvCallb === void 0 ? void 0 : _this$_frameRecvCallb.stop();
|
|
34204
|
+
delete this._frameRecvCallback;
|
|
33577
34205
|
(_this$_networkQuality = this._networkQuality) === null || _this$_networkQuality === void 0 ? void 0 : _this$_networkQuality.destroy();
|
|
33578
|
-
this._audioStallObserver
|
|
33579
|
-
this._videoStallObserver
|
|
33580
|
-
this._networkQuality
|
|
34206
|
+
delete this._audioStallObserver;
|
|
34207
|
+
delete this._videoStallObserver;
|
|
34208
|
+
delete this._networkQuality;
|
|
33581
34209
|
this._preAudioStats = null;
|
|
33582
34210
|
this._preVideoStats = null;
|
|
33583
34211
|
if (this._rtcReportTimer) {
|
|
@@ -33585,60 +34213,89 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33585
34213
|
this._rtcReportTimer = 0;
|
|
33586
34214
|
}
|
|
33587
34215
|
}
|
|
34216
|
+
}, {
|
|
34217
|
+
key: "_clearDelay",
|
|
34218
|
+
value: function _clearDelay() {
|
|
34219
|
+
if (this._setDelayTimer) {
|
|
34220
|
+
clearInterval(this._setDelayTimer);
|
|
34221
|
+
delete this._setDelayTimer;
|
|
34222
|
+
}
|
|
34223
|
+
this._targetDelayHint = null;
|
|
34224
|
+
this._setDelayError = null;
|
|
34225
|
+
}
|
|
33588
34226
|
}, {
|
|
33589
34227
|
key: "_disconnect",
|
|
33590
|
-
value: function _disconnect() {
|
|
33591
|
-
var _this$
|
|
33592
|
-
|
|
34228
|
+
value: function _disconnect(reason) {
|
|
34229
|
+
var _this$_loader2, _this$_networkEvaluat2;
|
|
34230
|
+
this._clearDelay();
|
|
34231
|
+
this._clearMediaSrc();
|
|
34232
|
+
(_this$_loader2 = this._loader) === null || _this$_loader2 === void 0 ? void 0 : _this$_loader2.cancel();
|
|
33593
34233
|
(_this$_networkEvaluat2 = this._networkEvaluate) === null || _this$_networkEvaluat2 === void 0 ? void 0 : _this$_networkEvaluat2.destroy();
|
|
33594
34234
|
this._stopRtcReport();
|
|
33595
34235
|
clearTimeout(this._checkStatsErrorTimer);
|
|
33596
34236
|
this._clearPeerStateTimeout();
|
|
34237
|
+
this._firstFrameObserver.setFailureReason(reason);
|
|
34238
|
+
this._firstFrameObserver.reset();
|
|
33597
34239
|
this._audioTransceicer = null;
|
|
33598
34240
|
this._videoTransceicer = null;
|
|
33599
34241
|
this._mediaStream = null;
|
|
33600
|
-
|
|
34242
|
+
}
|
|
34243
|
+
}, {
|
|
34244
|
+
key: "_clearMediaSrc",
|
|
34245
|
+
value: function _clearMediaSrc() {
|
|
34246
|
+
if (this._media) {
|
|
34247
|
+
this._media.srcObject = null;
|
|
34248
|
+
this._media.removeAttribute("src");
|
|
34249
|
+
}
|
|
33601
34250
|
}
|
|
33602
34251
|
}, {
|
|
33603
34252
|
key: "_emitError",
|
|
33604
34253
|
value: function _emitError(error) {
|
|
34254
|
+
var _error$originError;
|
|
34255
|
+
logger$b.warn(error);
|
|
34256
|
+
this._clearDelay();
|
|
34257
|
+
this._firstFrameObserver.setFailureReason((error === null || error === void 0 ? void 0 : (_error$originError = error.originError) === null || _error$originError === void 0 ? void 0 : _error$originError.message) || (error === null || error === void 0 ? void 0 : error.originError) || error);
|
|
34258
|
+
this._firstFrameObserver.reset();
|
|
33605
34259
|
this.emit(EVENT$2.ERROR, error);
|
|
33606
34260
|
clearTimeout(this._checkStatsErrorTimer);
|
|
33607
34261
|
this._clearPeerStateTimeout();
|
|
33608
34262
|
if (this._pc) {
|
|
33609
34263
|
this._pc.close();
|
|
33610
|
-
|
|
33611
|
-
this._media.srcObject = null;
|
|
33612
|
-
this._media.removeAttribute("src");
|
|
33613
|
-
}
|
|
34264
|
+
this._clearMediaSrc();
|
|
33614
34265
|
}
|
|
33615
34266
|
}
|
|
33616
34267
|
}, {
|
|
33617
34268
|
key: "_createEmptyPeer",
|
|
33618
34269
|
value: function() {
|
|
33619
|
-
var _createEmptyPeer2 = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function
|
|
34270
|
+
var _createEmptyPeer2 = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee10() {
|
|
33620
34271
|
var pc;
|
|
33621
|
-
return _regeneratorRuntime$a().wrap(function
|
|
34272
|
+
return _regeneratorRuntime$a().wrap(function _callee10$(_context10) {
|
|
33622
34273
|
while (1)
|
|
33623
|
-
switch (
|
|
34274
|
+
switch (_context10.prev = _context10.next) {
|
|
33624
34275
|
case 0:
|
|
33625
34276
|
pc = new RTCPeerConnection();
|
|
33626
|
-
|
|
34277
|
+
_context10.next = 3;
|
|
33627
34278
|
return pc.createOffer();
|
|
33628
34279
|
case 3:
|
|
33629
34280
|
pc.close();
|
|
33630
|
-
|
|
33631
|
-
case 5:
|
|
34281
|
+
case 4:
|
|
33632
34282
|
case "end":
|
|
33633
|
-
return
|
|
34283
|
+
return _context10.stop();
|
|
33634
34284
|
}
|
|
33635
|
-
},
|
|
34285
|
+
}, _callee10);
|
|
33636
34286
|
}));
|
|
33637
34287
|
function _createEmptyPeer() {
|
|
33638
34288
|
return _createEmptyPeer2.apply(this, arguments);
|
|
33639
34289
|
}
|
|
33640
34290
|
return _createEmptyPeer;
|
|
33641
34291
|
}()
|
|
34292
|
+
}, {
|
|
34293
|
+
key: "_emitFirstFrameState",
|
|
34294
|
+
value: function _emitFirstFrameState(info, extra) {
|
|
34295
|
+
this.emit(EXTEND_EVENTS.RTC_FIRST_FRAME, _objectSpread2$b(_objectSpread2$b(_objectSpread2$b({}, info), extra), {}, {
|
|
34296
|
+
initOptionsIncludePreload: !!this._opts.preloadPromise
|
|
34297
|
+
}));
|
|
34298
|
+
}
|
|
33642
34299
|
}, {
|
|
33643
34300
|
key: "_changeVolumeInHarmonyWorkaround",
|
|
33644
34301
|
value: function _changeVolumeInHarmonyWorkaround() {
|
|
@@ -33652,7 +34309,8 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33652
34309
|
enumerable: true,
|
|
33653
34310
|
get: originalDescriptor.get,
|
|
33654
34311
|
set: function set5(val) {
|
|
33655
|
-
|
|
34312
|
+
var _originalDescriptor$s;
|
|
34313
|
+
(_originalDescriptor$s = originalDescriptor.set) === null || _originalDescriptor$s === void 0 ? void 0 : _originalDescriptor$s.call(this, val);
|
|
33656
34314
|
var _changeNumberInRange = changeNumberInRange(this.volume, 0, 1, 0.01), _changeNumberInRange2 = _slicedToArray$7(_changeNumberInRange, 2), sourceVolume = _changeNumberInRange2[0], targetVolume = _changeNumberInRange2[1];
|
|
33657
34315
|
this.volume = targetVolume;
|
|
33658
34316
|
this.volume = sourceVolume;
|
|
@@ -33668,14 +34326,47 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33668
34326
|
}
|
|
33669
34327
|
}
|
|
33670
34328
|
}
|
|
34329
|
+
}, {
|
|
34330
|
+
key: "_mutedBeforePlayingWorkaround",
|
|
34331
|
+
value: function _mutedBeforePlayingWorkaround() {
|
|
34332
|
+
var _this9 = this;
|
|
34333
|
+
if (isHeyTapBrowser() || isVivoBrowser()) {
|
|
34334
|
+
var originalDescriptor = Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype, "muted");
|
|
34335
|
+
if (this._media && originalDescriptor) {
|
|
34336
|
+
logger$b.log("apply muted workaround for vivo & oppo");
|
|
34337
|
+
var originalMuted = this._media.muted;
|
|
34338
|
+
this._media.muted = true;
|
|
34339
|
+
Object.defineProperty(this._media, "muted", {
|
|
34340
|
+
configurable: true,
|
|
34341
|
+
enumerable: true,
|
|
34342
|
+
get: function get4() {
|
|
34343
|
+
return originalMuted;
|
|
34344
|
+
},
|
|
34345
|
+
set: function set5(val) {
|
|
34346
|
+
logger$b.log("muted workaround. set muted =", val);
|
|
34347
|
+
originalMuted = val;
|
|
34348
|
+
}
|
|
34349
|
+
});
|
|
34350
|
+
var revertMutedProxy = function revertMutedProxy2() {
|
|
34351
|
+
logger$b.log("revert muted workaround. muted:", originalMuted);
|
|
34352
|
+
if (_this9._media) {
|
|
34353
|
+
Object.defineProperty(_this9._media, "muted", originalDescriptor);
|
|
34354
|
+
_this9._media.muted = originalMuted;
|
|
34355
|
+
_this9._media.removeEventListener("playing", revertMutedProxy2);
|
|
34356
|
+
}
|
|
34357
|
+
};
|
|
34358
|
+
this._media.addEventListener("playing", revertMutedProxy);
|
|
34359
|
+
}
|
|
34360
|
+
}
|
|
34361
|
+
}
|
|
33671
34362
|
}, {
|
|
33672
34363
|
key: "destroy",
|
|
33673
34364
|
value: function destroy(keepClearMediaStream) {
|
|
33674
|
-
var _this$_revertVolumeWo, _this$
|
|
33675
|
-
this._disconnect();
|
|
34365
|
+
var _this$_revertVolumeWo, _this$_media3;
|
|
34366
|
+
this._disconnect("invoke destroy");
|
|
33676
34367
|
(_this$_revertVolumeWo = this._revertVolumeWorkaround) === null || _this$_revertVolumeWo === void 0 ? void 0 : _this$_revertVolumeWo.call(this);
|
|
33677
34368
|
delete this._revertVolumeWorkaround;
|
|
33678
|
-
(_this$
|
|
34369
|
+
(_this$_media3 = this._media) === null || _this$_media3 === void 0 ? void 0 : _this$_media3.removeEventListener("timeupdate", this._mockWaitingByTimeupdate);
|
|
33679
34370
|
if (this._media && !keepClearMediaStream) {
|
|
33680
34371
|
this._media.srcObject = null;
|
|
33681
34372
|
}
|
|
@@ -33686,7 +34377,6 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33686
34377
|
this._media = null;
|
|
33687
34378
|
this._player = null;
|
|
33688
34379
|
this._pc = null;
|
|
33689
|
-
this._opts = null;
|
|
33690
34380
|
}
|
|
33691
34381
|
}], [{
|
|
33692
34382
|
key: "enableLogger",
|
|
@@ -33715,15 +34405,11 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33715
34405
|
function RtsPlugin2() {
|
|
33716
34406
|
var _this;
|
|
33717
34407
|
_classCallCheck$k(this, RtsPlugin2);
|
|
33718
|
-
|
|
33719
|
-
|
|
33720
|
-
|
|
33721
|
-
_this =
|
|
33722
|
-
|
|
33723
|
-
_defineProperty$i(_assertThisInitialized$f(_this), "_mediaStream", null);
|
|
33724
|
-
_defineProperty$i(_assertThisInitialized$f(_this), "_disconnectTimer", void 0);
|
|
33725
|
-
_defineProperty$i(_assertThisInitialized$f(_this), "_rtsOpts", null);
|
|
33726
|
-
_defineProperty$i(_assertThisInitialized$f(_this), "_onPause", function() {
|
|
34408
|
+
_this = _super.apply(this, arguments);
|
|
34409
|
+
_this._rts = null;
|
|
34410
|
+
_this._rtsOpts = null;
|
|
34411
|
+
_this._mediaStream = null;
|
|
34412
|
+
_this._onPause = function() {
|
|
33727
34413
|
if (_this._disconnectTimer) {
|
|
33728
34414
|
return;
|
|
33729
34415
|
}
|
|
@@ -33731,8 +34417,8 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33731
34417
|
_this._closeAfterPause();
|
|
33732
34418
|
_this._clearDisconnectTimer();
|
|
33733
34419
|
}, _this.config.disconnectTime * 1e3);
|
|
33734
|
-
}
|
|
33735
|
-
|
|
34420
|
+
};
|
|
34421
|
+
_this._reInit = function() {
|
|
33736
34422
|
var _this$_rts;
|
|
33737
34423
|
_this._clearDisconnectTimer();
|
|
33738
34424
|
if ((_this$_rts = _this._rts) !== null && _this$_rts !== void 0 && _this$_rts._pc) {
|
|
@@ -33740,8 +34426,8 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33740
34426
|
}
|
|
33741
34427
|
_this._init();
|
|
33742
34428
|
_this._bindRtsEvents();
|
|
33743
|
-
}
|
|
33744
|
-
|
|
34429
|
+
};
|
|
34430
|
+
_this._init = function() {
|
|
33745
34431
|
var _this$_rts2;
|
|
33746
34432
|
(_this$_rts2 = _this._rts) === null || _this$_rts2 === void 0 ? void 0 : _this$_rts2.destroy();
|
|
33747
34433
|
var config2 = _this.player.config;
|
|
@@ -33760,9 +34446,11 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33760
34446
|
}
|
|
33761
34447
|
}, rtsOpts));
|
|
33762
34448
|
_this._rts.load(config2.url);
|
|
33763
|
-
}
|
|
33764
|
-
|
|
33765
|
-
if (url2) {
|
|
34449
|
+
};
|
|
34450
|
+
_this._onSwitchURL = function(url2) {
|
|
34451
|
+
if (url2.startsWith("blob:") || url2 === "") {
|
|
34452
|
+
url2 = _this.player.config.url;
|
|
34453
|
+
} else if (url2) {
|
|
33766
34454
|
_this.player.config.url = url2;
|
|
33767
34455
|
}
|
|
33768
34456
|
if (_this._rts) {
|
|
@@ -33770,14 +34458,25 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33770
34458
|
} else {
|
|
33771
34459
|
_this._reInit();
|
|
33772
34460
|
}
|
|
33773
|
-
}
|
|
33774
|
-
|
|
34461
|
+
};
|
|
34462
|
+
_this.__retry = function() {
|
|
34463
|
+
_this.player.removeClass(STATE_CLASS$1.ERROR);
|
|
34464
|
+
_this.player.addClass(STATE_CLASS$1.LOADING);
|
|
34465
|
+
runHooks$1(_assertThisInitialized$f(_this), "retry", function() {
|
|
34466
|
+
_this.player.src = "";
|
|
34467
|
+
_this.player.once(CANPLAY, function() {
|
|
34468
|
+
_this.player.mediaPlay();
|
|
34469
|
+
});
|
|
34470
|
+
});
|
|
34471
|
+
};
|
|
34472
|
+
_this.destroy = function() {
|
|
33775
34473
|
var _this$_rts3;
|
|
33776
34474
|
_this.player.switchURL = _this._originSwitchFn;
|
|
34475
|
+
_this.player.retry = _this._originRetry;
|
|
33777
34476
|
_this._clearDisconnectTimer();
|
|
33778
34477
|
(_this$_rts3 = _this._rts) === null || _this$_rts3 === void 0 ? void 0 : _this$_rts3.destroy();
|
|
33779
34478
|
_this._rts = null;
|
|
33780
|
-
}
|
|
34479
|
+
};
|
|
33781
34480
|
return _this;
|
|
33782
34481
|
}
|
|
33783
34482
|
_createClass$k(RtsPlugin2, [{
|
|
@@ -33787,32 +34486,38 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33787
34486
|
return (_this$_rts4 = this._rts) === null || _this$_rts4 === void 0 ? void 0 : _this$_rts4.pc;
|
|
33788
34487
|
}
|
|
33789
34488
|
}, {
|
|
33790
|
-
key: "
|
|
34489
|
+
key: "jitterBufferDelay",
|
|
33791
34490
|
get: function get4() {
|
|
33792
34491
|
var _this$_rts5;
|
|
33793
|
-
return (_this$_rts5 = this._rts) === null || _this$_rts5 === void 0 ? void 0 : _this$_rts5.
|
|
34492
|
+
return ((_this$_rts5 = this._rts) === null || _this$_rts5 === void 0 ? void 0 : _this$_rts5.getJitterBufferDelay()) || 0;
|
|
33794
34493
|
}
|
|
33795
34494
|
}, {
|
|
33796
|
-
key: "
|
|
34495
|
+
key: "loader",
|
|
33797
34496
|
get: function get4() {
|
|
33798
34497
|
var _this$_rts6;
|
|
33799
|
-
return (_this$_rts6 = this._rts) === null || _this$_rts6 === void 0 ? void 0 : _this$_rts6.
|
|
34498
|
+
return (_this$_rts6 = this._rts) === null || _this$_rts6 === void 0 ? void 0 : _this$_rts6.loader;
|
|
33800
34499
|
}
|
|
33801
34500
|
}, {
|
|
33802
|
-
key: "
|
|
34501
|
+
key: "videoTrack",
|
|
33803
34502
|
get: function get4() {
|
|
33804
|
-
|
|
34503
|
+
var _this$_rts7;
|
|
34504
|
+
return (_this$_rts7 = this._rts) === null || _this$_rts7 === void 0 ? void 0 : _this$_rts7.videoTack;
|
|
33805
34505
|
}
|
|
33806
34506
|
}, {
|
|
33807
|
-
key: "
|
|
34507
|
+
key: "audioTrack",
|
|
33808
34508
|
get: function get4() {
|
|
33809
|
-
var _this$
|
|
33810
|
-
return (_this$
|
|
34509
|
+
var _this$_rts8;
|
|
34510
|
+
return (_this$_rts8 = this._rts) === null || _this$_rts8 === void 0 ? void 0 : _this$_rts8.audioTrack;
|
|
34511
|
+
}
|
|
34512
|
+
}, {
|
|
34513
|
+
key: "core",
|
|
34514
|
+
get: function get4() {
|
|
34515
|
+
return this._rts;
|
|
33811
34516
|
}
|
|
33812
34517
|
}, {
|
|
33813
34518
|
key: "version",
|
|
33814
34519
|
get: function get4() {
|
|
33815
|
-
return "0.2.1-alpha.
|
|
34520
|
+
return "0.2.1-alpha.53";
|
|
33816
34521
|
}
|
|
33817
34522
|
}, {
|
|
33818
34523
|
key: "beforePlayerInit",
|
|
@@ -33820,9 +34525,15 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33820
34525
|
var _this$player2, _this$player$config, _this$player$config$r, _this2 = this;
|
|
33821
34526
|
this._init();
|
|
33822
34527
|
if (!this._originSwitchFn) {
|
|
33823
|
-
|
|
34528
|
+
var _this$player$switchUR;
|
|
34529
|
+
this._originSwitchFn = (_this$player$switchUR = this.player.switchURL) === null || _this$player$switchUR === void 0 ? void 0 : _this$player$switchUR.bind(this.player);
|
|
34530
|
+
}
|
|
34531
|
+
if (!this._originRetry) {
|
|
34532
|
+
var _this$player$retry;
|
|
34533
|
+
this._originRetry = (_this$player$retry = this.player.retry) === null || _this$player$retry === void 0 ? void 0 : _this$player$retry.bind(this.player);
|
|
33824
34534
|
}
|
|
33825
34535
|
this.player.switchURL = this._onSwitchURL;
|
|
34536
|
+
this.player.retry = this.__retry;
|
|
33826
34537
|
(_this$player2 = this.player) === null || _this$player2 === void 0 ? void 0 : _this$player2.useHooks("replay", this._onSwitchURL);
|
|
33827
34538
|
this.on(URL_CHANGE, this._onSwitchURL);
|
|
33828
34539
|
this.on(DESTROY, this.destroy);
|
|
@@ -33852,6 +34563,7 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33852
34563
|
if (!((_this2$player = _this2.player) !== null && _this2$player !== void 0 && (_this2$player$video = _this2$player.video) !== null && _this2$player$video !== void 0 && _this2$player$video.srcObject)) {
|
|
33853
34564
|
_this2.player.video.srcObject = new MediaStream();
|
|
33854
34565
|
}
|
|
34566
|
+
return "";
|
|
33855
34567
|
}
|
|
33856
34568
|
}
|
|
33857
34569
|
}
|
|
@@ -33862,26 +34574,26 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33862
34574
|
}, {
|
|
33863
34575
|
key: "getStats",
|
|
33864
34576
|
value: function getStats2() {
|
|
33865
|
-
var _this$
|
|
33866
|
-
return (_this$
|
|
34577
|
+
var _this$_rts9;
|
|
34578
|
+
return (_this$_rts9 = this._rts) === null || _this$_rts9 === void 0 ? void 0 : _this$_rts9.getStats();
|
|
33867
34579
|
}
|
|
33868
34580
|
}, {
|
|
33869
34581
|
key: "getStatsSnapshoot",
|
|
33870
34582
|
value: function getStatsSnapshoot2() {
|
|
33871
|
-
var _this$
|
|
33872
|
-
return (_this$
|
|
34583
|
+
var _this$_rts10;
|
|
34584
|
+
return (_this$_rts10 = this._rts) === null || _this$_rts10 === void 0 ? void 0 : _this$_rts10.getStatsSnapshoot();
|
|
33873
34585
|
}
|
|
33874
34586
|
}, {
|
|
33875
34587
|
key: "getNetWorkInfo",
|
|
33876
34588
|
value: function getNetWorkInfo() {
|
|
33877
|
-
var _this$
|
|
33878
|
-
return (_this$
|
|
34589
|
+
var _this$_rts11;
|
|
34590
|
+
return (_this$_rts11 = this._rts) === null || _this$_rts11 === void 0 ? void 0 : _this$_rts11.networkStats;
|
|
33879
34591
|
}
|
|
33880
34592
|
}, {
|
|
33881
34593
|
key: "setDelay",
|
|
33882
34594
|
value: function setDelay(delayHint) {
|
|
33883
|
-
var _this$
|
|
33884
|
-
(_this$
|
|
34595
|
+
var _this$_rts12;
|
|
34596
|
+
(_this$_rts12 = this._rts) === null || _this$_rts12 === void 0 ? void 0 : _this$_rts12._setDelay(delayHint);
|
|
33885
34597
|
}
|
|
33886
34598
|
}, {
|
|
33887
34599
|
key: "_clearDisconnectTimer",
|
|
@@ -33892,15 +34604,15 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33892
34604
|
}, {
|
|
33893
34605
|
key: "_closeAfterPause",
|
|
33894
34606
|
value: function _closeAfterPause() {
|
|
33895
|
-
var _this$
|
|
33896
|
-
if (!((_this$
|
|
34607
|
+
var _this$_rts13, _this$config, _this$_rts15;
|
|
34608
|
+
if (!((_this$_rts13 = this._rts) !== null && _this$_rts13 !== void 0 && _this$_rts13._pc)) {
|
|
33897
34609
|
return;
|
|
33898
34610
|
}
|
|
33899
34611
|
if ((_this$config = this.config) !== null && _this$config !== void 0 && _this$config.seamlesslyReload) {
|
|
33900
|
-
var _this$
|
|
33901
|
-
this._mediaStream = (_this$
|
|
34612
|
+
var _this$_rts14;
|
|
34613
|
+
this._mediaStream = (_this$_rts14 = this._rts) === null || _this$_rts14 === void 0 ? void 0 : _this$_rts14._mediaStream;
|
|
33902
34614
|
}
|
|
33903
|
-
(_this$
|
|
34615
|
+
(_this$_rts15 = this._rts) === null || _this$_rts15 === void 0 ? void 0 : _this$_rts15.destroy(true);
|
|
33904
34616
|
this._rts = null;
|
|
33905
34617
|
}
|
|
33906
34618
|
}, {
|
|
@@ -33916,16 +34628,17 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33916
34628
|
this._transCoreEvent(EVENT$2.SEI);
|
|
33917
34629
|
this._transCoreEvent(EXTEND_EVENTS.RTC_STATE_CHANGE);
|
|
33918
34630
|
this._transCoreEvent(EXTEND_EVENTS.RTC_NETWORK);
|
|
34631
|
+
this._transCoreEvent(EXTEND_EVENTS.RTC_FIRST_FRAME);
|
|
33919
34632
|
}
|
|
33920
34633
|
}, {
|
|
33921
34634
|
key: "_transErrorEvent",
|
|
33922
34635
|
value: function _transErrorEvent() {
|
|
33923
|
-
var _this3 = this;
|
|
33924
|
-
this._rts.on(EVENT$2.ERROR, function(err) {
|
|
34636
|
+
var _this$_rts16, _this3 = this, _this$_rts17;
|
|
34637
|
+
(_this$_rts16 = this._rts) === null || _this$_rts16 === void 0 ? void 0 : _this$_rts16.on(EVENT$2.ERROR, function(err) {
|
|
33925
34638
|
if (!_this3.player)
|
|
33926
34639
|
return;
|
|
33927
34640
|
var e4 = new Errors(_this3.player, err);
|
|
33928
|
-
var
|
|
34641
|
+
var _ref6 = _this3._rtsOpts || {}, backupConstruct = _ref6.backupConstruct, backupURL = _ref6.backupURL;
|
|
33929
34642
|
if (backupURL) {
|
|
33930
34643
|
var _player$video;
|
|
33931
34644
|
var player = _this3.player;
|
|
@@ -33945,6 +34658,7 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33945
34658
|
});
|
|
33946
34659
|
player.unRegisterPlugin("rts");
|
|
33947
34660
|
player.switchURL = _this3._originSwitchFn;
|
|
34661
|
+
player.retry = _this3._originRetry;
|
|
33948
34662
|
_this3._rts = null;
|
|
33949
34663
|
player.rts = null;
|
|
33950
34664
|
if ((_player$video = player.video) !== null && _player$video !== void 0 && _player$video.srcObject) {
|
|
@@ -33961,7 +34675,7 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33961
34675
|
}
|
|
33962
34676
|
_this3.player.emit(ERROR$1, e4);
|
|
33963
34677
|
});
|
|
33964
|
-
this._rts.on("waiting", function() {
|
|
34678
|
+
(_this$_rts17 = this._rts) === null || _this$_rts17 === void 0 ? void 0 : _this$_rts17.on("waiting", function() {
|
|
33965
34679
|
var _this3$player;
|
|
33966
34680
|
(_this3$player = _this3.player) === null || _this3$player === void 0 ? void 0 : _this3$player.emit("waiting");
|
|
33967
34681
|
});
|
|
@@ -33969,8 +34683,8 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33969
34683
|
}, {
|
|
33970
34684
|
key: "_transCoreEvent",
|
|
33971
34685
|
value: function _transCoreEvent(eventName) {
|
|
33972
|
-
var _this4 = this;
|
|
33973
|
-
this._rts.on(eventName, function(e4) {
|
|
34686
|
+
var _this$_rts18, _this4 = this;
|
|
34687
|
+
(_this$_rts18 = this._rts) === null || _this$_rts18 === void 0 ? void 0 : _this$_rts18.on(eventName, function(e4) {
|
|
33974
34688
|
if (_this4.player) {
|
|
33975
34689
|
_this4.player.emit("core_event", _objectSpread2$b(_objectSpread2$b({}, e4), {}, {
|
|
33976
34690
|
eventName
|
|
@@ -34008,7 +34722,8 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
34008
34722
|
case 3:
|
|
34009
34723
|
res = _context.sent;
|
|
34010
34724
|
hasH264 = (_res$video = res.video) === null || _res$video === void 0 ? void 0 : _res$video.filter(function(x2) {
|
|
34011
|
-
|
|
34725
|
+
var _x$config;
|
|
34726
|
+
return x2.codec === "H264" && (!targetProfileLevel || ((_x$config = x2.config) === null || _x$config === void 0 ? void 0 : _x$config.indexOf(targetProfileLevel)) !== -1);
|
|
34012
34727
|
}).length;
|
|
34013
34728
|
if (hasH264) {
|
|
34014
34729
|
_context.next = 10;
|
|
@@ -34019,7 +34734,8 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
34019
34734
|
case 8:
|
|
34020
34735
|
res1 = _context.sent;
|
|
34021
34736
|
hasH264 = (_res1$video = res1.video) === null || _res1$video === void 0 ? void 0 : _res1$video.filter(function(x2) {
|
|
34022
|
-
|
|
34737
|
+
var _x$config2;
|
|
34738
|
+
return x2.codec === "H264" && (!targetProfileLevel || ((_x$config2 = x2.config) === null || _x$config2 === void 0 ? void 0 : _x$config2.indexOf(targetProfileLevel)) !== -1);
|
|
34023
34739
|
}).length;
|
|
34024
34740
|
case 10:
|
|
34025
34741
|
return _context.abrupt("return", !!hasH264);
|