@volcengine/veplayer-plugin 2.10.0-rc.2 → 2.10.1
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 +1038 -440
- package/esm/index.production.js +1 -1
- package/esm/veplayer.plugin.rtm.development.js +1037 -439
- package/esm/veplayer.plugin.rtm.production.js +1 -1
- package/package.json +1 -1
- package/umd/veplayer.plugin.rtm.development.js +1037 -439
- package/umd/veplayer.plugin.rtm.production.js +1 -1
package/esm/index.development.js
CHANGED
|
@@ -2854,7 +2854,7 @@ function _arrayLikeToArray$f(arr, len) {
|
|
|
2854
2854
|
arr2[i2] = arr[i2];
|
|
2855
2855
|
return arr2;
|
|
2856
2856
|
}
|
|
2857
|
-
function _createForOfIteratorHelper$
|
|
2857
|
+
function _createForOfIteratorHelper$5(o2, allowArrayLike) {
|
|
2858
2858
|
var it = typeof Symbol !== "undefined" && o2[Symbol.iterator] || o2["@@iterator"];
|
|
2859
2859
|
if (!it) {
|
|
2860
2860
|
if (Array.isArray(o2) || (it = _unsupportedIterableToArray$f(o2)) || allowArrayLike && o2 && typeof o2.length === "number") {
|
|
@@ -4990,7 +4990,7 @@ var XhrLoader$4 = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
4990
4990
|
value: function _getHeaders(xhr) {
|
|
4991
4991
|
var headerLines = xhr.getAllResponseHeaders().trim().split("\r\n");
|
|
4992
4992
|
var headers = {};
|
|
4993
|
-
var _iterator = _createForOfIteratorHelper$
|
|
4993
|
+
var _iterator = _createForOfIteratorHelper$5(headerLines), _step;
|
|
4994
4994
|
try {
|
|
4995
4995
|
for (_iterator.s(); !(_step = _iterator.n()).done; ) {
|
|
4996
4996
|
var header = _step.value;
|
|
@@ -28067,6 +28067,60 @@ function _nonIterableSpread$9() {
|
|
|
28067
28067
|
function _nonIterableRest$7() {
|
|
28068
28068
|
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
28069
|
}
|
|
28070
|
+
function _createForOfIteratorHelper$4(o2, allowArrayLike) {
|
|
28071
|
+
var it = typeof Symbol !== "undefined" && o2[Symbol.iterator] || o2["@@iterator"];
|
|
28072
|
+
if (!it) {
|
|
28073
|
+
if (Array.isArray(o2) || (it = _unsupportedIterableToArray$d(o2)) || allowArrayLike && o2 && typeof o2.length === "number") {
|
|
28074
|
+
if (it)
|
|
28075
|
+
o2 = it;
|
|
28076
|
+
var i2 = 0;
|
|
28077
|
+
var F2 = function() {
|
|
28078
|
+
};
|
|
28079
|
+
return {
|
|
28080
|
+
s: F2,
|
|
28081
|
+
n: function() {
|
|
28082
|
+
if (i2 >= o2.length)
|
|
28083
|
+
return {
|
|
28084
|
+
done: true
|
|
28085
|
+
};
|
|
28086
|
+
return {
|
|
28087
|
+
done: false,
|
|
28088
|
+
value: o2[i2++]
|
|
28089
|
+
};
|
|
28090
|
+
},
|
|
28091
|
+
e: function(e4) {
|
|
28092
|
+
throw e4;
|
|
28093
|
+
},
|
|
28094
|
+
f: F2
|
|
28095
|
+
};
|
|
28096
|
+
}
|
|
28097
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
28098
|
+
}
|
|
28099
|
+
var normalCompletion = true, didErr = false, err;
|
|
28100
|
+
return {
|
|
28101
|
+
s: function() {
|
|
28102
|
+
it = it.call(o2);
|
|
28103
|
+
},
|
|
28104
|
+
n: function() {
|
|
28105
|
+
var step = it.next();
|
|
28106
|
+
normalCompletion = step.done;
|
|
28107
|
+
return step;
|
|
28108
|
+
},
|
|
28109
|
+
e: function(e4) {
|
|
28110
|
+
didErr = true;
|
|
28111
|
+
err = e4;
|
|
28112
|
+
},
|
|
28113
|
+
f: function() {
|
|
28114
|
+
try {
|
|
28115
|
+
if (!normalCompletion && it.return != null)
|
|
28116
|
+
it.return();
|
|
28117
|
+
} finally {
|
|
28118
|
+
if (didErr)
|
|
28119
|
+
throw err;
|
|
28120
|
+
}
|
|
28121
|
+
}
|
|
28122
|
+
};
|
|
28123
|
+
}
|
|
28070
28124
|
function _toPrimitive$b(input, hint) {
|
|
28071
28125
|
if (typeof input !== "object" || input === null)
|
|
28072
28126
|
return input;
|
|
@@ -30248,10 +30302,28 @@ var NetLoader$2 = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
30248
30302
|
}]);
|
|
30249
30303
|
return NetLoader2;
|
|
30250
30304
|
}(EventEmitter$2);
|
|
30251
|
-
var EXTEND_EVENTS = {
|
|
30252
|
-
RTC_STATE_CHANGE
|
|
30253
|
-
RTC_NETWORK
|
|
30254
|
-
|
|
30305
|
+
var EXTEND_EVENTS = /* @__PURE__ */ function(EXTEND_EVENTS2) {
|
|
30306
|
+
EXTEND_EVENTS2["RTC_STATE_CHANGE"] = "core.rtcstatechange";
|
|
30307
|
+
EXTEND_EVENTS2["RTC_NETWORK"] = "core.rtcnetwork";
|
|
30308
|
+
EXTEND_EVENTS2["RTC_FIRST_FRAME"] = "core.rtcfirstframe";
|
|
30309
|
+
return EXTEND_EVENTS2;
|
|
30310
|
+
}(EXTEND_EVENTS || {});
|
|
30311
|
+
var RTC_FIRST_FRAME_STATE = /* @__PURE__ */ function(RTC_FIRST_FRAME_STATE2) {
|
|
30312
|
+
RTC_FIRST_FRAME_STATE2["LOAD_START"] = "start_load";
|
|
30313
|
+
RTC_FIRST_FRAME_STATE2["OFFER_SDP_READY"] = "offer_sdp_ready";
|
|
30314
|
+
RTC_FIRST_FRAME_STATE2["ANSWER_SDP_RECV"] = "answer_sdp_recv";
|
|
30315
|
+
RTC_FIRST_FRAME_STATE2["ANSWER_SDP_READY"] = "answer_sdp_ready";
|
|
30316
|
+
RTC_FIRST_FRAME_STATE2["ICE_CONNECTED"] = "ice_connected";
|
|
30317
|
+
RTC_FIRST_FRAME_STATE2["DTLS_CONNECTED"] = "dtls_connected";
|
|
30318
|
+
RTC_FIRST_FRAME_STATE2["PEER_CONNECTED"] = "peer_connected";
|
|
30319
|
+
RTC_FIRST_FRAME_STATE2["FIRST_PACKET_RECV"] = "first_packet_recv";
|
|
30320
|
+
RTC_FIRST_FRAME_STATE2["FIRST_FRAME_RECV"] = "first_frame_recv";
|
|
30321
|
+
RTC_FIRST_FRAME_STATE2["FIRST_FRAME_DECODED"] = "first_frame_decoded";
|
|
30322
|
+
RTC_FIRST_FRAME_STATE2["VIDEO_PLAYING"] = "video_playing";
|
|
30323
|
+
RTC_FIRST_FRAME_STATE2["VIDEO_CANPLAY"] = "video_canplay";
|
|
30324
|
+
RTC_FIRST_FRAME_STATE2["VIDEO_LOADEDDATA"] = "video_loadeddata";
|
|
30325
|
+
return RTC_FIRST_FRAME_STATE2;
|
|
30326
|
+
}(RTC_FIRST_FRAME_STATE || {});
|
|
30255
30327
|
var lib$1 = {};
|
|
30256
30328
|
var parser$1 = {};
|
|
30257
30329
|
var grammar$2 = { exports: {} };
|
|
@@ -30945,29 +31017,29 @@ function getOption(options) {
|
|
|
30945
31017
|
enableOriginSdpLogger: false,
|
|
30946
31018
|
checkStatsErrorDelay: 5e3,
|
|
30947
31019
|
connectionStateChangeTimeout: 5e3,
|
|
30948
|
-
enableNetworkQuality:
|
|
31020
|
+
enableNetworkQuality: true,
|
|
30949
31021
|
hackCreateOfferIssue: false,
|
|
30950
31022
|
progressiveSetDelay: false,
|
|
30951
31023
|
networkQuality: {
|
|
30952
31024
|
networkQos: {
|
|
30953
31025
|
1: {
|
|
30954
|
-
|
|
30955
|
-
|
|
31026
|
+
maxRtt: 250,
|
|
31027
|
+
maxLoss: 0.15
|
|
30956
31028
|
},
|
|
30957
31029
|
2: {
|
|
30958
|
-
|
|
30959
|
-
|
|
30960
|
-
|
|
31030
|
+
maxRtt: 500,
|
|
31031
|
+
maxLoss: 0.3,
|
|
31032
|
+
minRetransmittedRate: 0.2
|
|
30961
31033
|
},
|
|
30962
31034
|
3: {
|
|
30963
|
-
|
|
30964
|
-
|
|
30965
|
-
|
|
31035
|
+
maxRtt: 750,
|
|
31036
|
+
maxLoss: 0.45,
|
|
31037
|
+
minRetransmittedRate: 0.35
|
|
30966
31038
|
},
|
|
30967
31039
|
4: {
|
|
30968
|
-
|
|
30969
|
-
|
|
30970
|
-
|
|
31040
|
+
maxRtt: 1e3,
|
|
31041
|
+
maxLoss: 0.6,
|
|
31042
|
+
minRetransmittedRate: 0.5
|
|
30971
31043
|
}
|
|
30972
31044
|
},
|
|
30973
31045
|
networkQoe: {
|
|
@@ -30988,19 +31060,19 @@ function getOption(options) {
|
|
|
30988
31060
|
}, adaptiveJitterBuffer),
|
|
30989
31061
|
networkStrategy: {
|
|
30990
31062
|
1: {
|
|
30991
|
-
|
|
31063
|
+
jitterBuffer: null
|
|
30992
31064
|
},
|
|
30993
31065
|
2: {
|
|
30994
|
-
|
|
31066
|
+
jitterBuffer: 1.5
|
|
30995
31067
|
},
|
|
30996
31068
|
3: {
|
|
30997
|
-
|
|
31069
|
+
jitterBuffer: 2
|
|
30998
31070
|
},
|
|
30999
31071
|
4: {
|
|
31000
|
-
|
|
31072
|
+
jitterBuffer: 3
|
|
31001
31073
|
},
|
|
31002
31074
|
5: {
|
|
31003
|
-
|
|
31075
|
+
jitterBuffer: 3
|
|
31004
31076
|
}
|
|
31005
31077
|
}
|
|
31006
31078
|
}, opts);
|
|
@@ -31031,14 +31103,36 @@ function _getStats(stats) {
|
|
|
31031
31103
|
};
|
|
31032
31104
|
});
|
|
31033
31105
|
}
|
|
31034
|
-
function getStats(
|
|
31035
|
-
return
|
|
31036
|
-
|
|
31037
|
-
|
|
31038
|
-
|
|
31039
|
-
|
|
31040
|
-
|
|
31041
|
-
|
|
31106
|
+
function getStats(_x) {
|
|
31107
|
+
return _getStats2.apply(this, arguments);
|
|
31108
|
+
}
|
|
31109
|
+
function _getStats2() {
|
|
31110
|
+
_getStats2 = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee2(pc) {
|
|
31111
|
+
return _regeneratorRuntime$a().wrap(function _callee2$(_context2) {
|
|
31112
|
+
while (1)
|
|
31113
|
+
switch (_context2.prev = _context2.next) {
|
|
31114
|
+
case 0:
|
|
31115
|
+
if (pc) {
|
|
31116
|
+
_context2.next = 2;
|
|
31117
|
+
break;
|
|
31118
|
+
}
|
|
31119
|
+
return _context2.abrupt("return", []);
|
|
31120
|
+
case 2:
|
|
31121
|
+
return _context2.abrupt("return", new Promise(function(resolve3) {
|
|
31122
|
+
var _pc$getStats;
|
|
31123
|
+
(_pc$getStats = pc.getStats(null)) === null || _pc$getStats === void 0 ? void 0 : _pc$getStats.then(function(report) {
|
|
31124
|
+
resolve3(_getStats(report));
|
|
31125
|
+
});
|
|
31126
|
+
}).catch(function() {
|
|
31127
|
+
return [];
|
|
31128
|
+
}));
|
|
31129
|
+
case 3:
|
|
31130
|
+
case "end":
|
|
31131
|
+
return _context2.stop();
|
|
31132
|
+
}
|
|
31133
|
+
}, _callee2);
|
|
31134
|
+
}));
|
|
31135
|
+
return _getStats2.apply(this, arguments);
|
|
31042
31136
|
}
|
|
31043
31137
|
function getStatsSnapshoot(stats) {
|
|
31044
31138
|
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 +31202,23 @@ function getStatsSnapshoot(stats) {
|
|
|
31108
31202
|
}
|
|
31109
31203
|
var QUEUE_SIZE = 5;
|
|
31110
31204
|
var NetworkEvaluate = /* @__PURE__ */ function() {
|
|
31111
|
-
function NetworkEvaluate2(pc
|
|
31205
|
+
function NetworkEvaluate2(pc) {
|
|
31112
31206
|
var _this = this;
|
|
31207
|
+
var interval = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1e3;
|
|
31113
31208
|
_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;
|
|
31209
|
+
this._pc = null;
|
|
31210
|
+
this._lastVideoStats = null;
|
|
31211
|
+
this._lastRemoteVideoStats = null;
|
|
31212
|
+
this._timer = 0;
|
|
31213
|
+
this._timerInterval = 0;
|
|
31214
|
+
this._speedQueue = [];
|
|
31215
|
+
this._lostRateQueue = [];
|
|
31216
|
+
this._receivedRateQueue = [];
|
|
31217
|
+
this._currentSpeed = -1;
|
|
31218
|
+
this._currentLostRate = -1;
|
|
31219
|
+
this._currentReceivedRate = -1;
|
|
31220
|
+
this._evaluate = /* @__PURE__ */ _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee() {
|
|
31221
|
+
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
31222
|
return _regeneratorRuntime$a().wrap(function _callee$(_context) {
|
|
31128
31223
|
while (1)
|
|
31129
31224
|
switch (_context.prev = _context.next) {
|
|
@@ -31148,8 +31243,8 @@ var NetworkEvaluate = /* @__PURE__ */ function() {
|
|
|
31148
31243
|
}
|
|
31149
31244
|
}
|
|
31150
31245
|
if (_this._lastRemoteVideoStats && snapshoot !== null && snapshoot !== void 0 && snapshoot.videoRemote) {
|
|
31151
|
-
|
|
31152
|
-
|
|
31246
|
+
_ref22 = snapshoot.video || {}, _ref2$bytesReceived = _ref22.bytesReceived, nowReceived = _ref2$bytesReceived === void 0 ? 0 : _ref2$bytesReceived;
|
|
31247
|
+
_ref32 = _this._lastVideoStats || {}, _ref3$bytesReceived = _ref32.bytesReceived, preReceived = _ref3$bytesReceived === void 0 ? 0 : _ref3$bytesReceived;
|
|
31153
31248
|
_snapshoot$videoRemot = snapshoot === null || snapshoot === void 0 ? void 0 : snapshoot.videoRemote, nowRemoteSent = _snapshoot$videoRemot.bytesSent;
|
|
31154
31249
|
preRemoteSent = _this._lastRemoteVideoStats.bytesSent;
|
|
31155
31250
|
if (preRemoteSent && nowRemoteSent && nowRemoteSent - preRemoteSent > 0) {
|
|
@@ -31168,7 +31263,7 @@ var NetworkEvaluate = /* @__PURE__ */ function() {
|
|
|
31168
31263
|
return _context.stop();
|
|
31169
31264
|
}
|
|
31170
31265
|
}, _callee, null, [[0, 10]]);
|
|
31171
|
-
}))
|
|
31266
|
+
}));
|
|
31172
31267
|
this._pc = pc;
|
|
31173
31268
|
this._timerInterval = interval;
|
|
31174
31269
|
this.start(interval);
|
|
@@ -31283,6 +31378,9 @@ function getCapacity() {
|
|
|
31283
31378
|
return pc.createOffer().then(function(offer) {
|
|
31284
31379
|
var _sdpJson$media, _sdpJson$media2, _vMedia$rtp, _aMedia$rtp;
|
|
31285
31380
|
logger$b.log(offer.sdp);
|
|
31381
|
+
if (!offer.sdp) {
|
|
31382
|
+
return Promise.reject("createOffer no sdp");
|
|
31383
|
+
}
|
|
31286
31384
|
var sdpJson = lib$1.parse(offer.sdp);
|
|
31287
31385
|
var vMedia = (_sdpJson$media = sdpJson.media) === null || _sdpJson$media === void 0 ? void 0 : _sdpJson$media.filter(function(x2) {
|
|
31288
31386
|
return x2.type === "video";
|
|
@@ -31470,7 +31568,7 @@ var Nalunit = {
|
|
|
31470
31568
|
var RTCDataView = /* @__PURE__ */ function() {
|
|
31471
31569
|
function RTCDataView2(buffer2) {
|
|
31472
31570
|
_classCallCheck$k(this, RTCDataView2);
|
|
31473
|
-
|
|
31571
|
+
this._position = 0;
|
|
31474
31572
|
this._dataview = new DataView(buffer2);
|
|
31475
31573
|
}
|
|
31476
31574
|
_createClass$k(RTCDataView2, [{
|
|
@@ -31872,7 +31970,7 @@ if (typeof self !== "undefined" && self.constructor.name === "DedicatedWorkerGlo
|
|
|
31872
31970
|
transformer.readable.pipeThrough(transform).pipeTo(event.transformer.writable);
|
|
31873
31971
|
});
|
|
31874
31972
|
}
|
|
31875
|
-
var encodedJs$5 = "IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlPXtnZXROQUxVbml0czpmdW5jdGlvbih0KXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO2lmKHQubGVuZ3RoLXQucG9zaXRpb248NClyZXR1cm5bXTt2YXIgcj10LnBvc2l0aW9uO3JldHVybiAxPT09dC5nZXRJbnQzMihyKXx8MD09PXQuZ2V0SW50MTYocikmJjE9PT10LmdldEludDgocisyKT9lLmdldEFubmV4Yk5hbHModCxuKTplLmdldEF2Y2NOYWxzKHQsbil9LGdldEFubmV4Yk5hbHM6ZnVuY3Rpb24odCxuKXtmb3IodmFyIHI9W10saT1lLmdldEhlYWRlclBvc2l0aW9uQW5uZXhCKHQpLGE9aS5wb3Msbz1hO2E8dC5sZW5ndGgtNDspe3ZhciB1PW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLnNsaWNlKGEsYStpLmhlYWRlckxlbmd0aCkpO2kucG9zPT09dC5wb3NpdGlvbiYmdC5za2lwKGkuaGVhZGVyTGVuZ3RoKSxvPShpPWUuZ2V0SGVhZGVyUG9zaXRpb25Bbm5leEIodCkpLnBvczt2YXIgcz17aGVhZGVyOnUsYm9keTpuZXcgVWludDhBcnJheSh0LmJ1ZmZlci5zbGljZShhK3UuYnl0ZUxlbmd0aCxvKSksdHlwZTotMX07bj9lLmFuYWx5c2VIMjY1TmFsKHMpOmUuYW5hbHlzZU5hbChzKSwocy50eXBlPD05fHxuJiZzLnR5cGU8PTQwKSYmMCE9PXMudHlwZSYmci5wdXNoKHMpLHQuc2tpcChvLXQucG9zaXRpb24pLGE9b31yZXR1cm4gcn0sZ2V0QXZjY05hbHM6ZnVuY3Rpb24odCxuKXtmb3IodmFyIHI9W107dC5wb3NpdGlvbjx0Lmxlbmd0aC00Oyl7dmFyIGk9dC5nZXRJbnQzMih0LnBvc2l0aW9uKTtpZighKHQubGVuZ3RoLXQucG9zaXRpb24+PWkpKWJyZWFrO3ZhciBhPW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLnNsaWNlKHQucG9zaXRpb24sdC5wb3NpdGlvbis0KSk7dC5za2lwKDQpO3ZhciBvPW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLnNsaWNlKHQucG9zaXRpb24sdC5wb3NpdGlvbitpKSk7dC5za2lwKGkpO3ZhciB1PXtoZWFkZXI6YSxib2R5Om8sdHlwZTotMX07bj9lLmFuYWx5c2VIMjY1TmFsKHUpOmUuYW5hbHlzZU5hbCh1KSx1LnR5cGU8PTkmJjAhPT11LnR5cGUmJnIucHVzaCh1KX1yZXR1cm4gcn0sYW5hbHlzZU5hbDpmdW5jdGlvbihlKXt2YXIgdD0zMSZlLmJvZHlbMF07c3dpdGNoKGUudHlwZT10LHQpe2Nhc2UgMTplLm5kcj0hMDticmVhaztjYXNlIDU6ZS5pZHI9ITA7YnJlYWs7Y2FzZSA2OmUuc2VpPSEwO2JyZWFrO2Nhc2UgNzplLnNwcz0hMDticmVhaztjYXNlIDg6ZS5wcHM9ITB9fSxhbmFseXNlSDI2NU5hbDpmdW5jdGlvbihlKXt2YXIgdD0oMTI2JmUuYm9keVswXSk+PjE7c3dpdGNoKGUudHlwZT10LHQpe2Nhc2UgMzk6Y2FzZSA0MDplLnNlaT0hMH19LGdldEhlYWRlclBvc2l0aW9uQW5uZXhCOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLnBvc2l0aW9uLG49MCxyPWUubGVuZ3RoOzMhPT1uJiY0IT09biYmdDxyLTQ7KTA9PT1lLmdldEludDE2KHQpPzE9PT1lLmdldEludDE2KHQrMik/bj00OjE9PT1lLmdldEludDgodCsyKT9uPTM6dCsrOnQrKztyZXR1cm4gdD09PXItNCYmKDA9PT1lLmdldEludDE2KHQpPzE9PT1lLmdldEludDE2KHQrMik/bj00OnQ9cjoodCsrLDA9PT1lLmdldEludDE2KHQpJiYxPT09ZS5nZXRJbnQ4KHQpP249Mzp0PXIpKSx7cG9zOnQsaGVhZGVyTGVuZ3RoOm59fSxpc0gyNjVWaWRlb0ZyYW1lOmZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuKChudWxsPT09KHQ9ZS5nZXRNZXRhZGF0YSl8fHZvaWQgMD09PXR8fG51bGw9PT0obj10LmNhbGwoZSkpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLm1pbWVUeXBlKXx8IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoImgyNjUiKX19O2Z1bmN0aW9uIHQoZSl7cmV0dXJuKHQ9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9KShlKX1mdW5jdGlvbiBuKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyKGkua2V5KSxpKX19ZnVuY3Rpb24gcihlKXt2YXIgdD1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PW4pe3ZhciByPW4uY2FsbChlLHR8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiByKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09dD9TdHJpbmc6TnVtYmVyKShlKX0oZSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6U3RyaW5nKHQpfXZhciBpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt2YXIgbixpLGE7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksbj10aGlzLGE9MCwoaT1yKGk9Il9wb3NpdGlvbiIpKWluIG4/T2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOm5baV09YSx0aGlzLl9kYXRhdmlldz1uZXcgRGF0YVZpZXcodCl9dmFyIHQsaSxhO3JldHVybiB0PWUsYT1be2tleToicmVhZEJ5dGUiLHZhbHVlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtzd2l0Y2godCl7Y2FzZSAxOnI9bj9lLmdldEludDgoZS5wb3NpdGlvbik6ZS5nZXRVaW50OChlLnBvc2l0aW9uKTticmVhaztjYXNlIDI6cj1uP2UuZ2V0SW50MTYoZS5wb3NpdGlvbik6ZS5nZXRVaW50MTYoZS5wb3NpdGlvbik7YnJlYWs7Y2FzZSAzOmlmKG4pdGhyb3cgbmV3IEVycm9yKCJub3Qgc3VwcG9ydGVkIGZvciByZWFkQnl0ZSAzIik7cj1lLmdldFVpbnQ4KGUucG9zaXRpb24pPDwxNixyfD1lLmdldFVpbnQ4KGUucG9zaXRpb24rMSk8PDgscnw9ZS5nZXRVaW50OChlLnBvc2l0aW9uKzIpO2JyZWFrO2Nhc2UgNDpyPW4/ZS5nZXRJbnQzMihlLnBvc2l0aW9uKTplLmdldFVpbnQzMihlLnBvc2l0aW9uKTticmVhaztjYXNlIDg6aWYobil0aHJvdyBuZXcgRXJyb3IoIm5vdCBzdXBwb3J0ZWQgZm9yIHJlYWRCb2R5IDgiKTtyPWUuZ2V0VWludDMyKGUucG9zaXRpb24pPDwzMixyfD1lLmdldFVpbnQzMihlLnBvc2l0aW9uKzQpO2JyZWFrO2RlZmF1bHQ6cj0iIn1yZXR1cm4gZS5wb3NpdGlvbis9dCxyfX1dLChpPVt7a2V5OiJsZW5ndGgiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJ1ZmZlci5ieXRlTGVuZ3RofX0se2tleToiYnVmZmVyIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGF0YXZpZXcuYnVmZmVyfX0se2tleToicG9zaXRpb24iLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wb3NpdGlvbn0sc2V0OmZ1bmN0aW9uKGUpe3RoaXMuX3Bvc2l0aW9uPWV9fSx7a2V5OiJiYWNrIix2YWx1ZTpmdW5jdGlvbihlKXt0aGlzLnBvc2l0aW9uLT1lfX0se2tleToiZ2V0VWludDgiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9kYXRhdmlldy5nZXRVaW50OChlKX19LHtrZXk6ImdldEludDgiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9kYXRhdmlldy5nZXRJbnQ4KGUpfX0se2tleToiZ2V0SW50MTYiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9kYXRhdmlldy5nZXRJbnQxNihlKX19LHtrZXk6ImdldFVpbnQxNiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2RhdGF2aWV3LmdldFVpbnQxNihlKX19LHtrZXk6ImdldFVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2RhdGF2aWV3LmdldFVpbnQzMihlKX19LHtrZXk6ImdldEludDMyIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fZGF0YXZpZXcuZ2V0SW50MzIoZSl9fSx7a2V5OiJza2lwIix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodmFyIG49TWF0aC5mbG9vcih0LzQpLHI9dCU0LGk9MDtpPG47aSsrKWUucmVhZEJ5dGUodGhpcyw0KTtyPjAmJmUucmVhZEJ5dGUodGhpcyxyKX19LHtrZXk6InJlYWRVaW50OCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDEpfX0se2tleToicmVhZFVpbnQxNiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDIpfX0se2tleToicmVhZFVpbnQyNCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDMpfX0se2tleToicmVhZFVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDQpfX0se2tleToicmVhZFVpbnQ2NCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDgpfX0se2tleToicmVhZEludDgiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGUucmVhZEJ5dGUodGhpcywxLCEwKX19LHtrZXk6InJlYWRJbnQxNiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDIsITApfX0se2tleToicmVhZEludDMyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBlLnJlYWRCeXRlKHRoaXMsNCwhMCl9fSx7a2V5OiJ3cml0ZVVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KFtlPj4+MjQmMjU1LGU+Pj4xNiYyNTUsZT4+PjgmMjU1LDI1NSZlXSl9fV0pJiZuKHQucHJvdG90eXBlLGkpLGEmJm4odCxhKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlfSgpO2Z1bmN0aW9uIGEoZSxuKXtmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGk9bltyXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLChhPWkua2V5LG89dm9pZCAwLG89ZnVuY3Rpb24oZSxuKXtpZigib2JqZWN0IiE9PXQoZSl8fG51bGw9PT1lKXJldHVybiBlO3ZhciByPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1yKXt2YXIgaT1yLmNhbGwoZSxufHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT09dChpKSlyZXR1cm4gaTt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PW4/U3RyaW5nOk51bWJlcikoZSl9KGEsInN0cmluZyIpLCJzeW1ib2wiPT09dChvKT9vOlN0cmluZyhvKSksaSl9dmFyIGEsb31mdW5jdGlvbiBvKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihlW3RdPDwyND4+PjApKyhlW3QrMV08PDE2KSsoZVt0KzJdPDw4KSsoZVt0KzNdfHwwKX12YXIgdT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxlKX12YXIgdCxuLHI7cmV0dXJuIHQ9ZSxyPVt7a2V5OiJwYXJzZUFubmV4QiIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ieXRlTGVuZ3RoLTEsbj0wO2Rve2lmKDAhPT1lW3RdKWJyZWFrO24rKyx0LS19d2hpbGUodD4wKTtuPj0zJiYoZT1lLnN1YmFycmF5KDAsdCsxKSk7Zm9yKHZhciByPWUubGVuZ3RoLGk9MixhPTA7bnVsbCE9PWVbaV0mJnZvaWQgMCE9PWVbaV0mJjEhPT1lW2ldOylpKys7aWYoKGE9MisgKytpKT49cilyZXR1cm5bXTtmb3IodmFyIG89W107YTxyOylzd2l0Y2goZVthXSl7Y2FzZSAwOmlmKDAhPT1lW2EtMV0pe2ErPTI7YnJlYWt9aWYoMCE9PWVbYS0yXSl7YSsrO2JyZWFrfWlmKGE8ci0xJiYxIT09ZVthKzFdKXthKys7YnJlYWt9aSE9PWEtMiYmby5wdXNoKGUuc3ViYXJyYXkoaSxhLTIpKTtkb3thKyt9d2hpbGUoMSE9PWVbYV0mJmE8cik7YT0oaT1hKzEpKzI7YnJlYWs7Y2FzZSAxOmlmKDAhPT1lW2EtMV18fDAhPT1lW2EtMl0pe2ErPTM7YnJlYWt9aSE9PWEtMiYmby5wdXNoKGUuc3ViYXJyYXkoaSxhLTIpKSxhPShpPWErMSkrMjticmVhaztkZWZhdWx0OmErPTN9cmV0dXJuIGk8ciYmby5wdXNoKGUuc3ViYXJyYXkoaSkpLG99fSx7a2V5OiJwYXJzZUF2Y0MiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTo0O2lmKCEoZS5sZW5ndGg8NCkpe2Zvcih2YXIgbixyPWUubGVuZ3RoLGk9W10sYT0wO2ErdDxyOylpZihuPW8oZSxhKSwzPT09dCYmKG4+Pj49OCksYSs9dCxuKXtpZihhK24+cilicmVhaztpLnB1c2goZS5zdWJhcnJheShhLGErbikpLGErPW59cmV0dXJuIGl9fX0se2tleToicGFyc2VTRUkiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWUubGVuZ3RoLHI9dD8yOjEsaT0wLGE9MCxvPSIiOzI1NT09PWVbcl07KWkrPTI1NSxyKys7Zm9yKGkrPWVbcisrXTsyNTU9PT1lW3JdOylhKz0yNTUscisrO2lmKGErPWVbcisrXSw1PT09aSYmbj5yKzE2KWZvcih2YXIgdT0wO3U8MTY7dSsrKW8rPWVbcl0udG9TdHJpbmcoMTYpLHIrKztyZXR1cm57cGF5bG9hZDplLnN1YmFycmF5KHIscithKSx0eXBlOmksc2l6ZTphLHV1aWQ6b319fSx7a2V5OiJyZW1vdmVFUEIiLHZhbHVlOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmJ5dGVMZW5ndGgsbj1bXSxyPTE7cjx0LTI7KTA9PT1lW3JdJiYwPT09ZVtyKzFdJiYzPT09ZVtyKzJdPyhuLnB1c2gocisyKSxyKz0yKTpyKys7aWYoIW4ubGVuZ3RoKXJldHVybiBlO3ZhciBpPXQtbi5sZW5ndGgsYT1uZXcgVWludDhBcnJheShpKSxvPTA7Zm9yKHI9MDtyPGk7bysrLHIrKylvPT09blswXSYmKG8rKyxuLnNoaWZ0KCkpLGFbcl09ZVtvXTtyZXR1cm4gYX19XSwobj1udWxsKSYmYSh0LnByb3RvdHlwZSxuKSxyJiZhKHQsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZX0oKTsidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJiJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSI9PT1zZWxmLmNvbnN0cnVjdG9yLm5hbWUmJnNlbGYuYWRkRXZlbnRMaXN0ZW5lcigicnRjdHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7dmFyIG4scj10LnRyYW5zZm9ybWVyLGE9ci5vcHRpb25zLnBvcnQsbz0obj1mdW5jdGlvbihlKXthLnBvc3RNZXNzYWdlKGUpfSxuZXcgVHJhbnNmb3JtU3RyZWFtKHt0cmFuc2Zvcm06ZnVuY3Rpb24odCxyKXt2YXIgYT1lLmlzSDI2NVZpZGVvRnJhbWUodCk7ZS5nZXROQUxVbml0cyhuZXcgaSh0LmRhdGEpLGEpLmZvckVhY2goKGZ1bmN0aW9uKGUpe2lmKGUuc2VpKXt2YXIgdD11LnBhcnNlU0VJKHUucmVtb3ZlRVBCKGUuYm9keSksITEpO3QmJm4oe2RhdGE6dCxzZWk6e2NvZGU6dC50eXBlLGNvbnRlbnQ6dC5wYXlsb2FkfX0pfX0pKSxyLmVucXVldWUodCl9fSkpO3IucmVhZGFibGUucGlwZVRocm91Z2gobykucGlwZVRvKHQudHJhbnNmb3JtZXIud3JpdGFibGUpfSkpfSgpOwo=";
|
|
31973
|
+
var encodedJs$5 = "IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlPXtnZXROQUxVbml0czpmdW5jdGlvbih0KXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO2lmKHQubGVuZ3RoLXQucG9zaXRpb248NClyZXR1cm5bXTt2YXIgcj10LnBvc2l0aW9uO3JldHVybiAxPT09dC5nZXRJbnQzMihyKXx8MD09PXQuZ2V0SW50MTYocikmJjE9PT10LmdldEludDgocisyKT9lLmdldEFubmV4Yk5hbHModCxuKTplLmdldEF2Y2NOYWxzKHQsbil9LGdldEFubmV4Yk5hbHM6ZnVuY3Rpb24odCxuKXtmb3IodmFyIHI9W10saT1lLmdldEhlYWRlclBvc2l0aW9uQW5uZXhCKHQpLGE9aS5wb3Msbz1hO2E8dC5sZW5ndGgtNDspe3ZhciB1PW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLnNsaWNlKGEsYStpLmhlYWRlckxlbmd0aCkpO2kucG9zPT09dC5wb3NpdGlvbiYmdC5za2lwKGkuaGVhZGVyTGVuZ3RoKSxvPShpPWUuZ2V0SGVhZGVyUG9zaXRpb25Bbm5leEIodCkpLnBvczt2YXIgcz17aGVhZGVyOnUsYm9keTpuZXcgVWludDhBcnJheSh0LmJ1ZmZlci5zbGljZShhK3UuYnl0ZUxlbmd0aCxvKSksdHlwZTotMX07bj9lLmFuYWx5c2VIMjY1TmFsKHMpOmUuYW5hbHlzZU5hbChzKSwocy50eXBlPD05fHxuJiZzLnR5cGU8PTQwKSYmMCE9PXMudHlwZSYmci5wdXNoKHMpLHQuc2tpcChvLXQucG9zaXRpb24pLGE9b31yZXR1cm4gcn0sZ2V0QXZjY05hbHM6ZnVuY3Rpb24odCxuKXtmb3IodmFyIHI9W107dC5wb3NpdGlvbjx0Lmxlbmd0aC00Oyl7dmFyIGk9dC5nZXRJbnQzMih0LnBvc2l0aW9uKTtpZighKHQubGVuZ3RoLXQucG9zaXRpb24+PWkpKWJyZWFrO3ZhciBhPW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLnNsaWNlKHQucG9zaXRpb24sdC5wb3NpdGlvbis0KSk7dC5za2lwKDQpO3ZhciBvPW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLnNsaWNlKHQucG9zaXRpb24sdC5wb3NpdGlvbitpKSk7dC5za2lwKGkpO3ZhciB1PXtoZWFkZXI6YSxib2R5Om8sdHlwZTotMX07bj9lLmFuYWx5c2VIMjY1TmFsKHUpOmUuYW5hbHlzZU5hbCh1KSx1LnR5cGU8PTkmJjAhPT11LnR5cGUmJnIucHVzaCh1KX1yZXR1cm4gcn0sYW5hbHlzZU5hbDpmdW5jdGlvbihlKXt2YXIgdD0zMSZlLmJvZHlbMF07c3dpdGNoKGUudHlwZT10LHQpe2Nhc2UgMTplLm5kcj0hMDticmVhaztjYXNlIDU6ZS5pZHI9ITA7YnJlYWs7Y2FzZSA2OmUuc2VpPSEwO2JyZWFrO2Nhc2UgNzplLnNwcz0hMDticmVhaztjYXNlIDg6ZS5wcHM9ITB9fSxhbmFseXNlSDI2NU5hbDpmdW5jdGlvbihlKXt2YXIgdD0oMTI2JmUuYm9keVswXSk+PjE7c3dpdGNoKGUudHlwZT10LHQpe2Nhc2UgMzk6Y2FzZSA0MDplLnNlaT0hMH19LGdldEhlYWRlclBvc2l0aW9uQW5uZXhCOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLnBvc2l0aW9uLG49MCxyPWUubGVuZ3RoOzMhPT1uJiY0IT09biYmdDxyLTQ7KTA9PT1lLmdldEludDE2KHQpPzE9PT1lLmdldEludDE2KHQrMik/bj00OjE9PT1lLmdldEludDgodCsyKT9uPTM6dCsrOnQrKztyZXR1cm4gdD09PXItNCYmKDA9PT1lLmdldEludDE2KHQpPzE9PT1lLmdldEludDE2KHQrMik/bj00OnQ9cjoodCsrLDA9PT1lLmdldEludDE2KHQpJiYxPT09ZS5nZXRJbnQ4KHQpP249Mzp0PXIpKSx7cG9zOnQsaGVhZGVyTGVuZ3RoOm59fSxpc0gyNjVWaWRlb0ZyYW1lOmZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuKChudWxsPT09KHQ9ZS5nZXRNZXRhZGF0YSl8fHZvaWQgMD09PXR8fG51bGw9PT0obj10LmNhbGwoZSkpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLm1pbWVUeXBlKXx8IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoImgyNjUiKX19O2Z1bmN0aW9uIHQoZSl7cmV0dXJuKHQ9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9KShlKX1mdW5jdGlvbiBuKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwoaT1yLmtleSxhPXZvaWQgMCwic3ltYm9sIj09dHlwZW9mKGE9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgcj1uLmNhbGwoZSx0fHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgcilyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PXQ/U3RyaW5nOk51bWJlcikoZSl9KGksInN0cmluZyIpKT9hOlN0cmluZyhhKSkscil9dmFyIGksYX12YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5fcG9zaXRpb249MCx0aGlzLl9kYXRhdmlldz1uZXcgRGF0YVZpZXcodCl9dmFyIHQscixpO3JldHVybiB0PWUsaT1be2tleToicmVhZEJ5dGUiLHZhbHVlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtzd2l0Y2godCl7Y2FzZSAxOnI9bj9lLmdldEludDgoZS5wb3NpdGlvbik6ZS5nZXRVaW50OChlLnBvc2l0aW9uKTticmVhaztjYXNlIDI6cj1uP2UuZ2V0SW50MTYoZS5wb3NpdGlvbik6ZS5nZXRVaW50MTYoZS5wb3NpdGlvbik7YnJlYWs7Y2FzZSAzOmlmKG4pdGhyb3cgbmV3IEVycm9yKCJub3Qgc3VwcG9ydGVkIGZvciByZWFkQnl0ZSAzIik7cj1lLmdldFVpbnQ4KGUucG9zaXRpb24pPDwxNixyfD1lLmdldFVpbnQ4KGUucG9zaXRpb24rMSk8PDgscnw9ZS5nZXRVaW50OChlLnBvc2l0aW9uKzIpO2JyZWFrO2Nhc2UgNDpyPW4/ZS5nZXRJbnQzMihlLnBvc2l0aW9uKTplLmdldFVpbnQzMihlLnBvc2l0aW9uKTticmVhaztjYXNlIDg6aWYobil0aHJvdyBuZXcgRXJyb3IoIm5vdCBzdXBwb3J0ZWQgZm9yIHJlYWRCb2R5IDgiKTtyPWUuZ2V0VWludDMyKGUucG9zaXRpb24pPDwzMixyfD1lLmdldFVpbnQzMihlLnBvc2l0aW9uKzQpO2JyZWFrO2RlZmF1bHQ6cj0iIn1yZXR1cm4gZS5wb3NpdGlvbis9dCxyfX1dLChyPVt7a2V5OiJsZW5ndGgiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJ1ZmZlci5ieXRlTGVuZ3RofX0se2tleToiYnVmZmVyIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGF0YXZpZXcuYnVmZmVyfX0se2tleToicG9zaXRpb24iLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wb3NpdGlvbn0sc2V0OmZ1bmN0aW9uKGUpe3RoaXMuX3Bvc2l0aW9uPWV9fSx7a2V5OiJiYWNrIix2YWx1ZTpmdW5jdGlvbihlKXt0aGlzLnBvc2l0aW9uLT1lfX0se2tleToiZ2V0VWludDgiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9kYXRhdmlldy5nZXRVaW50OChlKX19LHtrZXk6ImdldEludDgiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9kYXRhdmlldy5nZXRJbnQ4KGUpfX0se2tleToiZ2V0SW50MTYiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9kYXRhdmlldy5nZXRJbnQxNihlKX19LHtrZXk6ImdldFVpbnQxNiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2RhdGF2aWV3LmdldFVpbnQxNihlKX19LHtrZXk6ImdldFVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2RhdGF2aWV3LmdldFVpbnQzMihlKX19LHtrZXk6ImdldEludDMyIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fZGF0YXZpZXcuZ2V0SW50MzIoZSl9fSx7a2V5OiJza2lwIix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodmFyIG49TWF0aC5mbG9vcih0LzQpLHI9dCU0LGk9MDtpPG47aSsrKWUucmVhZEJ5dGUodGhpcyw0KTtyPjAmJmUucmVhZEJ5dGUodGhpcyxyKX19LHtrZXk6InJlYWRVaW50OCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDEpfX0se2tleToicmVhZFVpbnQxNiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDIpfX0se2tleToicmVhZFVpbnQyNCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDMpfX0se2tleToicmVhZFVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDQpfX0se2tleToicmVhZFVpbnQ2NCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDgpfX0se2tleToicmVhZEludDgiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGUucmVhZEJ5dGUodGhpcywxLCEwKX19LHtrZXk6InJlYWRJbnQxNiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5yZWFkQnl0ZSh0aGlzLDIsITApfX0se2tleToicmVhZEludDMyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBlLnJlYWRCeXRlKHRoaXMsNCwhMCl9fSx7a2V5OiJ3cml0ZVVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KFtlPj4+MjQmMjU1LGU+Pj4xNiYyNTUsZT4+PjgmMjU1LDI1NSZlXSl9fV0pJiZuKHQucHJvdG90eXBlLHIpLGkmJm4odCxpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlfSgpO2Z1bmN0aW9uIGkoZSxuKXtmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGk9bltyXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLChhPWkua2V5LG89dm9pZCAwLG89ZnVuY3Rpb24oZSxuKXtpZigib2JqZWN0IiE9PXQoZSl8fG51bGw9PT1lKXJldHVybiBlO3ZhciByPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1yKXt2YXIgaT1yLmNhbGwoZSxufHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT09dChpKSlyZXR1cm4gaTt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PW4/U3RyaW5nOk51bWJlcikoZSl9KGEsInN0cmluZyIpLCJzeW1ib2wiPT09dChvKT9vOlN0cmluZyhvKSksaSl9dmFyIGEsb31mdW5jdGlvbiBhKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihlW3RdPDwyND4+PjApKyhlW3QrMV08PDE2KSsoZVt0KzJdPDw4KSsoZVt0KzNdfHwwKX12YXIgbz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxlKX12YXIgdCxuLHI7cmV0dXJuIHQ9ZSxyPVt7a2V5OiJwYXJzZUFubmV4QiIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ieXRlTGVuZ3RoLTEsbj0wO2Rve2lmKDAhPT1lW3RdKWJyZWFrO24rKyx0LS19d2hpbGUodD4wKTtuPj0zJiYoZT1lLnN1YmFycmF5KDAsdCsxKSk7Zm9yKHZhciByPWUubGVuZ3RoLGk9MixhPTA7bnVsbCE9PWVbaV0mJnZvaWQgMCE9PWVbaV0mJjEhPT1lW2ldOylpKys7aWYoKGE9MisgKytpKT49cilyZXR1cm5bXTtmb3IodmFyIG89W107YTxyOylzd2l0Y2goZVthXSl7Y2FzZSAwOmlmKDAhPT1lW2EtMV0pe2ErPTI7YnJlYWt9aWYoMCE9PWVbYS0yXSl7YSsrO2JyZWFrfWlmKGE8ci0xJiYxIT09ZVthKzFdKXthKys7YnJlYWt9aSE9PWEtMiYmby5wdXNoKGUuc3ViYXJyYXkoaSxhLTIpKTtkb3thKyt9d2hpbGUoMSE9PWVbYV0mJmE8cik7YT0oaT1hKzEpKzI7YnJlYWs7Y2FzZSAxOmlmKDAhPT1lW2EtMV18fDAhPT1lW2EtMl0pe2ErPTM7YnJlYWt9aSE9PWEtMiYmby5wdXNoKGUuc3ViYXJyYXkoaSxhLTIpKSxhPShpPWErMSkrMjticmVhaztkZWZhdWx0OmErPTN9cmV0dXJuIGk8ciYmby5wdXNoKGUuc3ViYXJyYXkoaSkpLG99fSx7a2V5OiJwYXJzZUF2Y0MiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTo0O2lmKCEoZS5sZW5ndGg8NCkpe2Zvcih2YXIgbixyPWUubGVuZ3RoLGk9W10sbz0wO28rdDxyOylpZihuPWEoZSxvKSwzPT09dCYmKG4+Pj49OCksbys9dCxuKXtpZihvK24+cilicmVhaztpLnB1c2goZS5zdWJhcnJheShvLG8rbikpLG8rPW59cmV0dXJuIGl9fX0se2tleToicGFyc2VTRUkiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWUubGVuZ3RoLHI9dD8yOjEsaT0wLGE9MCxvPSIiOzI1NT09PWVbcl07KWkrPTI1NSxyKys7Zm9yKGkrPWVbcisrXTsyNTU9PT1lW3JdOylhKz0yNTUscisrO2lmKGErPWVbcisrXSw1PT09aSYmbj5yKzE2KWZvcih2YXIgdT0wO3U8MTY7dSsrKW8rPWVbcl0udG9TdHJpbmcoMTYpLHIrKztyZXR1cm57cGF5bG9hZDplLnN1YmFycmF5KHIscithKSx0eXBlOmksc2l6ZTphLHV1aWQ6b319fSx7a2V5OiJyZW1vdmVFUEIiLHZhbHVlOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmJ5dGVMZW5ndGgsbj1bXSxyPTE7cjx0LTI7KTA9PT1lW3JdJiYwPT09ZVtyKzFdJiYzPT09ZVtyKzJdPyhuLnB1c2gocisyKSxyKz0yKTpyKys7aWYoIW4ubGVuZ3RoKXJldHVybiBlO3ZhciBpPXQtbi5sZW5ndGgsYT1uZXcgVWludDhBcnJheShpKSxvPTA7Zm9yKHI9MDtyPGk7bysrLHIrKylvPT09blswXSYmKG8rKyxuLnNoaWZ0KCkpLGFbcl09ZVtvXTtyZXR1cm4gYX19XSwobj1udWxsKSYmaSh0LnByb3RvdHlwZSxuKSxyJiZpKHQsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZX0oKTsidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJiJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSI9PT1zZWxmLmNvbnN0cnVjdG9yLm5hbWUmJnNlbGYuYWRkRXZlbnRMaXN0ZW5lcigicnRjdHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7dmFyIG4saT10LnRyYW5zZm9ybWVyLGE9aS5vcHRpb25zLnBvcnQsdT0obj1mdW5jdGlvbihlKXthLnBvc3RNZXNzYWdlKGUpfSxuZXcgVHJhbnNmb3JtU3RyZWFtKHt0cmFuc2Zvcm06ZnVuY3Rpb24odCxpKXt2YXIgYT1lLmlzSDI2NVZpZGVvRnJhbWUodCk7ZS5nZXROQUxVbml0cyhuZXcgcih0LmRhdGEpLGEpLmZvckVhY2goKGZ1bmN0aW9uKGUpe2lmKGUuc2VpKXt2YXIgdD1vLnBhcnNlU0VJKG8ucmVtb3ZlRVBCKGUuYm9keSksITEpO3QmJm4oe2RhdGE6dCxzZWk6e2NvZGU6dC50eXBlLGNvbnRlbnQ6dC5wYXlsb2FkfX0pfX0pKSxpLmVucXVldWUodCl9fSkpO2kucmVhZGFibGUucGlwZVRocm91Z2godSkucGlwZVRvKHQudHJhbnNmb3JtZXIud3JpdGFibGUpfSkpfSgpOwo=";
|
|
31876
31974
|
var blob$5 = typeof window !== "undefined" && window.Blob && new Blob([atob(encodedJs$5)], {
|
|
31877
31975
|
type: "text/javascript;charset=utf-8"
|
|
31878
31976
|
});
|
|
@@ -31886,21 +31984,19 @@ function WorkerWrapper$5() {
|
|
|
31886
31984
|
objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL);
|
|
31887
31985
|
}
|
|
31888
31986
|
}
|
|
31889
|
-
var
|
|
31890
|
-
function
|
|
31891
|
-
_classCallCheck$k(this,
|
|
31892
|
-
|
|
31893
|
-
|
|
31894
|
-
|
|
31895
|
-
_defineProperty$i(this, "_stallList", []);
|
|
31896
|
-
_defineProperty$i(this, "_audioTransceiver", null);
|
|
31987
|
+
var _AudioStallObserver = /* @__PURE__ */ function() {
|
|
31988
|
+
function _AudioStallObserver2() {
|
|
31989
|
+
_classCallCheck$k(this, _AudioStallObserver2);
|
|
31990
|
+
this._isStallInPreReportEnd = false;
|
|
31991
|
+
this._stallList = [];
|
|
31992
|
+
this._audioTransceiver = null;
|
|
31897
31993
|
}
|
|
31898
|
-
_createClass$k(
|
|
31994
|
+
_createClass$k(_AudioStallObserver2, [{
|
|
31899
31995
|
key: "start",
|
|
31900
31996
|
value: function start(transceiver) {
|
|
31901
31997
|
this.stop();
|
|
31902
31998
|
this._audioTransceiver = transceiver;
|
|
31903
|
-
if (
|
|
31999
|
+
if (_AudioStallObserver2.interval >= 100) {
|
|
31904
32000
|
this._startStallCountInterval();
|
|
31905
32001
|
}
|
|
31906
32002
|
}
|
|
@@ -31910,7 +32006,7 @@ var AudioStallObserver = /* @__PURE__ */ function() {
|
|
|
31910
32006
|
this._stallList = [];
|
|
31911
32007
|
if (this._audioStallTimer) {
|
|
31912
32008
|
clearTimeout(this._audioStallTimer);
|
|
31913
|
-
this._audioStallTimer
|
|
32009
|
+
delete this._audioStallTimer;
|
|
31914
32010
|
}
|
|
31915
32011
|
}
|
|
31916
32012
|
}, {
|
|
@@ -31976,12 +32072,12 @@ var AudioStallObserver = /* @__PURE__ */ function() {
|
|
|
31976
32072
|
switch (_context2.prev = _context2.next) {
|
|
31977
32073
|
case 0:
|
|
31978
32074
|
clearTimeout(_this._audioStallTimer);
|
|
31979
|
-
_this._audioStallTimer
|
|
32075
|
+
delete _this._audioStallTimer;
|
|
31980
32076
|
_context2.next = 4;
|
|
31981
32077
|
return _this._audioStallCount();
|
|
31982
32078
|
case 4:
|
|
31983
32079
|
if (!_this._audioStallTimer) {
|
|
31984
|
-
_this._audioStallTimer = setTimeout(loop,
|
|
32080
|
+
_this._audioStallTimer = setTimeout(loop, _AudioStallObserver2.interval);
|
|
31985
32081
|
}
|
|
31986
32082
|
case 5:
|
|
31987
32083
|
case "end":
|
|
@@ -31993,7 +32089,7 @@ var AudioStallObserver = /* @__PURE__ */ function() {
|
|
|
31993
32089
|
return _ref6.apply(this, arguments);
|
|
31994
32090
|
};
|
|
31995
32091
|
}();
|
|
31996
|
-
this._audioStallTimer = setTimeout(loop,
|
|
32092
|
+
this._audioStallTimer = setTimeout(loop, _AudioStallObserver2.interval);
|
|
31997
32093
|
}
|
|
31998
32094
|
}, {
|
|
31999
32095
|
key: "_audioStallCount",
|
|
@@ -32004,7 +32100,7 @@ var AudioStallObserver = /* @__PURE__ */ function() {
|
|
|
32004
32100
|
while (1)
|
|
32005
32101
|
switch (_context3.prev = _context3.next) {
|
|
32006
32102
|
case 0:
|
|
32007
|
-
if (!(this._preSample && Date.now() - this._preSample.ts <
|
|
32103
|
+
if (!(this._preSample && Date.now() - this._preSample.ts < _AudioStallObserver2.interval * 0.5)) {
|
|
32008
32104
|
_context3.next = 2;
|
|
32009
32105
|
break;
|
|
32010
32106
|
}
|
|
@@ -32058,7 +32154,7 @@ var AudioStallObserver = /* @__PURE__ */ function() {
|
|
|
32058
32154
|
_inboundRTP3 = inboundRTP, concealedSamples = _inboundRTP3.concealedSamples, totalSamplesReceived = _inboundRTP3.totalSamplesReceived;
|
|
32059
32155
|
interval_concealed_samples = concealedSamples - this._preSample.concealedSamples;
|
|
32060
32156
|
interval_samples_received = totalSamplesReceived - this._preSample.totalSamplesReceived;
|
|
32061
|
-
is_stall = interval_concealed_samples >= 0 && interval_samples_received >= 0 && interval_concealed_samples >=
|
|
32157
|
+
is_stall = interval_concealed_samples >= 0 && interval_samples_received >= 0 && interval_concealed_samples >= _AudioStallObserver2.ratio * interval_samples_received;
|
|
32062
32158
|
this._stallList.push({
|
|
32063
32159
|
concealed: interval_concealed_samples,
|
|
32064
32160
|
received: interval_samples_received,
|
|
@@ -32086,10 +32182,11 @@ var AudioStallObserver = /* @__PURE__ */ function() {
|
|
|
32086
32182
|
return _audioStallCount;
|
|
32087
32183
|
}()
|
|
32088
32184
|
}]);
|
|
32089
|
-
return
|
|
32185
|
+
return _AudioStallObserver2;
|
|
32090
32186
|
}();
|
|
32091
|
-
|
|
32092
|
-
|
|
32187
|
+
var AudioStallObserver = _AudioStallObserver;
|
|
32188
|
+
AudioStallObserver.interval = 100;
|
|
32189
|
+
AudioStallObserver.ratio = 0.6;
|
|
32093
32190
|
var computeStallInfo = function computeStallInfo2(list, times, isStallInPreEnd) {
|
|
32094
32191
|
var _list$;
|
|
32095
32192
|
var res = {
|
|
@@ -32158,13 +32255,22 @@ var VideoStallObserver = /* @__PURE__ */ function() {
|
|
|
32158
32255
|
function VideoStallObserver2() {
|
|
32159
32256
|
var _this = this;
|
|
32160
32257
|
_classCallCheck$k(this, VideoStallObserver2);
|
|
32161
|
-
|
|
32258
|
+
this._videoInWaiting100ms = false;
|
|
32259
|
+
this._videoInWaiting500ms = false;
|
|
32260
|
+
this._pauseStart = 0;
|
|
32261
|
+
this._pauseDuration = 0;
|
|
32262
|
+
this._stallTimeThreshold = {
|
|
32263
|
+
stall500ms: isSafari$1() || isFirefox$2() ? 550 : 500,
|
|
32264
|
+
stall100ms: 100
|
|
32265
|
+
};
|
|
32266
|
+
this._support100msStall = checkVideoFrameCallback();
|
|
32267
|
+
this._handleVisibilityChange = function() {
|
|
32162
32268
|
if (document.visibilityState === "hidden") {
|
|
32163
32269
|
_this._framePause();
|
|
32164
32270
|
}
|
|
32165
|
-
}
|
|
32166
|
-
|
|
32167
|
-
if (_this._prePts) {
|
|
32271
|
+
};
|
|
32272
|
+
this._framePause = function() {
|
|
32273
|
+
if (_this._prePts && _this._stallList) {
|
|
32168
32274
|
var current = performance.now();
|
|
32169
32275
|
var delta = current - _this._prePts;
|
|
32170
32276
|
_this._stallList.push({
|
|
@@ -32173,23 +32279,7 @@ var VideoStallObserver = /* @__PURE__ */ function() {
|
|
|
32173
32279
|
});
|
|
32174
32280
|
_this._prePts = void 0;
|
|
32175
32281
|
}
|
|
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
32282
|
};
|
|
32192
|
-
this._support100msStall = checkVideoFrameCallback();
|
|
32193
32283
|
}
|
|
32194
32284
|
_createClass$k(VideoStallObserver2, [{
|
|
32195
32285
|
key: "start",
|
|
@@ -32227,7 +32317,7 @@ var VideoStallObserver = /* @__PURE__ */ function() {
|
|
|
32227
32317
|
player.removeEventListener("play", handlePlay);
|
|
32228
32318
|
};
|
|
32229
32319
|
document.addEventListener("visibilitychange", this._handleVisibilityChange);
|
|
32230
|
-
|
|
32320
|
+
window.addEventListener("pagehide", this._framePause);
|
|
32231
32321
|
}
|
|
32232
32322
|
}, {
|
|
32233
32323
|
key: "stop",
|
|
@@ -32246,7 +32336,7 @@ var VideoStallObserver = /* @__PURE__ */ function() {
|
|
|
32246
32336
|
this._videoInWaiting100ms = false;
|
|
32247
32337
|
this._videoInWaiting500ms = false;
|
|
32248
32338
|
document.removeEventListener("visibilitychange", this._handleVisibilityChange);
|
|
32249
|
-
|
|
32339
|
+
window.removeEventListener("pagehide", this._framePause);
|
|
32250
32340
|
}
|
|
32251
32341
|
}, {
|
|
32252
32342
|
key: "destroy",
|
|
@@ -32315,7 +32405,7 @@ var VideoStallObserver = /* @__PURE__ */ function() {
|
|
|
32315
32405
|
}
|
|
32316
32406
|
var _stallInfo$stall = stallInfo.stall, stallDuration500ms = _stallInfo$stall.stallDuration500ms, stallDuration100ms = _stallInfo$stall.stallDuration100ms;
|
|
32317
32407
|
stallInfo.stall.stallRate500ms = Math.min(Number((stallDuration500ms / interval).toFixed(4)), 1);
|
|
32318
|
-
if (this._support100msStall) {
|
|
32408
|
+
if (this._support100msStall && stallDuration100ms) {
|
|
32319
32409
|
stallInfo.stall.stallRate100ms = Math.min(Number((stallDuration100ms / interval).toFixed(4)), 1);
|
|
32320
32410
|
} else {
|
|
32321
32411
|
delete stallInfo.stall.stallRate100ms;
|
|
@@ -32481,7 +32571,7 @@ function diffRecvAudioStats(oldStats, newStats) {
|
|
|
32481
32571
|
receivedSampleRate: diffNumber(oldStats, newStats, "totalSamplesReceived") / statsInterval,
|
|
32482
32572
|
concealedSamples: Math.round(diffNumber(oldStats, newStats, "concealedSamples")),
|
|
32483
32573
|
concealmentEvent: Math.round(diffNumber(oldStats, newStats, "concealmentEvents")),
|
|
32484
|
-
e2eDelay: Math.round(newStats.rtt + jitterBufferDelay)
|
|
32574
|
+
e2eDelay: Math.round((newStats.rtt || 0) + jitterBufferDelay)
|
|
32485
32575
|
};
|
|
32486
32576
|
}
|
|
32487
32577
|
function getRecvVideoStats(_x2) {
|
|
@@ -32552,8 +32642,12 @@ function diffRecvVideoStats(oldStats, newStats) {
|
|
|
32552
32642
|
var nackCount = diffNumber(oldStats, newStats, "nackCount");
|
|
32553
32643
|
var packetsReceived = diffNumber(oldStats, newStats, "packetsReceived");
|
|
32554
32644
|
var jitterBufferDelay = Math.round(diffNumber(oldStats, newStats, "jitterBufferDelay") / diffNumber(oldStats, newStats, "jitterBufferEmittedCount") * 1e3);
|
|
32645
|
+
var newResolution = (newStats.width || 0) * (newStats.height || 0);
|
|
32646
|
+
var oldResolution = (oldStats.width || 0) * (oldStats.height || 0);
|
|
32647
|
+
var abrState = newResolution === 0 || oldResolution === 0 ? "none" : newResolution > oldResolution ? "upgrade" : newResolution < oldResolution ? "degrade" : "none";
|
|
32555
32648
|
return {
|
|
32556
32649
|
statsInterval,
|
|
32650
|
+
abrState,
|
|
32557
32651
|
width: newStats.width || 0,
|
|
32558
32652
|
height: newStats.height || 0,
|
|
32559
32653
|
estimatedPlayoutTimestamp: newStats.estimatedPlayoutTimestamp,
|
|
@@ -32572,7 +32666,7 @@ function diffRecvVideoStats(oldStats, newStats) {
|
|
|
32572
32666
|
firCount: diffNumber(oldStats, newStats, "firCount"),
|
|
32573
32667
|
nackCount,
|
|
32574
32668
|
pliCount: diffNumber(oldStats, newStats, "pliCount"),
|
|
32575
|
-
e2eDelay: Math.round(newStats.rtt + jitterBufferDelay),
|
|
32669
|
+
e2eDelay: Math.round((newStats.rtt || 0) + jitterBufferDelay),
|
|
32576
32670
|
retransmittedRate: +(nackCount / (packetsReceived + packetsLostDiff)).toFixed(2)
|
|
32577
32671
|
};
|
|
32578
32672
|
}
|
|
@@ -32605,11 +32699,11 @@ var Quality = {
|
|
|
32605
32699
|
DOWN: 6
|
|
32606
32700
|
};
|
|
32607
32701
|
var NetworkQuality = /* @__PURE__ */ function() {
|
|
32608
|
-
function NetworkQuality2(
|
|
32702
|
+
function NetworkQuality2(_peer, _networkQualityParams) {
|
|
32609
32703
|
_classCallCheck$k(this, NetworkQuality2);
|
|
32610
|
-
|
|
32611
|
-
this.
|
|
32612
|
-
this.
|
|
32704
|
+
this._peer = _peer;
|
|
32705
|
+
this._networkQualityParams = _networkQualityParams;
|
|
32706
|
+
this._preDownlinkStats = [];
|
|
32613
32707
|
}
|
|
32614
32708
|
_createClass$k(NetworkQuality2, [{
|
|
32615
32709
|
key: "getDownlinkQuality",
|
|
@@ -32664,11 +32758,11 @@ var NetworkQuality = /* @__PURE__ */ function() {
|
|
|
32664
32758
|
} else {
|
|
32665
32759
|
quality = QosLevel.VBAD;
|
|
32666
32760
|
}
|
|
32667
|
-
if (retransmittedRate > qosQualityParams[QosLevel.BAD].minRetransmittedRate) {
|
|
32761
|
+
if (retransmittedRate > (qosQualityParams[QosLevel.BAD].minRetransmittedRate || 0.5)) {
|
|
32668
32762
|
quality = Math.max(quality, QosLevel.BAD);
|
|
32669
|
-
} else if (retransmittedRate > qosQualityParams[QosLevel.POOR].minRetransmittedRate) {
|
|
32763
|
+
} else if (retransmittedRate > (qosQualityParams[QosLevel.POOR].minRetransmittedRate || 0.35)) {
|
|
32670
32764
|
quality = Math.max(quality, QosLevel.POOR);
|
|
32671
|
-
} else if (retransmittedRate > qosQualityParams[QosLevel.GOOD].minRetransmittedRate) {
|
|
32765
|
+
} else if (retransmittedRate > (qosQualityParams[QosLevel.GOOD].minRetransmittedRate || 0.2)) {
|
|
32672
32766
|
quality = Math.max(quality, QosLevel.GOOD);
|
|
32673
32767
|
}
|
|
32674
32768
|
return quality;
|
|
@@ -32709,6 +32803,249 @@ var NetworkQuality = /* @__PURE__ */ function() {
|
|
|
32709
32803
|
}]);
|
|
32710
32804
|
return NetworkQuality2;
|
|
32711
32805
|
}();
|
|
32806
|
+
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];
|
|
32807
|
+
var FirstFrameObserver = /* @__PURE__ */ function() {
|
|
32808
|
+
function FirstFrameObserver2(_emitFirstFrameState) {
|
|
32809
|
+
var _this = this;
|
|
32810
|
+
_classCallCheck$k(this, FirstFrameObserver2);
|
|
32811
|
+
this._emitFirstFrameState = _emitFirstFrameState;
|
|
32812
|
+
this._startConnectTs = 0;
|
|
32813
|
+
this._firstVideoFrameInterval = null;
|
|
32814
|
+
this._preState = null;
|
|
32815
|
+
this._state = {};
|
|
32816
|
+
this._pc = null;
|
|
32817
|
+
this._video = null;
|
|
32818
|
+
this._videoTransceiver = null;
|
|
32819
|
+
this._extraInfo = {
|
|
32820
|
+
is_preload: false
|
|
32821
|
+
};
|
|
32822
|
+
this._handleConnectionStateChange = function() {
|
|
32823
|
+
var _this$_pc;
|
|
32824
|
+
if (((_this$_pc = _this._pc) === null || _this$_pc === void 0 ? void 0 : _this$_pc.connectionState) === "connected" && _this._videoTransceiver) {
|
|
32825
|
+
_this.changeFirstFrameState(RTC_FIRST_FRAME_STATE.PEER_CONNECTED);
|
|
32826
|
+
_this._watchForFirstVideoFrameRecv(_this._videoTransceiver);
|
|
32827
|
+
}
|
|
32828
|
+
};
|
|
32829
|
+
this._handleICEConnectionStateChange = function() {
|
|
32830
|
+
var _this$_pc2;
|
|
32831
|
+
if (((_this$_pc2 = _this._pc) === null || _this$_pc2 === void 0 ? void 0 : _this$_pc2.iceConnectionState) === "connected") {
|
|
32832
|
+
_this.changeFirstFrameState(RTC_FIRST_FRAME_STATE.ICE_CONNECTED);
|
|
32833
|
+
}
|
|
32834
|
+
};
|
|
32835
|
+
this._handlePlaying = function() {
|
|
32836
|
+
_this.changeFirstFrameState(RTC_FIRST_FRAME_STATE.VIDEO_PLAYING);
|
|
32837
|
+
_this.reset();
|
|
32838
|
+
};
|
|
32839
|
+
this._handleCanplay = function() {
|
|
32840
|
+
_this.changeFirstFrameState(RTC_FIRST_FRAME_STATE.VIDEO_CANPLAY);
|
|
32841
|
+
};
|
|
32842
|
+
this._handleLoadeddata = function() {
|
|
32843
|
+
_this.changeFirstFrameState(RTC_FIRST_FRAME_STATE.VIDEO_LOADEDDATA);
|
|
32844
|
+
};
|
|
32845
|
+
this._handleError = function() {
|
|
32846
|
+
_this.reset();
|
|
32847
|
+
};
|
|
32848
|
+
}
|
|
32849
|
+
_createClass$k(FirstFrameObserver2, [{
|
|
32850
|
+
key: "start",
|
|
32851
|
+
value: function start() {
|
|
32852
|
+
this.reset();
|
|
32853
|
+
this._startConnectTs = Date.now();
|
|
32854
|
+
this.changeFirstFrameState(RTC_FIRST_FRAME_STATE.LOAD_START);
|
|
32855
|
+
}
|
|
32856
|
+
}, {
|
|
32857
|
+
key: "changeFirstFrameState",
|
|
32858
|
+
value: function changeFirstFrameState(state) {
|
|
32859
|
+
var _ref6, _this2 = this;
|
|
32860
|
+
var preIdx = (_ref6 = this._preState && FIRST_FRAME_STATE_ORDER.indexOf(this._preState)) !== null && _ref6 !== void 0 ? _ref6 : -1;
|
|
32861
|
+
var curIdx = FIRST_FRAME_STATE_ORDER.indexOf(state);
|
|
32862
|
+
var elapsed = Date.now() - this._startConnectTs;
|
|
32863
|
+
if (curIdx > preIdx) {
|
|
32864
|
+
FIRST_FRAME_STATE_ORDER.slice(preIdx + 1, curIdx + 1).forEach(function(s2) {
|
|
32865
|
+
_this2._state[s2] = elapsed;
|
|
32866
|
+
});
|
|
32867
|
+
this._preState = state;
|
|
32868
|
+
}
|
|
32869
|
+
}
|
|
32870
|
+
}, {
|
|
32871
|
+
key: "setIsPreload",
|
|
32872
|
+
value: function setIsPreload(isPreload) {
|
|
32873
|
+
this._extraInfo.is_preload = isPreload;
|
|
32874
|
+
}
|
|
32875
|
+
}, {
|
|
32876
|
+
key: "setFailureReason",
|
|
32877
|
+
value: function setFailureReason(reason) {
|
|
32878
|
+
this._extraInfo.failure_reason = reason;
|
|
32879
|
+
}
|
|
32880
|
+
}, {
|
|
32881
|
+
key: "bindEvents",
|
|
32882
|
+
value: function bindEvents(pc, videoTransceiver, video2) {
|
|
32883
|
+
var _this3 = this;
|
|
32884
|
+
this._pc = pc;
|
|
32885
|
+
this._video = video2;
|
|
32886
|
+
this._videoTransceiver = videoTransceiver;
|
|
32887
|
+
pc.addEventListener("connectionstatechange", this._handleConnectionStateChange);
|
|
32888
|
+
pc.addEventListener("iceconnectionstatechange", this._handleICEConnectionStateChange);
|
|
32889
|
+
var _ref22 = (videoTransceiver === null || videoTransceiver === void 0 ? void 0 : videoTransceiver.receiver) || {}, transport = _ref22.transport;
|
|
32890
|
+
if (transport) {
|
|
32891
|
+
transport.onstatechange = function() {
|
|
32892
|
+
transport.state === "connected" && _this3.changeFirstFrameState(RTC_FIRST_FRAME_STATE.DTLS_CONNECTED);
|
|
32893
|
+
};
|
|
32894
|
+
}
|
|
32895
|
+
video2 === null || video2 === void 0 ? void 0 : video2.addEventListener("playing", this._handlePlaying);
|
|
32896
|
+
video2 === null || video2 === void 0 ? void 0 : video2.addEventListener("canplay", this._handleCanplay);
|
|
32897
|
+
video2 === null || video2 === void 0 ? void 0 : video2.addEventListener("loadeddata", this._handleLoadeddata);
|
|
32898
|
+
video2 === null || video2 === void 0 ? void 0 : video2.addEventListener("error", this._handleError);
|
|
32899
|
+
}
|
|
32900
|
+
}, {
|
|
32901
|
+
key: "_watchForFirstVideoFrameRecv",
|
|
32902
|
+
value: function _watchForFirstVideoFrameRecv(videoTransceiver) {
|
|
32903
|
+
var _this4 = this;
|
|
32904
|
+
var hasPacketsReceived = false;
|
|
32905
|
+
var hasFrameReceived = false;
|
|
32906
|
+
var hasFrameDecoded = false;
|
|
32907
|
+
this._cancelWatchForFirstVideoFrameRecv();
|
|
32908
|
+
this._firstVideoFrameInterval = window.setInterval(/* @__PURE__ */ _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee() {
|
|
32909
|
+
var receiver, reports, inboundRtpStats;
|
|
32910
|
+
return _regeneratorRuntime$a().wrap(function _callee$(_context) {
|
|
32911
|
+
while (1)
|
|
32912
|
+
switch (_context.prev = _context.next) {
|
|
32913
|
+
case 0:
|
|
32914
|
+
receiver = videoTransceiver.receiver;
|
|
32915
|
+
_context.next = 3;
|
|
32916
|
+
return receiver.getStats();
|
|
32917
|
+
case 3:
|
|
32918
|
+
reports = _context.sent;
|
|
32919
|
+
reports.forEach(function(report) {
|
|
32920
|
+
if (report.type === "inbound-rtp") {
|
|
32921
|
+
inboundRtpStats = report;
|
|
32922
|
+
}
|
|
32923
|
+
});
|
|
32924
|
+
if (!hasPacketsReceived && inboundRtpStats.packetsReceived > 0) {
|
|
32925
|
+
hasPacketsReceived = true;
|
|
32926
|
+
_this4.changeFirstFrameState(RTC_FIRST_FRAME_STATE.FIRST_PACKET_RECV);
|
|
32927
|
+
}
|
|
32928
|
+
if (!hasFrameReceived && inboundRtpStats.framesReceived > 0) {
|
|
32929
|
+
hasFrameReceived = true;
|
|
32930
|
+
_this4.changeFirstFrameState(RTC_FIRST_FRAME_STATE.FIRST_FRAME_RECV);
|
|
32931
|
+
}
|
|
32932
|
+
if (!hasFrameDecoded && inboundRtpStats.framesDecoded > 0) {
|
|
32933
|
+
hasFrameDecoded = true;
|
|
32934
|
+
_this4.changeFirstFrameState(RTC_FIRST_FRAME_STATE.FIRST_FRAME_DECODED);
|
|
32935
|
+
_this4._cancelWatchForFirstVideoFrameRecv();
|
|
32936
|
+
}
|
|
32937
|
+
case 8:
|
|
32938
|
+
case "end":
|
|
32939
|
+
return _context.stop();
|
|
32940
|
+
}
|
|
32941
|
+
}, _callee);
|
|
32942
|
+
})), 200);
|
|
32943
|
+
}
|
|
32944
|
+
}, {
|
|
32945
|
+
key: "_cancelWatchForFirstVideoFrameRecv",
|
|
32946
|
+
value: function _cancelWatchForFirstVideoFrameRecv() {
|
|
32947
|
+
if (this._firstVideoFrameInterval) {
|
|
32948
|
+
window.clearInterval(this._firstVideoFrameInterval);
|
|
32949
|
+
this._firstVideoFrameInterval = null;
|
|
32950
|
+
}
|
|
32951
|
+
}
|
|
32952
|
+
}, {
|
|
32953
|
+
key: "_getTransportInfo",
|
|
32954
|
+
value: function() {
|
|
32955
|
+
var _getTransportInfo2 = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee2() {
|
|
32956
|
+
var _this$_videoTransceiv, _this$_videoTransceiv2;
|
|
32957
|
+
var reports, candidatePairStats, localCandidateStats, remoteCandidateStats;
|
|
32958
|
+
return _regeneratorRuntime$a().wrap(function _callee2$(_context2) {
|
|
32959
|
+
while (1)
|
|
32960
|
+
switch (_context2.prev = _context2.next) {
|
|
32961
|
+
case 0:
|
|
32962
|
+
_context2.next = 2;
|
|
32963
|
+
return (_this$_videoTransceiv = this._videoTransceiver) === null || _this$_videoTransceiv === void 0 ? void 0 : (_this$_videoTransceiv2 = _this$_videoTransceiv.receiver) === null || _this$_videoTransceiv2 === void 0 ? void 0 : _this$_videoTransceiv2.getStats();
|
|
32964
|
+
case 2:
|
|
32965
|
+
reports = _context2.sent;
|
|
32966
|
+
reports === null || reports === void 0 ? void 0 : reports.forEach(function(report) {
|
|
32967
|
+
if (report.type === "candidate-pair") {
|
|
32968
|
+
candidatePairStats = report;
|
|
32969
|
+
localCandidateStats = reports.get(report.localCandidateId);
|
|
32970
|
+
remoteCandidateStats = reports.get(report.remoteCandidateId);
|
|
32971
|
+
}
|
|
32972
|
+
});
|
|
32973
|
+
if (remoteCandidateStats) {
|
|
32974
|
+
this._extraInfo.remote_ip = remoteCandidateStats.ip || remoteCandidateStats.address;
|
|
32975
|
+
this._extraInfo.remote_port = remoteCandidateStats.port;
|
|
32976
|
+
this._extraInfo.remote_candidate_type = remoteCandidateStats.candidateType;
|
|
32977
|
+
this._extraInfo.protocol = remoteCandidateStats.protocol;
|
|
32978
|
+
}
|
|
32979
|
+
if (localCandidateStats) {
|
|
32980
|
+
this._extraInfo.local_ip = localCandidateStats.ip || localCandidateStats.address;
|
|
32981
|
+
this._extraInfo.local_port = localCandidateStats.port;
|
|
32982
|
+
this._extraInfo.local_candidate_type = localCandidateStats.candidateType;
|
|
32983
|
+
}
|
|
32984
|
+
if (candidatePairStats) {
|
|
32985
|
+
this._extraInfo.rtt = candidatePairStats.currentRoundTripTime;
|
|
32986
|
+
this._extraInfo.stun_requests_sent = candidatePairStats.requestsSent;
|
|
32987
|
+
this._extraInfo.stun_requests_received = candidatePairStats.requestsReceived;
|
|
32988
|
+
this._extraInfo.stun_responses_sent = candidatePairStats.responsesSent;
|
|
32989
|
+
this._extraInfo.stun_responses_received = candidatePairStats.responsesReceived;
|
|
32990
|
+
}
|
|
32991
|
+
case 7:
|
|
32992
|
+
case "end":
|
|
32993
|
+
return _context2.stop();
|
|
32994
|
+
}
|
|
32995
|
+
}, _callee2, this);
|
|
32996
|
+
}));
|
|
32997
|
+
function _getTransportInfo() {
|
|
32998
|
+
return _getTransportInfo2.apply(this, arguments);
|
|
32999
|
+
}
|
|
33000
|
+
return _getTransportInfo;
|
|
33001
|
+
}()
|
|
33002
|
+
}, {
|
|
33003
|
+
key: "reset",
|
|
33004
|
+
value: function() {
|
|
33005
|
+
var _reset = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee3() {
|
|
33006
|
+
var _this$_video, _this$_video2, _this$_video3, _this$_video4, _this$_pc3, _this$_pc4;
|
|
33007
|
+
return _regeneratorRuntime$a().wrap(function _callee3$(_context3) {
|
|
33008
|
+
while (1)
|
|
33009
|
+
switch (_context3.prev = _context3.next) {
|
|
33010
|
+
case 0:
|
|
33011
|
+
if (!(Object.keys(this._state).length > 0)) {
|
|
33012
|
+
_context3.next = 4;
|
|
33013
|
+
break;
|
|
33014
|
+
}
|
|
33015
|
+
_context3.next = 3;
|
|
33016
|
+
return this._getTransportInfo();
|
|
33017
|
+
case 3:
|
|
33018
|
+
this._emitFirstFrameState(this._state, this._extraInfo);
|
|
33019
|
+
case 4:
|
|
33020
|
+
this._preState = null;
|
|
33021
|
+
this._extraInfo = {
|
|
33022
|
+
is_preload: false
|
|
33023
|
+
};
|
|
33024
|
+
this._state = {};
|
|
33025
|
+
(_this$_video = this._video) === null || _this$_video === void 0 ? void 0 : _this$_video.removeEventListener("playing", this._handlePlaying);
|
|
33026
|
+
(_this$_video2 = this._video) === null || _this$_video2 === void 0 ? void 0 : _this$_video2.removeEventListener("canplay", this._handleCanplay);
|
|
33027
|
+
(_this$_video3 = this._video) === null || _this$_video3 === void 0 ? void 0 : _this$_video3.removeEventListener("loadeddata", this._handleLoadeddata);
|
|
33028
|
+
(_this$_video4 = this._video) === null || _this$_video4 === void 0 ? void 0 : _this$_video4.removeEventListener("error", this._handleError);
|
|
33029
|
+
(_this$_pc3 = this._pc) === null || _this$_pc3 === void 0 ? void 0 : _this$_pc3.removeEventListener("connectionstatechange", this._handleConnectionStateChange);
|
|
33030
|
+
(_this$_pc4 = this._pc) === null || _this$_pc4 === void 0 ? void 0 : _this$_pc4.removeEventListener("iceconnectionstatechange", this._handleICEConnectionStateChange);
|
|
33031
|
+
this._cancelWatchForFirstVideoFrameRecv();
|
|
33032
|
+
this._pc = null;
|
|
33033
|
+
this._video = null;
|
|
33034
|
+
this._videoTransceiver = null;
|
|
33035
|
+
case 17:
|
|
33036
|
+
case "end":
|
|
33037
|
+
return _context3.stop();
|
|
33038
|
+
}
|
|
33039
|
+
}, _callee3, this);
|
|
33040
|
+
}));
|
|
33041
|
+
function reset() {
|
|
33042
|
+
return _reset.apply(this, arguments);
|
|
33043
|
+
}
|
|
33044
|
+
return reset;
|
|
33045
|
+
}()
|
|
33046
|
+
}]);
|
|
33047
|
+
return FirstFrameObserver2;
|
|
33048
|
+
}();
|
|
32712
33049
|
function changeNumberInRange(source, min2, max2, delta) {
|
|
32713
33050
|
var target = source + delta;
|
|
32714
33051
|
if (target > max2) {
|
|
@@ -32719,6 +33056,59 @@ function changeNumberInRange(source, min2, max2, delta) {
|
|
|
32719
33056
|
function isHarmonyOS() {
|
|
32720
33057
|
return /(HarmonyOS|OpenHarmony|ArkWeb)/i.test(navigator.userAgent);
|
|
32721
33058
|
}
|
|
33059
|
+
function compareURL(url1, url2) {
|
|
33060
|
+
var queryKeys = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [];
|
|
33061
|
+
if (typeof url1 !== "string" || typeof url2 !== "string") {
|
|
33062
|
+
return false;
|
|
33063
|
+
}
|
|
33064
|
+
if (!url1.includes("://")) {
|
|
33065
|
+
url1 = window.location.protocol + "//" + url1;
|
|
33066
|
+
}
|
|
33067
|
+
if (!url2.includes("://")) {
|
|
33068
|
+
url2 = window.location.protocol + "//" + url2;
|
|
33069
|
+
}
|
|
33070
|
+
var url1Obj;
|
|
33071
|
+
var url2Obj;
|
|
33072
|
+
try {
|
|
33073
|
+
url1Obj = new URL(url1);
|
|
33074
|
+
url2Obj = new URL(url2);
|
|
33075
|
+
} catch (e4) {
|
|
33076
|
+
return false;
|
|
33077
|
+
}
|
|
33078
|
+
if (url1Obj.host + url1Obj.pathname !== url2Obj.host + url2Obj.pathname) {
|
|
33079
|
+
return false;
|
|
33080
|
+
}
|
|
33081
|
+
var _iterator = _createForOfIteratorHelper$4(queryKeys), _step;
|
|
33082
|
+
try {
|
|
33083
|
+
for (_iterator.s(); !(_step = _iterator.n()).done; ) {
|
|
33084
|
+
var key2 = _step.value;
|
|
33085
|
+
if (url1Obj.searchParams.get(key2) !== url2Obj.searchParams.get(key2)) {
|
|
33086
|
+
return false;
|
|
33087
|
+
}
|
|
33088
|
+
}
|
|
33089
|
+
} catch (err) {
|
|
33090
|
+
_iterator.e(err);
|
|
33091
|
+
} finally {
|
|
33092
|
+
_iterator.f();
|
|
33093
|
+
}
|
|
33094
|
+
return true;
|
|
33095
|
+
}
|
|
33096
|
+
function addUrlParams(url2, params) {
|
|
33097
|
+
if (!params || Object.keys(params).length === 0) {
|
|
33098
|
+
return url2;
|
|
33099
|
+
}
|
|
33100
|
+
var urlParams = url2.includes("?") ? new URLSearchParams(url2.split("?")[1]) : new URLSearchParams();
|
|
33101
|
+
Object.keys(params).forEach(function(key2) {
|
|
33102
|
+
urlParams.set(key2, params[key2]);
|
|
33103
|
+
});
|
|
33104
|
+
return url2.split("?")[0] + "?" + urlParams.toString();
|
|
33105
|
+
}
|
|
33106
|
+
function isHeyTapBrowser() {
|
|
33107
|
+
return /(HeyTapBrowser)/i.test(navigator.userAgent);
|
|
33108
|
+
}
|
|
33109
|
+
function isVivoBrowser() {
|
|
33110
|
+
return /(VivoBrowser)/i.test(navigator.userAgent);
|
|
33111
|
+
}
|
|
32722
33112
|
var logger$b = new Logger$a("rts");
|
|
32723
33113
|
var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
32724
33114
|
_inherits$f(Rts2, _EventEmitter);
|
|
@@ -32727,31 +33117,28 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
32727
33117
|
var _this;
|
|
32728
33118
|
_classCallCheck$k(this, Rts2);
|
|
32729
33119
|
_this = _super.call(this);
|
|
32730
|
-
|
|
32731
|
-
|
|
32732
|
-
|
|
32733
|
-
|
|
32734
|
-
|
|
32735
|
-
|
|
32736
|
-
|
|
32737
|
-
|
|
32738
|
-
|
|
32739
|
-
|
|
32740
|
-
|
|
32741
|
-
|
|
32742
|
-
|
|
32743
|
-
|
|
32744
|
-
|
|
32745
|
-
|
|
32746
|
-
|
|
32747
|
-
|
|
32748
|
-
|
|
32749
|
-
|
|
32750
|
-
|
|
32751
|
-
|
|
32752
|
-
_defineProperty$i(_assertThisInitialized$f(_this), "_networkQualityResult", []);
|
|
32753
|
-
_defineProperty$i(_assertThisInitialized$f(_this), "_peerStateTimer", null);
|
|
32754
|
-
_defineProperty$i(_assertThisInitialized$f(_this), "_checkStatsError", /* @__PURE__ */ _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee2() {
|
|
33120
|
+
_this._url = "";
|
|
33121
|
+
_this._pc = null;
|
|
33122
|
+
_this._audioTransceicer = null;
|
|
33123
|
+
_this._videoTransceicer = null;
|
|
33124
|
+
_this._mediaStream = null;
|
|
33125
|
+
_this._lastMediaStream = null;
|
|
33126
|
+
_this._loader = null;
|
|
33127
|
+
_this._networkEvaluate = null;
|
|
33128
|
+
_this._retry = 0;
|
|
33129
|
+
_this._player = null;
|
|
33130
|
+
_this._waitingTimer = 0;
|
|
33131
|
+
_this._rctConnectStartTs = 0;
|
|
33132
|
+
_this._isReplacing = false;
|
|
33133
|
+
_this._firstFrameObserver = new FirstFrameObserver(_this._emitFirstFrameState.bind(_assertThisInitialized$f(_this)));
|
|
33134
|
+
_this._audio = null;
|
|
33135
|
+
_this._video = null;
|
|
33136
|
+
_this._preAudioStats = null;
|
|
33137
|
+
_this._preVideoStats = null;
|
|
33138
|
+
_this._rtcReportTimer = null;
|
|
33139
|
+
_this._networkQualityResult = [];
|
|
33140
|
+
_this._videoJitterBufferDelay = 0;
|
|
33141
|
+
_this._checkStatsError = /* @__PURE__ */ _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee2() {
|
|
32755
33142
|
return _regeneratorRuntime$a().wrap(function _callee2$(_context2) {
|
|
32756
33143
|
while (1)
|
|
32757
33144
|
switch (_context2.prev = _context2.next) {
|
|
@@ -32792,12 +33179,16 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
32792
33179
|
return _context2.stop();
|
|
32793
33180
|
}
|
|
32794
33181
|
}, _callee2);
|
|
32795
|
-
}))
|
|
32796
|
-
|
|
33182
|
+
}));
|
|
33183
|
+
_this._onTrack = function(e4) {
|
|
32797
33184
|
logger$b.log("addTrack: ", e4.track, e4.streams);
|
|
32798
|
-
|
|
32799
|
-
|
|
32800
|
-
|
|
33185
|
+
if (e4.track.kind === "audio") {
|
|
33186
|
+
_this._audio = e4.track;
|
|
33187
|
+
} else {
|
|
33188
|
+
_this._video = e4.track;
|
|
33189
|
+
}
|
|
33190
|
+
};
|
|
33191
|
+
_this._mockWaitingByTimeupdate = function() {
|
|
32801
33192
|
var _this$_pc, _this$_pc2;
|
|
32802
33193
|
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
33194
|
return;
|
|
@@ -32808,8 +33199,8 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
32808
33199
|
return;
|
|
32809
33200
|
_this.emit("waiting");
|
|
32810
33201
|
}, _this._opts.stallInterval);
|
|
32811
|
-
}
|
|
32812
|
-
|
|
33202
|
+
};
|
|
33203
|
+
_this._onLoadedData = function() {
|
|
32813
33204
|
logger$b.log("loadeddata emit");
|
|
32814
33205
|
_this.getStatsSnapshoot().then(function(snap) {
|
|
32815
33206
|
_this.emit(EVENT$2.METADATA_PARSED, {
|
|
@@ -32823,19 +33214,15 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
32823
33214
|
meta: snap.audio
|
|
32824
33215
|
});
|
|
32825
33216
|
});
|
|
32826
|
-
}
|
|
32827
|
-
|
|
33217
|
+
};
|
|
33218
|
+
_this._setDelay = function(delayHint) {
|
|
32828
33219
|
if (_this._opts.progressiveSetDelay) {
|
|
32829
33220
|
_this._startSetDelayLoop(delayHint);
|
|
32830
33221
|
} else {
|
|
32831
33222
|
var _this$_audioTransceic2;
|
|
32832
|
-
var key2 = [
|
|
32833
|
-
"playoutDelayHint",
|
|
32834
|
-
"jitterBufferDelayHint",
|
|
32835
|
-
"jitterBufferTarget"
|
|
32836
|
-
].find(function(key22) {
|
|
33223
|
+
var key2 = ["playoutDelayHint", "jitterBufferDelayHint", "jitterBufferTarget"].find(function(key22) {
|
|
32837
33224
|
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);
|
|
33225
|
+
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
33226
|
});
|
|
32840
33227
|
if (!key2)
|
|
32841
33228
|
return;
|
|
@@ -32845,24 +33232,19 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
32845
33232
|
_this._audioTransceicer.receiver[key2] = delayHint;
|
|
32846
33233
|
_this._videoTransceicer.receiver[key2] = delayHint;
|
|
32847
33234
|
}
|
|
32848
|
-
}
|
|
32849
|
-
|
|
32850
|
-
|
|
32851
|
-
|
|
32852
|
-
_defineProperty$i(_assertThisInitialized$f(_this), "_startSetDelayLoop", /* @__PURE__ */ function() {
|
|
33235
|
+
};
|
|
33236
|
+
_this._targetDelayHint = null;
|
|
33237
|
+
_this._setDelayError = null;
|
|
33238
|
+
_this._startSetDelayLoop = /* @__PURE__ */ function() {
|
|
32853
33239
|
var _ref32 = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee4(delayHint) {
|
|
32854
33240
|
var key2, preAudioStats, preVideoStats, _this$_opts$adaptiveJ, loopInterval, maxAvSyncDelay, maxJitterBufferDiff, maxStep, avDiffTooMuchCount;
|
|
32855
33241
|
return _regeneratorRuntime$a().wrap(function _callee4$(_context4) {
|
|
32856
33242
|
while (1)
|
|
32857
33243
|
switch (_context4.prev = _context4.next) {
|
|
32858
33244
|
case 0:
|
|
32859
|
-
key2 = [
|
|
32860
|
-
"playoutDelayHint",
|
|
32861
|
-
"jitterBufferDelayHint",
|
|
32862
|
-
"jitterBufferTarget"
|
|
32863
|
-
].find(function(key22) {
|
|
33245
|
+
key2 = ["playoutDelayHint", "jitterBufferDelayHint", "jitterBufferTarget"].find(function(key22) {
|
|
32864
33246
|
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);
|
|
33247
|
+
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
33248
|
});
|
|
32867
33249
|
if (key2) {
|
|
32868
33250
|
_context4.next = 3;
|
|
@@ -32877,13 +33259,14 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
32877
33259
|
}
|
|
32878
33260
|
return _context4.abrupt("return");
|
|
32879
33261
|
case 6:
|
|
33262
|
+
logger$b.log("_startSetDelayLoop()", "invoked, delayHint: ".concat(delayHint));
|
|
32880
33263
|
_this._targetDelayHint = delayHint;
|
|
32881
33264
|
if (!_this._setDelayTimer) {
|
|
32882
|
-
_context4.next =
|
|
33265
|
+
_context4.next = 10;
|
|
32883
33266
|
break;
|
|
32884
33267
|
}
|
|
32885
33268
|
return _context4.abrupt("return");
|
|
32886
|
-
case
|
|
33269
|
+
case 10:
|
|
32887
33270
|
preAudioStats = null;
|
|
32888
33271
|
preVideoStats = null;
|
|
32889
33272
|
_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 +33293,7 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
32910
33293
|
}
|
|
32911
33294
|
return _context3.abrupt("return");
|
|
32912
33295
|
case 8:
|
|
32913
|
-
targetDelayMs = _this._targetDelayHint * 1e3;
|
|
33296
|
+
targetDelayMs = (_this._targetDelayHint || 0) * 1e3;
|
|
32914
33297
|
currentTargetDelayMs = currentTargetDelay * 1e3;
|
|
32915
33298
|
_context3.next = 12;
|
|
32916
33299
|
return Promise.all([getRecvAudioStats(_this._audioTransceicer.receiver.getStats()), getRecvVideoStats(_this._videoTransceicer.receiver.getStats())]);
|
|
@@ -32939,7 +33322,7 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
32939
33322
|
break;
|
|
32940
33323
|
}
|
|
32941
33324
|
if (avDiffTooMuchCount++ > 8 && currentVideoDelay > currentAudioDelay) {
|
|
32942
|
-
_this._audioTransceicer.receiver[key2] = Math.min(currentVideoDelay / 1e3, _this._targetDelayHint);
|
|
33325
|
+
_this._audioTransceicer.receiver[key2] = Math.min(currentVideoDelay / 1e3, _this._targetDelayHint || 0);
|
|
32943
33326
|
avDiffTooMuchCount = 0;
|
|
32944
33327
|
}
|
|
32945
33328
|
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 +33357,7 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
32974
33357
|
}
|
|
32975
33358
|
}, _callee3, null, [[0, 40]]);
|
|
32976
33359
|
})), loopInterval);
|
|
32977
|
-
case
|
|
33360
|
+
case 15:
|
|
32978
33361
|
case "end":
|
|
32979
33362
|
return _context4.stop();
|
|
32980
33363
|
}
|
|
@@ -32983,26 +33366,31 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
32983
33366
|
return function(_x) {
|
|
32984
33367
|
return _ref32.apply(this, arguments);
|
|
32985
33368
|
};
|
|
32986
|
-
}()
|
|
32987
|
-
|
|
33369
|
+
}();
|
|
33370
|
+
_this._getDelay = function() {
|
|
32988
33371
|
try {
|
|
33372
|
+
var _this$_audioTransceic6;
|
|
32989
33373
|
var key2 = ["playoutDelayHint", "jitterBufferDelayHint", "jitterBufferTarget"].find(function(key22) {
|
|
32990
|
-
|
|
33374
|
+
var _this$_videoTransceic4, _this$_audioTransceic5;
|
|
33375
|
+
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
33376
|
});
|
|
32992
|
-
|
|
33377
|
+
if (!key2)
|
|
33378
|
+
return;
|
|
33379
|
+
return (_this$_audioTransceic6 = _this._audioTransceicer) === null || _this$_audioTransceic6 === void 0 ? void 0 : _this$_audioTransceic6.receiver[key2];
|
|
32993
33380
|
} catch (error) {
|
|
32994
33381
|
logger$b.error("get delay error");
|
|
32995
33382
|
}
|
|
32996
|
-
}
|
|
32997
|
-
|
|
33383
|
+
};
|
|
33384
|
+
_this._onLoaderRetry = function(error, retryTime) {
|
|
33385
|
+
console.log(error, "retryTime", retryTime);
|
|
32998
33386
|
_this.emit(EVENT$2.LOAD_RETRY, {
|
|
32999
33387
|
error: StreamingError$2.network(error),
|
|
33000
33388
|
retryTime
|
|
33001
33389
|
});
|
|
33002
|
-
}
|
|
33390
|
+
};
|
|
33003
33391
|
_this._opts = getOption(opts);
|
|
33004
33392
|
_this._media = _this._opts.media;
|
|
33005
|
-
_this._player = _this._opts.player;
|
|
33393
|
+
_this._player = _this._opts.player || null;
|
|
33006
33394
|
_this._loader = new NetLoader$2(_objectSpread2$b(_objectSpread2$b({}, opts.fetchOptions), {}, {
|
|
33007
33395
|
responseType: "json",
|
|
33008
33396
|
method: "POST",
|
|
@@ -33012,9 +33400,12 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33012
33400
|
onRetryError: _this._onLoaderRetry,
|
|
33013
33401
|
logger: logger$b
|
|
33014
33402
|
}));
|
|
33015
|
-
_this._retry = _this._opts.retryCount;
|
|
33403
|
+
_this._retry = _this._opts.retryCount || 0;
|
|
33404
|
+
_this._preloadPromise = _this._opts.preloadPromise;
|
|
33016
33405
|
_this._bindMediaEvent();
|
|
33406
|
+
logger$b.log("constructor()", opts);
|
|
33017
33407
|
_this._changeVolumeInHarmonyWorkaround();
|
|
33408
|
+
_this._mutedBeforePlayingWorkaround();
|
|
33018
33409
|
if (_this._opts.mediaStream && _this._opts.seamlesslyReload) {
|
|
33019
33410
|
_this._lastMediaStream = _this._opts.mediaStream;
|
|
33020
33411
|
}
|
|
@@ -33035,6 +33426,11 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33035
33426
|
get: function get4() {
|
|
33036
33427
|
return this._video;
|
|
33037
33428
|
}
|
|
33429
|
+
}, {
|
|
33430
|
+
key: "getJitterBufferDelay",
|
|
33431
|
+
value: function getJitterBufferDelay() {
|
|
33432
|
+
return this._videoJitterBufferDelay;
|
|
33433
|
+
}
|
|
33038
33434
|
}, {
|
|
33039
33435
|
key: "loader",
|
|
33040
33436
|
get: function get4() {
|
|
@@ -33048,9 +33444,24 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33048
33444
|
}
|
|
33049
33445
|
}, {
|
|
33050
33446
|
key: "getStats",
|
|
33051
|
-
value: function
|
|
33052
|
-
|
|
33053
|
-
|
|
33447
|
+
value: function() {
|
|
33448
|
+
var _getStats22 = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee5() {
|
|
33449
|
+
return _regeneratorRuntime$a().wrap(function _callee5$(_context5) {
|
|
33450
|
+
while (1)
|
|
33451
|
+
switch (_context5.prev = _context5.next) {
|
|
33452
|
+
case 0:
|
|
33453
|
+
return _context5.abrupt("return", getStats(this._pc));
|
|
33454
|
+
case 1:
|
|
33455
|
+
case "end":
|
|
33456
|
+
return _context5.stop();
|
|
33457
|
+
}
|
|
33458
|
+
}, _callee5, this);
|
|
33459
|
+
}));
|
|
33460
|
+
function getStats$1() {
|
|
33461
|
+
return _getStats22.apply(this, arguments);
|
|
33462
|
+
}
|
|
33463
|
+
return getStats$1;
|
|
33464
|
+
}()
|
|
33054
33465
|
}, {
|
|
33055
33466
|
key: "getStatsSnapshoot",
|
|
33056
33467
|
value: function getStatsSnapshoot$1() {
|
|
@@ -33061,49 +33472,104 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33061
33472
|
}, {
|
|
33062
33473
|
key: "load",
|
|
33063
33474
|
value: function() {
|
|
33064
|
-
var _load = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function
|
|
33475
|
+
var _load = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee6(url2) {
|
|
33065
33476
|
var _this2 = this;
|
|
33066
|
-
var
|
|
33067
|
-
return _regeneratorRuntime$a().wrap(function
|
|
33477
|
+
var lastPc, answerSdp, errorStr, preloadPromise, info, encodedTransformSupported;
|
|
33478
|
+
return _regeneratorRuntime$a().wrap(function _callee6$(_context6) {
|
|
33068
33479
|
while (1)
|
|
33069
|
-
switch (
|
|
33480
|
+
switch (_context6.prev = _context6.next) {
|
|
33070
33481
|
case 0:
|
|
33482
|
+
logger$b.log("load()", 'invoked, url: "'.concat(url2, '"'));
|
|
33071
33483
|
this._disconnect();
|
|
33072
33484
|
this._url = url2;
|
|
33073
|
-
|
|
33485
|
+
lastPc = this._pc;
|
|
33074
33486
|
if (!this._opts.hackCreateOfferIssue) {
|
|
33075
|
-
|
|
33487
|
+
_context6.next = 7;
|
|
33076
33488
|
break;
|
|
33077
33489
|
}
|
|
33078
|
-
|
|
33490
|
+
_context6.next = 7;
|
|
33079
33491
|
return this._createEmptyPeer();
|
|
33080
|
-
case
|
|
33081
|
-
|
|
33082
|
-
|
|
33083
|
-
|
|
33084
|
-
|
|
33085
|
-
|
|
33492
|
+
case 7:
|
|
33493
|
+
_context6.prev = 7;
|
|
33494
|
+
this._firstFrameObserver.start();
|
|
33495
|
+
if (!this._preloadPromise) {
|
|
33496
|
+
_context6.next = 39;
|
|
33497
|
+
break;
|
|
33086
33498
|
}
|
|
33499
|
+
logger$b.log("load()", "in preload process...");
|
|
33500
|
+
_context6.prev = 11;
|
|
33501
|
+
this._firstFrameObserver.setIsPreload(true);
|
|
33502
|
+
if (compareURL(this._url, this._preloadPromise.url, ["tabr_start_bitrate"])) {
|
|
33503
|
+
_context6.next = 17;
|
|
33504
|
+
break;
|
|
33505
|
+
}
|
|
33506
|
+
errorStr = "preload url not match, current url: ".concat(this._url, ", preload url: ").concat(this._preloadPromise.url);
|
|
33507
|
+
delete this._preloadPromise;
|
|
33508
|
+
throw new Error(errorStr);
|
|
33509
|
+
case 17:
|
|
33510
|
+
preloadPromise = this._preloadPromise.promise;
|
|
33511
|
+
delete this._preloadPromise;
|
|
33512
|
+
_context6.next = 21;
|
|
33513
|
+
return preloadPromise;
|
|
33514
|
+
case 21:
|
|
33515
|
+
info = _context6.sent;
|
|
33516
|
+
if (!(info.pc.signalingState !== "have-local-offer")) {
|
|
33517
|
+
_context6.next = 24;
|
|
33518
|
+
break;
|
|
33519
|
+
}
|
|
33520
|
+
throw new Error('pc.signalingState not equal "have-local-offer", current state is '.concat(info.pc.signalingState));
|
|
33521
|
+
case 24:
|
|
33522
|
+
this._pc = info.pc;
|
|
33523
|
+
answerSdp = info.answerSdp;
|
|
33524
|
+
this._videoTransceicer = info.videoTransceiver;
|
|
33525
|
+
this._audioTransceicer = info.audioTransceiver;
|
|
33526
|
+
if (this._opts.enableSei) {
|
|
33527
|
+
this.initVideoEncodedTransform();
|
|
33528
|
+
this.initAudioEncodedTransform();
|
|
33529
|
+
}
|
|
33530
|
+
_context6.next = 37;
|
|
33531
|
+
break;
|
|
33532
|
+
case 31:
|
|
33533
|
+
_context6.prev = 31;
|
|
33534
|
+
_context6.t0 = _context6["catch"](11);
|
|
33535
|
+
logger$b.warn("load()", "preload failed, ".concat(_context6.t0.message || _context6.t0.toString()));
|
|
33536
|
+
this._firstFrameObserver.setFailureReason(_context6.t0.message || _context6.t0.toString());
|
|
33537
|
+
this.load(url2);
|
|
33538
|
+
return _context6.abrupt("return");
|
|
33539
|
+
case 37:
|
|
33540
|
+
_context6.next = 45;
|
|
33541
|
+
break;
|
|
33542
|
+
case 39:
|
|
33543
|
+
encodedTransformSupported = isLegacyEncodedTransformSupported();
|
|
33544
|
+
logger$b.log("load()", "isLegacyEncodedTransformSupported: ".concat(encodedTransformSupported));
|
|
33087
33545
|
this._pc = new RTCPeerConnection({
|
|
33088
33546
|
encodedInsertableStreams: encodedTransformSupported && this._opts.enableSei ? true : void 0
|
|
33089
33547
|
});
|
|
33090
|
-
|
|
33091
|
-
|
|
33092
|
-
|
|
33093
|
-
|
|
33094
|
-
|
|
33548
|
+
_context6.next = 44;
|
|
33549
|
+
return this._getAnswerSdp(this._pc);
|
|
33550
|
+
case 44:
|
|
33551
|
+
answerSdp = _context6.sent;
|
|
33552
|
+
case 45:
|
|
33553
|
+
this._bindRTCEvents(this._pc);
|
|
33554
|
+
_context6.next = 48;
|
|
33555
|
+
return this._handleAnswerSdp(this._pc, answerSdp);
|
|
33556
|
+
case 48:
|
|
33557
|
+
if (lastPc) {
|
|
33558
|
+
lastPc.close();
|
|
33559
|
+
}
|
|
33560
|
+
_context6.next = 54;
|
|
33095
33561
|
break;
|
|
33096
|
-
case
|
|
33097
|
-
|
|
33098
|
-
|
|
33562
|
+
case 51:
|
|
33563
|
+
_context6.prev = 51;
|
|
33564
|
+
_context6.t1 = _context6["catch"](7);
|
|
33099
33565
|
setTimeout(function() {
|
|
33100
|
-
return _this2._emitError(StreamingError$2.create(ERR$2.OTHER, null,
|
|
33566
|
+
return _this2._emitError(StreamingError$2.create(ERR$2.OTHER, null, _context6.t1));
|
|
33101
33567
|
});
|
|
33102
|
-
case
|
|
33568
|
+
case 54:
|
|
33103
33569
|
case "end":
|
|
33104
|
-
return
|
|
33570
|
+
return _context6.stop();
|
|
33105
33571
|
}
|
|
33106
|
-
},
|
|
33572
|
+
}, _callee6, this, [[7, 51], [11, 31]]);
|
|
33107
33573
|
}));
|
|
33108
33574
|
function load(_x2) {
|
|
33109
33575
|
return _load.apply(this, arguments);
|
|
@@ -33113,13 +33579,13 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33113
33579
|
}, {
|
|
33114
33580
|
key: "switchURL",
|
|
33115
33581
|
value: function switchURL(url2) {
|
|
33582
|
+
logger$b.log("switchURL()", 'invoked, url: "'.concat(url2, '"'));
|
|
33116
33583
|
this.load(url2 || this._url);
|
|
33117
33584
|
}
|
|
33118
33585
|
}, {
|
|
33119
33586
|
key: "_bindRTCEvents",
|
|
33120
|
-
value: function _bindRTCEvents() {
|
|
33587
|
+
value: function _bindRTCEvents(pc) {
|
|
33121
33588
|
var _this3 = this;
|
|
33122
|
-
var pc = this._pc;
|
|
33123
33589
|
pc.addEventListener("track", this._onTrack);
|
|
33124
33590
|
pc.addEventListener("connectionstatechange", function() {
|
|
33125
33591
|
logger$b.warn("onconnectionstatechange:", pc.connectionState);
|
|
@@ -33157,7 +33623,7 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33157
33623
|
value: function _handleMediaStream() {
|
|
33158
33624
|
var _this4 = this;
|
|
33159
33625
|
if (this._lastMediaStream) {
|
|
33160
|
-
var _this$
|
|
33626
|
+
var _this$_player2, _this$_player3, _this$_player3$play;
|
|
33161
33627
|
var videoTrack = this._lastMediaStream.getVideoTracks()[0];
|
|
33162
33628
|
var audioTrack = this._lastMediaStream.getAudioTracks()[0];
|
|
33163
33629
|
if (videoTrack) {
|
|
@@ -33170,20 +33636,15 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33170
33636
|
this._audio && this._mediaStream.addTrack(this._audio);
|
|
33171
33637
|
this._video && this._mediaStream.addTrack(this._video);
|
|
33172
33638
|
this._isReplacing = true;
|
|
33173
|
-
this._player.pause();
|
|
33174
|
-
(_this$_player$play =
|
|
33639
|
+
(_this$_player2 = this._player) === null || _this$_player2 === void 0 ? void 0 : _this$_player2.pause();
|
|
33640
|
+
(_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
33641
|
_this4._isReplacing = false;
|
|
33176
33642
|
});
|
|
33177
33643
|
} else {
|
|
33178
33644
|
this._mediaStream = new MediaStream();
|
|
33179
33645
|
this._audio && this._mediaStream.addTrack(this._audio);
|
|
33180
33646
|
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
|
-
}
|
|
33647
|
+
this._media && (this._media.srcObject = this._mediaStream);
|
|
33187
33648
|
}
|
|
33188
33649
|
}
|
|
33189
33650
|
}, {
|
|
@@ -33237,21 +33698,22 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33237
33698
|
}, {
|
|
33238
33699
|
key: "_bindMediaEvent",
|
|
33239
33700
|
value: function _bindMediaEvent() {
|
|
33240
|
-
|
|
33241
|
-
this._media.addEventListener("
|
|
33701
|
+
var _this$_media, _this$_media2;
|
|
33702
|
+
(_this$_media = this._media) === null || _this$_media === void 0 ? void 0 : _this$_media.addEventListener("timeupdate", this._mockWaitingByTimeupdate);
|
|
33703
|
+
(_this$_media2 = this._media) === null || _this$_media2 === void 0 ? void 0 : _this$_media2.addEventListener("loadeddata", this._onLoadedData);
|
|
33242
33704
|
}
|
|
33243
33705
|
}, {
|
|
33244
|
-
key: "
|
|
33706
|
+
key: "_getAnswerSdp",
|
|
33245
33707
|
value: function() {
|
|
33246
|
-
var
|
|
33247
|
-
var
|
|
33248
|
-
return _regeneratorRuntime$a().wrap(function
|
|
33708
|
+
var _getAnswerSdp2 = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee7(pc) {
|
|
33709
|
+
var offer, answerSdp, parsed, finnalUrl, _this$_opts, _this$_loader, _this$_opts2, _parsed$media, parseSession, sessionId, reqStart, res, answer, err;
|
|
33710
|
+
return _regeneratorRuntime$a().wrap(function _callee7$(_context7) {
|
|
33249
33711
|
while (1)
|
|
33250
|
-
switch (
|
|
33712
|
+
switch (_context7.prev = _context7.next) {
|
|
33251
33713
|
case 0:
|
|
33252
|
-
|
|
33714
|
+
logger$b.log("_getAnswerSdp()");
|
|
33253
33715
|
if (!pc.addTransceiver) {
|
|
33254
|
-
|
|
33716
|
+
_context7.next = 11;
|
|
33255
33717
|
break;
|
|
33256
33718
|
}
|
|
33257
33719
|
this._audioTransceicer = pc.addTransceiver("audio", {
|
|
@@ -33260,32 +33722,37 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33260
33722
|
this._videoTransceicer = pc.addTransceiver("video", {
|
|
33261
33723
|
direction: "recvonly"
|
|
33262
33724
|
});
|
|
33263
|
-
this._setDelay(this._opts.delayHint);
|
|
33725
|
+
this._setDelay(this._opts.delayHint || null);
|
|
33264
33726
|
if (this._opts.enableSei) {
|
|
33265
33727
|
this.initVideoEncodedTransform();
|
|
33266
33728
|
this.initAudioEncodedTransform();
|
|
33267
33729
|
}
|
|
33268
|
-
|
|
33730
|
+
_context7.next = 8;
|
|
33269
33731
|
return pc.createOffer();
|
|
33270
33732
|
case 8:
|
|
33271
|
-
offer =
|
|
33272
|
-
|
|
33733
|
+
offer = _context7.sent;
|
|
33734
|
+
_context7.next = 14;
|
|
33273
33735
|
break;
|
|
33274
33736
|
case 11:
|
|
33275
|
-
|
|
33737
|
+
_context7.next = 13;
|
|
33276
33738
|
return pc.createOffer({
|
|
33277
33739
|
iceRestart: true,
|
|
33278
33740
|
offerToReceiveAudio: true,
|
|
33279
33741
|
offerToReceiveVideo: true
|
|
33280
33742
|
});
|
|
33281
33743
|
case 13:
|
|
33282
|
-
offer =
|
|
33744
|
+
offer = _context7.sent;
|
|
33283
33745
|
case 14:
|
|
33284
33746
|
if (this._opts.hackCreateOfferIssue) {
|
|
33285
33747
|
this._createEmptyPeer();
|
|
33286
33748
|
}
|
|
33287
|
-
logger$b.log("local offer");
|
|
33288
|
-
|
|
33749
|
+
logger$b.log("local offer", offer);
|
|
33750
|
+
if (offer.sdp) {
|
|
33751
|
+
_context7.next = 18;
|
|
33752
|
+
break;
|
|
33753
|
+
}
|
|
33754
|
+
throw new Error("create offer failed");
|
|
33755
|
+
case 18:
|
|
33289
33756
|
parsed = lib$1.parse(offer.sdp);
|
|
33290
33757
|
parsed.media.filter(function(x2) {
|
|
33291
33758
|
return x2.type === "audio";
|
|
@@ -33306,62 +33773,71 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33306
33773
|
type: "nack"
|
|
33307
33774
|
});
|
|
33308
33775
|
});
|
|
33776
|
+
parsed.media.filter(function(x2) {
|
|
33777
|
+
return x2.type === "video";
|
|
33778
|
+
}).forEach(function(x2) {
|
|
33779
|
+
x2.fmtp.forEach(function(x22) {
|
|
33780
|
+
if (x22.config.indexOf("profile-level-id") !== -1) {
|
|
33781
|
+
x22.config = "".concat(x22.config, ";sps-pps-idr-in-keyframe=1");
|
|
33782
|
+
}
|
|
33783
|
+
});
|
|
33784
|
+
});
|
|
33309
33785
|
offer.sdp = lib$1.write(parsed);
|
|
33310
|
-
logger$b.log("local offer modified:\n", offer
|
|
33311
|
-
|
|
33786
|
+
logger$b.log("local offer modified:\n", offer);
|
|
33787
|
+
_context7.next = 25;
|
|
33312
33788
|
return pc.setLocalDescription(offer);
|
|
33313
|
-
case
|
|
33789
|
+
case 25:
|
|
33314
33790
|
finnalUrl = this._url;
|
|
33315
|
-
|
|
33791
|
+
_context7.prev = 26;
|
|
33316
33792
|
if (this._opts.preProcessUrl) {
|
|
33317
33793
|
finnalUrl = this._opts.preProcessUrl(finnalUrl).url;
|
|
33318
33794
|
}
|
|
33319
|
-
|
|
33795
|
+
finnalUrl = addUrlParams(finnalUrl, this._opts.urlParams);
|
|
33796
|
+
this._loader && (this._loader.finnalUrl = finnalUrl);
|
|
33320
33797
|
parseSession = /_?session_id=([^&$]+)/.exec(finnalUrl);
|
|
33321
33798
|
sessionId = parseSession ? parseSession[1] : Date.now() + "666";
|
|
33799
|
+
this._firstFrameObserver.changeFirstFrameState(RTC_FIRST_FRAME_STATE.OFFER_SDP_READY);
|
|
33322
33800
|
this.emit(EVENT$2.LOAD_START, {
|
|
33323
33801
|
url: finnalUrl,
|
|
33324
33802
|
offersdp: (_this$_opts = this._opts) !== null && _this$_opts !== void 0 && _this$_opts.enableOriginSdpLogger ? offer.sdp : void 0,
|
|
33325
33803
|
sessionId
|
|
33326
33804
|
});
|
|
33327
33805
|
reqStart = Date.now();
|
|
33328
|
-
|
|
33329
|
-
return this._loader.load(finnalUrl, {
|
|
33806
|
+
_context7.next = 37;
|
|
33807
|
+
return (_this$_loader = this._loader) === null || _this$_loader === void 0 ? void 0 : _this$_loader.load(finnalUrl, {
|
|
33330
33808
|
body: JSON.stringify({
|
|
33331
33809
|
sessionId,
|
|
33332
33810
|
version: "1.0-html",
|
|
33333
33811
|
localSdp: offer
|
|
33334
33812
|
})
|
|
33335
33813
|
});
|
|
33336
|
-
case
|
|
33337
|
-
res =
|
|
33814
|
+
case 37:
|
|
33815
|
+
res = _context7.sent;
|
|
33338
33816
|
this.emit(EVENT$2.LOAD_RESPONSE_HEADERS, {
|
|
33339
33817
|
headers: res.response.headers
|
|
33340
33818
|
});
|
|
33341
33819
|
answer = res === null || res === void 0 ? void 0 : res.data;
|
|
33342
33820
|
if (!((answer === null || answer === void 0 ? void 0 : answer.code) === 404 || (answer === null || answer === void 0 ? void 0 : answer.code) === 403)) {
|
|
33343
|
-
|
|
33821
|
+
_context7.next = 45;
|
|
33344
33822
|
break;
|
|
33345
33823
|
}
|
|
33346
33824
|
err = StreamingError$2.create(answer.code === 404 ? ERR$2.NETWORK_NOTFOUND : ERR$2.NETWORK_FORBIDDEN, null, answer);
|
|
33347
33825
|
err.errorType = ERR$2.NETWORK;
|
|
33348
33826
|
this._emitError(err);
|
|
33349
|
-
return
|
|
33350
|
-
case
|
|
33827
|
+
return _context7.abrupt("return");
|
|
33828
|
+
case 45:
|
|
33351
33829
|
if (!((answer === null || answer === void 0 ? void 0 : answer.code) !== 200)) {
|
|
33352
|
-
|
|
33830
|
+
_context7.next = 47;
|
|
33353
33831
|
break;
|
|
33354
33832
|
}
|
|
33355
33833
|
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);
|
|
33834
|
+
case 47:
|
|
33835
|
+
answerSdp = res.data.remoteSdp.sdp;
|
|
33360
33836
|
this.emit(EVENT$2.LOAD_COMPLETE, {
|
|
33361
33837
|
url: finnalUrl,
|
|
33362
33838
|
elapsed: Date.now() - reqStart,
|
|
33363
|
-
answersdp: (_this$_opts2 = this._opts) !== null && _this$_opts2 !== void 0 && _this$_opts2.enableOriginSdpLogger ?
|
|
33364
|
-
parsedSdp:
|
|
33839
|
+
answersdp: (_this$_opts2 = this._opts) !== null && _this$_opts2 !== void 0 && _this$_opts2.enableOriginSdpLogger ? answerSdp : void 0,
|
|
33840
|
+
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
33841
|
return {
|
|
33366
33842
|
candidates: media.candidates,
|
|
33367
33843
|
rtp: media.rtp,
|
|
@@ -33369,9 +33845,50 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33369
33845
|
};
|
|
33370
33846
|
})
|
|
33371
33847
|
});
|
|
33372
|
-
|
|
33848
|
+
_context7.next = 54;
|
|
33849
|
+
break;
|
|
33850
|
+
case 51:
|
|
33851
|
+
_context7.prev = 51;
|
|
33852
|
+
_context7.t0 = _context7["catch"](26);
|
|
33853
|
+
this._emitError(StreamingError$2.network(_context7.t0));
|
|
33854
|
+
case 54:
|
|
33855
|
+
return _context7.abrupt("return", answerSdp);
|
|
33856
|
+
case 55:
|
|
33857
|
+
case "end":
|
|
33858
|
+
return _context7.stop();
|
|
33859
|
+
}
|
|
33860
|
+
}, _callee7, this, [[26, 51]]);
|
|
33861
|
+
}));
|
|
33862
|
+
function _getAnswerSdp(_x3) {
|
|
33863
|
+
return _getAnswerSdp2.apply(this, arguments);
|
|
33864
|
+
}
|
|
33865
|
+
return _getAnswerSdp;
|
|
33866
|
+
}()
|
|
33867
|
+
}, {
|
|
33868
|
+
key: "_handleAnswerSdp",
|
|
33869
|
+
value: function() {
|
|
33870
|
+
var _handleAnswerSdp2 = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee8(pc, answerSdp) {
|
|
33871
|
+
var parsed, answer;
|
|
33872
|
+
return _regeneratorRuntime$a().wrap(function _callee8$(_context8) {
|
|
33873
|
+
while (1)
|
|
33874
|
+
switch (_context8.prev = _context8.next) {
|
|
33875
|
+
case 0:
|
|
33876
|
+
logger$b.log("_handleAnswerSdp()", "invoked, answerSdp:", {
|
|
33877
|
+
answerSdp
|
|
33878
|
+
});
|
|
33879
|
+
if (answerSdp) {
|
|
33880
|
+
_context8.next = 3;
|
|
33881
|
+
break;
|
|
33882
|
+
}
|
|
33883
|
+
return _context8.abrupt("return");
|
|
33884
|
+
case 3:
|
|
33885
|
+
this._firstFrameObserver.changeFirstFrameState(RTC_FIRST_FRAME_STATE.ANSWER_SDP_RECV);
|
|
33886
|
+
parsed = lib$1.parse(answerSdp);
|
|
33887
|
+
parsed.media.forEach(function(x2) {
|
|
33373
33888
|
var _x$ssrcs, _x$ssrcs$find;
|
|
33374
|
-
|
|
33889
|
+
if (x2.fingerprint) {
|
|
33890
|
+
x2.fingerprint.hash = x2.fingerprint.hash.toUpperCase();
|
|
33891
|
+
}
|
|
33375
33892
|
var msid = (_x$ssrcs = x2.ssrcs) === null || _x$ssrcs === void 0 ? void 0 : (_x$ssrcs$find = _x$ssrcs.find(function(s2) {
|
|
33376
33893
|
return s2.attribute === "msid";
|
|
33377
33894
|
})) === null || _x$ssrcs$find === void 0 ? void 0 : _x$ssrcs$find.value;
|
|
@@ -33379,42 +33896,43 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33379
33896
|
x2.msid = msid;
|
|
33380
33897
|
}
|
|
33381
33898
|
});
|
|
33382
|
-
answer
|
|
33383
|
-
logger$b.log("answer modified:\n",
|
|
33899
|
+
answer = lib$1.write(parsed);
|
|
33900
|
+
logger$b.log("answer modified:\n", {
|
|
33901
|
+
answer
|
|
33902
|
+
});
|
|
33384
33903
|
this._rctConnectStartTs = Date.now();
|
|
33385
33904
|
if (!(pc.signalingState === "closed")) {
|
|
33386
|
-
|
|
33905
|
+
_context8.next = 11;
|
|
33387
33906
|
break;
|
|
33388
33907
|
}
|
|
33389
|
-
return
|
|
33390
|
-
case
|
|
33391
|
-
|
|
33392
|
-
return pc.setRemoteDescription(
|
|
33393
|
-
|
|
33908
|
+
return _context8.abrupt("return");
|
|
33909
|
+
case 11:
|
|
33910
|
+
_context8.next = 13;
|
|
33911
|
+
return pc.setRemoteDescription({
|
|
33912
|
+
type: "answer",
|
|
33913
|
+
sdp: answer
|
|
33914
|
+
});
|
|
33915
|
+
case 13:
|
|
33916
|
+
this._firstFrameObserver.changeFirstFrameState(RTC_FIRST_FRAME_STATE.ANSWER_SDP_READY);
|
|
33394
33917
|
this._networkEvaluate = new NetworkEvaluate(pc, this._opts.networkEvaluateInterval);
|
|
33395
33918
|
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:
|
|
33919
|
+
this._firstFrameObserver.bindEvents(pc, this._videoTransceicer, this._media);
|
|
33920
|
+
case 17:
|
|
33403
33921
|
case "end":
|
|
33404
|
-
return
|
|
33922
|
+
return _context8.stop();
|
|
33405
33923
|
}
|
|
33406
|
-
},
|
|
33924
|
+
}, _callee8, this);
|
|
33407
33925
|
}));
|
|
33408
|
-
function
|
|
33409
|
-
return
|
|
33926
|
+
function _handleAnswerSdp(_x4, _x5) {
|
|
33927
|
+
return _handleAnswerSdp2.apply(this, arguments);
|
|
33410
33928
|
}
|
|
33411
|
-
return
|
|
33929
|
+
return _handleAnswerSdp;
|
|
33412
33930
|
}()
|
|
33413
33931
|
}, {
|
|
33414
33932
|
key: "_listenPeerStateTimeout",
|
|
33415
33933
|
value: function _listenPeerStateTimeout() {
|
|
33416
33934
|
var _this6 = this;
|
|
33417
|
-
this.
|
|
33935
|
+
this._clearPeerStateTimeout();
|
|
33418
33936
|
if (this._opts.connectionStateChangeTimeout) {
|
|
33419
33937
|
this._peerStateTimer = setTimeout(function() {
|
|
33420
33938
|
_this6._emitError(StreamingError$2.create(ERR$2.MEDIA, ERR$2.SUB_TYPES.MEDIA_ERR_SRC_NOT_SUPPORTED, {
|
|
@@ -33426,128 +33944,148 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33426
33944
|
}, {
|
|
33427
33945
|
key: "_clearPeerStateTimeout",
|
|
33428
33946
|
value: function _clearPeerStateTimeout() {
|
|
33429
|
-
|
|
33430
|
-
|
|
33947
|
+
if (this._peerStateTimer) {
|
|
33948
|
+
clearTimeout(this._peerStateTimer);
|
|
33949
|
+
delete this._peerStateTimer;
|
|
33950
|
+
}
|
|
33431
33951
|
}
|
|
33432
33952
|
}, {
|
|
33433
33953
|
key: "_startRtcReport",
|
|
33434
33954
|
value: function _startRtcReport() {
|
|
33435
33955
|
var _this7 = this;
|
|
33436
33956
|
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
|
-
_this7._networkQuality
|
|
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
|
-
|
|
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
|
-
|
|
33957
|
+
var report = /* @__PURE__ */ function() {
|
|
33958
|
+
var _ref52 = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee9() {
|
|
33959
|
+
var _this7$_audioTranscei, _this7$_videoTranscei;
|
|
33960
|
+
var _yield$Promise$all3, _yield$Promise$all4, curAudioStats, curVideoStats, _this7$_audioStallObs, _this7$_videoStallObs, _this7$_networkQualit, _this7$_networkQualit2, _this7$_media, _this7$_media2, audioStats, videoStats, audioStallInfo, videoStallInfo, _ref6, _ref7, quality, qualityInfo, av_sync_diff;
|
|
33961
|
+
return _regeneratorRuntime$a().wrap(function _callee9$(_context9) {
|
|
33962
|
+
while (1)
|
|
33963
|
+
switch (_context9.prev = _context9.next) {
|
|
33964
|
+
case 0:
|
|
33965
|
+
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))) {
|
|
33966
|
+
_context9.next = 4;
|
|
33967
|
+
break;
|
|
33968
|
+
}
|
|
33969
|
+
_this7._preAudioStats = null;
|
|
33970
|
+
_this7._preVideoStats = null;
|
|
33971
|
+
return _context9.abrupt("return");
|
|
33972
|
+
case 4:
|
|
33973
|
+
if (!_this7._audioStallObserver && _this7._audioTransceicer) {
|
|
33974
|
+
_this7._audioStallObserver = new AudioStallObserver();
|
|
33975
|
+
_this7._audioStallObserver.start(_this7._audioTransceicer);
|
|
33976
|
+
}
|
|
33977
|
+
if (!_this7._videoStallObserver && _this7._video && _this7._media) {
|
|
33978
|
+
_this7._videoStallObserver = new VideoStallObserver();
|
|
33979
|
+
_this7._videoStallObserver.start(_this7._media);
|
|
33980
|
+
}
|
|
33981
|
+
if (_this7._pc && !_this7._networkQuality && _this7._opts.enableNetworkQuality && _this7._opts.networkQuality) {
|
|
33982
|
+
_this7._networkQuality = new NetworkQuality(_this7._pc, _this7._opts.networkQuality);
|
|
33983
|
+
}
|
|
33984
|
+
_context9.next = 9;
|
|
33985
|
+
return Promise.all([getRecvAudioStats(_this7._audioTransceicer.receiver.getStats()), getRecvVideoStats(_this7._videoTransceicer.receiver.getStats())]);
|
|
33986
|
+
case 9:
|
|
33987
|
+
_yield$Promise$all3 = _context9.sent;
|
|
33988
|
+
_yield$Promise$all4 = _slicedToArray$7(_yield$Promise$all3, 2);
|
|
33989
|
+
curAudioStats = _yield$Promise$all4[0];
|
|
33990
|
+
curVideoStats = _yield$Promise$all4[1];
|
|
33991
|
+
if (!(_this7._preAudioStats && _this7._preVideoStats)) {
|
|
33992
|
+
_context9.next = 27;
|
|
33993
|
+
break;
|
|
33994
|
+
}
|
|
33995
|
+
audioStats = diffRecvAudioStats(_this7._preAudioStats, curAudioStats);
|
|
33996
|
+
videoStats = diffRecvVideoStats(_this7._preVideoStats, curVideoStats);
|
|
33997
|
+
_this7._videoJitterBufferDelay = videoStats.jitterBufferDelay;
|
|
33998
|
+
_context9.next = 19;
|
|
33999
|
+
return (_this7$_audioStallObs = _this7._audioStallObserver) === null || _this7$_audioStallObs === void 0 ? void 0 : _this7$_audioStallObs.getAudioStallInfo();
|
|
34000
|
+
case 19:
|
|
34001
|
+
audioStallInfo = _context9.sent;
|
|
34002
|
+
_context9.next = 22;
|
|
34003
|
+
return (_this7$_videoStallObs = _this7._videoStallObserver) === null || _this7$_videoStallObs === void 0 ? void 0 : _this7$_videoStallObs.getStallInfo({
|
|
34004
|
+
interval: videoStats.statsInterval,
|
|
34005
|
+
frameRateReceived: videoStats.receivedFrameRate,
|
|
34006
|
+
frameRateDecoded: videoStats.decoderOutputFrameRate,
|
|
34007
|
+
bitrate: videoStats.receivedKBitrate
|
|
34008
|
+
});
|
|
34009
|
+
case 22:
|
|
34010
|
+
videoStallInfo = _context9.sent;
|
|
34011
|
+
_ref6 = (_this7$_networkQualit = (_this7$_networkQualit2 = _this7._networkQuality) === null || _this7$_networkQualit2 === void 0 ? void 0 : _this7$_networkQualit2.getDownlinkQuality(_objectSpread2$b(_objectSpread2$b({}, audioStats), {}, {
|
|
34012
|
+
stallDuration: (audioStallInfo === null || audioStallInfo === void 0 ? void 0 : audioStallInfo.stallDuration) || 0
|
|
34013
|
+
}), _objectSpread2$b(_objectSpread2$b({}, videoStats), {}, {
|
|
34014
|
+
stallDuration: (videoStallInfo === null || videoStallInfo === void 0 ? void 0 : videoStallInfo.stall.stallDuration100ms) || (videoStallInfo === null || videoStallInfo === void 0 ? void 0 : videoStallInfo.stall.stallDuration500ms) || 0
|
|
34015
|
+
}))) !== null && _this7$_networkQualit !== void 0 ? _this7$_networkQualit : [], _ref7 = _slicedToArray$7(_ref6, 2), quality = _ref7[0], qualityInfo = _ref7[1];
|
|
34016
|
+
if (_this7._opts.enableAdaptiveJitterBuffer) {
|
|
34017
|
+
_this7._handleJitterBuffer(qualityInfo === null || qualityInfo === void 0 ? void 0 : qualityInfo.qualityQos, _this7._opts.adaptiveJitterBuffer, _this7._opts.networkStrategy);
|
|
34018
|
+
}
|
|
34019
|
+
if (videoStats.estimatedPlayoutTimestamp && audioStats.estimatedPlayoutTimestamp) {
|
|
34020
|
+
av_sync_diff = videoStats.estimatedPlayoutTimestamp - audioStats.estimatedPlayoutTimestamp;
|
|
34021
|
+
}
|
|
34022
|
+
_this7.emit(EXTEND_EVENTS.RTC_NETWORK, {
|
|
34023
|
+
interval: videoStats.statsInterval,
|
|
34024
|
+
network_quality: quality,
|
|
34025
|
+
audio_stall_duration: audioStallInfo === null || audioStallInfo === void 0 ? void 0 : audioStallInfo.stallDuration,
|
|
34026
|
+
audio_stall_count: audioStallInfo === null || audioStallInfo === void 0 ? void 0 : audioStallInfo.stallCount,
|
|
34027
|
+
audio_stall_time_per_100sec: ((audioStallInfo === null || audioStallInfo === void 0 ? void 0 : audioStallInfo.stallDuration) || 0) / audioStats.statsInterval * 100,
|
|
34028
|
+
audio_stall_count_per_100sec: ((audioStallInfo === null || audioStallInfo === void 0 ? void 0 : audioStallInfo.stallCount) || 0) / audioStats.statsInterval * 100 * 1e3,
|
|
34029
|
+
video_stall_duration: videoStallInfo === null || videoStallInfo === void 0 ? void 0 : videoStallInfo.stall.stallDuration500ms,
|
|
34030
|
+
video_stall_count: videoStallInfo === null || videoStallInfo === void 0 ? void 0 : videoStallInfo.stall.stallCount500ms,
|
|
34031
|
+
video_stall_duration_100ms: videoStallInfo === null || videoStallInfo === void 0 ? void 0 : videoStallInfo.stall.stallDuration100ms,
|
|
34032
|
+
video_stall_count_100ms: videoStallInfo === null || videoStallInfo === void 0 ? void 0 : videoStallInfo.stall.stallCount100ms,
|
|
34033
|
+
video_stall_time_per_100sec: ((videoStallInfo === null || videoStallInfo === void 0 ? void 0 : videoStallInfo.stall.stallDuration500ms) || 0) / videoStats.statsInterval * 100,
|
|
34034
|
+
video_stall_count_per_100sec: ((videoStallInfo === null || videoStallInfo === void 0 ? void 0 : videoStallInfo.stall.stallCount500ms) || 0) / videoStats.statsInterval * 100 * 1e3,
|
|
34035
|
+
rtt: videoStats.rtt,
|
|
34036
|
+
video_jb_delay: videoStats.jitterBufferDelay,
|
|
34037
|
+
audio_jb_delay: audioStats.jitterBufferDelay,
|
|
34038
|
+
audio_lost_rate: audioStats.audioLossRate,
|
|
34039
|
+
video_lost_rate: videoStats.videoLossRate,
|
|
34040
|
+
video_retransmitted_rate: videoStats.retransmittedRate,
|
|
34041
|
+
quality_audio_level: qualityInfo === null || qualityInfo === void 0 ? void 0 : qualityInfo.audioLevel,
|
|
34042
|
+
quality_video_level: qualityInfo === null || qualityInfo === void 0 ? void 0 : qualityInfo.videoLevel,
|
|
34043
|
+
quality_audio_qos: qualityInfo === null || qualityInfo === void 0 ? void 0 : qualityInfo.audioQos,
|
|
34044
|
+
quality_video_qos: qualityInfo === null || qualityInfo === void 0 ? void 0 : qualityInfo.videoQos,
|
|
34045
|
+
quality_qos: qualityInfo === null || qualityInfo === void 0 ? void 0 : qualityInfo.qualityQos,
|
|
34046
|
+
quality_audio_qoe: qualityInfo === null || qualityInfo === void 0 ? void 0 : qualityInfo.audioQoe,
|
|
34047
|
+
quality_video_qoe: qualityInfo === null || qualityInfo === void 0 ? void 0 : qualityInfo.videoQoe,
|
|
34048
|
+
current_delay: _this7._getDelay(),
|
|
34049
|
+
visibility_state: document.visibilityState,
|
|
34050
|
+
target_delay: _this7._targetDelayHint,
|
|
34051
|
+
av_sync_diff,
|
|
34052
|
+
set_delay_error: _this7._setDelayError || null,
|
|
34053
|
+
video_width: ((_this7$_media = _this7._media) === null || _this7$_media === void 0 ? void 0 : _this7$_media.videoWidth) || 0,
|
|
34054
|
+
video_height: ((_this7$_media2 = _this7._media) === null || _this7$_media2 === void 0 ? void 0 : _this7$_media2.videoHeight) || 0,
|
|
34055
|
+
abr_state: videoStats.abrState || "none"
|
|
34056
|
+
});
|
|
34057
|
+
case 27:
|
|
34058
|
+
_this7._preAudioStats = curAudioStats;
|
|
34059
|
+
_this7._preVideoStats = curVideoStats;
|
|
34060
|
+
_this7._setDelayError = null;
|
|
34061
|
+
case 30:
|
|
34062
|
+
case "end":
|
|
34063
|
+
return _context9.stop();
|
|
34064
|
+
}
|
|
34065
|
+
}, _callee9);
|
|
34066
|
+
}));
|
|
34067
|
+
return function report2() {
|
|
34068
|
+
return _ref52.apply(this, arguments);
|
|
34069
|
+
};
|
|
34070
|
+
}();
|
|
34071
|
+
this._rtcReportTimer = setInterval(function() {
|
|
34072
|
+
return report();
|
|
34073
|
+
}, 2e3);
|
|
34074
|
+
report();
|
|
33542
34075
|
}
|
|
33543
34076
|
}, {
|
|
33544
34077
|
key: "_handleJitterBuffer",
|
|
33545
34078
|
value: function _handleJitterBuffer(quality, adaptiveJitterBuffer, networkStrategy) {
|
|
34079
|
+
if (!adaptiveJitterBuffer || !networkStrategy) {
|
|
34080
|
+
return;
|
|
34081
|
+
}
|
|
33546
34082
|
this._networkQualityResult.push(quality);
|
|
33547
34083
|
if (this._networkQualityResult.length > adaptiveJitterBuffer.networkWindow) {
|
|
33548
34084
|
this._networkQualityResult.shift();
|
|
33549
34085
|
}
|
|
33550
|
-
var validNetworkQualityResult = this._networkQualityResult.filter(
|
|
34086
|
+
var validNetworkQualityResult = this._networkQualityResult.filter(function(v2) {
|
|
34087
|
+
return typeof v2 === "number";
|
|
34088
|
+
});
|
|
33551
34089
|
if (validNetworkQualityResult.length === adaptiveJitterBuffer.networkWindow) {
|
|
33552
34090
|
var _networkStrategy$aver;
|
|
33553
34091
|
var averageQuality;
|
|
@@ -33575,9 +34113,9 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33575
34113
|
(_this$_audioStallObse = this._audioStallObserver) === null || _this$_audioStallObse === void 0 ? void 0 : _this$_audioStallObse.destroy();
|
|
33576
34114
|
(_this$_videoStallObse = this._videoStallObserver) === null || _this$_videoStallObse === void 0 ? void 0 : _this$_videoStallObse.destroy();
|
|
33577
34115
|
(_this$_networkQuality = this._networkQuality) === null || _this$_networkQuality === void 0 ? void 0 : _this$_networkQuality.destroy();
|
|
33578
|
-
this._audioStallObserver
|
|
33579
|
-
this._videoStallObserver
|
|
33580
|
-
this._networkQuality
|
|
34116
|
+
delete this._audioStallObserver;
|
|
34117
|
+
delete this._videoStallObserver;
|
|
34118
|
+
delete this._networkQuality;
|
|
33581
34119
|
this._preAudioStats = null;
|
|
33582
34120
|
this._preVideoStats = null;
|
|
33583
34121
|
if (this._rtcReportTimer) {
|
|
@@ -33585,23 +34123,38 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33585
34123
|
this._rtcReportTimer = 0;
|
|
33586
34124
|
}
|
|
33587
34125
|
}
|
|
34126
|
+
}, {
|
|
34127
|
+
key: "_clearDelay",
|
|
34128
|
+
value: function _clearDelay() {
|
|
34129
|
+
if (this._setDelayTimer) {
|
|
34130
|
+
clearInterval(this._setDelayTimer);
|
|
34131
|
+
delete this._setDelayTimer;
|
|
34132
|
+
}
|
|
34133
|
+
this._targetDelayHint = null;
|
|
34134
|
+
this._setDelayError = null;
|
|
34135
|
+
}
|
|
33588
34136
|
}, {
|
|
33589
34137
|
key: "_disconnect",
|
|
33590
34138
|
value: function _disconnect() {
|
|
33591
|
-
var _this$
|
|
33592
|
-
|
|
34139
|
+
var _this$_loader2, _this$_networkEvaluat2;
|
|
34140
|
+
this._clearDelay();
|
|
34141
|
+
(_this$_loader2 = this._loader) === null || _this$_loader2 === void 0 ? void 0 : _this$_loader2.cancel();
|
|
33593
34142
|
(_this$_networkEvaluat2 = this._networkEvaluate) === null || _this$_networkEvaluat2 === void 0 ? void 0 : _this$_networkEvaluat2.destroy();
|
|
33594
34143
|
this._stopRtcReport();
|
|
33595
34144
|
clearTimeout(this._checkStatsErrorTimer);
|
|
33596
34145
|
this._clearPeerStateTimeout();
|
|
34146
|
+
this._firstFrameObserver.reset();
|
|
33597
34147
|
this._audioTransceicer = null;
|
|
33598
34148
|
this._videoTransceicer = null;
|
|
33599
34149
|
this._mediaStream = null;
|
|
33600
|
-
this._networkEvaluate = null;
|
|
33601
34150
|
}
|
|
33602
34151
|
}, {
|
|
33603
34152
|
key: "_emitError",
|
|
33604
34153
|
value: function _emitError(error) {
|
|
34154
|
+
var _error$originError;
|
|
34155
|
+
this._clearDelay();
|
|
34156
|
+
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);
|
|
34157
|
+
this._firstFrameObserver.reset();
|
|
33605
34158
|
this.emit(EVENT$2.ERROR, error);
|
|
33606
34159
|
clearTimeout(this._checkStatsErrorTimer);
|
|
33607
34160
|
this._clearPeerStateTimeout();
|
|
@@ -33616,29 +34169,35 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33616
34169
|
}, {
|
|
33617
34170
|
key: "_createEmptyPeer",
|
|
33618
34171
|
value: function() {
|
|
33619
|
-
var _createEmptyPeer2 = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function
|
|
34172
|
+
var _createEmptyPeer2 = _asyncToGenerator$a(/* @__PURE__ */ _regeneratorRuntime$a().mark(function _callee10() {
|
|
33620
34173
|
var pc;
|
|
33621
|
-
return _regeneratorRuntime$a().wrap(function
|
|
34174
|
+
return _regeneratorRuntime$a().wrap(function _callee10$(_context10) {
|
|
33622
34175
|
while (1)
|
|
33623
|
-
switch (
|
|
34176
|
+
switch (_context10.prev = _context10.next) {
|
|
33624
34177
|
case 0:
|
|
33625
34178
|
pc = new RTCPeerConnection();
|
|
33626
|
-
|
|
34179
|
+
_context10.next = 3;
|
|
33627
34180
|
return pc.createOffer();
|
|
33628
34181
|
case 3:
|
|
33629
34182
|
pc.close();
|
|
33630
|
-
|
|
33631
|
-
case 5:
|
|
34183
|
+
case 4:
|
|
33632
34184
|
case "end":
|
|
33633
|
-
return
|
|
34185
|
+
return _context10.stop();
|
|
33634
34186
|
}
|
|
33635
|
-
},
|
|
34187
|
+
}, _callee10);
|
|
33636
34188
|
}));
|
|
33637
34189
|
function _createEmptyPeer() {
|
|
33638
34190
|
return _createEmptyPeer2.apply(this, arguments);
|
|
33639
34191
|
}
|
|
33640
34192
|
return _createEmptyPeer;
|
|
33641
34193
|
}()
|
|
34194
|
+
}, {
|
|
34195
|
+
key: "_emitFirstFrameState",
|
|
34196
|
+
value: function _emitFirstFrameState(info, extra) {
|
|
34197
|
+
this.emit(EXTEND_EVENTS.RTC_FIRST_FRAME, _objectSpread2$b(_objectSpread2$b(_objectSpread2$b({}, info), extra), {}, {
|
|
34198
|
+
initOptionsIncludePreload: !!this._opts.preloadPromise
|
|
34199
|
+
}));
|
|
34200
|
+
}
|
|
33642
34201
|
}, {
|
|
33643
34202
|
key: "_changeVolumeInHarmonyWorkaround",
|
|
33644
34203
|
value: function _changeVolumeInHarmonyWorkaround() {
|
|
@@ -33652,7 +34211,8 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33652
34211
|
enumerable: true,
|
|
33653
34212
|
get: originalDescriptor.get,
|
|
33654
34213
|
set: function set5(val) {
|
|
33655
|
-
|
|
34214
|
+
var _originalDescriptor$s;
|
|
34215
|
+
(_originalDescriptor$s = originalDescriptor.set) === null || _originalDescriptor$s === void 0 ? void 0 : _originalDescriptor$s.call(this, val);
|
|
33656
34216
|
var _changeNumberInRange = changeNumberInRange(this.volume, 0, 1, 0.01), _changeNumberInRange2 = _slicedToArray$7(_changeNumberInRange, 2), sourceVolume = _changeNumberInRange2[0], targetVolume = _changeNumberInRange2[1];
|
|
33657
34217
|
this.volume = targetVolume;
|
|
33658
34218
|
this.volume = sourceVolume;
|
|
@@ -33668,14 +34228,47 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33668
34228
|
}
|
|
33669
34229
|
}
|
|
33670
34230
|
}
|
|
34231
|
+
}, {
|
|
34232
|
+
key: "_mutedBeforePlayingWorkaround",
|
|
34233
|
+
value: function _mutedBeforePlayingWorkaround() {
|
|
34234
|
+
var _this9 = this;
|
|
34235
|
+
if (isHeyTapBrowser() || isVivoBrowser()) {
|
|
34236
|
+
var originalDescriptor = Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype, "muted");
|
|
34237
|
+
if (this._media && originalDescriptor) {
|
|
34238
|
+
logger$b.log("apply muted workaround for vivo & oppo");
|
|
34239
|
+
var originalMuted = this._media.muted;
|
|
34240
|
+
this._media.muted = true;
|
|
34241
|
+
Object.defineProperty(this._media, "muted", {
|
|
34242
|
+
configurable: true,
|
|
34243
|
+
enumerable: true,
|
|
34244
|
+
get: function get4() {
|
|
34245
|
+
return originalMuted;
|
|
34246
|
+
},
|
|
34247
|
+
set: function set5(val) {
|
|
34248
|
+
logger$b.log("muted workaround. set muted =", val);
|
|
34249
|
+
originalMuted = val;
|
|
34250
|
+
}
|
|
34251
|
+
});
|
|
34252
|
+
var revertMutedProxy = function revertMutedProxy2() {
|
|
34253
|
+
logger$b.log("revert muted workaround. muted:", originalMuted);
|
|
34254
|
+
if (_this9._media) {
|
|
34255
|
+
Object.defineProperty(_this9._media, "muted", originalDescriptor);
|
|
34256
|
+
_this9._media.muted = originalMuted;
|
|
34257
|
+
_this9._media.removeEventListener("playing", revertMutedProxy2);
|
|
34258
|
+
}
|
|
34259
|
+
};
|
|
34260
|
+
this._media.addEventListener("playing", revertMutedProxy);
|
|
34261
|
+
}
|
|
34262
|
+
}
|
|
34263
|
+
}
|
|
33671
34264
|
}, {
|
|
33672
34265
|
key: "destroy",
|
|
33673
34266
|
value: function destroy(keepClearMediaStream) {
|
|
33674
|
-
var _this$_revertVolumeWo, _this$
|
|
34267
|
+
var _this$_revertVolumeWo, _this$_media3;
|
|
33675
34268
|
this._disconnect();
|
|
33676
34269
|
(_this$_revertVolumeWo = this._revertVolumeWorkaround) === null || _this$_revertVolumeWo === void 0 ? void 0 : _this$_revertVolumeWo.call(this);
|
|
33677
34270
|
delete this._revertVolumeWorkaround;
|
|
33678
|
-
(_this$
|
|
34271
|
+
(_this$_media3 = this._media) === null || _this$_media3 === void 0 ? void 0 : _this$_media3.removeEventListener("timeupdate", this._mockWaitingByTimeupdate);
|
|
33679
34272
|
if (this._media && !keepClearMediaStream) {
|
|
33680
34273
|
this._media.srcObject = null;
|
|
33681
34274
|
}
|
|
@@ -33686,7 +34279,6 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
33686
34279
|
this._media = null;
|
|
33687
34280
|
this._player = null;
|
|
33688
34281
|
this._pc = null;
|
|
33689
|
-
this._opts = null;
|
|
33690
34282
|
}
|
|
33691
34283
|
}], [{
|
|
33692
34284
|
key: "enableLogger",
|
|
@@ -33715,15 +34307,11 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33715
34307
|
function RtsPlugin2() {
|
|
33716
34308
|
var _this;
|
|
33717
34309
|
_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() {
|
|
34310
|
+
_this = _super.apply(this, arguments);
|
|
34311
|
+
_this._rts = null;
|
|
34312
|
+
_this._rtsOpts = null;
|
|
34313
|
+
_this._mediaStream = null;
|
|
34314
|
+
_this._onPause = function() {
|
|
33727
34315
|
if (_this._disconnectTimer) {
|
|
33728
34316
|
return;
|
|
33729
34317
|
}
|
|
@@ -33731,8 +34319,8 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33731
34319
|
_this._closeAfterPause();
|
|
33732
34320
|
_this._clearDisconnectTimer();
|
|
33733
34321
|
}, _this.config.disconnectTime * 1e3);
|
|
33734
|
-
}
|
|
33735
|
-
|
|
34322
|
+
};
|
|
34323
|
+
_this._reInit = function() {
|
|
33736
34324
|
var _this$_rts;
|
|
33737
34325
|
_this._clearDisconnectTimer();
|
|
33738
34326
|
if ((_this$_rts = _this._rts) !== null && _this$_rts !== void 0 && _this$_rts._pc) {
|
|
@@ -33740,8 +34328,8 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33740
34328
|
}
|
|
33741
34329
|
_this._init();
|
|
33742
34330
|
_this._bindRtsEvents();
|
|
33743
|
-
}
|
|
33744
|
-
|
|
34331
|
+
};
|
|
34332
|
+
_this._init = function() {
|
|
33745
34333
|
var _this$_rts2;
|
|
33746
34334
|
(_this$_rts2 = _this._rts) === null || _this$_rts2 === void 0 ? void 0 : _this$_rts2.destroy();
|
|
33747
34335
|
var config2 = _this.player.config;
|
|
@@ -33760,8 +34348,8 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33760
34348
|
}
|
|
33761
34349
|
}, rtsOpts));
|
|
33762
34350
|
_this._rts.load(config2.url);
|
|
33763
|
-
}
|
|
33764
|
-
|
|
34351
|
+
};
|
|
34352
|
+
_this._onSwitchURL = function(url2) {
|
|
33765
34353
|
if (url2) {
|
|
33766
34354
|
_this.player.config.url = url2;
|
|
33767
34355
|
}
|
|
@@ -33770,14 +34358,14 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33770
34358
|
} else {
|
|
33771
34359
|
_this._reInit();
|
|
33772
34360
|
}
|
|
33773
|
-
}
|
|
33774
|
-
|
|
34361
|
+
};
|
|
34362
|
+
_this.destroy = function() {
|
|
33775
34363
|
var _this$_rts3;
|
|
33776
34364
|
_this.player.switchURL = _this._originSwitchFn;
|
|
33777
34365
|
_this._clearDisconnectTimer();
|
|
33778
34366
|
(_this$_rts3 = _this._rts) === null || _this$_rts3 === void 0 ? void 0 : _this$_rts3.destroy();
|
|
33779
34367
|
_this._rts = null;
|
|
33780
|
-
}
|
|
34368
|
+
};
|
|
33781
34369
|
return _this;
|
|
33782
34370
|
}
|
|
33783
34371
|
_createClass$k(RtsPlugin2, [{
|
|
@@ -33787,32 +34375,38 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33787
34375
|
return (_this$_rts4 = this._rts) === null || _this$_rts4 === void 0 ? void 0 : _this$_rts4.pc;
|
|
33788
34376
|
}
|
|
33789
34377
|
}, {
|
|
33790
|
-
key: "
|
|
34378
|
+
key: "jitterBufferDelay",
|
|
33791
34379
|
get: function get4() {
|
|
33792
34380
|
var _this$_rts5;
|
|
33793
|
-
return (_this$_rts5 = this._rts) === null || _this$_rts5 === void 0 ? void 0 : _this$_rts5.
|
|
34381
|
+
return ((_this$_rts5 = this._rts) === null || _this$_rts5 === void 0 ? void 0 : _this$_rts5.getJitterBufferDelay()) || 0;
|
|
33794
34382
|
}
|
|
33795
34383
|
}, {
|
|
33796
|
-
key: "
|
|
34384
|
+
key: "loader",
|
|
33797
34385
|
get: function get4() {
|
|
33798
34386
|
var _this$_rts6;
|
|
33799
|
-
return (_this$_rts6 = this._rts) === null || _this$_rts6 === void 0 ? void 0 : _this$_rts6.
|
|
34387
|
+
return (_this$_rts6 = this._rts) === null || _this$_rts6 === void 0 ? void 0 : _this$_rts6.loader;
|
|
33800
34388
|
}
|
|
33801
34389
|
}, {
|
|
33802
|
-
key: "
|
|
34390
|
+
key: "videoTrack",
|
|
33803
34391
|
get: function get4() {
|
|
33804
|
-
|
|
34392
|
+
var _this$_rts7;
|
|
34393
|
+
return (_this$_rts7 = this._rts) === null || _this$_rts7 === void 0 ? void 0 : _this$_rts7.videoTack;
|
|
33805
34394
|
}
|
|
33806
34395
|
}, {
|
|
33807
|
-
key: "
|
|
34396
|
+
key: "audioTrack",
|
|
33808
34397
|
get: function get4() {
|
|
33809
|
-
var _this$
|
|
33810
|
-
return (_this$
|
|
34398
|
+
var _this$_rts8;
|
|
34399
|
+
return (_this$_rts8 = this._rts) === null || _this$_rts8 === void 0 ? void 0 : _this$_rts8.audioTrack;
|
|
34400
|
+
}
|
|
34401
|
+
}, {
|
|
34402
|
+
key: "core",
|
|
34403
|
+
get: function get4() {
|
|
34404
|
+
return this._rts;
|
|
33811
34405
|
}
|
|
33812
34406
|
}, {
|
|
33813
34407
|
key: "version",
|
|
33814
34408
|
get: function get4() {
|
|
33815
|
-
return "0.2.1-alpha.
|
|
34409
|
+
return "0.2.1-alpha.51";
|
|
33816
34410
|
}
|
|
33817
34411
|
}, {
|
|
33818
34412
|
key: "beforePlayerInit",
|
|
@@ -33820,7 +34414,8 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33820
34414
|
var _this$player2, _this$player$config, _this$player$config$r, _this2 = this;
|
|
33821
34415
|
this._init();
|
|
33822
34416
|
if (!this._originSwitchFn) {
|
|
33823
|
-
|
|
34417
|
+
var _this$player$switchUR;
|
|
34418
|
+
this._originSwitchFn = (_this$player$switchUR = this.player.switchURL) === null || _this$player$switchUR === void 0 ? void 0 : _this$player$switchUR.bind(this.player);
|
|
33824
34419
|
}
|
|
33825
34420
|
this.player.switchURL = this._onSwitchURL;
|
|
33826
34421
|
(_this$player2 = this.player) === null || _this$player2 === void 0 ? void 0 : _this$player2.useHooks("replay", this._onSwitchURL);
|
|
@@ -33862,26 +34457,26 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33862
34457
|
}, {
|
|
33863
34458
|
key: "getStats",
|
|
33864
34459
|
value: function getStats2() {
|
|
33865
|
-
var _this$
|
|
33866
|
-
return (_this$
|
|
34460
|
+
var _this$_rts9;
|
|
34461
|
+
return (_this$_rts9 = this._rts) === null || _this$_rts9 === void 0 ? void 0 : _this$_rts9.getStats();
|
|
33867
34462
|
}
|
|
33868
34463
|
}, {
|
|
33869
34464
|
key: "getStatsSnapshoot",
|
|
33870
34465
|
value: function getStatsSnapshoot2() {
|
|
33871
|
-
var _this$
|
|
33872
|
-
return (_this$
|
|
34466
|
+
var _this$_rts10;
|
|
34467
|
+
return (_this$_rts10 = this._rts) === null || _this$_rts10 === void 0 ? void 0 : _this$_rts10.getStatsSnapshoot();
|
|
33873
34468
|
}
|
|
33874
34469
|
}, {
|
|
33875
34470
|
key: "getNetWorkInfo",
|
|
33876
34471
|
value: function getNetWorkInfo() {
|
|
33877
|
-
var _this$
|
|
33878
|
-
return (_this$
|
|
34472
|
+
var _this$_rts11;
|
|
34473
|
+
return (_this$_rts11 = this._rts) === null || _this$_rts11 === void 0 ? void 0 : _this$_rts11.networkStats;
|
|
33879
34474
|
}
|
|
33880
34475
|
}, {
|
|
33881
34476
|
key: "setDelay",
|
|
33882
34477
|
value: function setDelay(delayHint) {
|
|
33883
|
-
var _this$
|
|
33884
|
-
(_this$
|
|
34478
|
+
var _this$_rts12;
|
|
34479
|
+
(_this$_rts12 = this._rts) === null || _this$_rts12 === void 0 ? void 0 : _this$_rts12._setDelay(delayHint);
|
|
33885
34480
|
}
|
|
33886
34481
|
}, {
|
|
33887
34482
|
key: "_clearDisconnectTimer",
|
|
@@ -33892,15 +34487,15 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33892
34487
|
}, {
|
|
33893
34488
|
key: "_closeAfterPause",
|
|
33894
34489
|
value: function _closeAfterPause() {
|
|
33895
|
-
var _this$
|
|
33896
|
-
if (!((_this$
|
|
34490
|
+
var _this$_rts13, _this$config, _this$_rts15;
|
|
34491
|
+
if (!((_this$_rts13 = this._rts) !== null && _this$_rts13 !== void 0 && _this$_rts13._pc)) {
|
|
33897
34492
|
return;
|
|
33898
34493
|
}
|
|
33899
34494
|
if ((_this$config = this.config) !== null && _this$config !== void 0 && _this$config.seamlesslyReload) {
|
|
33900
|
-
var _this$
|
|
33901
|
-
this._mediaStream = (_this$
|
|
34495
|
+
var _this$_rts14;
|
|
34496
|
+
this._mediaStream = (_this$_rts14 = this._rts) === null || _this$_rts14 === void 0 ? void 0 : _this$_rts14._mediaStream;
|
|
33902
34497
|
}
|
|
33903
|
-
(_this$
|
|
34498
|
+
(_this$_rts15 = this._rts) === null || _this$_rts15 === void 0 ? void 0 : _this$_rts15.destroy(true);
|
|
33904
34499
|
this._rts = null;
|
|
33905
34500
|
}
|
|
33906
34501
|
}, {
|
|
@@ -33916,16 +34511,17 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33916
34511
|
this._transCoreEvent(EVENT$2.SEI);
|
|
33917
34512
|
this._transCoreEvent(EXTEND_EVENTS.RTC_STATE_CHANGE);
|
|
33918
34513
|
this._transCoreEvent(EXTEND_EVENTS.RTC_NETWORK);
|
|
34514
|
+
this._transCoreEvent(EXTEND_EVENTS.RTC_FIRST_FRAME);
|
|
33919
34515
|
}
|
|
33920
34516
|
}, {
|
|
33921
34517
|
key: "_transErrorEvent",
|
|
33922
34518
|
value: function _transErrorEvent() {
|
|
33923
|
-
var _this3 = this;
|
|
33924
|
-
this._rts.on(EVENT$2.ERROR, function(err) {
|
|
34519
|
+
var _this$_rts16, _this3 = this, _this$_rts17;
|
|
34520
|
+
(_this$_rts16 = this._rts) === null || _this$_rts16 === void 0 ? void 0 : _this$_rts16.on(EVENT$2.ERROR, function(err) {
|
|
33925
34521
|
if (!_this3.player)
|
|
33926
34522
|
return;
|
|
33927
34523
|
var e4 = new Errors(_this3.player, err);
|
|
33928
|
-
var
|
|
34524
|
+
var _ref6 = _this3._rtsOpts || {}, backupConstruct = _ref6.backupConstruct, backupURL = _ref6.backupURL;
|
|
33929
34525
|
if (backupURL) {
|
|
33930
34526
|
var _player$video;
|
|
33931
34527
|
var player = _this3.player;
|
|
@@ -33961,7 +34557,7 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33961
34557
|
}
|
|
33962
34558
|
_this3.player.emit(ERROR$1, e4);
|
|
33963
34559
|
});
|
|
33964
|
-
this._rts.on("waiting", function() {
|
|
34560
|
+
(_this$_rts17 = this._rts) === null || _this$_rts17 === void 0 ? void 0 : _this$_rts17.on("waiting", function() {
|
|
33965
34561
|
var _this3$player;
|
|
33966
34562
|
(_this3$player = _this3.player) === null || _this3$player === void 0 ? void 0 : _this3$player.emit("waiting");
|
|
33967
34563
|
});
|
|
@@ -33969,8 +34565,8 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
33969
34565
|
}, {
|
|
33970
34566
|
key: "_transCoreEvent",
|
|
33971
34567
|
value: function _transCoreEvent(eventName) {
|
|
33972
|
-
var _this4 = this;
|
|
33973
|
-
this._rts.on(eventName, function(e4) {
|
|
34568
|
+
var _this$_rts18, _this4 = this;
|
|
34569
|
+
(_this$_rts18 = this._rts) === null || _this$_rts18 === void 0 ? void 0 : _this$_rts18.on(eventName, function(e4) {
|
|
33974
34570
|
if (_this4.player) {
|
|
33975
34571
|
_this4.player.emit("core_event", _objectSpread2$b(_objectSpread2$b({}, e4), {}, {
|
|
33976
34572
|
eventName
|
|
@@ -34008,7 +34604,8 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
34008
34604
|
case 3:
|
|
34009
34605
|
res = _context.sent;
|
|
34010
34606
|
hasH264 = (_res$video = res.video) === null || _res$video === void 0 ? void 0 : _res$video.filter(function(x2) {
|
|
34011
|
-
|
|
34607
|
+
var _x$config;
|
|
34608
|
+
return x2.codec === "H264" && (!targetProfileLevel || ((_x$config = x2.config) === null || _x$config === void 0 ? void 0 : _x$config.indexOf(targetProfileLevel)) !== -1);
|
|
34012
34609
|
}).length;
|
|
34013
34610
|
if (hasH264) {
|
|
34014
34611
|
_context.next = 10;
|
|
@@ -34019,7 +34616,8 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
34019
34616
|
case 8:
|
|
34020
34617
|
res1 = _context.sent;
|
|
34021
34618
|
hasH264 = (_res1$video = res1.video) === null || _res1$video === void 0 ? void 0 : _res1$video.filter(function(x2) {
|
|
34022
|
-
|
|
34619
|
+
var _x$config2;
|
|
34620
|
+
return x2.codec === "H264" && (!targetProfileLevel || ((_x$config2 = x2.config) === null || _x$config2 === void 0 ? void 0 : _x$config2.indexOf(targetProfileLevel)) !== -1);
|
|
34023
34621
|
}).length;
|
|
34024
34622
|
case 10:
|
|
34025
34623
|
return _context.abrupt("return", !!hasH264);
|