mediasoup-client 3.6.44 → 3.6.48
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/DataConsumer.d.ts +2 -2
- package/lib/DataConsumer.d.ts.map +1 -1
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +7 -3
- package/lib/Logger.js +6 -6
- package/lib/Transport.d.ts +3 -0
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +111 -40
- package/lib/handlers/Chrome55.d.ts +1 -1
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +53 -32
- package/lib/handlers/Chrome67.d.ts +1 -1
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +57 -35
- package/lib/handlers/Chrome70.d.ts +1 -1
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +55 -35
- package/lib/handlers/Chrome74.d.ts +1 -1
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +58 -35
- package/lib/handlers/Edge11.d.ts +1 -1
- package/lib/handlers/Edge11.d.ts.map +1 -1
- package/lib/handlers/Edge11.js +31 -22
- package/lib/handlers/FakeHandler.d.ts +1 -1
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +14 -11
- package/lib/handlers/Firefox60.d.ts +1 -1
- package/lib/handlers/Firefox60.d.ts.map +1 -1
- package/lib/handlers/Firefox60.js +54 -33
- package/lib/handlers/HandlerInterface.d.ts +1 -1
- package/lib/handlers/HandlerInterface.d.ts.map +1 -1
- package/lib/handlers/ReactNative.d.ts +1 -1
- package/lib/handlers/ReactNative.d.ts.map +1 -1
- package/lib/handlers/ReactNative.js +59 -38
- package/lib/handlers/Safari11.d.ts +1 -1
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +54 -35
- package/lib/handlers/Safari12.d.ts +1 -1
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +53 -34
- package/lib/handlers/ortc/edgeUtils.js +1 -1
- package/lib/handlers/sdp/MediaSection.js +1 -1
- package/lib/handlers/sdp/RemoteSdp.js +1 -1
- package/lib/handlers/sdp/commonUtils.js +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +3 -3
- package/lib/ortc.js +5 -7
- package/lib/types.js +1 -1
- package/package.json +11 -11
- package/src/DataConsumer.ts +2 -2
- package/src/Device.ts +7 -2
- package/src/Transport.ts +162 -58
- package/src/handlers/Chrome55.ts +55 -34
- package/src/handlers/Chrome67.ts +57 -36
- package/src/handlers/Chrome70.ts +54 -34
- package/src/handlers/Chrome74.ts +58 -34
- package/src/handlers/Edge11.ts +42 -26
- package/src/handlers/FakeHandler.ts +18 -10
- package/src/handlers/Firefox60.ts +54 -33
- package/src/handlers/HandlerInterface.ts +2 -2
- package/src/handlers/ReactNative.ts +62 -41
- package/src/handlers/Safari11.ts +57 -36
- package/src/handlers/Safari12.ts +54 -34
- package/src/ortc.ts +6 -8
- package/tsconfig.json +1 -1
package/lib/handlers/Chrome67.js
CHANGED
|
@@ -14,7 +14,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
14
14
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
15
|
if (mod && mod.__esModule) return mod;
|
|
16
16
|
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
18
|
__setModuleDefault(result, mod);
|
|
19
19
|
return result;
|
|
20
20
|
};
|
|
@@ -129,7 +129,14 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
129
129
|
? 'client'
|
|
130
130
|
: 'server';
|
|
131
131
|
}
|
|
132
|
-
this._pc = new RTCPeerConnection(
|
|
132
|
+
this._pc = new RTCPeerConnection({
|
|
133
|
+
iceServers: iceServers || [],
|
|
134
|
+
iceTransportPolicy: iceTransportPolicy || 'all',
|
|
135
|
+
bundlePolicy: 'max-bundle',
|
|
136
|
+
rtcpMuxPolicy: 'require',
|
|
137
|
+
sdpSemantics: 'plan-b',
|
|
138
|
+
...additionalSettings
|
|
139
|
+
}, proprietaryConstraints);
|
|
133
140
|
// Handle RTCPeerConnection connection status.
|
|
134
141
|
this._pc.addEventListener('iceconnectionstatechange', () => {
|
|
135
142
|
switch (this._pc.iceConnectionState) {
|
|
@@ -204,7 +211,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
204
211
|
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
|
|
205
212
|
if (!this._transportReady) {
|
|
206
213
|
await this._setupTransport({
|
|
207
|
-
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : '
|
|
214
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
208
215
|
localSdpObject
|
|
209
216
|
});
|
|
210
217
|
}
|
|
@@ -340,7 +347,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
340
347
|
throw new Error('associated RTCRtpSender not found');
|
|
341
348
|
const parameters = rtpSender.getParameters();
|
|
342
349
|
parameters.encodings.forEach((encoding, idx) => {
|
|
343
|
-
parameters.encodings[idx] =
|
|
350
|
+
parameters.encodings[idx] = { ...encoding, ...params };
|
|
344
351
|
});
|
|
345
352
|
await rtpSender.setParameters(parameters);
|
|
346
353
|
}
|
|
@@ -377,7 +384,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
377
384
|
.find((m) => m.type === 'application');
|
|
378
385
|
if (!this._transportReady) {
|
|
379
386
|
await this._setupTransport({
|
|
380
|
-
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : '
|
|
387
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
381
388
|
localSdpObject
|
|
382
389
|
});
|
|
383
390
|
}
|
|
@@ -397,32 +404,41 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
397
404
|
};
|
|
398
405
|
return { dataChannel, sctpStreamParameters };
|
|
399
406
|
}
|
|
400
|
-
async receive(
|
|
407
|
+
async receive(
|
|
408
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
409
|
+
optionsList) {
|
|
401
410
|
var _a;
|
|
402
411
|
this._assertRecvDirection();
|
|
403
|
-
|
|
404
|
-
const
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
mid
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
412
|
+
const results = [];
|
|
413
|
+
for (const options of optionsList) {
|
|
414
|
+
const { trackId, kind, rtpParameters } = options;
|
|
415
|
+
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
416
|
+
const mid = kind;
|
|
417
|
+
this._remoteSdp.receive({
|
|
418
|
+
mid,
|
|
419
|
+
kind,
|
|
420
|
+
offerRtpParameters: rtpParameters,
|
|
421
|
+
streamId: rtpParameters.rtcp.cname,
|
|
422
|
+
trackId
|
|
423
|
+
});
|
|
424
|
+
}
|
|
413
425
|
const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
|
|
414
426
|
logger.debug('receive() | calling pc.setRemoteDescription() [offer:%o]', offer);
|
|
415
427
|
await this._pc.setRemoteDescription(offer);
|
|
416
428
|
let answer = await this._pc.createAnswer();
|
|
417
429
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
418
|
-
const
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
430
|
+
for (const options of optionsList) {
|
|
431
|
+
const { kind, rtpParameters } = options;
|
|
432
|
+
const mid = kind;
|
|
433
|
+
const answerMediaObject = localSdpObject.media
|
|
434
|
+
.find((m) => String(m.mid) === mid);
|
|
435
|
+
// May need to modify codec parameters in the answer based on codec
|
|
436
|
+
// parameters in the offer.
|
|
437
|
+
sdpCommonUtils.applyCodecParameters({
|
|
438
|
+
offerRtpParameters: rtpParameters,
|
|
439
|
+
answerMediaObject
|
|
440
|
+
});
|
|
441
|
+
}
|
|
426
442
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
427
443
|
if (!this._transportReady) {
|
|
428
444
|
await this._setupTransport({
|
|
@@ -432,17 +448,23 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
432
448
|
}
|
|
433
449
|
logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
434
450
|
await this._pc.setLocalDescription(answer);
|
|
435
|
-
const
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
rtpReceiver
|
|
445
|
-
|
|
451
|
+
for (const options of optionsList) {
|
|
452
|
+
const { kind, trackId, rtpParameters } = options;
|
|
453
|
+
const localId = trackId;
|
|
454
|
+
const mid = kind;
|
|
455
|
+
const rtpReceiver = this._pc.getReceivers()
|
|
456
|
+
.find((r) => r.track && r.track.id === localId);
|
|
457
|
+
if (!rtpReceiver)
|
|
458
|
+
throw new Error('new RTCRtpReceiver not');
|
|
459
|
+
// Insert into the map.
|
|
460
|
+
this._mapRecvLocalIdInfo.set(localId, { mid, rtpParameters, rtpReceiver });
|
|
461
|
+
results.push({
|
|
462
|
+
localId,
|
|
463
|
+
track: rtpReceiver.track,
|
|
464
|
+
rtpReceiver
|
|
465
|
+
});
|
|
466
|
+
}
|
|
467
|
+
return results;
|
|
446
468
|
}
|
|
447
469
|
async stopReceiving(localId) {
|
|
448
470
|
this._assertRecvDirection();
|
|
@@ -34,7 +34,7 @@ export declare class Chrome70 extends HandlerInterface {
|
|
|
34
34
|
setRtpEncodingParameters(localId: string, params: any): Promise<void>;
|
|
35
35
|
getSenderStats(localId: string): Promise<RTCStatsReport>;
|
|
36
36
|
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
37
|
-
receive(
|
|
37
|
+
receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
|
|
38
38
|
stopReceiving(localId: string): Promise<void>;
|
|
39
39
|
pauseReceiving(localId: string): Promise<void>;
|
|
40
40
|
resumeReceiving(localId: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome70.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome70.ts"],"names":[],"mappings":"AAMA,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAM3E,qBAAa,QAAS,SAAQ,gBAAgB;IAG7C,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,2BAA2B,CAAC,CAAmC;IAGvE,OAAO,CAAC,iCAAiC,CAAC,CAAmC;IAG7E,OAAO,CAAC,oBAAoB,CAAC,CAAW;IAExC,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CACxB;IAEX,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD,OAAO,CAAC,2BAA2B,CAAS;IAE5C,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,cAAc;;IAUtC,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,KAAK,IAAI,IAAI;IAYP,wBAAwB,IAAI,OAAO,CAAC,eAAe,CAAC;IAsCpD,yBAAyB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAS5D,GAAG,CACF,EACC,SAAS,EACT,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,EAAE,iBAAiB,GAClB,IAAI;IAqED,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDvD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAK5C,IAAI,CACT,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,kBAAkB,GAC3D,OAAO,CAAC,iBAAiB,CAAC;IAwLvB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC3C,YAAY,CACjB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAC7C,OAAO,CAAC,IAAI,CAAC;IAsBV,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BxE,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBrE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAYxD,eAAe,CACpB,EACC,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,KAAK,EACL,QAAQ,EACR,EAAE,6BAA6B,GAC9B,OAAO,CAAC,4BAA4B,CAAC;IAuElC,OAAO,CACZ,
|
|
1
|
+
{"version":3,"file":"Chrome70.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome70.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/Chrome70.js
CHANGED
|
@@ -14,7 +14,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
14
14
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
15
|
if (mod && mod.__esModule) return mod;
|
|
16
16
|
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
18
|
__setModuleDefault(result, mod);
|
|
19
19
|
return result;
|
|
20
20
|
};
|
|
@@ -123,7 +123,14 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
123
123
|
? 'client'
|
|
124
124
|
: 'server';
|
|
125
125
|
}
|
|
126
|
-
this._pc = new RTCPeerConnection(
|
|
126
|
+
this._pc = new RTCPeerConnection({
|
|
127
|
+
iceServers: iceServers || [],
|
|
128
|
+
iceTransportPolicy: iceTransportPolicy || 'all',
|
|
129
|
+
bundlePolicy: 'max-bundle',
|
|
130
|
+
rtcpMuxPolicy: 'require',
|
|
131
|
+
sdpSemantics: 'unified-plan',
|
|
132
|
+
...additionalSettings
|
|
133
|
+
}, proprietaryConstraints);
|
|
127
134
|
// Handle RTCPeerConnection connection status.
|
|
128
135
|
this._pc.addEventListener('iceconnectionstatechange', () => {
|
|
129
136
|
switch (this._pc.iceConnectionState) {
|
|
@@ -197,7 +204,7 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
197
204
|
let offerMediaObject;
|
|
198
205
|
if (!this._transportReady) {
|
|
199
206
|
await this._setupTransport({
|
|
200
|
-
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : '
|
|
207
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
201
208
|
localSdpObject
|
|
202
209
|
});
|
|
203
210
|
}
|
|
@@ -213,7 +220,7 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
213
220
|
}
|
|
214
221
|
// Special case for VP9 with SVC.
|
|
215
222
|
let hackVp9Svc = false;
|
|
216
|
-
const layers = scalabilityModes_1.parse((encodings || [{}])[0].scalabilityMode);
|
|
223
|
+
const layers = (0, scalabilityModes_1.parse)((encodings || [{}])[0].scalabilityMode);
|
|
217
224
|
if (encodings &&
|
|
218
225
|
encodings.length === 1 &&
|
|
219
226
|
layers.spatialLayers > 1 &&
|
|
@@ -347,7 +354,7 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
347
354
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
348
355
|
const parameters = transceiver.sender.getParameters();
|
|
349
356
|
parameters.encodings.forEach((encoding, idx) => {
|
|
350
|
-
parameters.encodings[idx] =
|
|
357
|
+
parameters.encodings[idx] = { ...encoding, ...params };
|
|
351
358
|
});
|
|
352
359
|
await transceiver.sender.setParameters(parameters);
|
|
353
360
|
}
|
|
@@ -384,7 +391,7 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
384
391
|
.find((m) => m.type === 'application');
|
|
385
392
|
if (!this._transportReady) {
|
|
386
393
|
await this._setupTransport({
|
|
387
|
-
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : '
|
|
394
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
388
395
|
localSdpObject
|
|
389
396
|
});
|
|
390
397
|
}
|
|
@@ -404,31 +411,39 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
404
411
|
};
|
|
405
412
|
return { dataChannel, sctpStreamParameters };
|
|
406
413
|
}
|
|
407
|
-
async receive(
|
|
414
|
+
async receive(optionsList) {
|
|
408
415
|
var _a;
|
|
409
416
|
this._assertRecvDirection();
|
|
410
|
-
|
|
411
|
-
const
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
417
|
+
const results = [];
|
|
418
|
+
for (const options of optionsList) {
|
|
419
|
+
const { trackId, kind, rtpParameters } = options;
|
|
420
|
+
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
421
|
+
const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
|
|
422
|
+
this._remoteSdp.receive({
|
|
423
|
+
mid: localId,
|
|
424
|
+
kind,
|
|
425
|
+
offerRtpParameters: rtpParameters,
|
|
426
|
+
streamId: rtpParameters.rtcp.cname,
|
|
427
|
+
trackId
|
|
428
|
+
});
|
|
429
|
+
}
|
|
419
430
|
const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
|
|
420
431
|
logger.debug('receive() | calling pc.setRemoteDescription() [offer:%o]', offer);
|
|
421
432
|
await this._pc.setRemoteDescription(offer);
|
|
422
433
|
let answer = await this._pc.createAnswer();
|
|
423
434
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
424
|
-
const
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
435
|
+
for (const options of optionsList) {
|
|
436
|
+
const { rtpParameters } = options;
|
|
437
|
+
const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
|
|
438
|
+
const answerMediaObject = localSdpObject.media
|
|
439
|
+
.find((m) => String(m.mid) === localId);
|
|
440
|
+
// May need to modify codec parameters in the answer based on codec
|
|
441
|
+
// parameters in the offer.
|
|
442
|
+
sdpCommonUtils.applyCodecParameters({
|
|
443
|
+
offerRtpParameters: rtpParameters,
|
|
444
|
+
answerMediaObject
|
|
445
|
+
});
|
|
446
|
+
}
|
|
432
447
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
433
448
|
if (!this._transportReady) {
|
|
434
449
|
await this._setupTransport({
|
|
@@ -438,17 +453,22 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
438
453
|
}
|
|
439
454
|
logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
440
455
|
await this._pc.setLocalDescription(answer);
|
|
441
|
-
const
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
456
|
+
for (const options of optionsList) {
|
|
457
|
+
const { rtpParameters } = options;
|
|
458
|
+
const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
|
|
459
|
+
const transceiver = this._pc.getTransceivers()
|
|
460
|
+
.find((t) => t.mid === localId);
|
|
461
|
+
if (!transceiver)
|
|
462
|
+
throw new Error('new RTCRtpTransceiver not found');
|
|
463
|
+
// Store in the map.
|
|
464
|
+
this._mapMidTransceiver.set(localId, transceiver);
|
|
465
|
+
results.push({
|
|
466
|
+
localId,
|
|
467
|
+
track: transceiver.receiver.track,
|
|
468
|
+
rtpReceiver: transceiver.receiver
|
|
469
|
+
});
|
|
470
|
+
}
|
|
471
|
+
return results;
|
|
452
472
|
}
|
|
453
473
|
async stopReceiving(localId) {
|
|
454
474
|
this._assertRecvDirection();
|
|
@@ -34,7 +34,7 @@ export declare class Chrome74 extends HandlerInterface {
|
|
|
34
34
|
setRtpEncodingParameters(localId: string, params: any): Promise<void>;
|
|
35
35
|
getSenderStats(localId: string): Promise<RTCStatsReport>;
|
|
36
36
|
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
37
|
-
receive(
|
|
37
|
+
receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
|
|
38
38
|
stopReceiving(localId: string): Promise<void>;
|
|
39
39
|
pauseReceiving(localId: string): Promise<void>;
|
|
40
40
|
resumeReceiving(localId: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome74.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome74.ts"],"names":[],"mappings":"AAMA,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AACvD,OAAO,EACN,eAAe,EAGf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAM3E,qBAAa,QAAS,SAAQ,gBAAgB;IAG7C,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,2BAA2B,CAAC,CAAmC;IAGvE,OAAO,CAAC,iCAAiC,CAAC,CAAmC;IAG7E,OAAO,CAAC,oBAAoB,CAAC,CAAW;IAExC,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CACxB;IAEX,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD,OAAO,CAAC,2BAA2B,CAAS;IAE5C,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,cAAc;;IAUtC,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,KAAK,IAAI,IAAI;IAYP,wBAAwB,IAAI,OAAO,CAAC,eAAe,CAAC;IAsCpD,yBAAyB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAS5D,GAAG,CACF,EACC,SAAS,EACT,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,EAAE,iBAAiB,GAClB,IAAI;IAqED,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDvD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAK5C,IAAI,CACT,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,kBAAkB,GAC3D,OAAO,CAAC,iBAAiB,CAAC;IAuKvB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC3C,YAAY,CACjB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAC7C,OAAO,CAAC,IAAI,CAAC;IAsBV,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BxE,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBrE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAYxD,eAAe,CACpB,EACC,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,KAAK,EACL,QAAQ,EACR,EAAE,6BAA6B,GAC9B,OAAO,CAAC,4BAA4B,CAAC;IAsElC,OAAO,CACZ,
|
|
1
|
+
{"version":3,"file":"Chrome74.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome74.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/Chrome74.js
CHANGED
|
@@ -14,7 +14,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
14
14
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
15
|
if (mod && mod.__esModule) return mod;
|
|
16
16
|
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
18
|
__setModuleDefault(result, mod);
|
|
19
19
|
return result;
|
|
20
20
|
};
|
|
@@ -123,7 +123,14 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
123
123
|
? 'client'
|
|
124
124
|
: 'server';
|
|
125
125
|
}
|
|
126
|
-
this._pc = new RTCPeerConnection(
|
|
126
|
+
this._pc = new RTCPeerConnection({
|
|
127
|
+
iceServers: iceServers || [],
|
|
128
|
+
iceTransportPolicy: iceTransportPolicy || 'all',
|
|
129
|
+
bundlePolicy: 'max-bundle',
|
|
130
|
+
rtcpMuxPolicy: 'require',
|
|
131
|
+
sdpSemantics: 'unified-plan',
|
|
132
|
+
...additionalSettings
|
|
133
|
+
}, proprietaryConstraints);
|
|
127
134
|
// Handle RTCPeerConnection connection status.
|
|
128
135
|
this._pc.addEventListener('iceconnectionstatechange', () => {
|
|
129
136
|
switch (this._pc.iceConnectionState) {
|
|
@@ -206,13 +213,13 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
206
213
|
let offerMediaObject;
|
|
207
214
|
if (!this._transportReady) {
|
|
208
215
|
await this._setupTransport({
|
|
209
|
-
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : '
|
|
216
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
210
217
|
localSdpObject
|
|
211
218
|
});
|
|
212
219
|
}
|
|
213
220
|
// Special case for VP9 with SVC.
|
|
214
221
|
let hackVp9Svc = false;
|
|
215
|
-
const layers = scalabilityModes_1.parse((encodings || [{}])[0].scalabilityMode);
|
|
222
|
+
const layers = (0, scalabilityModes_1.parse)((encodings || [{}])[0].scalabilityMode);
|
|
216
223
|
if (encodings &&
|
|
217
224
|
encodings.length === 1 &&
|
|
218
225
|
layers.spatialLayers > 1 &&
|
|
@@ -338,7 +345,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
338
345
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
339
346
|
const parameters = transceiver.sender.getParameters();
|
|
340
347
|
parameters.encodings.forEach((encoding, idx) => {
|
|
341
|
-
parameters.encodings[idx] =
|
|
348
|
+
parameters.encodings[idx] = { ...encoding, ...params };
|
|
342
349
|
});
|
|
343
350
|
await transceiver.sender.setParameters(parameters);
|
|
344
351
|
}
|
|
@@ -374,7 +381,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
374
381
|
.find((m) => m.type === 'application');
|
|
375
382
|
if (!this._transportReady) {
|
|
376
383
|
await this._setupTransport({
|
|
377
|
-
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : '
|
|
384
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
378
385
|
localSdpObject
|
|
379
386
|
});
|
|
380
387
|
}
|
|
@@ -394,31 +401,39 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
394
401
|
};
|
|
395
402
|
return { dataChannel, sctpStreamParameters };
|
|
396
403
|
}
|
|
397
|
-
async receive(
|
|
404
|
+
async receive(optionsList) {
|
|
398
405
|
var _a;
|
|
399
406
|
this._assertRecvDirection();
|
|
400
|
-
|
|
401
|
-
const
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
407
|
+
const results = [];
|
|
408
|
+
for (const options of optionsList) {
|
|
409
|
+
const { trackId, kind, rtpParameters } = options;
|
|
410
|
+
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
411
|
+
const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
|
|
412
|
+
this._remoteSdp.receive({
|
|
413
|
+
mid: localId,
|
|
414
|
+
kind,
|
|
415
|
+
offerRtpParameters: rtpParameters,
|
|
416
|
+
streamId: rtpParameters.rtcp.cname,
|
|
417
|
+
trackId
|
|
418
|
+
});
|
|
419
|
+
}
|
|
409
420
|
const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
|
|
410
421
|
logger.debug('receive() | calling pc.setRemoteDescription() [offer:%o]', offer);
|
|
411
422
|
await this._pc.setRemoteDescription(offer);
|
|
412
423
|
let answer = await this._pc.createAnswer();
|
|
413
424
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
414
|
-
const
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
425
|
+
for (const options of optionsList) {
|
|
426
|
+
const { rtpParameters } = options;
|
|
427
|
+
const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
|
|
428
|
+
const answerMediaObject = localSdpObject.media
|
|
429
|
+
.find((m) => String(m.mid) === localId);
|
|
430
|
+
// May need to modify codec parameters in the answer based on codec
|
|
431
|
+
// parameters in the offer.
|
|
432
|
+
sdpCommonUtils.applyCodecParameters({
|
|
433
|
+
offerRtpParameters: rtpParameters,
|
|
434
|
+
answerMediaObject
|
|
435
|
+
});
|
|
436
|
+
}
|
|
422
437
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
423
438
|
if (!this._transportReady) {
|
|
424
439
|
await this._setupTransport({
|
|
@@ -428,17 +443,25 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
428
443
|
}
|
|
429
444
|
logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
430
445
|
await this._pc.setLocalDescription(answer);
|
|
431
|
-
const
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
446
|
+
for (const options of optionsList) {
|
|
447
|
+
const { rtpParameters } = options;
|
|
448
|
+
const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
|
|
449
|
+
const transceiver = this._pc.getTransceivers()
|
|
450
|
+
.find((t) => t.mid === localId);
|
|
451
|
+
if (!transceiver) {
|
|
452
|
+
throw new Error('new RTCRtpTransceiver not found');
|
|
453
|
+
}
|
|
454
|
+
else {
|
|
455
|
+
// Store in the map.
|
|
456
|
+
this._mapMidTransceiver.set(localId, transceiver);
|
|
457
|
+
results.push({
|
|
458
|
+
localId,
|
|
459
|
+
track: transceiver.receiver.track,
|
|
460
|
+
rtpReceiver: transceiver.receiver
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
return results;
|
|
442
465
|
}
|
|
443
466
|
async stopReceiving(localId) {
|
|
444
467
|
this._assertRecvDirection();
|
package/lib/handlers/Edge11.d.ts
CHANGED
|
@@ -39,7 +39,7 @@ export declare class Edge11 extends HandlerInterface {
|
|
|
39
39
|
setRtpEncodingParameters(localId: string, params: any): Promise<void>;
|
|
40
40
|
getSenderStats(localId: string): Promise<RTCStatsReport>;
|
|
41
41
|
sendDataChannel(options: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
42
|
-
receive(
|
|
42
|
+
receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
|
|
43
43
|
stopReceiving(localId: string): Promise<void>;
|
|
44
44
|
pauseReceiving(localId: string): Promise<void>;
|
|
45
45
|
resumeReceiving(localId: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Edge11.d.ts","sourceRoot":"","sources":["../../src/handlers/Edge11.ts"],"names":[],"mappings":"AAKA,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,aAAa,EAIb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIrD,qBAAa,MAAO,SAAQ,gBAAgB;IAG3C,OAAO,CAAC,2BAA2B,CAAC,CAAmC;IAEvE,OAAO,CAAC,oBAAoB,CAAC,CAAgB;IAE7C,OAAO,CAAC,oBAAoB,CAAC,CAAiB;IAE9C,OAAO,CAAC,qBAAqB,CAAC,CAAiB;IAE/C,OAAO,CAAC,YAAY,CAAC,CAAM;IAE3B,OAAO,CAAC,aAAa,CAAC,CAAM;IAE5B,OAAO,CAAC,cAAc,CAAC,CAAM;IAE7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwC;IAEpE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0C;IAExE,OAAO,CAAC,gBAAgB,CAAK;IAE7B,OAAO,CAAC,MAAM,CAAC,CAAS;IAExB,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,cAAc;;IAUtC,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,KAAK,IAAI,IAAI;IAgCP,wBAAwB,IAAI,OAAO,CAAC,eAAe,CAAC;IAOpD,yBAAyB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAS5D,GAAG,CACF,EACC,SAAS,EAAE,wDAAwD;IACnE,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EAAE,wDAAwD;IACxE,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAAE,wDAAwD;IAC5E,sBAAsB,EAAE,wDAAwD;IAChF,uBAAuB,EACvB,EAAE,iBAAiB,GAClB,IAAI;IAqBD,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBvD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAK5C,IAAI,CAET,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,kBAAkB,GAC3D,OAAO,CAAC,iBAAiB,CAAC;IA2DvB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB3C,YAAY,CACjB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAC7C,OAAO,CAAC,IAAI,CAAC;IAoBV,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBxE,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBrE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAUxD,eAAe,CAEpB,OAAO,EAAE,6BAA6B,GACpC,OAAO,CAAC,4BAA4B,CAAC;IAKlC,OAAO,CACZ,
|
|
1
|
+
{"version":3,"file":"Edge11.d.ts","sourceRoot":"","sources":["../../src/handlers/Edge11.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/Edge11.js
CHANGED
|
@@ -14,7 +14,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
14
14
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
15
|
if (mod && mod.__esModule) return mod;
|
|
16
16
|
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
18
|
__setModuleDefault(result, mod);
|
|
19
19
|
return result;
|
|
20
20
|
};
|
|
@@ -217,7 +217,7 @@ class Edge11 extends HandlerInterface_1.HandlerInterface {
|
|
|
217
217
|
throw new Error('RTCRtpSender not found');
|
|
218
218
|
const parameters = rtpSender.getParameters();
|
|
219
219
|
parameters.encodings.forEach((encoding, idx) => {
|
|
220
|
-
parameters.encodings[idx] =
|
|
220
|
+
parameters.encodings[idx] = { ...encoding, ...params };
|
|
221
221
|
});
|
|
222
222
|
await rtpSender.setParameters(parameters);
|
|
223
223
|
}
|
|
@@ -232,28 +232,36 @@ class Edge11 extends HandlerInterface_1.HandlerInterface {
|
|
|
232
232
|
options) {
|
|
233
233
|
throw new errors_1.UnsupportedError('not implemented');
|
|
234
234
|
}
|
|
235
|
-
async receive(
|
|
236
|
-
|
|
235
|
+
async receive(optionsList) {
|
|
236
|
+
const results = [];
|
|
237
|
+
for (const options of optionsList) {
|
|
238
|
+
const { trackId, kind } = options;
|
|
239
|
+
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
240
|
+
}
|
|
237
241
|
if (!this._transportReady)
|
|
238
242
|
await this._setupTransport({ localDtlsRole: 'server' });
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
localId,
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
243
|
+
for (const options of optionsList) {
|
|
244
|
+
const { trackId, kind, rtpParameters } = options;
|
|
245
|
+
logger.debug('receive() | calling new RTCRtpReceiver()');
|
|
246
|
+
const rtpReceiver = new RTCRtpReceiver(this._dtlsTransport, kind);
|
|
247
|
+
rtpReceiver.addEventListener('error', (event) => {
|
|
248
|
+
logger.error('rtpReceiver "error" event [event:%o]', event);
|
|
249
|
+
});
|
|
250
|
+
// NOTE: Convert our standard RTCRtpParameters into those that Edge
|
|
251
|
+
// expects.
|
|
252
|
+
const edgeRtpParameters = edgeUtils.mangleRtpParameters(rtpParameters);
|
|
253
|
+
logger.debug('receive() | calling rtpReceiver.receive() [params:%o]', edgeRtpParameters);
|
|
254
|
+
await rtpReceiver.receive(edgeRtpParameters);
|
|
255
|
+
const localId = trackId;
|
|
256
|
+
// Store it.
|
|
257
|
+
this._rtpReceivers.set(localId, rtpReceiver);
|
|
258
|
+
results.push({
|
|
259
|
+
localId,
|
|
260
|
+
track: rtpReceiver.track,
|
|
261
|
+
rtpReceiver
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
return results;
|
|
257
265
|
}
|
|
258
266
|
async stopReceiving(localId) {
|
|
259
267
|
logger.debug('stopReceiving() [localId:%s]', localId);
|
|
@@ -291,6 +299,7 @@ class Edge11 extends HandlerInterface_1.HandlerInterface {
|
|
|
291
299
|
throw new errors_1.UnsupportedError('not implemented');
|
|
292
300
|
}
|
|
293
301
|
_setIceGatherer({ iceServers, iceTransportPolicy }) {
|
|
302
|
+
// @ts-ignore
|
|
294
303
|
const iceGatherer = new RTCIceGatherer({
|
|
295
304
|
iceServers: iceServers || [],
|
|
296
305
|
gatherPolicy: iceTransportPolicy || 'all'
|
|
@@ -36,7 +36,7 @@ export declare class FakeHandler extends HandlerInterface {
|
|
|
36
36
|
setRtpEncodingParameters(localId: string, params: any): Promise<void>;
|
|
37
37
|
getSenderStats(localId: string): Promise<RTCStatsReport>;
|
|
38
38
|
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
39
|
-
receive(
|
|
39
|
+
receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
|
|
40
40
|
stopReceiving(localId: string): Promise<void>;
|
|
41
41
|
pauseReceiving(localId: string): Promise<void>;
|
|
42
42
|
resumeReceiving(localId: string): Promise<void>;
|