mediasoup-client 3.7.1 → 3.7.2
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/README.md +85 -112
- package/lib/Consumer.d.ts +1 -1
- package/lib/Consumer.d.ts.map +1 -1
- package/lib/Consumer.js +1 -1
- package/lib/DataConsumer.d.ts +1 -1
- package/lib/DataConsumer.d.ts.map +1 -1
- package/lib/DataConsumer.js +1 -1
- package/lib/DataProducer.d.ts +1 -1
- package/lib/DataProducer.d.ts.map +1 -1
- package/lib/DataProducer.js +1 -1
- package/lib/Device.d.ts +3 -3
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +66 -89
- package/lib/EnhancedEventEmitter.d.ts.map +1 -1
- package/lib/Logger.d.ts.map +1 -1
- package/lib/Producer.d.ts +5 -15
- package/lib/Producer.d.ts.map +1 -1
- package/lib/Producer.js +2 -2
- package/lib/RtpParameters.d.ts.map +1 -1
- package/lib/SctpParameters.d.ts.map +1 -1
- package/lib/Transport.d.ts +14 -10
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +71 -53
- package/lib/errors.d.ts.map +1 -1
- package/lib/errors.js +6 -6
- package/lib/handlers/Chrome111.d.ts +4 -4
- package/lib/handlers/Chrome111.d.ts.map +1 -1
- package/lib/handlers/Chrome111.js +74 -77
- package/lib/handlers/Chrome55.d.ts +4 -4
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +83 -80
- package/lib/handlers/Chrome67.d.ts +4 -4
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +85 -83
- package/lib/handlers/Chrome70.d.ts +4 -4
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +76 -78
- package/lib/handlers/Chrome74.d.ts +4 -4
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +75 -78
- package/lib/handlers/Edge11.d.ts +1 -1
- package/lib/handlers/Edge11.d.ts.map +1 -1
- package/lib/handlers/Edge11.js +63 -77
- package/lib/handlers/FakeHandler.d.ts +3 -3
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +19 -22
- package/lib/handlers/Firefox60.d.ts +4 -4
- package/lib/handlers/Firefox60.d.ts.map +1 -1
- package/lib/handlers/Firefox60.js +75 -72
- package/lib/handlers/HandlerInterface.d.ts.map +1 -1
- package/lib/handlers/ReactNative.d.ts +4 -4
- package/lib/handlers/ReactNative.d.ts.map +1 -1
- package/lib/handlers/ReactNative.js +84 -82
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts +4 -4
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts.map +1 -1
- package/lib/handlers/ReactNativeUnifiedPlan.js +75 -78
- package/lib/handlers/Safari11.d.ts +4 -4
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +84 -81
- package/lib/handlers/Safari12.d.ts +4 -4
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +75 -77
- package/lib/handlers/ortc/edgeUtils.d.ts.map +1 -1
- package/lib/handlers/ortc/utils.d.ts.map +1 -1
- package/lib/handlers/ortc/utils.js +2 -2
- package/lib/handlers/sdp/MediaSection.d.ts +5 -5
- package/lib/handlers/sdp/MediaSection.d.ts.map +1 -1
- package/lib/handlers/sdp/MediaSection.js +293 -317
- package/lib/handlers/sdp/RemoteSdp.d.ts +5 -5
- package/lib/handlers/sdp/RemoteSdp.d.ts.map +1 -1
- package/lib/handlers/sdp/RemoteSdp.js +28 -30
- package/lib/handlers/sdp/commonUtils.d.ts +4 -4
- package/lib/handlers/sdp/commonUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/commonUtils.js +47 -58
- package/lib/handlers/sdp/plainRtpUtils.d.ts +2 -2
- package/lib/handlers/sdp/plainRtpUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/plainRtpUtils.js +5 -7
- package/lib/handlers/sdp/planBUtils.d.ts +2 -2
- package/lib/handlers/sdp/planBUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/planBUtils.js +11 -14
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts +2 -2
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/unifiedPlanUtils.js +11 -14
- 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 +98 -108
- package/lib/scalabilityModes.d.ts.map +1 -1
- package/lib/scalabilityModes.js +2 -2
- package/lib/{tests → test}/fakeParameters.d.ts +2 -2
- package/lib/test/fakeParameters.d.ts.map +1 -0
- package/lib/test/fakeParameters.js +645 -0
- package/lib/{tests → test}/test.d.ts.map +1 -1
- package/lib/{tests → test}/test.js +466 -495
- package/lib/test/uaTestCases.d.ts.map +1 -0
- package/lib/{tests → test}/uaTestCases.js +17 -17
- package/lib/types.d.ts.map +1 -1
- package/lib/utils.d.ts.map +1 -1
- package/npm-scripts.mjs +72 -98
- package/package.json +93 -90
- package/lib/tests/fakeParameters.d.ts.map +0 -1
- package/lib/tests/fakeParameters.js +0 -662
- package/lib/tests/uaTestCases.d.ts.map +0 -1
- /package/lib/{tests → test}/test.d.ts +0 -0
- /package/lib/{tests → test}/uaTestCases.d.ts +0 -0
package/lib/Transport.js
CHANGED
|
@@ -49,7 +49,7 @@ class ConsumerCreationTask {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
52
|
-
constructor({ direction, id, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, appData, handlerFactory, extendedRtpCapabilities, canProduceByKind }) {
|
|
52
|
+
constructor({ direction, id, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, appData, handlerFactory, extendedRtpCapabilities, canProduceByKind, }) {
|
|
53
53
|
super();
|
|
54
54
|
// Closed flag.
|
|
55
55
|
this._closed = false;
|
|
@@ -92,8 +92,9 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
92
92
|
this._direction = direction;
|
|
93
93
|
this._extendedRtpCapabilities = extendedRtpCapabilities;
|
|
94
94
|
this._canProduceByKind = canProduceByKind;
|
|
95
|
-
this._maxSctpMessageSize =
|
|
96
|
-
|
|
95
|
+
this._maxSctpMessageSize = sctpParameters
|
|
96
|
+
? sctpParameters.maxMessageSize
|
|
97
|
+
: null;
|
|
97
98
|
// Clone and sanitize additionalSettings.
|
|
98
99
|
additionalSettings = utils.clone(additionalSettings) || {};
|
|
99
100
|
delete additionalSettings.iceServers;
|
|
@@ -112,7 +113,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
112
113
|
iceTransportPolicy,
|
|
113
114
|
additionalSettings,
|
|
114
115
|
proprietaryConstraints,
|
|
115
|
-
extendedRtpCapabilities
|
|
116
|
+
extendedRtpCapabilities,
|
|
116
117
|
});
|
|
117
118
|
this._appData = appData || {};
|
|
118
119
|
this.handleHandler();
|
|
@@ -221,7 +222,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
221
222
|
/**
|
|
222
223
|
* Restart ICE connection.
|
|
223
224
|
*/
|
|
224
|
-
async restartIce({ iceParameters }) {
|
|
225
|
+
async restartIce({ iceParameters, }) {
|
|
225
226
|
logger.debug('restartIce()');
|
|
226
227
|
if (this._closed) {
|
|
227
228
|
throw new errors_1.InvalidStateError('closed');
|
|
@@ -235,7 +236,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
235
236
|
/**
|
|
236
237
|
* Update ICE servers.
|
|
237
238
|
*/
|
|
238
|
-
async updateIceServers({ iceServers } = {}) {
|
|
239
|
+
async updateIceServers({ iceServers, } = {}) {
|
|
239
240
|
logger.debug('updateIceServers()');
|
|
240
241
|
if (this._closed) {
|
|
241
242
|
throw new errors_1.InvalidStateError('closed');
|
|
@@ -249,7 +250,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
249
250
|
/**
|
|
250
251
|
* Create a Producer.
|
|
251
252
|
*/
|
|
252
|
-
async produce({ track, encodings, codecOptions, codec, stopTracks = true, disableTrackOnPause = true, zeroRtpOnPause = false, appData = {} } = {}) {
|
|
253
|
+
async produce({ track, encodings, codecOptions, codec, stopTracks = true, disableTrackOnPause = true, zeroRtpOnPause = false, appData = {}, } = {}) {
|
|
253
254
|
logger.debug('produce() [track:%o]', track);
|
|
254
255
|
if (this._closed) {
|
|
255
256
|
throw new errors_1.InvalidStateError('closed');
|
|
@@ -266,7 +267,8 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
266
267
|
else if (track.readyState === 'ended') {
|
|
267
268
|
throw new errors_1.InvalidStateError('track ended');
|
|
268
269
|
}
|
|
269
|
-
else if (this.listenerCount('connect') === 0 &&
|
|
270
|
+
else if (this.listenerCount('connect') === 0 &&
|
|
271
|
+
this._connectionState === 'new') {
|
|
270
272
|
throw new TypeError('no "connect" listener set into this transport');
|
|
271
273
|
}
|
|
272
274
|
else if (this.listenerCount('produce') === 0) {
|
|
@@ -276,7 +278,8 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
276
278
|
throw new TypeError('if given, appData must be an object');
|
|
277
279
|
}
|
|
278
280
|
// Enqueue command.
|
|
279
|
-
return this._awaitQueue
|
|
281
|
+
return (this._awaitQueue
|
|
282
|
+
.push(async () => {
|
|
280
283
|
let normalizedEncodings;
|
|
281
284
|
if (encodings && !Array.isArray(encodings)) {
|
|
282
285
|
throw TypeError('encodings must be an array');
|
|
@@ -285,8 +288,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
285
288
|
normalizedEncodings = undefined;
|
|
286
289
|
}
|
|
287
290
|
else if (encodings) {
|
|
288
|
-
normalizedEncodings = encodings
|
|
289
|
-
.map((encoding) => {
|
|
291
|
+
normalizedEncodings = encodings.map((encoding) => {
|
|
290
292
|
const normalizedEncoding = { active: true };
|
|
291
293
|
if (encoding.active === false) {
|
|
292
294
|
normalizedEncoding.active = false;
|
|
@@ -298,7 +300,8 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
298
300
|
normalizedEncoding.scalabilityMode = encoding.scalabilityMode;
|
|
299
301
|
}
|
|
300
302
|
if (typeof encoding.scaleResolutionDownBy === 'number') {
|
|
301
|
-
normalizedEncoding.scaleResolutionDownBy =
|
|
303
|
+
normalizedEncoding.scaleResolutionDownBy =
|
|
304
|
+
encoding.scaleResolutionDownBy;
|
|
302
305
|
}
|
|
303
306
|
if (typeof encoding.maxBitrate === 'number') {
|
|
304
307
|
normalizedEncoding.maxBitrate = encoding.maxBitrate;
|
|
@@ -322,7 +325,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
322
325
|
track,
|
|
323
326
|
encodings: normalizedEncodings,
|
|
324
327
|
codecOptions,
|
|
325
|
-
codec
|
|
328
|
+
codec,
|
|
326
329
|
});
|
|
327
330
|
try {
|
|
328
331
|
// This will fill rtpParameters's missing fields with default values.
|
|
@@ -331,7 +334,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
331
334
|
this.safeEmit('produce', {
|
|
332
335
|
kind: track.kind,
|
|
333
336
|
rtpParameters,
|
|
334
|
-
appData
|
|
337
|
+
appData,
|
|
335
338
|
}, resolve, reject);
|
|
336
339
|
});
|
|
337
340
|
const producer = new Producer_1.Producer({
|
|
@@ -343,7 +346,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
343
346
|
stopTracks,
|
|
344
347
|
disableTrackOnPause,
|
|
345
348
|
zeroRtpOnPause,
|
|
346
|
-
appData
|
|
349
|
+
appData,
|
|
347
350
|
});
|
|
348
351
|
this._producers.set(producer.id, producer);
|
|
349
352
|
this.handleProducer(producer);
|
|
@@ -352,8 +355,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
352
355
|
return producer;
|
|
353
356
|
}
|
|
354
357
|
catch (error) {
|
|
355
|
-
this._handler.stopSending(localId)
|
|
356
|
-
.catch(() => { });
|
|
358
|
+
this._handler.stopSending(localId).catch(() => { });
|
|
357
359
|
throw error;
|
|
358
360
|
}
|
|
359
361
|
}, 'transport.produce()')
|
|
@@ -367,12 +369,12 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
367
369
|
catch (error2) { }
|
|
368
370
|
}
|
|
369
371
|
throw error;
|
|
370
|
-
});
|
|
372
|
+
}));
|
|
371
373
|
}
|
|
372
374
|
/**
|
|
373
375
|
* Create a Consumer to consume a remote Producer.
|
|
374
376
|
*/
|
|
375
|
-
async consume({ id, producerId, kind, rtpParameters, streamId, appData = {} }) {
|
|
377
|
+
async consume({ id, producerId, kind, rtpParameters, streamId, appData = {}, }) {
|
|
376
378
|
logger.debug('consume()');
|
|
377
379
|
rtpParameters = utils.clone(rtpParameters);
|
|
378
380
|
if (this._closed) {
|
|
@@ -390,7 +392,8 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
390
392
|
else if (kind !== 'audio' && kind !== 'video') {
|
|
391
393
|
throw new TypeError(`invalid kind '${kind}'`);
|
|
392
394
|
}
|
|
393
|
-
else if (this.listenerCount('connect') === 0 &&
|
|
395
|
+
else if (this.listenerCount('connect') === 0 &&
|
|
396
|
+
this._connectionState === 'new') {
|
|
394
397
|
throw new TypeError('no "connect" listener set into this transport');
|
|
395
398
|
}
|
|
396
399
|
else if (appData && typeof appData !== 'object') {
|
|
@@ -407,7 +410,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
407
410
|
kind,
|
|
408
411
|
rtpParameters,
|
|
409
412
|
streamId,
|
|
410
|
-
appData
|
|
413
|
+
appData,
|
|
411
414
|
});
|
|
412
415
|
// Store the Consumer creation task.
|
|
413
416
|
this._pendingConsumerTasks.push(consumerCreationTask);
|
|
@@ -425,7 +428,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
425
428
|
/**
|
|
426
429
|
* Create a DataProducer
|
|
427
430
|
*/
|
|
428
|
-
async produceData({ ordered = true, maxPacketLifeTime, maxRetransmits, label = '', protocol = '', appData = {} } = {}) {
|
|
431
|
+
async produceData({ ordered = true, maxPacketLifeTime, maxRetransmits, label = '', protocol = '', appData = {}, } = {}) {
|
|
429
432
|
logger.debug('produceData()');
|
|
430
433
|
if (this._closed) {
|
|
431
434
|
throw new errors_1.InvalidStateError('closed');
|
|
@@ -436,7 +439,8 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
436
439
|
else if (!this._maxSctpMessageSize) {
|
|
437
440
|
throw new errors_1.UnsupportedError('SCTP not enabled by remote Transport');
|
|
438
441
|
}
|
|
439
|
-
else if (this.listenerCount('connect') === 0 &&
|
|
442
|
+
else if (this.listenerCount('connect') === 0 &&
|
|
443
|
+
this._connectionState === 'new') {
|
|
440
444
|
throw new TypeError('no "connect" listener set into this transport');
|
|
441
445
|
}
|
|
442
446
|
else if (this.listenerCount('producedata') === 0) {
|
|
@@ -455,7 +459,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
455
459
|
maxPacketLifeTime,
|
|
456
460
|
maxRetransmits,
|
|
457
461
|
label,
|
|
458
|
-
protocol
|
|
462
|
+
protocol,
|
|
459
463
|
});
|
|
460
464
|
// This will fill sctpStreamParameters's missing fields with default values.
|
|
461
465
|
ortc.validateSctpStreamParameters(sctpStreamParameters);
|
|
@@ -464,14 +468,14 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
464
468
|
sctpStreamParameters,
|
|
465
469
|
label,
|
|
466
470
|
protocol,
|
|
467
|
-
appData
|
|
471
|
+
appData,
|
|
468
472
|
}, resolve, reject);
|
|
469
473
|
});
|
|
470
474
|
const dataProducer = new DataProducer_1.DataProducer({
|
|
471
475
|
id,
|
|
472
476
|
dataChannel,
|
|
473
477
|
sctpStreamParameters,
|
|
474
|
-
appData
|
|
478
|
+
appData,
|
|
475
479
|
});
|
|
476
480
|
this._dataProducers.set(dataProducer.id, dataProducer);
|
|
477
481
|
this.handleDataProducer(dataProducer);
|
|
@@ -483,7 +487,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
483
487
|
/**
|
|
484
488
|
* Create a DataConsumer
|
|
485
489
|
*/
|
|
486
|
-
async consumeData({ id, dataProducerId, sctpStreamParameters, label = '', protocol = '', appData = {} }) {
|
|
490
|
+
async consumeData({ id, dataProducerId, sctpStreamParameters, label = '', protocol = '', appData = {}, }) {
|
|
487
491
|
logger.debug('consumeData()');
|
|
488
492
|
sctpStreamParameters = utils.clone(sctpStreamParameters);
|
|
489
493
|
if (this._closed) {
|
|
@@ -501,7 +505,8 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
501
505
|
else if (typeof dataProducerId !== 'string') {
|
|
502
506
|
throw new TypeError('missing dataProducerId');
|
|
503
507
|
}
|
|
504
|
-
else if (this.listenerCount('connect') === 0 &&
|
|
508
|
+
else if (this.listenerCount('connect') === 0 &&
|
|
509
|
+
this._connectionState === 'new') {
|
|
505
510
|
throw new TypeError('no "connect" listener set into this transport');
|
|
506
511
|
}
|
|
507
512
|
else if (appData && typeof appData !== 'object') {
|
|
@@ -514,14 +519,14 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
514
519
|
const { dataChannel } = await this._handler.receiveDataChannel({
|
|
515
520
|
sctpStreamParameters,
|
|
516
521
|
label,
|
|
517
|
-
protocol
|
|
522
|
+
protocol,
|
|
518
523
|
});
|
|
519
524
|
const dataConsumer = new DataConsumer_1.DataConsumer({
|
|
520
525
|
id,
|
|
521
526
|
dataProducerId,
|
|
522
527
|
dataChannel,
|
|
523
528
|
sctpStreamParameters,
|
|
524
|
-
appData
|
|
529
|
+
appData,
|
|
525
530
|
});
|
|
526
531
|
this._dataConsumers.set(dataConsumer.id, dataConsumer);
|
|
527
532
|
this.handleDataConsumer(dataConsumer);
|
|
@@ -533,7 +538,8 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
533
538
|
// This method is guaranteed to never throw.
|
|
534
539
|
async createPendingConsumers() {
|
|
535
540
|
this._consumerCreationInProgress = true;
|
|
536
|
-
this._awaitQueue
|
|
541
|
+
this._awaitQueue
|
|
542
|
+
.push(async () => {
|
|
537
543
|
if (this._pendingConsumerTasks.length === 0) {
|
|
538
544
|
logger.debug('createPendingConsumers() | there is no Consumer to be created');
|
|
539
545
|
return;
|
|
@@ -551,7 +557,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
551
557
|
trackId: id,
|
|
552
558
|
kind: kind,
|
|
553
559
|
rtpParameters,
|
|
554
|
-
streamId
|
|
560
|
+
streamId,
|
|
555
561
|
});
|
|
556
562
|
}
|
|
557
563
|
try {
|
|
@@ -568,14 +574,15 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
568
574
|
rtpReceiver,
|
|
569
575
|
track,
|
|
570
576
|
rtpParameters,
|
|
571
|
-
appData: appData
|
|
577
|
+
appData: appData,
|
|
572
578
|
});
|
|
573
579
|
this._consumers.set(consumer.id, consumer);
|
|
574
580
|
this.handleConsumer(consumer);
|
|
575
581
|
// If this is the first video Consumer and the Consumer for RTP probation
|
|
576
582
|
// has not yet been created, it's time to create it.
|
|
577
583
|
if (!this._probatorConsumerCreated &&
|
|
578
|
-
!videoConsumerForProbator &&
|
|
584
|
+
!videoConsumerForProbator &&
|
|
585
|
+
kind === 'video') {
|
|
579
586
|
videoConsumerForProbator = consumer;
|
|
580
587
|
}
|
|
581
588
|
// Emit observer event.
|
|
@@ -592,11 +599,13 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
592
599
|
if (videoConsumerForProbator) {
|
|
593
600
|
try {
|
|
594
601
|
const probatorRtpParameters = ortc.generateProbatorRtpParameters(videoConsumerForProbator.rtpParameters);
|
|
595
|
-
await this._handler.receive([
|
|
602
|
+
await this._handler.receive([
|
|
603
|
+
{
|
|
596
604
|
trackId: 'probator',
|
|
597
605
|
kind: 'video',
|
|
598
|
-
rtpParameters: probatorRtpParameters
|
|
599
|
-
}
|
|
606
|
+
rtpParameters: probatorRtpParameters,
|
|
607
|
+
},
|
|
608
|
+
]);
|
|
600
609
|
logger.debug('createPendingConsumers() | Consumer for RTP probation created');
|
|
601
610
|
this._probatorConsumerCreated = true;
|
|
602
611
|
}
|
|
@@ -617,7 +626,8 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
617
626
|
}
|
|
618
627
|
pausePendingConsumers() {
|
|
619
628
|
this._consumerPauseInProgress = true;
|
|
620
|
-
this._awaitQueue
|
|
629
|
+
this._awaitQueue
|
|
630
|
+
.push(async () => {
|
|
621
631
|
if (this._pendingPauseConsumers.size === 0) {
|
|
622
632
|
logger.debug('pausePendingConsumers() | there is no Consumer to be paused');
|
|
623
633
|
return;
|
|
@@ -626,8 +636,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
626
636
|
// Clear pending pause Consumer map.
|
|
627
637
|
this._pendingPauseConsumers.clear();
|
|
628
638
|
try {
|
|
629
|
-
const localIds = pendingPauseConsumers
|
|
630
|
-
.map((consumer) => consumer.localId);
|
|
639
|
+
const localIds = pendingPauseConsumers.map(consumer => consumer.localId);
|
|
631
640
|
await this._handler.pauseReceiving(localIds);
|
|
632
641
|
}
|
|
633
642
|
catch (error) {
|
|
@@ -646,7 +655,8 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
646
655
|
}
|
|
647
656
|
resumePendingConsumers() {
|
|
648
657
|
this._consumerResumeInProgress = true;
|
|
649
|
-
this._awaitQueue
|
|
658
|
+
this._awaitQueue
|
|
659
|
+
.push(async () => {
|
|
650
660
|
if (this._pendingResumeConsumers.size === 0) {
|
|
651
661
|
logger.debug('resumePendingConsumers() | there is no Consumer to be resumed');
|
|
652
662
|
return;
|
|
@@ -655,8 +665,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
655
665
|
// Clear pending resume Consumer map.
|
|
656
666
|
this._pendingResumeConsumers.clear();
|
|
657
667
|
try {
|
|
658
|
-
const localIds = pendingResumeConsumers
|
|
659
|
-
.map((consumer) => consumer.localId);
|
|
668
|
+
const localIds = pendingResumeConsumers.map(consumer => consumer.localId);
|
|
660
669
|
await this._handler.resumeReceiving(localIds);
|
|
661
670
|
}
|
|
662
671
|
catch (error) {
|
|
@@ -675,7 +684,8 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
675
684
|
}
|
|
676
685
|
closePendingConsumers() {
|
|
677
686
|
this._consumerCloseInProgress = true;
|
|
678
|
-
this._awaitQueue
|
|
687
|
+
this._awaitQueue
|
|
688
|
+
.push(async () => {
|
|
679
689
|
if (this._pendingCloseConsumers.size === 0) {
|
|
680
690
|
logger.debug('closePendingConsumers() | there is no Consumer to be closed');
|
|
681
691
|
return;
|
|
@@ -684,7 +694,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
684
694
|
// Clear pending close Consumer map.
|
|
685
695
|
this._pendingCloseConsumers.clear();
|
|
686
696
|
try {
|
|
687
|
-
await this._handler.stopReceiving(pendingCloseConsumers.map(
|
|
697
|
+
await this._handler.stopReceiving(pendingCloseConsumers.map(consumer => consumer.localId));
|
|
688
698
|
}
|
|
689
699
|
catch (error) {
|
|
690
700
|
logger.error('closePendingConsumers() | failed to close Consumers:', error);
|
|
@@ -736,31 +746,37 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
736
746
|
if (this._closed) {
|
|
737
747
|
return;
|
|
738
748
|
}
|
|
739
|
-
this._awaitQueue
|
|
749
|
+
this._awaitQueue
|
|
750
|
+
.push(async () => await this._handler.stopSending(producer.localId), 'producer @close event')
|
|
740
751
|
.catch((error) => logger.warn('producer.close() failed:%o', error));
|
|
741
752
|
});
|
|
742
753
|
producer.on('@pause', (callback, errback) => {
|
|
743
|
-
this._awaitQueue
|
|
754
|
+
this._awaitQueue
|
|
755
|
+
.push(async () => await this._handler.pauseSending(producer.localId), 'producer @pause event')
|
|
744
756
|
.then(callback)
|
|
745
757
|
.catch(errback);
|
|
746
758
|
});
|
|
747
759
|
producer.on('@resume', (callback, errback) => {
|
|
748
|
-
this._awaitQueue
|
|
760
|
+
this._awaitQueue
|
|
761
|
+
.push(async () => await this._handler.resumeSending(producer.localId), 'producer @resume event')
|
|
749
762
|
.then(callback)
|
|
750
763
|
.catch(errback);
|
|
751
764
|
});
|
|
752
765
|
producer.on('@replacetrack', (track, callback, errback) => {
|
|
753
|
-
this._awaitQueue
|
|
766
|
+
this._awaitQueue
|
|
767
|
+
.push(async () => await this._handler.replaceTrack(producer.localId, track), 'producer @replacetrack event')
|
|
754
768
|
.then(callback)
|
|
755
769
|
.catch(errback);
|
|
756
770
|
});
|
|
757
771
|
producer.on('@setmaxspatiallayer', (spatialLayer, callback, errback) => {
|
|
758
|
-
this._awaitQueue
|
|
772
|
+
this._awaitQueue
|
|
773
|
+
.push(async () => await this._handler.setMaxSpatialLayer(producer.localId, spatialLayer), 'producer @setmaxspatiallayer event')
|
|
759
774
|
.then(callback)
|
|
760
775
|
.catch(errback);
|
|
761
776
|
});
|
|
762
777
|
producer.on('@setrtpencodingparameters', (params, callback, errback) => {
|
|
763
|
-
this._awaitQueue
|
|
778
|
+
this._awaitQueue
|
|
779
|
+
.push(async () => await this._handler.setRtpEncodingParameters(producer.localId, params), 'producer @setrtpencodingparameters event')
|
|
764
780
|
.then(callback)
|
|
765
781
|
.catch(errback);
|
|
766
782
|
});
|
|
@@ -768,7 +784,8 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
768
784
|
if (this._closed) {
|
|
769
785
|
return errback(new errors_1.InvalidStateError('closed'));
|
|
770
786
|
}
|
|
771
|
-
this._handler
|
|
787
|
+
this._handler
|
|
788
|
+
.getSenderStats(producer.localId)
|
|
772
789
|
.then(callback)
|
|
773
790
|
.catch(errback);
|
|
774
791
|
});
|
|
@@ -826,7 +843,8 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
826
843
|
if (this._closed) {
|
|
827
844
|
return errback(new errors_1.InvalidStateError('closed'));
|
|
828
845
|
}
|
|
829
|
-
this._handler
|
|
846
|
+
this._handler
|
|
847
|
+
.getReceiverStats(consumer.localId)
|
|
830
848
|
.then(callback)
|
|
831
849
|
.catch(errback);
|
|
832
850
|
});
|
package/lib/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;gBAC9B,OAAO,EAAE,MAAM;CAa3B;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAa3B"}
|
package/lib/errors.js
CHANGED
|
@@ -8,13 +8,13 @@ class UnsupportedError extends Error {
|
|
|
8
8
|
constructor(message) {
|
|
9
9
|
super(message);
|
|
10
10
|
this.name = 'UnsupportedError';
|
|
11
|
-
if (Error.hasOwnProperty('captureStackTrace'))
|
|
12
|
-
|
|
11
|
+
if (Error.hasOwnProperty('captureStackTrace')) {
|
|
12
|
+
// Just in V8.
|
|
13
13
|
// @ts-ignore
|
|
14
14
|
Error.captureStackTrace(this, UnsupportedError);
|
|
15
15
|
}
|
|
16
16
|
else {
|
|
17
|
-
this.stack =
|
|
17
|
+
this.stack = new Error(message).stack;
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
}
|
|
@@ -26,13 +26,13 @@ class InvalidStateError extends Error {
|
|
|
26
26
|
constructor(message) {
|
|
27
27
|
super(message);
|
|
28
28
|
this.name = 'InvalidStateError';
|
|
29
|
-
if (Error.hasOwnProperty('captureStackTrace'))
|
|
30
|
-
|
|
29
|
+
if (Error.hasOwnProperty('captureStackTrace')) {
|
|
30
|
+
// Just in V8.
|
|
31
31
|
// @ts-ignore
|
|
32
32
|
Error.captureStackTrace(this, InvalidStateError);
|
|
33
33
|
}
|
|
34
34
|
else {
|
|
35
|
-
this.stack =
|
|
35
|
+
this.stack = new Error(message).stack;
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
}
|
|
@@ -24,11 +24,11 @@ export declare class Chrome111 extends HandlerInterface {
|
|
|
24
24
|
close(): void;
|
|
25
25
|
getNativeRtpCapabilities(): Promise<RtpCapabilities>;
|
|
26
26
|
getNativeSctpCapabilities(): Promise<SctpCapabilities>;
|
|
27
|
-
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities }: HandlerRunOptions): void;
|
|
27
|
+
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }: HandlerRunOptions): void;
|
|
28
28
|
updateIceServers(iceServers: RTCIceServer[]): Promise<void>;
|
|
29
29
|
restartIce(iceParameters: IceParameters): Promise<void>;
|
|
30
30
|
getTransportStats(): Promise<RTCStatsReport>;
|
|
31
|
-
send({ track, encodings, codecOptions, codec }: HandlerSendOptions): Promise<HandlerSendResult>;
|
|
31
|
+
send({ track, encodings, codecOptions, codec, }: HandlerSendOptions): Promise<HandlerSendResult>;
|
|
32
32
|
stopSending(localId: string): Promise<void>;
|
|
33
33
|
pauseSending(localId: string): Promise<void>;
|
|
34
34
|
resumeSending(localId: string): Promise<void>;
|
|
@@ -36,13 +36,13 @@ export declare class Chrome111 extends HandlerInterface {
|
|
|
36
36
|
setMaxSpatialLayer(localId: string, spatialLayer: number): Promise<void>;
|
|
37
37
|
setRtpEncodingParameters(localId: string, params: any): Promise<void>;
|
|
38
38
|
getSenderStats(localId: string): Promise<RTCStatsReport>;
|
|
39
|
-
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
39
|
+
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
40
40
|
receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
|
|
41
41
|
stopReceiving(localIds: string[]): Promise<void>;
|
|
42
42
|
pauseReceiving(localIds: string[]): Promise<void>;
|
|
43
43
|
resumeReceiving(localIds: string[]): Promise<void>;
|
|
44
44
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
45
|
-
receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
45
|
+
receiveDataChannel({ sctpStreamParameters, label, protocol, }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
46
46
|
private setupTransport;
|
|
47
47
|
private assertNotClosed;
|
|
48
48
|
private assertSendDirection;
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"Chrome111.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome111.ts"],"names":[],"mappings":"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"}
|