mediasoup-client 3.6.93 → 3.6.95
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/Transport.js +7 -7
- package/lib/handlers/Chrome111.d.ts +2 -0
- package/lib/handlers/Chrome111.d.ts.map +1 -1
- package/lib/handlers/Chrome111.js +35 -0
- package/lib/handlers/Chrome74.d.ts +2 -0
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +34 -0
- package/lib/handlers/FakeHandler.d.ts +2 -0
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +35 -2
- package/lib/handlers/Firefox60.d.ts +2 -0
- package/lib/handlers/Firefox60.d.ts.map +1 -1
- package/lib/handlers/Firefox60.js +34 -0
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts +2 -0
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts.map +1 -1
- package/lib/handlers/ReactNativeUnifiedPlan.js +35 -0
- package/lib/handlers/Safari12.d.ts +2 -0
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +35 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +1 -0
- package/npm-scripts.mjs +1 -2
- package/package.json +9 -9
package/lib/Transport.js
CHANGED
|
@@ -219,7 +219,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
219
219
|
throw new TypeError('missing iceParameters');
|
|
220
220
|
}
|
|
221
221
|
// Enqueue command.
|
|
222
|
-
return this._awaitQueue.push(async () => this._handler.restartIce(iceParameters), 'transport.restartIce()');
|
|
222
|
+
return this._awaitQueue.push(async () => await this._handler.restartIce(iceParameters), 'transport.restartIce()');
|
|
223
223
|
}
|
|
224
224
|
/**
|
|
225
225
|
* Update ICE servers.
|
|
@@ -715,31 +715,31 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
715
715
|
if (this._closed) {
|
|
716
716
|
return;
|
|
717
717
|
}
|
|
718
|
-
this._awaitQueue.push(async () => this._handler.stopSending(producer.localId), 'producer @close event')
|
|
718
|
+
this._awaitQueue.push(async () => await this._handler.stopSending(producer.localId), 'producer @close event')
|
|
719
719
|
.catch((error) => logger.warn('producer.close() failed:%o', error));
|
|
720
720
|
});
|
|
721
721
|
producer.on('@pause', (callback, errback) => {
|
|
722
|
-
this._awaitQueue.push(async () => this._handler.pauseSending(producer.localId), 'producer @pause event')
|
|
722
|
+
this._awaitQueue.push(async () => await this._handler.pauseSending(producer.localId), 'producer @pause event')
|
|
723
723
|
.then(callback)
|
|
724
724
|
.catch(errback);
|
|
725
725
|
});
|
|
726
726
|
producer.on('@resume', (callback, errback) => {
|
|
727
|
-
this._awaitQueue.push(async () => this._handler.resumeSending(producer.localId), 'producer @resume event')
|
|
727
|
+
this._awaitQueue.push(async () => await this._handler.resumeSending(producer.localId), 'producer @resume event')
|
|
728
728
|
.then(callback)
|
|
729
729
|
.catch(errback);
|
|
730
730
|
});
|
|
731
731
|
producer.on('@replacetrack', (track, callback, errback) => {
|
|
732
|
-
this._awaitQueue.push(async () => this._handler.replaceTrack(producer.localId, track), 'producer @replacetrack event')
|
|
732
|
+
this._awaitQueue.push(async () => await this._handler.replaceTrack(producer.localId, track), 'producer @replacetrack event')
|
|
733
733
|
.then(callback)
|
|
734
734
|
.catch(errback);
|
|
735
735
|
});
|
|
736
736
|
producer.on('@setmaxspatiallayer', (spatialLayer, callback, errback) => {
|
|
737
|
-
this._awaitQueue.push(async () => (this._handler.setMaxSpatialLayer(producer.localId, spatialLayer)), 'producer @setmaxspatiallayer event')
|
|
737
|
+
this._awaitQueue.push(async () => (await this._handler.setMaxSpatialLayer(producer.localId, spatialLayer)), 'producer @setmaxspatiallayer event')
|
|
738
738
|
.then(callback)
|
|
739
739
|
.catch(errback);
|
|
740
740
|
});
|
|
741
741
|
producer.on('@setrtpencodingparameters', (params, callback, errback) => {
|
|
742
|
-
this._awaitQueue.push(async () => (this._handler.setRtpEncodingParameters(producer.localId, params)), 'producer @setrtpencodingparameters event')
|
|
742
|
+
this._awaitQueue.push(async () => (await this._handler.setRtpEncodingParameters(producer.localId, params)), 'producer @setrtpencodingparameters event')
|
|
743
743
|
.then(callback)
|
|
744
744
|
.catch(errback);
|
|
745
745
|
});
|
|
@@ -3,6 +3,7 @@ import { IceParameters } from '../Transport';
|
|
|
3
3
|
import { RtpCapabilities } from '../RtpParameters';
|
|
4
4
|
import { SctpCapabilities } from '../SctpParameters';
|
|
5
5
|
export declare class Chrome111 extends HandlerInterface {
|
|
6
|
+
private _closed;
|
|
6
7
|
private _direction?;
|
|
7
8
|
private _remoteSdp?;
|
|
8
9
|
private _sendingRtpParametersByKind?;
|
|
@@ -43,6 +44,7 @@ export declare class Chrome111 extends HandlerInterface {
|
|
|
43
44
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
44
45
|
receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
45
46
|
private setupTransport;
|
|
47
|
+
private assertNotClosed;
|
|
46
48
|
private assertSendDirection;
|
|
47
49
|
private assertRecvDirection;
|
|
48
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome111.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome111.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Chrome111.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome111.ts"],"names":[],"mappings":"AAQA,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,SAAU,SAAQ,gBAAgB;IAG9C,OAAO,CAAC,OAAO,CAAS;IAExB,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;IAqBP,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;IAmFD,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAa3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDvD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAO5C,IAAI,CACT,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,kBAAkB,GAC3D,OAAO,CAAC,iBAAiB,CAAC;IAmJvB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsD3C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC5C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmC7C,YAAY,CACjB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAC7C,OAAO,CAAC,IAAI,CAAC;IAyBV,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmDxE,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA4CrE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAexD,eAAe,CACpB,EACC,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,KAAK,EACL,QAAQ,EACR,EAAE,6BAA6B,GAC9B,OAAO,CAAC,4BAA4B,CAAC;IAuElC,OAAO,CACZ,WAAW,EAAE,qBAAqB,EAAE,GACjC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAmG7B,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6ChD,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCjD,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqClD,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAe1D,kBAAkB,CACvB,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,gCAAgC,GACzE,OAAO,CAAC,+BAA+B,CAAC;YAiE7B,cAAc;IAyC5B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,mBAAmB;CAQ3B"}
|
|
@@ -31,6 +31,7 @@ const ortc = __importStar(require("../ortc"));
|
|
|
31
31
|
const sdpCommonUtils = __importStar(require("./sdp/commonUtils"));
|
|
32
32
|
const sdpUnifiedPlanUtils = __importStar(require("./sdp/unifiedPlanUtils"));
|
|
33
33
|
const ortcUtils = __importStar(require("./ortc/utils"));
|
|
34
|
+
const errors_1 = require("../errors");
|
|
34
35
|
const HandlerInterface_1 = require("./HandlerInterface");
|
|
35
36
|
const RemoteSdp_1 = require("./sdp/RemoteSdp");
|
|
36
37
|
const scalabilityModes_1 = require("../scalabilityModes");
|
|
@@ -45,6 +46,8 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
45
46
|
}
|
|
46
47
|
constructor() {
|
|
47
48
|
super();
|
|
49
|
+
// Closed flag.
|
|
50
|
+
this._closed = false;
|
|
48
51
|
// Map of RTCTransceivers indexed by MID.
|
|
49
52
|
this._mapMidTransceiver = new Map();
|
|
50
53
|
// Local stream for sending.
|
|
@@ -61,6 +64,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
61
64
|
}
|
|
62
65
|
close() {
|
|
63
66
|
logger.debug('close()');
|
|
67
|
+
if (this._closed) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
this._closed = true;
|
|
64
71
|
// Close RTCPeerConnection.
|
|
65
72
|
if (this._pc) {
|
|
66
73
|
try {
|
|
@@ -108,6 +115,7 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
108
115
|
};
|
|
109
116
|
}
|
|
110
117
|
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities }) {
|
|
118
|
+
this.assertNotClosed();
|
|
111
119
|
logger.debug('run()');
|
|
112
120
|
this._direction = direction;
|
|
113
121
|
this._remoteSdp = new RemoteSdp_1.RemoteSdp({
|
|
@@ -169,12 +177,14 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
169
177
|
}
|
|
170
178
|
}
|
|
171
179
|
async updateIceServers(iceServers) {
|
|
180
|
+
this.assertNotClosed();
|
|
172
181
|
logger.debug('updateIceServers()');
|
|
173
182
|
const configuration = this._pc.getConfiguration();
|
|
174
183
|
configuration.iceServers = iceServers;
|
|
175
184
|
this._pc.setConfiguration(configuration);
|
|
176
185
|
}
|
|
177
186
|
async restartIce(iceParameters) {
|
|
187
|
+
this.assertNotClosed();
|
|
178
188
|
logger.debug('restartIce()');
|
|
179
189
|
// Provide the remote SDP handler with new remote ICE parameters.
|
|
180
190
|
this._remoteSdp.updateIceParameters(iceParameters);
|
|
@@ -199,9 +209,11 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
199
209
|
}
|
|
200
210
|
}
|
|
201
211
|
async getTransportStats() {
|
|
212
|
+
this.assertNotClosed();
|
|
202
213
|
return this._pc.getStats();
|
|
203
214
|
}
|
|
204
215
|
async send({ track, encodings, codecOptions, codec }) {
|
|
216
|
+
this.assertNotClosed();
|
|
205
217
|
this.assertSendDirection();
|
|
206
218
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
207
219
|
if (encodings && encodings.length > 1) {
|
|
@@ -299,6 +311,9 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
299
311
|
async stopSending(localId) {
|
|
300
312
|
this.assertSendDirection();
|
|
301
313
|
logger.debug('stopSending() [localId:%s]', localId);
|
|
314
|
+
if (this._closed) {
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
302
317
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
303
318
|
if (!transceiver) {
|
|
304
319
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
@@ -321,6 +336,7 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
321
336
|
this._mapMidTransceiver.delete(localId);
|
|
322
337
|
}
|
|
323
338
|
async pauseSending(localId) {
|
|
339
|
+
this.assertNotClosed();
|
|
324
340
|
this.assertSendDirection();
|
|
325
341
|
logger.debug('pauseSending() [localId:%s]', localId);
|
|
326
342
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
@@ -337,6 +353,7 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
337
353
|
await this._pc.setRemoteDescription(answer);
|
|
338
354
|
}
|
|
339
355
|
async resumeSending(localId) {
|
|
356
|
+
this.assertNotClosed();
|
|
340
357
|
this.assertSendDirection();
|
|
341
358
|
logger.debug('resumeSending() [localId:%s]', localId);
|
|
342
359
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
@@ -353,6 +370,7 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
353
370
|
await this._pc.setRemoteDescription(answer);
|
|
354
371
|
}
|
|
355
372
|
async replaceTrack(localId, track) {
|
|
373
|
+
this.assertNotClosed();
|
|
356
374
|
this.assertSendDirection();
|
|
357
375
|
if (track) {
|
|
358
376
|
logger.debug('replaceTrack() [localId:%s, track.id:%s]', localId, track.id);
|
|
@@ -367,6 +385,7 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
367
385
|
await transceiver.sender.replaceTrack(track);
|
|
368
386
|
}
|
|
369
387
|
async setMaxSpatialLayer(localId, spatialLayer) {
|
|
388
|
+
this.assertNotClosed();
|
|
370
389
|
this.assertSendDirection();
|
|
371
390
|
logger.debug('setMaxSpatialLayer() [localId:%s, spatialLayer:%s]', localId, spatialLayer);
|
|
372
391
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
@@ -392,6 +411,7 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
392
411
|
await this._pc.setRemoteDescription(answer);
|
|
393
412
|
}
|
|
394
413
|
async setRtpEncodingParameters(localId, params) {
|
|
414
|
+
this.assertNotClosed();
|
|
395
415
|
this.assertSendDirection();
|
|
396
416
|
logger.debug('setRtpEncodingParameters() [localId:%s, params:%o]', localId, params);
|
|
397
417
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
@@ -412,6 +432,7 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
412
432
|
await this._pc.setRemoteDescription(answer);
|
|
413
433
|
}
|
|
414
434
|
async getSenderStats(localId) {
|
|
435
|
+
this.assertNotClosed();
|
|
415
436
|
this.assertSendDirection();
|
|
416
437
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
417
438
|
if (!transceiver) {
|
|
@@ -420,6 +441,7 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
420
441
|
return transceiver.sender.getStats();
|
|
421
442
|
}
|
|
422
443
|
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
444
|
+
this.assertNotClosed();
|
|
423
445
|
this.assertSendDirection();
|
|
424
446
|
const options = {
|
|
425
447
|
negotiated: true,
|
|
@@ -464,6 +486,7 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
464
486
|
return { dataChannel, sctpStreamParameters };
|
|
465
487
|
}
|
|
466
488
|
async receive(optionsList) {
|
|
489
|
+
this.assertNotClosed();
|
|
467
490
|
this.assertRecvDirection();
|
|
468
491
|
const results = [];
|
|
469
492
|
const mapLocalId = new Map();
|
|
@@ -528,6 +551,9 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
528
551
|
}
|
|
529
552
|
async stopReceiving(localIds) {
|
|
530
553
|
this.assertRecvDirection();
|
|
554
|
+
if (this._closed) {
|
|
555
|
+
return;
|
|
556
|
+
}
|
|
531
557
|
for (const localId of localIds) {
|
|
532
558
|
logger.debug('stopReceiving() [localId:%s]', localId);
|
|
533
559
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
@@ -547,6 +573,7 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
547
573
|
}
|
|
548
574
|
}
|
|
549
575
|
async pauseReceiving(localIds) {
|
|
576
|
+
this.assertNotClosed();
|
|
550
577
|
this.assertRecvDirection();
|
|
551
578
|
for (const localId of localIds) {
|
|
552
579
|
logger.debug('pauseReceiving() [localId:%s]', localId);
|
|
@@ -565,6 +592,7 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
565
592
|
await this._pc.setLocalDescription(answer);
|
|
566
593
|
}
|
|
567
594
|
async resumeReceiving(localIds) {
|
|
595
|
+
this.assertNotClosed();
|
|
568
596
|
this.assertRecvDirection();
|
|
569
597
|
for (const localId of localIds) {
|
|
570
598
|
logger.debug('resumeReceiving() [localId:%s]', localId);
|
|
@@ -583,6 +611,7 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
583
611
|
await this._pc.setLocalDescription(answer);
|
|
584
612
|
}
|
|
585
613
|
async getReceiverStats(localId) {
|
|
614
|
+
this.assertNotClosed();
|
|
586
615
|
this.assertRecvDirection();
|
|
587
616
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
588
617
|
if (!transceiver) {
|
|
@@ -591,6 +620,7 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
591
620
|
return transceiver.receiver.getStats();
|
|
592
621
|
}
|
|
593
622
|
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
623
|
+
this.assertNotClosed();
|
|
594
624
|
this.assertRecvDirection();
|
|
595
625
|
const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
|
|
596
626
|
const options = {
|
|
@@ -640,6 +670,11 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
640
670
|
});
|
|
641
671
|
this._transportReady = true;
|
|
642
672
|
}
|
|
673
|
+
assertNotClosed() {
|
|
674
|
+
if (this._closed) {
|
|
675
|
+
throw new errors_1.InvalidStateError('method called in a closed handler');
|
|
676
|
+
}
|
|
677
|
+
}
|
|
643
678
|
assertSendDirection() {
|
|
644
679
|
if (this._direction !== 'send') {
|
|
645
680
|
throw new Error('method can just be called for handlers with "send" direction');
|
|
@@ -3,6 +3,7 @@ import { IceParameters } from '../Transport';
|
|
|
3
3
|
import { RtpCapabilities } from '../RtpParameters';
|
|
4
4
|
import { SctpCapabilities } from '../SctpParameters';
|
|
5
5
|
export declare class Chrome74 extends HandlerInterface {
|
|
6
|
+
private _closed;
|
|
6
7
|
private _direction?;
|
|
7
8
|
private _remoteSdp?;
|
|
8
9
|
private _sendingRtpParametersByKind?;
|
|
@@ -43,6 +44,7 @@ export declare class Chrome74 extends HandlerInterface {
|
|
|
43
44
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
44
45
|
receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
45
46
|
private setupTransport;
|
|
47
|
+
private assertNotClosed;
|
|
46
48
|
private assertSendDirection;
|
|
47
49
|
private assertRecvDirection;
|
|
48
50
|
}
|
|
@@ -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":"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"}
|
package/lib/handlers/Chrome74.js
CHANGED
|
@@ -31,6 +31,7 @@ const ortc = __importStar(require("../ortc"));
|
|
|
31
31
|
const sdpCommonUtils = __importStar(require("./sdp/commonUtils"));
|
|
32
32
|
const sdpUnifiedPlanUtils = __importStar(require("./sdp/unifiedPlanUtils"));
|
|
33
33
|
const ortcUtils = __importStar(require("./ortc/utils"));
|
|
34
|
+
const errors_1 = require("../errors");
|
|
34
35
|
const HandlerInterface_1 = require("./HandlerInterface");
|
|
35
36
|
const RemoteSdp_1 = require("./sdp/RemoteSdp");
|
|
36
37
|
const scalabilityModes_1 = require("../scalabilityModes");
|
|
@@ -45,6 +46,8 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
45
46
|
}
|
|
46
47
|
constructor() {
|
|
47
48
|
super();
|
|
49
|
+
// Closed flag.
|
|
50
|
+
this._closed = false;
|
|
48
51
|
// Map of RTCTransceivers indexed by MID.
|
|
49
52
|
this._mapMidTransceiver = new Map();
|
|
50
53
|
// Local stream for sending.
|
|
@@ -61,6 +64,10 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
61
64
|
}
|
|
62
65
|
close() {
|
|
63
66
|
logger.debug('close()');
|
|
67
|
+
if (this._closed) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
this._closed = true;
|
|
64
71
|
// Close RTCPeerConnection.
|
|
65
72
|
if (this._pc) {
|
|
66
73
|
try {
|
|
@@ -169,12 +176,14 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
169
176
|
}
|
|
170
177
|
}
|
|
171
178
|
async updateIceServers(iceServers) {
|
|
179
|
+
this.assertNotClosed();
|
|
172
180
|
logger.debug('updateIceServers()');
|
|
173
181
|
const configuration = this._pc.getConfiguration();
|
|
174
182
|
configuration.iceServers = iceServers;
|
|
175
183
|
this._pc.setConfiguration(configuration);
|
|
176
184
|
}
|
|
177
185
|
async restartIce(iceParameters) {
|
|
186
|
+
this.assertNotClosed();
|
|
178
187
|
logger.debug('restartIce()');
|
|
179
188
|
// Provide the remote SDP handler with new remote ICE parameters.
|
|
180
189
|
this._remoteSdp.updateIceParameters(iceParameters);
|
|
@@ -199,9 +208,11 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
199
208
|
}
|
|
200
209
|
}
|
|
201
210
|
async getTransportStats() {
|
|
211
|
+
this.assertNotClosed();
|
|
202
212
|
return this._pc.getStats();
|
|
203
213
|
}
|
|
204
214
|
async send({ track, encodings, codecOptions, codec }) {
|
|
215
|
+
this.assertNotClosed();
|
|
205
216
|
this.assertSendDirection();
|
|
206
217
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
207
218
|
if (encodings && encodings.length > 1) {
|
|
@@ -316,6 +327,9 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
316
327
|
async stopSending(localId) {
|
|
317
328
|
this.assertSendDirection();
|
|
318
329
|
logger.debug('stopSending() [localId:%s]', localId);
|
|
330
|
+
if (this._closed) {
|
|
331
|
+
return;
|
|
332
|
+
}
|
|
319
333
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
320
334
|
if (!transceiver) {
|
|
321
335
|
throw new Error('associated RTCRtpTransceiver not found');
|
|
@@ -338,6 +352,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
338
352
|
this._mapMidTransceiver.delete(localId);
|
|
339
353
|
}
|
|
340
354
|
async pauseSending(localId) {
|
|
355
|
+
this.assertNotClosed();
|
|
341
356
|
this.assertSendDirection();
|
|
342
357
|
logger.debug('pauseSending() [localId:%s]', localId);
|
|
343
358
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
@@ -354,6 +369,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
354
369
|
await this._pc.setRemoteDescription(answer);
|
|
355
370
|
}
|
|
356
371
|
async resumeSending(localId) {
|
|
372
|
+
this.assertNotClosed();
|
|
357
373
|
this.assertSendDirection();
|
|
358
374
|
logger.debug('resumeSending() [localId:%s]', localId);
|
|
359
375
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
@@ -370,6 +386,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
370
386
|
await this._pc.setRemoteDescription(answer);
|
|
371
387
|
}
|
|
372
388
|
async replaceTrack(localId, track) {
|
|
389
|
+
this.assertNotClosed();
|
|
373
390
|
this.assertSendDirection();
|
|
374
391
|
if (track) {
|
|
375
392
|
logger.debug('replaceTrack() [localId:%s, track.id:%s]', localId, track.id);
|
|
@@ -384,6 +401,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
384
401
|
await transceiver.sender.replaceTrack(track);
|
|
385
402
|
}
|
|
386
403
|
async setMaxSpatialLayer(localId, spatialLayer) {
|
|
404
|
+
this.assertNotClosed();
|
|
387
405
|
this.assertSendDirection();
|
|
388
406
|
logger.debug('setMaxSpatialLayer() [localId:%s, spatialLayer:%s]', localId, spatialLayer);
|
|
389
407
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
@@ -409,6 +427,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
409
427
|
await this._pc.setRemoteDescription(answer);
|
|
410
428
|
}
|
|
411
429
|
async setRtpEncodingParameters(localId, params) {
|
|
430
|
+
this.assertNotClosed();
|
|
412
431
|
this.assertSendDirection();
|
|
413
432
|
logger.debug('setRtpEncodingParameters() [localId:%s, params:%o]', localId, params);
|
|
414
433
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
@@ -429,6 +448,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
429
448
|
await this._pc.setRemoteDescription(answer);
|
|
430
449
|
}
|
|
431
450
|
async getSenderStats(localId) {
|
|
451
|
+
this.assertNotClosed();
|
|
432
452
|
this.assertSendDirection();
|
|
433
453
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
434
454
|
if (!transceiver) {
|
|
@@ -437,6 +457,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
437
457
|
return transceiver.sender.getStats();
|
|
438
458
|
}
|
|
439
459
|
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
460
|
+
this.assertNotClosed();
|
|
440
461
|
this.assertSendDirection();
|
|
441
462
|
const options = {
|
|
442
463
|
negotiated: true,
|
|
@@ -481,6 +502,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
481
502
|
return { dataChannel, sctpStreamParameters };
|
|
482
503
|
}
|
|
483
504
|
async receive(optionsList) {
|
|
505
|
+
this.assertNotClosed();
|
|
484
506
|
this.assertRecvDirection();
|
|
485
507
|
const results = [];
|
|
486
508
|
const mapLocalId = new Map();
|
|
@@ -545,6 +567,9 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
545
567
|
}
|
|
546
568
|
async stopReceiving(localIds) {
|
|
547
569
|
this.assertRecvDirection();
|
|
570
|
+
if (this._closed) {
|
|
571
|
+
return;
|
|
572
|
+
}
|
|
548
573
|
for (const localId of localIds) {
|
|
549
574
|
logger.debug('stopReceiving() [localId:%s]', localId);
|
|
550
575
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
@@ -564,6 +589,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
564
589
|
}
|
|
565
590
|
}
|
|
566
591
|
async pauseReceiving(localIds) {
|
|
592
|
+
this.assertNotClosed();
|
|
567
593
|
this.assertRecvDirection();
|
|
568
594
|
for (const localId of localIds) {
|
|
569
595
|
logger.debug('pauseReceiving() [localId:%s]', localId);
|
|
@@ -582,6 +608,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
582
608
|
await this._pc.setLocalDescription(answer);
|
|
583
609
|
}
|
|
584
610
|
async resumeReceiving(localIds) {
|
|
611
|
+
this.assertNotClosed();
|
|
585
612
|
this.assertRecvDirection();
|
|
586
613
|
for (const localId of localIds) {
|
|
587
614
|
logger.debug('resumeReceiving() [localId:%s]', localId);
|
|
@@ -600,6 +627,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
600
627
|
await this._pc.setLocalDescription(answer);
|
|
601
628
|
}
|
|
602
629
|
async getReceiverStats(localId) {
|
|
630
|
+
this.assertNotClosed();
|
|
603
631
|
this.assertRecvDirection();
|
|
604
632
|
const transceiver = this._mapMidTransceiver.get(localId);
|
|
605
633
|
if (!transceiver) {
|
|
@@ -608,6 +636,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
608
636
|
return transceiver.receiver.getStats();
|
|
609
637
|
}
|
|
610
638
|
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
639
|
+
this.assertNotClosed();
|
|
611
640
|
this.assertRecvDirection();
|
|
612
641
|
const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
|
|
613
642
|
const options = {
|
|
@@ -657,6 +686,11 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
657
686
|
});
|
|
658
687
|
this._transportReady = true;
|
|
659
688
|
}
|
|
689
|
+
assertNotClosed() {
|
|
690
|
+
if (this._closed) {
|
|
691
|
+
throw new errors_1.InvalidStateError('method called in a closed handler');
|
|
692
|
+
}
|
|
693
|
+
}
|
|
660
694
|
assertSendDirection() {
|
|
661
695
|
if (this._direction !== 'send') {
|
|
662
696
|
throw new Error('method can just be called for handlers with "send" direction');
|
|
@@ -8,6 +8,7 @@ export type FakeParameters = {
|
|
|
8
8
|
generateLocalDtlsParameters: () => DtlsParameters;
|
|
9
9
|
};
|
|
10
10
|
export declare class FakeHandler extends HandlerInterface {
|
|
11
|
+
private _closed;
|
|
11
12
|
private fakeParameters;
|
|
12
13
|
private _rtpParametersByKind?;
|
|
13
14
|
private _cname;
|
|
@@ -45,5 +46,6 @@ export declare class FakeHandler extends HandlerInterface {
|
|
|
45
46
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
46
47
|
receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
47
48
|
private setupTransport;
|
|
49
|
+
private assertNotClosed;
|
|
48
50
|
}
|
|
49
51
|
//# sourceMappingURL=FakeHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/FakeHandler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FakeHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/FakeHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,7 @@ const Logger_1 = require("../Logger");
|
|
|
29
29
|
const fake_mediastreamtrack_1 = require("fake-mediastreamtrack");
|
|
30
30
|
const utils = __importStar(require("../utils"));
|
|
31
31
|
const ortc = __importStar(require("../ortc"));
|
|
32
|
+
const errors_1 = require("../errors");
|
|
32
33
|
const HandlerInterface_1 = require("./HandlerInterface");
|
|
33
34
|
const logger = new Logger_1.Logger('FakeHandler');
|
|
34
35
|
class FakeDataChannel extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
@@ -61,6 +62,8 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
|
|
|
61
62
|
}
|
|
62
63
|
constructor(fakeParameters) {
|
|
63
64
|
super();
|
|
65
|
+
// Closed flag.
|
|
66
|
+
this._closed = false;
|
|
64
67
|
// Local RTCP CNAME.
|
|
65
68
|
this._cname = `CNAME-${utils.generateRandomNumber()}`;
|
|
66
69
|
// Got transport local and remote parameters.
|
|
@@ -78,6 +81,10 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
|
|
|
78
81
|
}
|
|
79
82
|
close() {
|
|
80
83
|
logger.debug('close()');
|
|
84
|
+
if (this._closed) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this._closed = true;
|
|
81
88
|
}
|
|
82
89
|
// NOTE: Custom method for simulation purposes.
|
|
83
90
|
setConnectionState(connectionState) {
|
|
@@ -96,6 +103,7 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
|
|
|
96
103
|
direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, proprietaryConstraints, extendedRtpCapabilities
|
|
97
104
|
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
98
105
|
}) {
|
|
106
|
+
this.assertNotClosed();
|
|
99
107
|
logger.debug('run()');
|
|
100
108
|
// Generic sending RTP parameters for audio and video.
|
|
101
109
|
// @type {Object}
|
|
@@ -107,20 +115,22 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
|
|
|
107
115
|
}
|
|
108
116
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
109
117
|
async updateIceServers(iceServers) {
|
|
118
|
+
this.assertNotClosed();
|
|
110
119
|
logger.debug('updateIceServers()');
|
|
111
|
-
return;
|
|
112
120
|
}
|
|
113
121
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
114
122
|
async restartIce(iceParameters) {
|
|
123
|
+
this.assertNotClosed();
|
|
115
124
|
logger.debug('restartIce()');
|
|
116
|
-
return;
|
|
117
125
|
}
|
|
118
126
|
async getTransportStats() {
|
|
127
|
+
this.assertNotClosed();
|
|
119
128
|
return new Map(); // NOTE: Whatever.
|
|
120
129
|
}
|
|
121
130
|
async send(
|
|
122
131
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
123
132
|
{ track, encodings, codecOptions, codec }) {
|
|
133
|
+
this.assertNotClosed();
|
|
124
134
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
125
135
|
if (!this._transportReady) {
|
|
126
136
|
await this.setupTransport({ localDtlsRole: 'server' });
|
|
@@ -152,6 +162,9 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
|
|
|
152
162
|
}
|
|
153
163
|
async stopSending(localId) {
|
|
154
164
|
logger.debug('stopSending() [localId:%s]', localId);
|
|
165
|
+
if (this._closed) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
155
168
|
if (!this._tracks.has(Number(localId))) {
|
|
156
169
|
throw new Error('local track not found');
|
|
157
170
|
}
|
|
@@ -159,13 +172,16 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
|
|
|
159
172
|
}
|
|
160
173
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
161
174
|
async pauseSending(localId) {
|
|
175
|
+
this.assertNotClosed();
|
|
162
176
|
// Unimplemented.
|
|
163
177
|
}
|
|
164
178
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
165
179
|
async resumeSending(localId) {
|
|
180
|
+
this.assertNotClosed();
|
|
166
181
|
// Unimplemented.
|
|
167
182
|
}
|
|
168
183
|
async replaceTrack(localId, track) {
|
|
184
|
+
this.assertNotClosed();
|
|
169
185
|
if (track) {
|
|
170
186
|
logger.debug('replaceTrack() [localId:%s, track.id:%s]', localId, track.id);
|
|
171
187
|
}
|
|
@@ -176,16 +192,20 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
|
|
|
176
192
|
this._tracks.set(Number(localId), track);
|
|
177
193
|
}
|
|
178
194
|
async setMaxSpatialLayer(localId, spatialLayer) {
|
|
195
|
+
this.assertNotClosed();
|
|
179
196
|
logger.debug('setMaxSpatialLayer() [localId:%s, spatialLayer:%s]', localId, spatialLayer);
|
|
180
197
|
}
|
|
181
198
|
async setRtpEncodingParameters(localId, params) {
|
|
199
|
+
this.assertNotClosed();
|
|
182
200
|
logger.debug('setRtpEncodingParameters() [localId:%s, params:%o]', localId, params);
|
|
183
201
|
}
|
|
184
202
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
185
203
|
async getSenderStats(localId) {
|
|
204
|
+
this.assertNotClosed();
|
|
186
205
|
return new Map(); // NOTE: Whatever.
|
|
187
206
|
}
|
|
188
207
|
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
208
|
+
this.assertNotClosed();
|
|
189
209
|
if (!this._transportReady) {
|
|
190
210
|
await this.setupTransport({ localDtlsRole: 'server' });
|
|
191
211
|
}
|
|
@@ -208,6 +228,7 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
|
|
|
208
228
|
return { dataChannel, sctpStreamParameters };
|
|
209
229
|
}
|
|
210
230
|
async receive(optionsList) {
|
|
231
|
+
this.assertNotClosed();
|
|
211
232
|
const results = [];
|
|
212
233
|
for (const options of optionsList) {
|
|
213
234
|
const { trackId, kind } = options;
|
|
@@ -223,6 +244,9 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
|
|
|
223
244
|
return results;
|
|
224
245
|
}
|
|
225
246
|
async stopReceiving(localIds) {
|
|
247
|
+
if (this._closed) {
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
226
250
|
for (const localId of localIds) {
|
|
227
251
|
logger.debug('stopReceiving() [localId:%s]', localId);
|
|
228
252
|
this._tracks.delete(Number(localId));
|
|
@@ -231,18 +255,22 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
|
|
|
231
255
|
async pauseReceiving(
|
|
232
256
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
233
257
|
localIds) {
|
|
258
|
+
this.assertNotClosed();
|
|
234
259
|
// Unimplemented.
|
|
235
260
|
}
|
|
236
261
|
async resumeReceiving(
|
|
237
262
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
238
263
|
localIds) {
|
|
264
|
+
this.assertNotClosed();
|
|
239
265
|
// Unimplemented.
|
|
240
266
|
}
|
|
241
267
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
242
268
|
async getReceiverStats(localId) {
|
|
269
|
+
this.assertNotClosed();
|
|
243
270
|
return new Map(); //
|
|
244
271
|
}
|
|
245
272
|
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
273
|
+
this.assertNotClosed();
|
|
246
274
|
if (!this._transportReady) {
|
|
247
275
|
await this.setupTransport({ localDtlsRole: 'client' });
|
|
248
276
|
}
|
|
@@ -272,5 +300,10 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
|
|
|
272
300
|
await new Promise((resolve, reject) => (this.emit('@connect', { dtlsParameters }, resolve, reject)));
|
|
273
301
|
this._transportReady = true;
|
|
274
302
|
}
|
|
303
|
+
assertNotClosed() {
|
|
304
|
+
if (this._closed) {
|
|
305
|
+
throw new errors_1.InvalidStateError('method called in a closed handler');
|
|
306
|
+
}
|
|
307
|
+
}
|
|
275
308
|
}
|
|
276
309
|
exports.FakeHandler = FakeHandler;
|