@webex/web-client-media-engine 3.11.1 → 3.11.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +145 -122
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +145 -122
- package/dist/esm/index.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/package.json +5 -4
package/dist/cjs/index.js
CHANGED
|
@@ -1285,11 +1285,30 @@ class _LocalStream extends Stream {
|
|
|
1285
1285
|
get inputTrack() {
|
|
1286
1286
|
return this.inputStream.getTracks()[0];
|
|
1287
1287
|
}
|
|
1288
|
+
/**
|
|
1289
|
+
* @inheritdoc
|
|
1290
|
+
*/
|
|
1291
|
+
handleTrackMuted() {
|
|
1292
|
+
if (this.inputTrack.enabled) {
|
|
1293
|
+
super.handleTrackMuted();
|
|
1294
|
+
}
|
|
1295
|
+
}
|
|
1296
|
+
/**
|
|
1297
|
+
* @inheritdoc
|
|
1298
|
+
*/
|
|
1299
|
+
handleTrackUnmuted() {
|
|
1300
|
+
if (this.inputTrack.enabled) {
|
|
1301
|
+
super.handleTrackUnmuted();
|
|
1302
|
+
}
|
|
1303
|
+
}
|
|
1288
1304
|
/**
|
|
1289
1305
|
* @inheritdoc
|
|
1290
1306
|
*/
|
|
1291
1307
|
get muted() {
|
|
1292
|
-
|
|
1308
|
+
// Calls to `setMuted` will only affect the "enabled" state, but there are specific cases in
|
|
1309
|
+
// which the browser may mute the track, which will affect the "muted" state but not the
|
|
1310
|
+
// "enabled" state, e.g. minimizing a shared window or unplugging a shared screen.
|
|
1311
|
+
return !this.inputTrack.enabled || this.inputTrack.muted;
|
|
1293
1312
|
}
|
|
1294
1313
|
/**
|
|
1295
1314
|
* Set the mute state of this stream.
|
|
@@ -1300,7 +1319,9 @@ class _LocalStream extends Stream {
|
|
|
1300
1319
|
if (this.inputTrack.enabled === isMuted) {
|
|
1301
1320
|
this.inputTrack.enabled = !isMuted;
|
|
1302
1321
|
// setting `enabled` will not automatically emit MuteStateChange, so we emit it here
|
|
1303
|
-
this
|
|
1322
|
+
if (!this.inputTrack.muted) {
|
|
1323
|
+
this[exports.StreamEventNames.MuteStateChange].emit(isMuted);
|
|
1324
|
+
}
|
|
1304
1325
|
}
|
|
1305
1326
|
}
|
|
1306
1327
|
/**
|
|
@@ -6228,6 +6249,80 @@ Logger$1.useDefaults({
|
|
|
6228
6249
|
},
|
|
6229
6250
|
});
|
|
6230
6251
|
|
|
6252
|
+
exports.MediaFamily = void 0;
|
|
6253
|
+
(function (MediaFamily) {
|
|
6254
|
+
MediaFamily["Audio"] = "AUDIO";
|
|
6255
|
+
MediaFamily["Video"] = "VIDEO";
|
|
6256
|
+
})(exports.MediaFamily || (exports.MediaFamily = {}));
|
|
6257
|
+
exports.MediaContent = void 0;
|
|
6258
|
+
(function (MediaContent) {
|
|
6259
|
+
MediaContent["Main"] = "MAIN";
|
|
6260
|
+
MediaContent["Slides"] = "SLIDES";
|
|
6261
|
+
})(exports.MediaContent || (exports.MediaContent = {}));
|
|
6262
|
+
exports.Policy = void 0;
|
|
6263
|
+
(function (Policy) {
|
|
6264
|
+
Policy["ActiveSpeaker"] = "active-speaker";
|
|
6265
|
+
Policy["ReceiverSelected"] = "receiver-selected";
|
|
6266
|
+
})(exports.Policy || (exports.Policy = {}));
|
|
6267
|
+
exports.MediaType = void 0;
|
|
6268
|
+
(function (MediaType) {
|
|
6269
|
+
MediaType["VideoMain"] = "VIDEO-MAIN";
|
|
6270
|
+
MediaType["VideoSlides"] = "VIDEO-SLIDES";
|
|
6271
|
+
MediaType["AudioMain"] = "AUDIO-MAIN";
|
|
6272
|
+
MediaType["AudioSlides"] = "AUDIO-SLIDES";
|
|
6273
|
+
})(exports.MediaType || (exports.MediaType = {}));
|
|
6274
|
+
|
|
6275
|
+
function randomInteger(min, max) {
|
|
6276
|
+
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
6277
|
+
}
|
|
6278
|
+
function generateSceneId() {
|
|
6279
|
+
return randomInteger(0, 0x7fffff);
|
|
6280
|
+
}
|
|
6281
|
+
function generateCsi(mediaFamily, sceneId) {
|
|
6282
|
+
let av;
|
|
6283
|
+
if (mediaFamily === exports.MediaFamily.Audio) {
|
|
6284
|
+
av = 0;
|
|
6285
|
+
}
|
|
6286
|
+
else {
|
|
6287
|
+
av = 1;
|
|
6288
|
+
}
|
|
6289
|
+
return (sceneId << 8) | av;
|
|
6290
|
+
}
|
|
6291
|
+
function getMediaType(mediaFamily, mediaContent) {
|
|
6292
|
+
if (mediaFamily === exports.MediaFamily.Video && mediaContent === exports.MediaContent.Main) {
|
|
6293
|
+
return exports.MediaType.VideoMain;
|
|
6294
|
+
}
|
|
6295
|
+
if (mediaFamily === exports.MediaFamily.Video && mediaContent === exports.MediaContent.Slides) {
|
|
6296
|
+
return exports.MediaType.VideoSlides;
|
|
6297
|
+
}
|
|
6298
|
+
if (mediaFamily === exports.MediaFamily.Audio && mediaContent === exports.MediaContent.Main) {
|
|
6299
|
+
return exports.MediaType.AudioMain;
|
|
6300
|
+
}
|
|
6301
|
+
return exports.MediaType.AudioSlides;
|
|
6302
|
+
}
|
|
6303
|
+
function getMediaFamily(mediaType) {
|
|
6304
|
+
return [exports.MediaType.VideoMain, exports.MediaType.VideoSlides].includes(mediaType)
|
|
6305
|
+
? exports.MediaFamily.Video
|
|
6306
|
+
: exports.MediaFamily.Audio;
|
|
6307
|
+
}
|
|
6308
|
+
function getMediaContent(mediaType) {
|
|
6309
|
+
return [exports.MediaType.VideoMain, exports.MediaType.AudioMain].includes(mediaType)
|
|
6310
|
+
? exports.MediaContent.Main
|
|
6311
|
+
: exports.MediaContent.Slides;
|
|
6312
|
+
}
|
|
6313
|
+
const truthyOrZero = (value) => value === 0 || value;
|
|
6314
|
+
function arraysAreEqual(left, right, predicate) {
|
|
6315
|
+
if (left.length !== right.length) {
|
|
6316
|
+
return false;
|
|
6317
|
+
}
|
|
6318
|
+
for (let i = 0; i < left.length; i += 1) {
|
|
6319
|
+
if (!predicate(left[i], right[i])) {
|
|
6320
|
+
return false;
|
|
6321
|
+
}
|
|
6322
|
+
}
|
|
6323
|
+
return true;
|
|
6324
|
+
}
|
|
6325
|
+
|
|
6231
6326
|
class ActiveSpeakerInfo {
|
|
6232
6327
|
constructor(priority, crossPriorityDuplication, crossPolicyDuplication, preferLiveVideo, namedMediaGroups) {
|
|
6233
6328
|
this.priority = priority;
|
|
@@ -6251,15 +6346,7 @@ function areNamedMediaGroupArraysEqual(left, right) {
|
|
|
6251
6346
|
if (left === undefined || right === undefined) {
|
|
6252
6347
|
return left === right;
|
|
6253
6348
|
}
|
|
6254
|
-
|
|
6255
|
-
return false;
|
|
6256
|
-
}
|
|
6257
|
-
for (let i = 0; i < left.length; i += 1) {
|
|
6258
|
-
if (left[i] !== right[i]) {
|
|
6259
|
-
return false;
|
|
6260
|
-
}
|
|
6261
|
-
}
|
|
6262
|
-
return true;
|
|
6349
|
+
return arraysAreEqual(left, right, (l, r) => l.type === r.type && l.value === r.value);
|
|
6263
6350
|
}
|
|
6264
6351
|
function areActiveSpeakerInfosEqual(left, right) {
|
|
6265
6352
|
return (left.priority === right.priority &&
|
|
@@ -6461,69 +6548,6 @@ function areReceiverSelectedInfosEqual(left, right) {
|
|
|
6461
6548
|
return left.csi === right.csi;
|
|
6462
6549
|
}
|
|
6463
6550
|
|
|
6464
|
-
exports.MediaFamily = void 0;
|
|
6465
|
-
(function (MediaFamily) {
|
|
6466
|
-
MediaFamily["Audio"] = "AUDIO";
|
|
6467
|
-
MediaFamily["Video"] = "VIDEO";
|
|
6468
|
-
})(exports.MediaFamily || (exports.MediaFamily = {}));
|
|
6469
|
-
exports.MediaContent = void 0;
|
|
6470
|
-
(function (MediaContent) {
|
|
6471
|
-
MediaContent["Main"] = "MAIN";
|
|
6472
|
-
MediaContent["Slides"] = "SLIDES";
|
|
6473
|
-
})(exports.MediaContent || (exports.MediaContent = {}));
|
|
6474
|
-
exports.Policy = void 0;
|
|
6475
|
-
(function (Policy) {
|
|
6476
|
-
Policy["ActiveSpeaker"] = "active-speaker";
|
|
6477
|
-
Policy["ReceiverSelected"] = "receiver-selected";
|
|
6478
|
-
})(exports.Policy || (exports.Policy = {}));
|
|
6479
|
-
exports.MediaType = void 0;
|
|
6480
|
-
(function (MediaType) {
|
|
6481
|
-
MediaType["VideoMain"] = "VIDEO-MAIN";
|
|
6482
|
-
MediaType["VideoSlides"] = "VIDEO-SLIDES";
|
|
6483
|
-
MediaType["AudioMain"] = "AUDIO-MAIN";
|
|
6484
|
-
MediaType["AudioSlides"] = "AUDIO-SLIDES";
|
|
6485
|
-
})(exports.MediaType || (exports.MediaType = {}));
|
|
6486
|
-
|
|
6487
|
-
function randomInteger(min, max) {
|
|
6488
|
-
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
6489
|
-
}
|
|
6490
|
-
function generateSceneId() {
|
|
6491
|
-
return randomInteger(0, 0x7fffff);
|
|
6492
|
-
}
|
|
6493
|
-
function generateCsi(mediaFamily, sceneId) {
|
|
6494
|
-
let av;
|
|
6495
|
-
if (mediaFamily === exports.MediaFamily.Audio) {
|
|
6496
|
-
av = 0;
|
|
6497
|
-
}
|
|
6498
|
-
else {
|
|
6499
|
-
av = 1;
|
|
6500
|
-
}
|
|
6501
|
-
return (sceneId << 8) | av;
|
|
6502
|
-
}
|
|
6503
|
-
function getMediaType(mediaFamily, mediaContent) {
|
|
6504
|
-
if (mediaFamily === exports.MediaFamily.Video && mediaContent === exports.MediaContent.Main) {
|
|
6505
|
-
return exports.MediaType.VideoMain;
|
|
6506
|
-
}
|
|
6507
|
-
if (mediaFamily === exports.MediaFamily.Video && mediaContent === exports.MediaContent.Slides) {
|
|
6508
|
-
return exports.MediaType.VideoSlides;
|
|
6509
|
-
}
|
|
6510
|
-
if (mediaFamily === exports.MediaFamily.Audio && mediaContent === exports.MediaContent.Main) {
|
|
6511
|
-
return exports.MediaType.AudioMain;
|
|
6512
|
-
}
|
|
6513
|
-
return exports.MediaType.AudioSlides;
|
|
6514
|
-
}
|
|
6515
|
-
function getMediaFamily(mediaType) {
|
|
6516
|
-
return [exports.MediaType.VideoMain, exports.MediaType.VideoSlides].includes(mediaType)
|
|
6517
|
-
? exports.MediaFamily.Video
|
|
6518
|
-
: exports.MediaFamily.Audio;
|
|
6519
|
-
}
|
|
6520
|
-
function getMediaContent(mediaType) {
|
|
6521
|
-
return [exports.MediaType.VideoMain, exports.MediaType.AudioMain].includes(mediaType)
|
|
6522
|
-
? exports.MediaContent.Main
|
|
6523
|
-
: exports.MediaContent.Slides;
|
|
6524
|
-
}
|
|
6525
|
-
const truthyOrZero = (value) => value === 0 || value;
|
|
6526
|
-
|
|
6527
6551
|
class SourceAdvertisementMsg {
|
|
6528
6552
|
constructor(seqNum, numTotalSources, numLiveSources, namedMediaGroups, videoContentHint) {
|
|
6529
6553
|
this.seqNum = seqNum;
|
|
@@ -6584,26 +6608,10 @@ function arePolicySpecificInfosEqual(left, right) {
|
|
|
6584
6608
|
throw new Error('Invalid PolicySpecificInfo');
|
|
6585
6609
|
}
|
|
6586
6610
|
function areCodecInfoArraysEqual(left, right) {
|
|
6587
|
-
|
|
6588
|
-
return false;
|
|
6589
|
-
}
|
|
6590
|
-
for (let i = 0; i < left.length; i += 1) {
|
|
6591
|
-
if (!areCodecInfosEqual(left[i], right[i])) {
|
|
6592
|
-
return false;
|
|
6593
|
-
}
|
|
6594
|
-
}
|
|
6595
|
-
return true;
|
|
6611
|
+
return arraysAreEqual(left, right, areCodecInfosEqual);
|
|
6596
6612
|
}
|
|
6597
6613
|
function areStreamIdArraysEqual(left, right) {
|
|
6598
|
-
|
|
6599
|
-
return false;
|
|
6600
|
-
}
|
|
6601
|
-
for (let i = 0; i < left.length; i += 1) {
|
|
6602
|
-
if (!compareStreamIds(left[i], right[i])) {
|
|
6603
|
-
return false;
|
|
6604
|
-
}
|
|
6605
|
-
}
|
|
6606
|
-
return true;
|
|
6614
|
+
return arraysAreEqual(left, right, compareStreamIds);
|
|
6607
6615
|
}
|
|
6608
6616
|
function areStreamRequestsEqual(left, right) {
|
|
6609
6617
|
if (left.policy !== right.policy) {
|
|
@@ -6675,7 +6683,7 @@ function areStreamRequestArraysEqual(left, right) {
|
|
|
6675
6683
|
return true;
|
|
6676
6684
|
}
|
|
6677
6685
|
class JmpSession extends events$3.EventEmitter {
|
|
6678
|
-
constructor(mediaFamily, mediaContent, maxNumRetransmits =
|
|
6686
|
+
constructor(mediaFamily, mediaContent, maxNumRetransmits = 200, retransmitIntervalMs = 250) {
|
|
6679
6687
|
super();
|
|
6680
6688
|
this.currMediaRequestSeqNum = 1;
|
|
6681
6689
|
this.currSourceAdvertisementSeqNum = 1;
|
|
@@ -6700,16 +6708,25 @@ class JmpSession extends events$3.EventEmitter {
|
|
|
6700
6708
|
!areStreamRequestArraysEqual(this.lastSentMediaRequest.msg.requests, requests)) {
|
|
6701
6709
|
this.sendJmpMsg(JmpMsgType.MediaRequest, mediaRequestMsg);
|
|
6702
6710
|
(_a = this.lastSentMediaRequest) === null || _a === void 0 ? void 0 : _a.cancel();
|
|
6703
|
-
this.lastSentMediaRequest = new RetransmitHandler(mediaRequestMsg, this.maxNumRetransmits, this.retransmitIntervalMs, () =>
|
|
6711
|
+
this.lastSentMediaRequest = new RetransmitHandler(mediaRequestMsg, this.maxNumRetransmits, this.retransmitIntervalMs, () => {
|
|
6712
|
+
this.logger.info(`Retransmitting previously sent MediaRequest...`);
|
|
6713
|
+
this.sendJmpMsg(JmpMsgType.MediaRequest, mediaRequestMsg);
|
|
6714
|
+
}, (expiredJmpMsg) => {
|
|
6704
6715
|
this.logger.warn(`Retransmits for message expired: ${expiredJmpMsg}`);
|
|
6705
6716
|
});
|
|
6706
6717
|
this.currMediaRequestSeqNum++;
|
|
6707
6718
|
}
|
|
6719
|
+
else {
|
|
6720
|
+
this.logger.info(`Duplicate MediaRequest detected and will not be sent: ${mediaRequestMsg}`);
|
|
6721
|
+
}
|
|
6708
6722
|
}
|
|
6709
6723
|
sendSourceAdvertisement(numTotalSources, numLiveSources, namedMediaGroups, videoContentHint) {
|
|
6710
6724
|
const sourceAdvertisementMsg = new SourceAdvertisementMsg(this.currSourceAdvertisementSeqNum++, numTotalSources, numLiveSources, namedMediaGroups, videoContentHint);
|
|
6711
6725
|
this.sendJmpMsg(JmpMsgType.SourceAdvertisement, sourceAdvertisementMsg);
|
|
6712
|
-
this.lastSentSourceAdvertisement = new RetransmitHandler(sourceAdvertisementMsg, this.maxNumRetransmits, this.retransmitIntervalMs, () =>
|
|
6726
|
+
this.lastSentSourceAdvertisement = new RetransmitHandler(sourceAdvertisementMsg, this.maxNumRetransmits, this.retransmitIntervalMs, () => {
|
|
6727
|
+
this.logger.info(`Retransmitting previously sent SourceAdvertisement...`);
|
|
6728
|
+
this.sendJmpMsg(JmpMsgType.SourceAdvertisement, sourceAdvertisementMsg);
|
|
6729
|
+
}, (expiredMsg) => {
|
|
6713
6730
|
this.logger.warn(`Retransmits for message expired: `, expiredMsg);
|
|
6714
6731
|
});
|
|
6715
6732
|
}
|
|
@@ -6724,11 +6741,17 @@ class JmpSession extends events$3.EventEmitter {
|
|
|
6724
6741
|
!compareStreamStateArrays(filteredStreamStates, this.lastSentMediaRequestStatus.msg.streamStates)) {
|
|
6725
6742
|
this.sendJmpMsg(JmpMsgType.MediaRequestStatus, mediaRequestStatus);
|
|
6726
6743
|
(_b = this.lastSentMediaRequestStatus) === null || _b === void 0 ? void 0 : _b.cancel();
|
|
6727
|
-
this.lastSentMediaRequestStatus = new RetransmitHandler(mediaRequestStatus, this.maxNumRetransmits, this.retransmitIntervalMs, () =>
|
|
6744
|
+
this.lastSentMediaRequestStatus = new RetransmitHandler(mediaRequestStatus, this.maxNumRetransmits, this.retransmitIntervalMs, () => {
|
|
6745
|
+
this.logger.info(`Retransmitting previously sent MediaRequestStatus...`);
|
|
6746
|
+
this.sendJmpMsg(JmpMsgType.MediaRequestStatus, mediaRequestStatus);
|
|
6747
|
+
}, (expiredMsg) => {
|
|
6728
6748
|
this.logger.warn(`Retransmits for message expired: `, expiredMsg);
|
|
6729
6749
|
});
|
|
6730
6750
|
this.currMediaRequestStatusSeqNum++;
|
|
6731
6751
|
}
|
|
6752
|
+
else {
|
|
6753
|
+
this.logger.info(`Duplicate MediaRequestStatus detected and will not be sent: `, mediaRequestStatus);
|
|
6754
|
+
}
|
|
6732
6755
|
}
|
|
6733
6756
|
receive(jmpMsg) {
|
|
6734
6757
|
if (jmpMsg.mediaContent !== this.mediaContent || jmpMsg.mediaFamily !== this.mediaFamily) {
|
|
@@ -6925,6 +6948,26 @@ class JmpSession extends events$3.EventEmitter {
|
|
|
6925
6948
|
}
|
|
6926
6949
|
}
|
|
6927
6950
|
|
|
6951
|
+
exports.WcmeErrorType = void 0;
|
|
6952
|
+
(function (WcmeErrorType) {
|
|
6953
|
+
WcmeErrorType["CREATE_OFFER_FAILED"] = "CREATE_OFFER_FAILED";
|
|
6954
|
+
WcmeErrorType["SET_ANSWER_FAILED"] = "SET_ANSWER_FAILED";
|
|
6955
|
+
WcmeErrorType["OFFER_ANSWER_MISMATCH"] = "OFFER_ANSWER_MISMATCH";
|
|
6956
|
+
WcmeErrorType["SDP_MUNGE_FAILED"] = "SDP_MUNGE_FAILED";
|
|
6957
|
+
WcmeErrorType["SDP_MUNGE_MISSING_CODECS"] = "SDP_MUNGE_MISSING_CODECS";
|
|
6958
|
+
WcmeErrorType["INVALID_STREAM_REQUEST"] = "INVALID_STREAM_REQUEST";
|
|
6959
|
+
WcmeErrorType["GET_TRANSCEIVER_FAILED"] = "GET_TRANSCEIVER_FAILED";
|
|
6960
|
+
WcmeErrorType["GET_MAX_BITRATE_FAILED"] = "GET_MAX_BITRATE_FAILED";
|
|
6961
|
+
WcmeErrorType["GET_PAYLOAD_TYPE_FAILED"] = "GET_PAYLOAD_TYPE_FAILED";
|
|
6962
|
+
WcmeErrorType["SET_NMG_FAILED"] = "SET_NMG_FAILED";
|
|
6963
|
+
})(exports.WcmeErrorType || (exports.WcmeErrorType = {}));
|
|
6964
|
+
class WcmeError {
|
|
6965
|
+
constructor(type, message = '') {
|
|
6966
|
+
this.type = type;
|
|
6967
|
+
this.message = message;
|
|
6968
|
+
}
|
|
6969
|
+
}
|
|
6970
|
+
|
|
6928
6971
|
var commonjsGlobal$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
6929
6972
|
|
|
6930
6973
|
var logger$1 = {exports: {}};
|
|
@@ -7211,26 +7254,6 @@ var logger$1 = {exports: {}};
|
|
|
7211
7254
|
|
|
7212
7255
|
var Logger = logger$1.exports;
|
|
7213
7256
|
|
|
7214
|
-
exports.WcmeErrorType = void 0;
|
|
7215
|
-
(function (WcmeErrorType) {
|
|
7216
|
-
WcmeErrorType["CREATE_OFFER_FAILED"] = "CREATE_OFFER_FAILED";
|
|
7217
|
-
WcmeErrorType["SET_ANSWER_FAILED"] = "SET_ANSWER_FAILED";
|
|
7218
|
-
WcmeErrorType["OFFER_ANSWER_MISMATCH"] = "OFFER_ANSWER_MISMATCH";
|
|
7219
|
-
WcmeErrorType["SDP_MUNGE_FAILED"] = "SDP_MUNGE_FAILED";
|
|
7220
|
-
WcmeErrorType["SDP_MUNGE_MISSING_CODECS"] = "SDP_MUNGE_MISSING_CODECS";
|
|
7221
|
-
WcmeErrorType["INVALID_STREAM_REQUEST"] = "INVALID_STREAM_REQUEST";
|
|
7222
|
-
WcmeErrorType["GET_TRANSCEIVER_FAILED"] = "GET_TRANSCEIVER_FAILED";
|
|
7223
|
-
WcmeErrorType["GET_MAX_BITRATE_FAILED"] = "GET_MAX_BITRATE_FAILED";
|
|
7224
|
-
WcmeErrorType["GET_PAYLOAD_TYPE_FAILED"] = "GET_PAYLOAD_TYPE_FAILED";
|
|
7225
|
-
WcmeErrorType["SET_NMG_FAILED"] = "SET_NMG_FAILED";
|
|
7226
|
-
})(exports.WcmeErrorType || (exports.WcmeErrorType = {}));
|
|
7227
|
-
class WcmeError {
|
|
7228
|
-
constructor(type, message = '') {
|
|
7229
|
-
this.type = type;
|
|
7230
|
-
this.message = message;
|
|
7231
|
-
}
|
|
7232
|
-
}
|
|
7233
|
-
|
|
7234
7257
|
const DEFAULT_LOGGER_NAME = 'web-client-media-engine';
|
|
7235
7258
|
const logger = Logger.get(DEFAULT_LOGGER_NAME);
|
|
7236
7259
|
logger.setLevel(Logger.DEBUG);
|
|
@@ -14516,8 +14539,8 @@ class MultistreamConnection extends EventEmitter$2 {
|
|
|
14516
14539
|
ordered: false,
|
|
14517
14540
|
maxRetransmits: 0,
|
|
14518
14541
|
});
|
|
14519
|
-
dataChannel.onopen = (
|
|
14520
|
-
logger.info('DataChannel opened:
|
|
14542
|
+
dataChannel.onopen = (event) => {
|
|
14543
|
+
logger.info('DataChannel opened:', JSON.stringify(event));
|
|
14521
14544
|
[...this.sendTransceivers.keys()].forEach((mediaType) => {
|
|
14522
14545
|
this.sendSourceAdvertisement(mediaType);
|
|
14523
14546
|
});
|
|
@@ -14553,11 +14576,11 @@ class MultistreamConnection extends EventEmitter$2 {
|
|
|
14553
14576
|
}
|
|
14554
14577
|
jmpSession.receive(jmpMsg);
|
|
14555
14578
|
};
|
|
14556
|
-
dataChannel.onclose = (
|
|
14557
|
-
logger.info('DataChannel closed:
|
|
14579
|
+
dataChannel.onclose = (event) => {
|
|
14580
|
+
logger.info('DataChannel closed:', JSON.stringify(event));
|
|
14558
14581
|
};
|
|
14559
|
-
dataChannel.onerror = (
|
|
14560
|
-
logger.info('DataChannel error:
|
|
14582
|
+
dataChannel.onerror = (event) => {
|
|
14583
|
+
logger.info('DataChannel error:', JSON.stringify(event));
|
|
14561
14584
|
};
|
|
14562
14585
|
this.dataChannel = dataChannel;
|
|
14563
14586
|
}
|