mediasoup-client 3.6.80 → 3.6.81
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.d.ts.map +1 -1
- package/lib/Consumer.js +6 -3
- package/lib/DataConsumer.d.ts.map +1 -1
- package/lib/DataConsumer.js +14 -7
- package/lib/DataProducer.d.ts.map +1 -1
- package/lib/DataProducer.js +18 -9
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +24 -12
- package/lib/Producer.d.ts +1 -0
- package/lib/Producer.d.ts.map +1 -1
- package/lib/Producer.js +28 -14
- package/lib/handlers/Chrome111.d.ts.map +1 -1
- package/lib/handlers/Chrome111.js +33 -15
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +12 -6
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +32 -16
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +28 -14
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +35 -16
- package/lib/handlers/Edge11.d.ts.map +1 -1
- package/lib/handlers/Edge11.js +30 -15
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +16 -8
- package/lib/handlers/Firefox60.d.ts.map +1 -1
- package/lib/handlers/Firefox60.js +38 -19
- package/lib/handlers/ReactNative.d.ts.map +1 -1
- package/lib/handlers/ReactNative.js +12 -6
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts.map +1 -1
- package/lib/handlers/ReactNativeUnifiedPlan.js +35 -16
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +32 -16
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +37 -17
- package/lib/handlers/ortc/edgeUtils.d.ts.map +1 -1
- package/lib/handlers/ortc/edgeUtils.js +8 -4
- package/lib/handlers/ortc/utils.d.ts +6 -0
- package/lib/handlers/ortc/utils.d.ts.map +1 -0
- package/lib/handlers/ortc/utils.js +20 -0
- package/lib/handlers/sdp/MediaSection.d.ts.map +1 -1
- package/lib/handlers/sdp/MediaSection.js +56 -23
- package/lib/handlers/sdp/RemoteSdp.d.ts.map +1 -1
- package/lib/handlers/sdp/RemoteSdp.js +8 -4
- package/lib/handlers/sdp/commonUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/commonUtils.js +26 -13
- package/lib/handlers/sdp/plainRtpUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/plainRtpUtils.js +8 -4
- package/lib/handlers/sdp/planBUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/planBUtils.js +22 -11
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/unifiedPlanUtils.js +16 -8
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/ortc.d.ts.map +1 -1
- package/lib/ortc.js +196 -98
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +2 -1
- package/package.json +3 -3
package/lib/handlers/Chrome55.js
CHANGED
|
@@ -182,8 +182,9 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
182
182
|
logger.debug('restartIce()');
|
|
183
183
|
// Provide the remote SDP handler with new remote ICE parameters.
|
|
184
184
|
this._remoteSdp.updateIceParameters(iceParameters);
|
|
185
|
-
if (!this._transportReady)
|
|
185
|
+
if (!this._transportReady) {
|
|
186
186
|
return;
|
|
187
|
+
}
|
|
187
188
|
if (this._direction === 'send') {
|
|
188
189
|
const offer = await this._pc.createOffer({ iceRestart: true });
|
|
189
190
|
logger.debug('restartIce() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
@@ -253,8 +254,9 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
253
254
|
// Complete encodings with given values.
|
|
254
255
|
if (encodings) {
|
|
255
256
|
for (let idx = 0; idx < sendingRtpParameters.encodings.length; ++idx) {
|
|
256
|
-
if (encodings[idx])
|
|
257
|
+
if (encodings[idx]) {
|
|
257
258
|
Object.assign(sendingRtpParameters.encodings[idx], encodings[idx]);
|
|
259
|
+
}
|
|
258
260
|
}
|
|
259
261
|
}
|
|
260
262
|
// If VP8 and there is effective simulcast, add scalabilityMode to each
|
|
@@ -287,8 +289,9 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
287
289
|
this.assertSendDirection();
|
|
288
290
|
logger.debug('stopSending() [localId:%s]', localId);
|
|
289
291
|
const track = this._mapSendLocalIdTrack.get(localId);
|
|
290
|
-
if (!track)
|
|
292
|
+
if (!track) {
|
|
291
293
|
throw new Error('track not found');
|
|
294
|
+
}
|
|
292
295
|
this._mapSendLocalIdTrack.delete(localId);
|
|
293
296
|
this._sendStream.removeTrack(track);
|
|
294
297
|
this._pc.addStream(this._sendStream);
|
|
@@ -306,8 +309,9 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
306
309
|
}
|
|
307
310
|
throw error;
|
|
308
311
|
}
|
|
309
|
-
if (this._pc.signalingState === 'stable')
|
|
312
|
+
if (this._pc.signalingState === 'stable') {
|
|
310
313
|
return;
|
|
314
|
+
}
|
|
311
315
|
const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
|
|
312
316
|
logger.debug('stopSending() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
313
317
|
await this._pc.setRemoteDescription(answer);
|
|
@@ -433,8 +437,9 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
433
437
|
const stream = this._pc.getRemoteStreams()
|
|
434
438
|
.find((s) => s.id === streamId);
|
|
435
439
|
const track = stream.getTrackById(localId);
|
|
436
|
-
if (!track)
|
|
440
|
+
if (!track) {
|
|
437
441
|
throw new Error('remote track not found');
|
|
442
|
+
}
|
|
438
443
|
// Insert into the map.
|
|
439
444
|
this._mapRecvLocalIdInfo.set(localId, { mid, rtpParameters });
|
|
440
445
|
results.push({ localId, track });
|
|
@@ -508,8 +513,9 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
508
513
|
return { dataChannel };
|
|
509
514
|
}
|
|
510
515
|
async setupTransport({ localDtlsRole, localSdpObject }) {
|
|
511
|
-
if (!localSdpObject)
|
|
516
|
+
if (!localSdpObject) {
|
|
512
517
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
518
|
+
}
|
|
513
519
|
// Get our local DTLS parameters.
|
|
514
520
|
const dtlsParameters = sdpCommonUtils.extractDtlsParameters({ sdpObject: localSdpObject });
|
|
515
521
|
// Set our DTLS role.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome67.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome67.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;AAE5B,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,WAAW,CAAqB;IAEjD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAC9B;IAEX,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAQrB;IAEf,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;IAcP,wBAAwB,IAAI,OAAO,CAAC,eAAe,CAAC;IAuCpD,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;IAkFD,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"Chrome67.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome67.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/Chrome67.js
CHANGED
|
@@ -181,8 +181,9 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
181
181
|
logger.debug('restartIce()');
|
|
182
182
|
// Provide the remote SDP handler with new remote ICE parameters.
|
|
183
183
|
this._remoteSdp.updateIceParameters(iceParameters);
|
|
184
|
-
if (!this._transportReady)
|
|
184
|
+
if (!this._transportReady) {
|
|
185
185
|
return;
|
|
186
|
+
}
|
|
186
187
|
if (this._direction === 'send') {
|
|
187
188
|
const offer = await this._pc.createOffer({ iceRestart: true });
|
|
188
189
|
logger.debug('restartIce() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
@@ -253,8 +254,9 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
253
254
|
// Complete encodings with given values.
|
|
254
255
|
if (encodings) {
|
|
255
256
|
for (let idx = 0; idx < sendingRtpParameters.encodings.length; ++idx) {
|
|
256
|
-
if (encodings[idx])
|
|
257
|
+
if (encodings[idx]) {
|
|
257
258
|
Object.assign(sendingRtpParameters.encodings[idx], encodings[idx]);
|
|
259
|
+
}
|
|
258
260
|
}
|
|
259
261
|
}
|
|
260
262
|
// If VP8 and there is effective simulcast, add scalabilityMode to each
|
|
@@ -290,11 +292,13 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
290
292
|
this.assertSendDirection();
|
|
291
293
|
logger.debug('stopSending() [localId:%s]', localId);
|
|
292
294
|
const rtpSender = this._mapSendLocalIdRtpSender.get(localId);
|
|
293
|
-
if (!rtpSender)
|
|
295
|
+
if (!rtpSender) {
|
|
294
296
|
throw new Error('associated RTCRtpSender not found');
|
|
297
|
+
}
|
|
295
298
|
this._pc.removeTrack(rtpSender);
|
|
296
|
-
if (rtpSender.track)
|
|
299
|
+
if (rtpSender.track) {
|
|
297
300
|
this._sendStream.removeTrack(rtpSender.track);
|
|
301
|
+
}
|
|
298
302
|
this._mapSendLocalIdRtpSender.delete(localId);
|
|
299
303
|
const offer = await this._pc.createOffer();
|
|
300
304
|
logger.debug('stopSending() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
@@ -310,8 +314,9 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
310
314
|
}
|
|
311
315
|
throw error;
|
|
312
316
|
}
|
|
313
|
-
if (this._pc.signalingState === 'stable')
|
|
317
|
+
if (this._pc.signalingState === 'stable') {
|
|
314
318
|
return;
|
|
319
|
+
}
|
|
315
320
|
const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
|
|
316
321
|
logger.debug('stopSending() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
317
322
|
await this._pc.setRemoteDescription(answer);
|
|
@@ -333,29 +338,35 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
333
338
|
logger.debug('replaceTrack() [localId:%s, no track]', localId);
|
|
334
339
|
}
|
|
335
340
|
const rtpSender = this._mapSendLocalIdRtpSender.get(localId);
|
|
336
|
-
if (!rtpSender)
|
|
341
|
+
if (!rtpSender) {
|
|
337
342
|
throw new Error('associated RTCRtpSender not found');
|
|
343
|
+
}
|
|
338
344
|
const oldTrack = rtpSender.track;
|
|
339
345
|
await rtpSender.replaceTrack(track);
|
|
340
346
|
// Remove the old track from the local stream.
|
|
341
|
-
if (oldTrack)
|
|
347
|
+
if (oldTrack) {
|
|
342
348
|
this._sendStream.removeTrack(oldTrack);
|
|
349
|
+
}
|
|
343
350
|
// Add the new track to the local stream.
|
|
344
|
-
if (track)
|
|
351
|
+
if (track) {
|
|
345
352
|
this._sendStream.addTrack(track);
|
|
353
|
+
}
|
|
346
354
|
}
|
|
347
355
|
async setMaxSpatialLayer(localId, spatialLayer) {
|
|
348
356
|
this.assertSendDirection();
|
|
349
357
|
logger.debug('setMaxSpatialLayer() [localId:%s, spatialLayer:%s]', localId, spatialLayer);
|
|
350
358
|
const rtpSender = this._mapSendLocalIdRtpSender.get(localId);
|
|
351
|
-
if (!rtpSender)
|
|
359
|
+
if (!rtpSender) {
|
|
352
360
|
throw new Error('associated RTCRtpSender not found');
|
|
361
|
+
}
|
|
353
362
|
const parameters = rtpSender.getParameters();
|
|
354
363
|
parameters.encodings.forEach((encoding, idx) => {
|
|
355
|
-
if (idx <= spatialLayer)
|
|
364
|
+
if (idx <= spatialLayer) {
|
|
356
365
|
encoding.active = true;
|
|
357
|
-
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
358
368
|
encoding.active = false;
|
|
369
|
+
}
|
|
359
370
|
});
|
|
360
371
|
await rtpSender.setParameters(parameters);
|
|
361
372
|
}
|
|
@@ -363,8 +374,9 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
363
374
|
this.assertSendDirection();
|
|
364
375
|
logger.debug('setRtpEncodingParameters() [localId:%s, params:%o]', localId, params);
|
|
365
376
|
const rtpSender = this._mapSendLocalIdRtpSender.get(localId);
|
|
366
|
-
if (!rtpSender)
|
|
377
|
+
if (!rtpSender) {
|
|
367
378
|
throw new Error('associated RTCRtpSender not found');
|
|
379
|
+
}
|
|
368
380
|
const parameters = rtpSender.getParameters();
|
|
369
381
|
parameters.encodings.forEach((encoding, idx) => {
|
|
370
382
|
parameters.encodings[idx] = { ...encoding, ...params };
|
|
@@ -374,8 +386,9 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
374
386
|
async getSenderStats(localId) {
|
|
375
387
|
this.assertSendDirection();
|
|
376
388
|
const rtpSender = this._mapSendLocalIdRtpSender.get(localId);
|
|
377
|
-
if (!rtpSender)
|
|
389
|
+
if (!rtpSender) {
|
|
378
390
|
throw new Error('associated RTCRtpSender not found');
|
|
391
|
+
}
|
|
379
392
|
return rtpSender.getStats();
|
|
380
393
|
}
|
|
381
394
|
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
@@ -472,8 +485,9 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
472
485
|
const mid = kind;
|
|
473
486
|
const rtpReceiver = this._pc.getReceivers()
|
|
474
487
|
.find((r) => r.track && r.track.id === localId);
|
|
475
|
-
if (!rtpReceiver)
|
|
488
|
+
if (!rtpReceiver) {
|
|
476
489
|
throw new Error('new RTCRtpReceiver not');
|
|
490
|
+
}
|
|
477
491
|
// Insert into the map.
|
|
478
492
|
this._mapRecvLocalIdInfo.set(localId, { mid, rtpParameters, rtpReceiver });
|
|
479
493
|
results.push({
|
|
@@ -513,8 +527,9 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
513
527
|
async getReceiverStats(localId) {
|
|
514
528
|
this.assertRecvDirection();
|
|
515
529
|
const { rtpReceiver } = this._mapRecvLocalIdInfo.get(localId) || {};
|
|
516
|
-
if (!rtpReceiver)
|
|
530
|
+
if (!rtpReceiver) {
|
|
517
531
|
throw new Error('associated RTCRtpReceiver not found');
|
|
532
|
+
}
|
|
518
533
|
return rtpReceiver.getStats();
|
|
519
534
|
}
|
|
520
535
|
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
@@ -554,8 +569,9 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
554
569
|
return { dataChannel };
|
|
555
570
|
}
|
|
556
571
|
async setupTransport({ localDtlsRole, localSdpObject }) {
|
|
557
|
-
if (!localSdpObject)
|
|
572
|
+
if (!localSdpObject) {
|
|
558
573
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
574
|
+
}
|
|
559
575
|
// Get our local DTLS parameters.
|
|
560
576
|
const dtlsParameters = sdpCommonUtils.extractDtlsParameters({ sdpObject: localSdpObject });
|
|
561
577
|
// Set our DTLS role.
|
|
@@ -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;IAcP,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;IAiFD,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
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
|
@@ -175,8 +175,9 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
175
175
|
logger.debug('restartIce()');
|
|
176
176
|
// Provide the remote SDP handler with new remote ICE parameters.
|
|
177
177
|
this._remoteSdp.updateIceParameters(iceParameters);
|
|
178
|
-
if (!this._transportReady)
|
|
178
|
+
if (!this._transportReady) {
|
|
179
179
|
return;
|
|
180
|
+
}
|
|
180
181
|
if (this._direction === 'send') {
|
|
181
182
|
const offer = await this._pc.createOffer({ iceRestart: true });
|
|
182
183
|
logger.debug('restartIce() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
@@ -257,8 +258,9 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
257
258
|
const encoding = parameters.encodings[idx];
|
|
258
259
|
const desiredEncoding = encodings[idx];
|
|
259
260
|
// Should not happen but just in case.
|
|
260
|
-
if (!desiredEncoding)
|
|
261
|
+
if (!desiredEncoding) {
|
|
261
262
|
break;
|
|
263
|
+
}
|
|
262
264
|
parameters.encodings[idx] = Object.assign(encoding, desiredEncoding);
|
|
263
265
|
}
|
|
264
266
|
await transceiver.sender.setParameters(parameters);
|
|
@@ -278,8 +280,9 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
278
280
|
// Complete encodings with given values.
|
|
279
281
|
if (encodings) {
|
|
280
282
|
for (let idx = 0; idx < sendingRtpParameters.encodings.length; ++idx) {
|
|
281
|
-
if (encodings[idx])
|
|
283
|
+
if (encodings[idx]) {
|
|
282
284
|
Object.assign(sendingRtpParameters.encodings[idx], encodings[idx]);
|
|
285
|
+
}
|
|
283
286
|
}
|
|
284
287
|
}
|
|
285
288
|
// Hack for VP9 SVC.
|
|
@@ -317,8 +320,9 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
317
320
|
this.assertSendDirection();
|
|
318
321
|
logger.debug('stopSending() [localId:%s]', localId);
|
|
319
322
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
320
|
-
if (!transceiver)
|
|
323
|
+
if (!transceiver) {
|
|
321
324
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
325
|
+
}
|
|
322
326
|
transceiver.sender.replaceTrack(null);
|
|
323
327
|
this._pc.removeTrack(transceiver.sender);
|
|
324
328
|
const mediaSectionClosed = this._remoteSdp.closeMediaSection(transceiver.mid);
|
|
@@ -353,22 +357,26 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
353
357
|
logger.debug('replaceTrack() [localId:%s, no track]', localId);
|
|
354
358
|
}
|
|
355
359
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
356
|
-
if (!transceiver)
|
|
360
|
+
if (!transceiver) {
|
|
357
361
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
362
|
+
}
|
|
358
363
|
await transceiver.sender.replaceTrack(track);
|
|
359
364
|
}
|
|
360
365
|
async setMaxSpatialLayer(localId, spatialLayer) {
|
|
361
366
|
this.assertSendDirection();
|
|
362
367
|
logger.debug('setMaxSpatialLayer() [localId:%s, spatialLayer:%s]', localId, spatialLayer);
|
|
363
368
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
364
|
-
if (!transceiver)
|
|
369
|
+
if (!transceiver) {
|
|
365
370
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
371
|
+
}
|
|
366
372
|
const parameters = transceiver.sender.getParameters();
|
|
367
373
|
parameters.encodings.forEach((encoding, idx) => {
|
|
368
|
-
if (idx <= spatialLayer)
|
|
374
|
+
if (idx <= spatialLayer) {
|
|
369
375
|
encoding.active = true;
|
|
370
|
-
|
|
376
|
+
}
|
|
377
|
+
else {
|
|
371
378
|
encoding.active = false;
|
|
379
|
+
}
|
|
372
380
|
});
|
|
373
381
|
await transceiver.sender.setParameters(parameters);
|
|
374
382
|
this._remoteSdp.muxMediaSectionSimulcast(localId, parameters.encodings);
|
|
@@ -383,8 +391,9 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
383
391
|
this.assertSendDirection();
|
|
384
392
|
logger.debug('setRtpEncodingParameters() [localId:%s, params:%o]', localId, params);
|
|
385
393
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
386
|
-
if (!transceiver)
|
|
394
|
+
if (!transceiver) {
|
|
387
395
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
396
|
+
}
|
|
388
397
|
const parameters = transceiver.sender.getParameters();
|
|
389
398
|
parameters.encodings.forEach((encoding, idx) => {
|
|
390
399
|
parameters.encodings[idx] = { ...encoding, ...params };
|
|
@@ -401,8 +410,9 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
401
410
|
async getSenderStats(localId) {
|
|
402
411
|
this.assertSendDirection();
|
|
403
412
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
404
|
-
if (!transceiver)
|
|
413
|
+
if (!transceiver) {
|
|
405
414
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
415
|
+
}
|
|
406
416
|
return transceiver.sender.getStats();
|
|
407
417
|
}
|
|
408
418
|
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
@@ -500,8 +510,9 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
500
510
|
const localId = mapLocalId.get(trackId);
|
|
501
511
|
const transceiver = this._pc.getTransceivers()
|
|
502
512
|
.find((t) => t.mid === localId);
|
|
503
|
-
if (!transceiver)
|
|
513
|
+
if (!transceiver) {
|
|
504
514
|
throw new Error('new RTCRtpTransceiver not found');
|
|
515
|
+
}
|
|
505
516
|
// Store in the map.
|
|
506
517
|
this._mapMidTransceiver.set(localId, transceiver);
|
|
507
518
|
results.push({
|
|
@@ -517,8 +528,9 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
517
528
|
for (const localId of localIds) {
|
|
518
529
|
logger.debug('stopReceiving() [localId:%s]', localId);
|
|
519
530
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
520
|
-
if (!transceiver)
|
|
531
|
+
if (!transceiver) {
|
|
521
532
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
533
|
+
}
|
|
522
534
|
this._remoteSdp.closeMediaSection(transceiver.mid);
|
|
523
535
|
}
|
|
524
536
|
const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
|
|
@@ -544,8 +556,9 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
544
556
|
async getReceiverStats(localId) {
|
|
545
557
|
this.assertRecvDirection();
|
|
546
558
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
547
|
-
if (!transceiver)
|
|
559
|
+
if (!transceiver) {
|
|
548
560
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
561
|
+
}
|
|
549
562
|
return transceiver.receiver.getStats();
|
|
550
563
|
}
|
|
551
564
|
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
@@ -585,8 +598,9 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
585
598
|
return { dataChannel };
|
|
586
599
|
}
|
|
587
600
|
async setupTransport({ localDtlsRole, localSdpObject }) {
|
|
588
|
-
if (!localSdpObject)
|
|
601
|
+
if (!localSdpObject) {
|
|
589
602
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
603
|
+
}
|
|
590
604
|
// Get our local DTLS parameters.
|
|
591
605
|
const dtlsParameters = sdpCommonUtils.extractDtlsParameters({ sdpObject: localSdpObject });
|
|
592
606
|
// Set our DTLS role.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome74.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome74.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Chrome74.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome74.ts"],"names":[],"mappings":"AAOA,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;IAcP,wBAAwB,IAAI,OAAO,CAAC,eAAe,CAAC;IAyCpD,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;IAiFD,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAkDvD,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;IAgLvB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiD3C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC5C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC7C,YAAY,CACjB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAC7C,OAAO,CAAC,IAAI,CAAC;IAwBV,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkDxE,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CrE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAcxD,eAAe,CACpB,EACC,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,KAAK,EACL,QAAQ,EACR,EAAE,6BAA6B,GAC9B,OAAO,CAAC,4BAA4B,CAAC;IAsElC,OAAO,CACZ,WAAW,EAAE,qBAAqB,EAAE,GACjC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAkG7B,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwChD,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCjD,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoClD,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAc1D,kBAAkB,CACvB,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,gCAAgC,GACzE,OAAO,CAAC,+BAA+B,CAAC;YAgE7B,cAAc;IAyC5B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,mBAAmB;CAQ3B"}
|
package/lib/handlers/Chrome74.js
CHANGED
|
@@ -30,6 +30,7 @@ const utils = __importStar(require("../utils"));
|
|
|
30
30
|
const ortc = __importStar(require("../ortc"));
|
|
31
31
|
const sdpCommonUtils = __importStar(require("./sdp/commonUtils"));
|
|
32
32
|
const sdpUnifiedPlanUtils = __importStar(require("./sdp/unifiedPlanUtils"));
|
|
33
|
+
const ortcUtils = __importStar(require("./ortc/utils"));
|
|
33
34
|
const HandlerInterface_1 = require("./HandlerInterface");
|
|
34
35
|
const RemoteSdp_1 = require("./sdp/RemoteSdp");
|
|
35
36
|
const scalabilityModes_1 = require("../scalabilityModes");
|
|
@@ -88,6 +89,8 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
88
89
|
catch (error) { }
|
|
89
90
|
const sdpObject = sdpTransform.parse(offer.sdp);
|
|
90
91
|
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({ sdpObject });
|
|
92
|
+
// libwebrtc supports NACK for OPUS but doesn't announce it.
|
|
93
|
+
ortcUtils.addNackSuppportForOpus(nativeRtpCapabilities);
|
|
91
94
|
return nativeRtpCapabilities;
|
|
92
95
|
}
|
|
93
96
|
catch (error) {
|
|
@@ -175,8 +178,9 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
175
178
|
logger.debug('restartIce()');
|
|
176
179
|
// Provide the remote SDP handler with new remote ICE parameters.
|
|
177
180
|
this._remoteSdp.updateIceParameters(iceParameters);
|
|
178
|
-
if (!this._transportReady)
|
|
181
|
+
if (!this._transportReady) {
|
|
179
182
|
return;
|
|
183
|
+
}
|
|
180
184
|
if (this._direction === 'send') {
|
|
181
185
|
const offer = await this._pc.createOffer({ iceRestart: true });
|
|
182
186
|
logger.debug('restartIce() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
@@ -268,8 +272,9 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
268
272
|
let newEncodings = sdpUnifiedPlanUtils.getRtpEncodings({ offerMediaObject });
|
|
269
273
|
Object.assign(newEncodings[0], encodings[0]);
|
|
270
274
|
// Hack for VP9 SVC.
|
|
271
|
-
if (hackVp9Svc)
|
|
275
|
+
if (hackVp9Svc) {
|
|
272
276
|
newEncodings = [newEncodings[0]];
|
|
277
|
+
}
|
|
273
278
|
sendingRtpParameters.encodings = newEncodings;
|
|
274
279
|
}
|
|
275
280
|
// Otherwise if more than 1 encoding are given use them verbatim.
|
|
@@ -313,8 +318,9 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
313
318
|
this.assertSendDirection();
|
|
314
319
|
logger.debug('stopSending() [localId:%s]', localId);
|
|
315
320
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
316
|
-
if (!transceiver)
|
|
321
|
+
if (!transceiver) {
|
|
317
322
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
323
|
+
}
|
|
318
324
|
transceiver.sender.replaceTrack(null);
|
|
319
325
|
this._pc.removeTrack(transceiver.sender);
|
|
320
326
|
const mediaSectionClosed = this._remoteSdp.closeMediaSection(transceiver.mid);
|
|
@@ -336,8 +342,9 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
336
342
|
this.assertSendDirection();
|
|
337
343
|
logger.debug('pauseSending() [localId:%s]', localId);
|
|
338
344
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
339
|
-
if (!transceiver)
|
|
345
|
+
if (!transceiver) {
|
|
340
346
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
347
|
+
}
|
|
341
348
|
transceiver.direction = 'inactive';
|
|
342
349
|
this._remoteSdp.pauseMediaSection(localId);
|
|
343
350
|
const offer = await this._pc.createOffer();
|
|
@@ -352,8 +359,9 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
352
359
|
logger.debug('resumeSending() [localId:%s]', localId);
|
|
353
360
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
354
361
|
this._remoteSdp.resumeSendingMediaSection(localId);
|
|
355
|
-
if (!transceiver)
|
|
362
|
+
if (!transceiver) {
|
|
356
363
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
364
|
+
}
|
|
357
365
|
transceiver.direction = 'sendonly';
|
|
358
366
|
const offer = await this._pc.createOffer();
|
|
359
367
|
logger.debug('resumeSending() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
@@ -371,22 +379,26 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
371
379
|
logger.debug('replaceTrack() [localId:%s, no track]', localId);
|
|
372
380
|
}
|
|
373
381
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
374
|
-
if (!transceiver)
|
|
382
|
+
if (!transceiver) {
|
|
375
383
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
384
|
+
}
|
|
376
385
|
await transceiver.sender.replaceTrack(track);
|
|
377
386
|
}
|
|
378
387
|
async setMaxSpatialLayer(localId, spatialLayer) {
|
|
379
388
|
this.assertSendDirection();
|
|
380
389
|
logger.debug('setMaxSpatialLayer() [localId:%s, spatialLayer:%s]', localId, spatialLayer);
|
|
381
390
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
382
|
-
if (!transceiver)
|
|
391
|
+
if (!transceiver) {
|
|
383
392
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
393
|
+
}
|
|
384
394
|
const parameters = transceiver.sender.getParameters();
|
|
385
395
|
parameters.encodings.forEach((encoding, idx) => {
|
|
386
|
-
if (idx <= spatialLayer)
|
|
396
|
+
if (idx <= spatialLayer) {
|
|
387
397
|
encoding.active = true;
|
|
388
|
-
|
|
398
|
+
}
|
|
399
|
+
else {
|
|
389
400
|
encoding.active = false;
|
|
401
|
+
}
|
|
390
402
|
});
|
|
391
403
|
await transceiver.sender.setParameters(parameters);
|
|
392
404
|
this._remoteSdp.muxMediaSectionSimulcast(localId, parameters.encodings);
|
|
@@ -401,8 +413,9 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
401
413
|
this.assertSendDirection();
|
|
402
414
|
logger.debug('setRtpEncodingParameters() [localId:%s, params:%o]', localId, params);
|
|
403
415
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
404
|
-
if (!transceiver)
|
|
416
|
+
if (!transceiver) {
|
|
405
417
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
418
|
+
}
|
|
406
419
|
const parameters = transceiver.sender.getParameters();
|
|
407
420
|
parameters.encodings.forEach((encoding, idx) => {
|
|
408
421
|
parameters.encodings[idx] = { ...encoding, ...params };
|
|
@@ -419,8 +432,9 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
419
432
|
async getSenderStats(localId) {
|
|
420
433
|
this.assertSendDirection();
|
|
421
434
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
422
|
-
if (!transceiver)
|
|
435
|
+
if (!transceiver) {
|
|
423
436
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
437
|
+
}
|
|
424
438
|
return transceiver.sender.getStats();
|
|
425
439
|
}
|
|
426
440
|
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
@@ -537,8 +551,9 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
537
551
|
for (const localId of localIds) {
|
|
538
552
|
logger.debug('stopReceiving() [localId:%s]', localId);
|
|
539
553
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
540
|
-
if (!transceiver)
|
|
554
|
+
if (!transceiver) {
|
|
541
555
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
556
|
+
}
|
|
542
557
|
this._remoteSdp.closeMediaSection(transceiver.mid);
|
|
543
558
|
}
|
|
544
559
|
const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
|
|
@@ -556,8 +571,9 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
556
571
|
for (const localId of localIds) {
|
|
557
572
|
logger.debug('pauseReceiving() [localId:%s]', localId);
|
|
558
573
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
559
|
-
if (!transceiver)
|
|
574
|
+
if (!transceiver) {
|
|
560
575
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
576
|
+
}
|
|
561
577
|
transceiver.direction = 'inactive';
|
|
562
578
|
this._remoteSdp.pauseMediaSection(localId);
|
|
563
579
|
}
|
|
@@ -573,8 +589,9 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
573
589
|
for (const localId of localIds) {
|
|
574
590
|
logger.debug('resumeReceiving() [localId:%s]', localId);
|
|
575
591
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
576
|
-
if (!transceiver)
|
|
592
|
+
if (!transceiver) {
|
|
577
593
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
594
|
+
}
|
|
578
595
|
transceiver.direction = 'recvonly';
|
|
579
596
|
this._remoteSdp.resumeReceivingMediaSection(localId);
|
|
580
597
|
}
|
|
@@ -588,8 +605,9 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
588
605
|
async getReceiverStats(localId) {
|
|
589
606
|
this.assertRecvDirection();
|
|
590
607
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
591
|
-
if (!transceiver)
|
|
608
|
+
if (!transceiver) {
|
|
592
609
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
610
|
+
}
|
|
593
611
|
return transceiver.receiver.getStats();
|
|
594
612
|
}
|
|
595
613
|
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
@@ -628,8 +646,9 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
628
646
|
return { dataChannel };
|
|
629
647
|
}
|
|
630
648
|
async setupTransport({ localDtlsRole, localSdpObject }) {
|
|
631
|
-
if (!localSdpObject)
|
|
649
|
+
if (!localSdpObject) {
|
|
632
650
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
651
|
+
}
|
|
633
652
|
// Get our local DTLS parameters.
|
|
634
653
|
const dtlsParameters = sdpCommonUtils.extractDtlsParameters({ sdpObject: localSdpObject });
|
|
635
654
|
// Set our DTLS role.
|
|
@@ -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;IAkCP,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;
|
|
1
|
+
{"version":3,"file":"Edge11.d.ts","sourceRoot":"","sources":["../../src/handlers/Edge11.ts"],"names":[],"mappings":"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"}
|