@webex/web-client-media-engine 3.28.1 → 3.28.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 +25 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +25 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
package/dist/esm/index.js
CHANGED
|
@@ -10454,6 +10454,7 @@ class EventEmitter$2 extends events$1.exports.EventEmitter {
|
|
|
10454
10454
|
|
|
10455
10455
|
class IngressSdpMunger {
|
|
10456
10456
|
constructor() {
|
|
10457
|
+
this.customCodecParameters = new Map();
|
|
10457
10458
|
this.customRtxCodecParameters = new Map();
|
|
10458
10459
|
this.ssrc = generateSsrc();
|
|
10459
10460
|
}
|
|
@@ -10466,6 +10467,7 @@ class IngressSdpMunger {
|
|
|
10466
10467
|
logErrorAndThrow(WcmeErrorType.SDP_MUNGE_MISSING_CODECS, `No codecs present in m-line with MID ${mediaDescription.mid} after filtering.`);
|
|
10467
10468
|
}
|
|
10468
10469
|
removeMidRidExtensions(mediaDescription);
|
|
10470
|
+
applyFormatParameters(mediaDescription, ['H264', 'opus'], this.customCodecParameters);
|
|
10469
10471
|
applyFormatParameters(mediaDescription, ['rtx'], this.customRtxCodecParameters);
|
|
10470
10472
|
if (options.twccDisabled) {
|
|
10471
10473
|
disableTwcc(mediaDescription);
|
|
@@ -10492,6 +10494,11 @@ class IngressSdpMunger {
|
|
|
10492
10494
|
});
|
|
10493
10495
|
applyFormatParameters(mediaDescription, ['rtx'], this.customRtxCodecParameters);
|
|
10494
10496
|
}
|
|
10497
|
+
setCodecParameters(parameters) {
|
|
10498
|
+
Object.entries(parameters).forEach(([param, value]) => {
|
|
10499
|
+
this.customCodecParameters.set(param, value);
|
|
10500
|
+
});
|
|
10501
|
+
}
|
|
10495
10502
|
setRtxCodecParameters(parameters) {
|
|
10496
10503
|
Object.entries(parameters).forEach(([param, value]) => {
|
|
10497
10504
|
this.customRtxCodecParameters.set(param, value);
|
|
@@ -10662,7 +10669,18 @@ class Transceiver {
|
|
|
10662
10669
|
return this._rtcRtpTransceiver.sender;
|
|
10663
10670
|
}
|
|
10664
10671
|
close() {
|
|
10665
|
-
|
|
10672
|
+
try {
|
|
10673
|
+
this._rtcRtpTransceiver.stop();
|
|
10674
|
+
}
|
|
10675
|
+
catch (error) {
|
|
10676
|
+
if (error instanceof DOMException && error.name === 'InvalidStateError') {
|
|
10677
|
+
logger.warn('Peer connection is already closed, skipping call to RTCRtpTransceiver.stop()');
|
|
10678
|
+
}
|
|
10679
|
+
else {
|
|
10680
|
+
logger.error('An unexpected error occurred while stopping the RTCRtpTransceiver:', error);
|
|
10681
|
+
throw error;
|
|
10682
|
+
}
|
|
10683
|
+
}
|
|
10666
10684
|
}
|
|
10667
10685
|
}
|
|
10668
10686
|
|
|
@@ -10753,6 +10771,9 @@ class ReceiveOnlyTransceiver extends Transceiver {
|
|
|
10753
10771
|
this.metadata.lastActiveSpeakerUpdateTimestamp = getCurrentTimestamp();
|
|
10754
10772
|
}
|
|
10755
10773
|
}
|
|
10774
|
+
setCodecParameters(parameters) {
|
|
10775
|
+
this.munger.setCodecParameters(parameters);
|
|
10776
|
+
}
|
|
10756
10777
|
setRtxCodecParameters(parameters) {
|
|
10757
10778
|
this.munger.setRtxCodecParameters(parameters);
|
|
10758
10779
|
}
|
|
@@ -15313,6 +15334,9 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
15313
15334
|
munger,
|
|
15314
15335
|
});
|
|
15315
15336
|
if (getMediaFamily(mediaType) === MediaFamily.Video) {
|
|
15337
|
+
recvOnlyTransceiver.setCodecParameters({
|
|
15338
|
+
'sps-pps-idr-in-keyframe': '1',
|
|
15339
|
+
});
|
|
15316
15340
|
recvOnlyTransceiver.setRtxCodecParameters({
|
|
15317
15341
|
'rtx-time': mediaType === MediaType.VideoMain ? defaultVideoMainRtxTime : defaultVideoSlidesRtxTime,
|
|
15318
15342
|
});
|