mediasoup-client 3.7.14 → 3.7.15
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/lib/Consumer.js +1 -1
- package/lib/DataConsumer.js +1 -1
- package/lib/DataProducer.js +1 -1
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +1 -0
- package/lib/Producer.js +1 -1
- package/lib/Transport.js +4 -4
- package/lib/errors.d.ts.map +1 -1
- package/lib/errors.js +0 -3
- package/lib/handlers/Chrome111.d.ts.map +1 -1
- package/lib/handlers/Chrome111.js +7 -6
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +7 -6
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +7 -6
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +9 -8
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +8 -7
- package/lib/handlers/Edge11.d.ts.map +1 -1
- package/lib/handlers/Edge11.js +5 -4
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +4 -3
- package/lib/handlers/Firefox120.d.ts.map +1 -1
- package/lib/handlers/Firefox120.js +9 -12
- package/lib/handlers/Firefox60.d.ts.map +1 -1
- package/lib/handlers/Firefox60.js +15 -20
- package/lib/handlers/ReactNative.d.ts.map +1 -1
- package/lib/handlers/ReactNative.js +7 -6
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts.map +1 -1
- package/lib/handlers/ReactNativeUnifiedPlan.js +9 -8
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +7 -6
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +8 -9
- package/lib/handlers/ortc/edgeUtils.js +10 -10
- package/lib/handlers/ortc/utils.js +1 -1
- package/lib/handlers/sdp/MediaSection.d.ts.map +1 -1
- package/lib/handlers/sdp/MediaSection.js +12 -13
- package/lib/handlers/sdp/RemoteSdp.js +1 -1
- package/lib/handlers/sdp/commonUtils.js +1 -1
- package/lib/handlers/sdp/planBUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/planBUtils.js +1 -2
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/unifiedPlanUtils.js +2 -3
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/ortc.js +7 -7
- package/lib/scalabilityModes.js +1 -1
- package/lib/test/fakeParameters.d.ts.map +1 -1
- package/lib/test/fakeParameters.js +7 -8
- package/lib/test/test.js +50 -48
- package/npm-scripts.mjs +4 -3
- package/package.json +13 -9
|
@@ -212,7 +212,7 @@ class AnswerMediaSection extends MediaSection {
|
|
|
212
212
|
this._mediaObject.ext = [];
|
|
213
213
|
for (const ext of answerRtpParameters.headerExtensions) {
|
|
214
214
|
// Don't add a header extension if not present in the offer.
|
|
215
|
-
const found = (offerMediaObject.ext
|
|
215
|
+
const found = (offerMediaObject.ext ?? []).some((localExt) => localExt.uri === ext.uri);
|
|
216
216
|
if (!found) {
|
|
217
217
|
continue;
|
|
218
218
|
}
|
|
@@ -233,7 +233,7 @@ class AnswerMediaSection extends MediaSection {
|
|
|
233
233
|
list1: offerMediaObject.simulcast.list1,
|
|
234
234
|
};
|
|
235
235
|
this._mediaObject.rids = [];
|
|
236
|
-
for (const rid of offerMediaObject.rids
|
|
236
|
+
for (const rid of offerMediaObject.rids ?? []) {
|
|
237
237
|
if (rid.direction !== 'send') {
|
|
238
238
|
continue;
|
|
239
239
|
}
|
|
@@ -245,12 +245,11 @@ class AnswerMediaSection extends MediaSection {
|
|
|
245
245
|
}
|
|
246
246
|
// Simulcast (draft version 03).
|
|
247
247
|
else if (offerMediaObject.simulcast_03) {
|
|
248
|
-
// eslint-disable-next-line camelcase
|
|
249
248
|
this._mediaObject.simulcast_03 = {
|
|
250
249
|
value: offerMediaObject.simulcast_03.value.replace(/send/g, 'recv'),
|
|
251
250
|
};
|
|
252
251
|
this._mediaObject.rids = [];
|
|
253
|
-
for (const rid of offerMediaObject.rids
|
|
252
|
+
for (const rid of offerMediaObject.rids ?? []) {
|
|
254
253
|
if (rid.direction !== 'send') {
|
|
255
254
|
continue;
|
|
256
255
|
}
|
|
@@ -307,7 +306,7 @@ class AnswerMediaSection extends MediaSection {
|
|
|
307
306
|
this._mediaObject.direction = 'recvonly';
|
|
308
307
|
}
|
|
309
308
|
muxSimulcastStreams(encodings) {
|
|
310
|
-
if (!this._mediaObject.simulcast
|
|
309
|
+
if (!this._mediaObject.simulcast?.list1) {
|
|
311
310
|
return;
|
|
312
311
|
}
|
|
313
312
|
const layers = {};
|
|
@@ -360,7 +359,7 @@ class OfferMediaSection extends MediaSection {
|
|
|
360
359
|
this._mediaObject.rtcpFb = [];
|
|
361
360
|
this._mediaObject.fmtp = [];
|
|
362
361
|
if (!this._planB) {
|
|
363
|
-
this._mediaObject.msid = `${streamId
|
|
362
|
+
this._mediaObject.msid = `${streamId ?? '-'} ${trackId}`;
|
|
364
363
|
}
|
|
365
364
|
for (const codec of offerRtpParameters.codecs) {
|
|
366
365
|
const rtp = {
|
|
@@ -407,7 +406,7 @@ class OfferMediaSection extends MediaSection {
|
|
|
407
406
|
this._mediaObject.rtcpRsize = 'rtcp-rsize';
|
|
408
407
|
const encoding = offerRtpParameters.encodings[0];
|
|
409
408
|
const ssrc = encoding.ssrc;
|
|
410
|
-
const rtxSsrc = encoding.rtx
|
|
409
|
+
const rtxSsrc = encoding.rtx?.ssrc;
|
|
411
410
|
this._mediaObject.ssrcs = [];
|
|
412
411
|
this._mediaObject.ssrcGroups = [];
|
|
413
412
|
if (offerRtpParameters.rtcp.cname) {
|
|
@@ -421,7 +420,7 @@ class OfferMediaSection extends MediaSection {
|
|
|
421
420
|
this._mediaObject.ssrcs.push({
|
|
422
421
|
id: ssrc,
|
|
423
422
|
attribute: 'msid',
|
|
424
|
-
value: `${streamId
|
|
423
|
+
value: `${streamId ?? '-'} ${trackId}`,
|
|
425
424
|
});
|
|
426
425
|
}
|
|
427
426
|
if (rtxSsrc) {
|
|
@@ -436,7 +435,7 @@ class OfferMediaSection extends MediaSection {
|
|
|
436
435
|
this._mediaObject.ssrcs.push({
|
|
437
436
|
id: rtxSsrc,
|
|
438
437
|
attribute: 'msid',
|
|
439
|
-
value: `${streamId
|
|
438
|
+
value: `${streamId ?? '-'} ${trackId}`,
|
|
440
439
|
});
|
|
441
440
|
}
|
|
442
441
|
// Associate original and retransmission SSRCs.
|
|
@@ -478,7 +477,7 @@ class OfferMediaSection extends MediaSection {
|
|
|
478
477
|
planBReceive({ offerRtpParameters, streamId, trackId, }) {
|
|
479
478
|
const encoding = offerRtpParameters.encodings[0];
|
|
480
479
|
const ssrc = encoding.ssrc;
|
|
481
|
-
const rtxSsrc = encoding.rtx
|
|
480
|
+
const rtxSsrc = encoding.rtx?.ssrc;
|
|
482
481
|
const payloads = this._mediaObject.payloads.split(' ');
|
|
483
482
|
for (const codec of offerRtpParameters.codecs) {
|
|
484
483
|
if (payloads.includes(String(codec.payloadType))) {
|
|
@@ -529,7 +528,7 @@ class OfferMediaSection extends MediaSection {
|
|
|
529
528
|
this._mediaObject.ssrcs.push({
|
|
530
529
|
id: ssrc,
|
|
531
530
|
attribute: 'msid',
|
|
532
|
-
value: `${streamId
|
|
531
|
+
value: `${streamId ?? '-'} ${trackId}`,
|
|
533
532
|
});
|
|
534
533
|
if (rtxSsrc) {
|
|
535
534
|
if (offerRtpParameters.rtcp.cname) {
|
|
@@ -542,7 +541,7 @@ class OfferMediaSection extends MediaSection {
|
|
|
542
541
|
this._mediaObject.ssrcs.push({
|
|
543
542
|
id: rtxSsrc,
|
|
544
543
|
attribute: 'msid',
|
|
545
|
-
value: `${streamId
|
|
544
|
+
value: `${streamId ?? '-'} ${trackId}`,
|
|
546
545
|
});
|
|
547
546
|
// Associate original and retransmission SSRCs.
|
|
548
547
|
this._mediaObject.ssrcGroups.push({
|
|
@@ -554,7 +553,7 @@ class OfferMediaSection extends MediaSection {
|
|
|
554
553
|
planBStopReceiving({ offerRtpParameters, }) {
|
|
555
554
|
const encoding = offerRtpParameters.encodings[0];
|
|
556
555
|
const ssrc = encoding.ssrc;
|
|
557
|
-
const rtxSsrc = encoding.rtx
|
|
556
|
+
const rtxSsrc = encoding.rtx?.ssrc;
|
|
558
557
|
this._mediaObject.ssrcs = this._mediaObject.ssrcs.filter((s) => s.id !== ssrc && s.id !== rtxSsrc);
|
|
559
558
|
if (rtxSsrc) {
|
|
560
559
|
this._mediaObject.ssrcGroups = this._mediaObject.ssrcGroups.filter((group) => group.ssrcs !== `${ssrc} ${rtxSsrc}`);
|
|
@@ -55,7 +55,7 @@ class RemoteSdp {
|
|
|
55
55
|
media: [],
|
|
56
56
|
};
|
|
57
57
|
// If ICE parameters are given, add ICE-Lite indicator.
|
|
58
|
-
if (iceParameters
|
|
58
|
+
if (iceParameters?.iceLite) {
|
|
59
59
|
this._sdpObject.icelite = 'ice-lite';
|
|
60
60
|
}
|
|
61
61
|
// If DTLS parameters are given, assume WebRTC and BUNDLE.
|
|
@@ -82,7 +82,7 @@ function extractRtpCapabilities({ sdpObject, }) {
|
|
|
82
82
|
continue;
|
|
83
83
|
}
|
|
84
84
|
// Specials case to convert parameter value to string.
|
|
85
|
-
if (parameters
|
|
85
|
+
if (parameters?.hasOwnProperty('profile-level-id')) {
|
|
86
86
|
parameters['profile-level-id'] = String(parameters['profile-level-id']);
|
|
87
87
|
}
|
|
88
88
|
codec.parameters = parameters;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planBUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/planBUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAgB,eAAe,CAAC,EAC/B,gBAAgB,EAChB,KAAK,GACL,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;CACxB,GAAG,qBAAqB,EAAE,CAyE1B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAClC,gBAAgB,EAChB,KAAK,EACL,UAAU,GACV,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"planBUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/planBUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAgB,eAAe,CAAC,EAC/B,gBAAgB,EAChB,KAAK,GACL,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;CACxB,GAAG,qBAAqB,EAAE,CAyE1B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAClC,gBAAgB,EAChB,KAAK,EACL,UAAU,GACV,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAmHP"}
|
|
@@ -117,8 +117,7 @@ function addLegacySimulcast({ offerMediaObject, track, numStreams, }) {
|
|
|
117
117
|
semantics: 'SIM',
|
|
118
118
|
ssrcs: ssrcs.join(' '),
|
|
119
119
|
});
|
|
120
|
-
for (
|
|
121
|
-
const ssrc = ssrcs[i];
|
|
120
|
+
for (const ssrc of ssrcs) {
|
|
122
121
|
offerMediaObject.ssrcs.push({
|
|
123
122
|
id: ssrc,
|
|
124
123
|
attribute: 'cname',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unifiedPlanUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/unifiedPlanUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAgB,eAAe,CAAC,EAC/B,gBAAgB,GAChB,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;CACtB,GAAG,qBAAqB,EAAE,CAyD1B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAClC,gBAAgB,EAChB,UAAU,GACV,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"unifiedPlanUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/unifiedPlanUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAgB,eAAe,CAAC,EAC/B,gBAAgB,GAChB,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;CACtB,GAAG,qBAAqB,EAAE,CAyD1B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAClC,gBAAgB,EAChB,UAAU,GACV,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAkGP"}
|
|
@@ -58,7 +58,7 @@ function addLegacySimulcast({ offerMediaObject, numStreams, }) {
|
|
|
58
58
|
throw new Error('a=ssrc line with msid information not found');
|
|
59
59
|
}
|
|
60
60
|
const [streamId, trackId] = ssrcMsidLine.value.split(' ');
|
|
61
|
-
const firstSsrc = ssrcMsidLine.id;
|
|
61
|
+
const firstSsrc = Number(ssrcMsidLine.id);
|
|
62
62
|
let firstRtxSsrc;
|
|
63
63
|
// Get the SSRC for RTX.
|
|
64
64
|
(offerMediaObject.ssrcGroups || []).some((line) => {
|
|
@@ -93,8 +93,7 @@ function addLegacySimulcast({ offerMediaObject, numStreams, }) {
|
|
|
93
93
|
semantics: 'SIM',
|
|
94
94
|
ssrcs: ssrcs.join(' '),
|
|
95
95
|
});
|
|
96
|
-
for (
|
|
97
|
-
const ssrc = ssrcs[i];
|
|
96
|
+
for (const ssrc of ssrcs) {
|
|
98
97
|
offerMediaObject.ssrcs.push({
|
|
99
98
|
id: ssrc,
|
|
100
99
|
attribute: 'cname',
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
package/lib/ortc.js
CHANGED
|
@@ -194,11 +194,11 @@ function getExtendedRtpCapabilities(localCaps, remoteCaps) {
|
|
|
194
194
|
headerExtensions: [],
|
|
195
195
|
};
|
|
196
196
|
// Match media codecs and keep the order preferred by remoteCaps.
|
|
197
|
-
for (const remoteCodec of remoteCaps.codecs
|
|
197
|
+
for (const remoteCodec of remoteCaps.codecs ?? []) {
|
|
198
198
|
if (isRtxCodec(remoteCodec)) {
|
|
199
199
|
continue;
|
|
200
200
|
}
|
|
201
|
-
const matchingLocalCodec = (localCaps.codecs
|
|
201
|
+
const matchingLocalCodec = (localCaps.codecs ?? []).find((localCodec) => matchCodecs(localCodec, remoteCodec, { strict: true, modify: true }));
|
|
202
202
|
if (!matchingLocalCodec) {
|
|
203
203
|
continue;
|
|
204
204
|
}
|
|
@@ -433,17 +433,17 @@ function getSendingRemoteRtpParameters(kind, extendedRtpCapabilities) {
|
|
|
433
433
|
if (rtpParameters.headerExtensions.some(ext => ext.uri ===
|
|
434
434
|
'http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01')) {
|
|
435
435
|
for (const codec of rtpParameters.codecs) {
|
|
436
|
-
codec.rtcpFeedback = (codec.rtcpFeedback
|
|
436
|
+
codec.rtcpFeedback = (codec.rtcpFeedback ?? []).filter((fb) => fb.type !== 'goog-remb');
|
|
437
437
|
}
|
|
438
438
|
}
|
|
439
439
|
else if (rtpParameters.headerExtensions.some(ext => ext.uri === 'http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time')) {
|
|
440
440
|
for (const codec of rtpParameters.codecs) {
|
|
441
|
-
codec.rtcpFeedback = (codec.rtcpFeedback
|
|
441
|
+
codec.rtcpFeedback = (codec.rtcpFeedback ?? []).filter(fb => fb.type !== 'transport-cc');
|
|
442
442
|
}
|
|
443
443
|
}
|
|
444
444
|
else {
|
|
445
445
|
for (const codec of rtpParameters.codecs) {
|
|
446
|
-
codec.rtcpFeedback = (codec.rtcpFeedback
|
|
446
|
+
codec.rtcpFeedback = (codec.rtcpFeedback ?? []).filter((fb) => fb.type !== 'transport-cc' && fb.type !== 'goog-remb');
|
|
447
447
|
}
|
|
448
448
|
}
|
|
449
449
|
return rtpParameters;
|
|
@@ -893,8 +893,8 @@ function matchHeaderExtensions(aExt, bExt) {
|
|
|
893
893
|
}
|
|
894
894
|
function reduceRtcpFeedback(codecA, codecB) {
|
|
895
895
|
const reducedRtcpFeedback = [];
|
|
896
|
-
for (const aFb of codecA.rtcpFeedback
|
|
897
|
-
const matchingBFb = (codecB.rtcpFeedback
|
|
896
|
+
for (const aFb of codecA.rtcpFeedback ?? []) {
|
|
897
|
+
const matchingBFb = (codecB.rtcpFeedback ?? []).find((bFb) => bFb.type === aFb.type &&
|
|
898
898
|
(bFb.parameter === aFb.parameter || (!bFb.parameter && !aFb.parameter)));
|
|
899
899
|
if (matchingBFb) {
|
|
900
900
|
reducedRtcpFeedback.push(matchingBFb);
|
package/lib/scalabilityModes.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.parse = parse;
|
|
4
4
|
const ScalabilityModeRegex = new RegExp('^[LS]([1-9]\\d{0,1})T([1-9]\\d{0,1})');
|
|
5
5
|
function parse(scalabilityMode) {
|
|
6
|
-
const match = ScalabilityModeRegex.exec(scalabilityMode
|
|
6
|
+
const match = ScalabilityModeRegex.exec(scalabilityMode ?? '');
|
|
7
7
|
if (match) {
|
|
8
8
|
return {
|
|
9
9
|
spatialLayers: Number(match[1]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fakeParameters.d.ts","sourceRoot":"","sources":["../../src/test/fakeParameters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,KAAK,CAAC;AAOvC,wBAAgB,6BAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,eAAe,CAoKrF;AAED,wBAAgB,6BAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"fakeParameters.d.ts","sourceRoot":"","sources":["../../src/test/fakeParameters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,KAAK,CAAC;AAOvC,wBAAgB,6BAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,eAAe,CAoKrF;AAED,wBAAgB,6BAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,eAAe,CAmHrF;AAED,wBAAgB,8BAA8B,IAAI,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAIvF;AAED,wBAAgB,2BAA2B,IAAI,eAAe,CAAC,KAAK,CAAC,cAAc,CAWlF;AAED,wBAAgB,iCAAiC,IAAI,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAyD1F;AAED,wBAAgB,gCAAgC,IAAI;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAIjE;AAED,wBAAgB,gCAAgC,CAAC,EAChD,EAAE,EACF,aAAa,GACb,GAAE;IACF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,eAAe,CAAC,KAAK,CAAC,eAAe,CA6O7C;AAED,wBAAgB,oCAAoC,IAAI;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAIrE;AAED,wBAAgB,oCAAoC,CAAC,EACpD,EAAE,GACF,GAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,eAAe,CAAC,KAAK,CAAC,mBAAmB,CAWlE"}
|
|
@@ -294,19 +294,18 @@ function generateNativeRtpCapabilities() {
|
|
|
294
294
|
},
|
|
295
295
|
{
|
|
296
296
|
kind: 'video',
|
|
297
|
-
// @ts-ignore
|
|
298
297
|
uri: 'http://www.webrtc.org/experiments/rtp-hdrext/playout-delay',
|
|
299
298
|
preferredId: 6,
|
|
300
299
|
},
|
|
301
300
|
{
|
|
302
301
|
kind: 'video',
|
|
303
|
-
// @ts-
|
|
302
|
+
// @ts-expect-error --- ON purpose.
|
|
304
303
|
uri: 'http://www.webrtc.org/experiments/rtp-hdrext/video-content-type',
|
|
305
304
|
preferredId: 7,
|
|
306
305
|
},
|
|
307
306
|
{
|
|
308
307
|
kind: 'video',
|
|
309
|
-
// @ts-
|
|
308
|
+
// @ts-expect-error --- ON purpose.
|
|
310
309
|
uri: 'http://www.webrtc.org/experiments/rtp-hdrext/video-timing',
|
|
311
310
|
preferredId: 8,
|
|
312
311
|
},
|
|
@@ -398,7 +397,7 @@ function generateConsumerRemoteParameters({ id, codecMimeType, } = {}) {
|
|
|
398
397
|
switch (codecMimeType) {
|
|
399
398
|
case 'audio/opus': {
|
|
400
399
|
return {
|
|
401
|
-
id: id
|
|
400
|
+
id: id ?? generateFakeUuid(),
|
|
402
401
|
producerId: generateFakeUuid(),
|
|
403
402
|
kind: 'audio',
|
|
404
403
|
rtpParameters: utils.deepFreeze({
|
|
@@ -444,7 +443,7 @@ function generateConsumerRemoteParameters({ id, codecMimeType, } = {}) {
|
|
|
444
443
|
}
|
|
445
444
|
case 'audio/ISAC': {
|
|
446
445
|
return {
|
|
447
|
-
id: id
|
|
446
|
+
id: id ?? generateFakeUuid(),
|
|
448
447
|
producerId: generateFakeUuid(),
|
|
449
448
|
kind: 'audio',
|
|
450
449
|
rtpParameters: utils.deepFreeze({
|
|
@@ -483,7 +482,7 @@ function generateConsumerRemoteParameters({ id, codecMimeType, } = {}) {
|
|
|
483
482
|
}
|
|
484
483
|
case 'video/VP8': {
|
|
485
484
|
return {
|
|
486
|
-
id: id
|
|
485
|
+
id: id ?? generateFakeUuid(),
|
|
487
486
|
producerId: generateFakeUuid(),
|
|
488
487
|
kind: 'video',
|
|
489
488
|
rtpParameters: utils.deepFreeze({
|
|
@@ -553,7 +552,7 @@ function generateConsumerRemoteParameters({ id, codecMimeType, } = {}) {
|
|
|
553
552
|
}
|
|
554
553
|
case 'video/H264': {
|
|
555
554
|
return {
|
|
556
|
-
id: id
|
|
555
|
+
id: id ?? generateFakeUuid(),
|
|
557
556
|
producerId: generateFakeUuid(),
|
|
558
557
|
kind: 'video',
|
|
559
558
|
rtpParameters: utils.deepFreeze({
|
|
@@ -635,7 +634,7 @@ function generateDataProducerRemoteParameters() {
|
|
|
635
634
|
}
|
|
636
635
|
function generateDataConsumerRemoteParameters({ id, } = {}) {
|
|
637
636
|
return {
|
|
638
|
-
id: id
|
|
637
|
+
id: id ?? generateFakeUuid(),
|
|
639
638
|
dataProducerId: generateFakeUuid(),
|
|
640
639
|
sctpStreamParameters: utils.deepFreeze({
|
|
641
640
|
streamId: 666,
|