mediasoup-client 3.6.68 → 3.6.69
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 +3 -3
- package/lib/Consumer.d.ts.map +1 -1
- package/lib/Consumer.js +9 -9
- package/lib/DataConsumer.d.ts +1 -1
- package/lib/DataConsumer.d.ts.map +1 -1
- package/lib/DataConsumer.js +2 -2
- package/lib/DataProducer.d.ts +1 -1
- package/lib/DataProducer.d.ts.map +1 -1
- package/lib/DataProducer.js +2 -2
- package/lib/Device.d.ts +1 -1
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +5 -5
- package/lib/Producer.d.ts +3 -3
- package/lib/Producer.d.ts.map +1 -1
- package/lib/Producer.js +11 -11
- package/lib/Transport.d.ts +9 -9
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +44 -40
- package/lib/handlers/Chrome55.d.ts +3 -3
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +13 -13
- package/lib/handlers/Chrome67.d.ts +3 -3
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +18 -18
- package/lib/handlers/Chrome70.d.ts +3 -3
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +18 -18
- package/lib/handlers/Chrome74.d.ts +3 -3
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +22 -22
- package/lib/handlers/Edge11.d.ts +4 -4
- package/lib/handlers/Edge11.d.ts.map +1 -1
- package/lib/handlers/Edge11.js +11 -11
- package/lib/handlers/FakeHandler.d.ts +1 -1
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +5 -5
- package/lib/handlers/Firefox60.d.ts +3 -3
- package/lib/handlers/Firefox60.d.ts.map +1 -1
- package/lib/handlers/Firefox60.js +21 -21
- package/lib/handlers/ReactNative.d.ts +3 -3
- package/lib/handlers/ReactNative.d.ts.map +1 -1
- package/lib/handlers/ReactNative.js +13 -13
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts +3 -3
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts.map +1 -1
- package/lib/handlers/ReactNativeUnifiedPlan.js +22 -22
- package/lib/handlers/Safari11.d.ts +3 -3
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +18 -18
- package/lib/handlers/Safari12.d.ts +3 -3
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +22 -22
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/npm-scripts.js +1 -1
- package/package.json +8 -8
package/lib/Transport.js
CHANGED
|
@@ -62,7 +62,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
62
62
|
// Whether the Consumer for RTP probation has been created.
|
|
63
63
|
this._probatorConsumerCreated = false;
|
|
64
64
|
// AwaitQueue instance to make async tasks happen sequentially.
|
|
65
|
-
this._awaitQueue = new awaitqueue_1.AwaitQueue(
|
|
65
|
+
this._awaitQueue = new awaitqueue_1.AwaitQueue();
|
|
66
66
|
// Consumer creation tasks awaiting to be processed.
|
|
67
67
|
this._pendingConsumerTasks = [];
|
|
68
68
|
// Consumer creation in progress flag.
|
|
@@ -109,7 +109,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
109
109
|
extendedRtpCapabilities
|
|
110
110
|
});
|
|
111
111
|
this._appData = appData || {};
|
|
112
|
-
this.
|
|
112
|
+
this.handleHandler();
|
|
113
113
|
}
|
|
114
114
|
/**
|
|
115
115
|
* Transport id.
|
|
@@ -165,8 +165,8 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
165
165
|
return;
|
|
166
166
|
logger.debug('close()');
|
|
167
167
|
this._closed = true;
|
|
168
|
-
//
|
|
169
|
-
this._awaitQueue.
|
|
168
|
+
// Stop the AwaitQueue.
|
|
169
|
+
this._awaitQueue.stop();
|
|
170
170
|
// Close the handler.
|
|
171
171
|
this._handler.close();
|
|
172
172
|
// Close all Producers.
|
|
@@ -231,7 +231,9 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
231
231
|
*/
|
|
232
232
|
async produce({ track, encodings, codecOptions, codec, stopTracks = true, disableTrackOnPause = true, zeroRtpOnPause = false, appData = {} } = {}) {
|
|
233
233
|
logger.debug('produce() [track:%o]', track);
|
|
234
|
-
if (
|
|
234
|
+
if (this._closed)
|
|
235
|
+
throw new errors_1.InvalidStateError('closed');
|
|
236
|
+
else if (!track)
|
|
235
237
|
throw new TypeError('missing track');
|
|
236
238
|
else if (this._direction !== 'send')
|
|
237
239
|
throw new errors_1.UnsupportedError('not a sending Transport');
|
|
@@ -307,7 +309,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
307
309
|
appData
|
|
308
310
|
});
|
|
309
311
|
this._producers.set(producer.id, producer);
|
|
310
|
-
this.
|
|
312
|
+
this.handleProducer(producer);
|
|
311
313
|
// Emit observer event.
|
|
312
314
|
this._observer.safeEmit('newproducer', producer);
|
|
313
315
|
return producer;
|
|
@@ -366,7 +368,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
366
368
|
this._pendingConsumerTasks.push(consumerCreationTask);
|
|
367
369
|
// There is no Consumer creation in progress, create it now.
|
|
368
370
|
if (this._consumerCreationInProgress === false) {
|
|
369
|
-
this.
|
|
371
|
+
this.createPendingConsumers();
|
|
370
372
|
}
|
|
371
373
|
return consumerCreationTask.promise;
|
|
372
374
|
}
|
|
@@ -375,7 +377,9 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
375
377
|
*/
|
|
376
378
|
async produceData({ ordered = true, maxPacketLifeTime, maxRetransmits, label = '', protocol = '', appData = {} } = {}) {
|
|
377
379
|
logger.debug('produceData()');
|
|
378
|
-
if (this.
|
|
380
|
+
if (this._closed)
|
|
381
|
+
throw new errors_1.InvalidStateError('closed');
|
|
382
|
+
else if (this._direction !== 'send')
|
|
379
383
|
throw new errors_1.UnsupportedError('not a sending Transport');
|
|
380
384
|
else if (!this._maxSctpMessageSize)
|
|
381
385
|
throw new errors_1.UnsupportedError('SCTP not enabled by remote Transport');
|
|
@@ -408,7 +412,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
408
412
|
});
|
|
409
413
|
const dataProducer = new DataProducer_1.DataProducer({ id, dataChannel, sctpStreamParameters, appData });
|
|
410
414
|
this._dataProducers.set(dataProducer.id, dataProducer);
|
|
411
|
-
this.
|
|
415
|
+
this.handleDataProducer(dataProducer);
|
|
412
416
|
// Emit observer event.
|
|
413
417
|
this._observer.safeEmit('newdataproducer', dataProducer);
|
|
414
418
|
return dataProducer;
|
|
@@ -451,18 +455,18 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
451
455
|
appData
|
|
452
456
|
});
|
|
453
457
|
this._dataConsumers.set(dataConsumer.id, dataConsumer);
|
|
454
|
-
this.
|
|
458
|
+
this.handleDataConsumer(dataConsumer);
|
|
455
459
|
// Emit observer event.
|
|
456
460
|
this._observer.safeEmit('newdataconsumer', dataConsumer);
|
|
457
461
|
return dataConsumer;
|
|
458
462
|
}, 'transport.consumeData()');
|
|
459
463
|
}
|
|
460
464
|
// This method is guaranteed to never throw.
|
|
461
|
-
async
|
|
465
|
+
async createPendingConsumers() {
|
|
462
466
|
this._consumerCreationInProgress = true;
|
|
463
467
|
this._awaitQueue.push(async () => {
|
|
464
468
|
if (this._pendingConsumerTasks.length === 0) {
|
|
465
|
-
logger.debug('
|
|
469
|
+
logger.debug('createPendingConsumers() | there is no Consumer to be created');
|
|
466
470
|
return;
|
|
467
471
|
}
|
|
468
472
|
const pendingConsumerTasks = [...this._pendingConsumerTasks];
|
|
@@ -498,7 +502,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
498
502
|
appData
|
|
499
503
|
});
|
|
500
504
|
this._consumers.set(consumer.id, consumer);
|
|
501
|
-
this.
|
|
505
|
+
this.handleConsumer(consumer);
|
|
502
506
|
// If this is the first video Consumer and the Consumer for RTP probation
|
|
503
507
|
// has not yet been created, it's time to create it.
|
|
504
508
|
if (!this._probatorConsumerCreated && !videoConsumerForProbator && kind === 'video') {
|
|
@@ -523,29 +527,29 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
523
527
|
kind: 'video',
|
|
524
528
|
rtpParameters: probatorRtpParameters
|
|
525
529
|
}]);
|
|
526
|
-
logger.debug('
|
|
530
|
+
logger.debug('createPendingConsumers() | Consumer for RTP probation created');
|
|
527
531
|
this._probatorConsumerCreated = true;
|
|
528
532
|
}
|
|
529
533
|
catch (error) {
|
|
530
|
-
logger.error('
|
|
534
|
+
logger.error('createPendingConsumers() | failed to create Consumer for RTP probation:%o', error);
|
|
531
535
|
}
|
|
532
536
|
}
|
|
533
|
-
}, 'transport.
|
|
537
|
+
}, 'transport.createPendingConsumers()')
|
|
534
538
|
.then(() => {
|
|
535
539
|
this._consumerCreationInProgress = false;
|
|
536
540
|
// There are pending Consumer tasks, enqueue their creation.
|
|
537
541
|
if (this._pendingConsumerTasks.length > 0) {
|
|
538
|
-
this.
|
|
542
|
+
this.createPendingConsumers();
|
|
539
543
|
}
|
|
540
544
|
})
|
|
541
545
|
// NOTE: We only get here when the await queue is closed.
|
|
542
546
|
.catch(() => { });
|
|
543
547
|
}
|
|
544
|
-
|
|
548
|
+
pausePendingConsumers() {
|
|
545
549
|
this._consumerPauseInProgress = true;
|
|
546
550
|
this._awaitQueue.push(async () => {
|
|
547
551
|
if (this._pendingPauseConsumers.size === 0) {
|
|
548
|
-
logger.debug('
|
|
552
|
+
logger.debug('pausePendingConsumers() | there is no Consumer to be paused');
|
|
549
553
|
return;
|
|
550
554
|
}
|
|
551
555
|
const pendingPauseConsumers = Array.from(this._pendingPauseConsumers.values());
|
|
@@ -557,24 +561,24 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
557
561
|
await this._handler.pauseReceiving(localIds);
|
|
558
562
|
}
|
|
559
563
|
catch (error) {
|
|
560
|
-
logger.error('
|
|
564
|
+
logger.error('pausePendingConsumers() | failed to pause Consumers:', error);
|
|
561
565
|
}
|
|
562
|
-
}, 'transport.
|
|
566
|
+
}, 'transport.pausePendingConsumers')
|
|
563
567
|
.then(() => {
|
|
564
568
|
this._consumerPauseInProgress = false;
|
|
565
569
|
// There are pending Consumers to be paused, do it.
|
|
566
570
|
if (this._pendingPauseConsumers.size > 0) {
|
|
567
|
-
this.
|
|
571
|
+
this.pausePendingConsumers();
|
|
568
572
|
}
|
|
569
573
|
})
|
|
570
574
|
// NOTE: We only get here when the await queue is closed.
|
|
571
575
|
.catch(() => { });
|
|
572
576
|
}
|
|
573
|
-
|
|
577
|
+
resumePendingConsumers() {
|
|
574
578
|
this._consumerResumeInProgress = true;
|
|
575
579
|
this._awaitQueue.push(async () => {
|
|
576
580
|
if (this._pendingResumeConsumers.size === 0) {
|
|
577
|
-
logger.debug('
|
|
581
|
+
logger.debug('resumePendingConsumers() | there is no Consumer to be resumed');
|
|
578
582
|
return;
|
|
579
583
|
}
|
|
580
584
|
const pendingResumeConsumers = Array.from(this._pendingResumeConsumers.values());
|
|
@@ -586,24 +590,24 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
586
590
|
await this._handler.resumeReceiving(localIds);
|
|
587
591
|
}
|
|
588
592
|
catch (error) {
|
|
589
|
-
logger.error('
|
|
593
|
+
logger.error('resumePendingConsumers() | failed to resume Consumers:', error);
|
|
590
594
|
}
|
|
591
|
-
}, 'transport.
|
|
595
|
+
}, 'transport.resumePendingConsumers')
|
|
592
596
|
.then(() => {
|
|
593
597
|
this._consumerResumeInProgress = false;
|
|
594
598
|
// There are pending Consumer to be resumed, do it.
|
|
595
599
|
if (this._pendingResumeConsumers.size > 0) {
|
|
596
|
-
this.
|
|
600
|
+
this.resumePendingConsumers();
|
|
597
601
|
}
|
|
598
602
|
})
|
|
599
603
|
// NOTE: We only get here when the await queue is closed.
|
|
600
604
|
.catch(() => { });
|
|
601
605
|
}
|
|
602
|
-
|
|
606
|
+
closePendingConsumers() {
|
|
603
607
|
this._consumerCloseInProgress = true;
|
|
604
608
|
this._awaitQueue.push(async () => {
|
|
605
609
|
if (this._pendingCloseConsumers.size === 0) {
|
|
606
|
-
logger.debug('
|
|
610
|
+
logger.debug('closePendingConsumers() | there is no Consumer to be closed');
|
|
607
611
|
return;
|
|
608
612
|
}
|
|
609
613
|
const pendingCloseConsumers = Array.from(this._pendingCloseConsumers.values());
|
|
@@ -613,20 +617,20 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
613
617
|
await this._handler.stopReceiving(pendingCloseConsumers.map((consumer) => consumer.localId));
|
|
614
618
|
}
|
|
615
619
|
catch (error) {
|
|
616
|
-
logger.error('
|
|
620
|
+
logger.error('closePendingConsumers() | failed to close Consumers:', error);
|
|
617
621
|
}
|
|
618
|
-
}, 'transport.
|
|
622
|
+
}, 'transport.closePendingConsumers')
|
|
619
623
|
.then(() => {
|
|
620
624
|
this._consumerCloseInProgress = false;
|
|
621
625
|
// There are pending Consumer to be resumed, do it.
|
|
622
626
|
if (this._pendingCloseConsumers.size > 0) {
|
|
623
|
-
this.
|
|
627
|
+
this.closePendingConsumers();
|
|
624
628
|
}
|
|
625
629
|
})
|
|
626
630
|
// NOTE: We only get here when the await queue is closed.
|
|
627
631
|
.catch(() => { });
|
|
628
632
|
}
|
|
629
|
-
|
|
633
|
+
handleHandler() {
|
|
630
634
|
const handler = this._handler;
|
|
631
635
|
handler.on('@connect', ({ dtlsParameters }, callback, errback) => {
|
|
632
636
|
if (this._closed) {
|
|
@@ -644,7 +648,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
644
648
|
this.safeEmit('connectionstatechange', connectionState);
|
|
645
649
|
});
|
|
646
650
|
}
|
|
647
|
-
|
|
651
|
+
handleProducer(producer) {
|
|
648
652
|
producer.on('@close', () => {
|
|
649
653
|
this._producers.delete(producer.id);
|
|
650
654
|
if (this._closed)
|
|
@@ -685,7 +689,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
685
689
|
.catch(errback);
|
|
686
690
|
});
|
|
687
691
|
}
|
|
688
|
-
|
|
692
|
+
handleConsumer(consumer) {
|
|
689
693
|
consumer.on('@close', () => {
|
|
690
694
|
this._consumers.delete(consumer.id);
|
|
691
695
|
this._pendingPauseConsumers.delete(consumer.id);
|
|
@@ -696,7 +700,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
696
700
|
this._pendingCloseConsumers.set(consumer.id, consumer);
|
|
697
701
|
// There is no Consumer close in progress, do it now.
|
|
698
702
|
if (this._consumerCloseInProgress === false) {
|
|
699
|
-
this.
|
|
703
|
+
this.closePendingConsumers();
|
|
700
704
|
}
|
|
701
705
|
});
|
|
702
706
|
consumer.on('@pause', () => {
|
|
@@ -708,7 +712,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
708
712
|
this._pendingPauseConsumers.set(consumer.id, consumer);
|
|
709
713
|
// There is no Consumer pause in progress, do it now.
|
|
710
714
|
if (this._consumerPauseInProgress === false) {
|
|
711
|
-
this.
|
|
715
|
+
this.pausePendingConsumers();
|
|
712
716
|
}
|
|
713
717
|
});
|
|
714
718
|
consumer.on('@resume', () => {
|
|
@@ -720,7 +724,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
720
724
|
this._pendingResumeConsumers.set(consumer.id, consumer);
|
|
721
725
|
// There is no Consumer resume in progress, do it now.
|
|
722
726
|
if (this._consumerResumeInProgress === false) {
|
|
723
|
-
this.
|
|
727
|
+
this.resumePendingConsumers();
|
|
724
728
|
}
|
|
725
729
|
});
|
|
726
730
|
consumer.on('@getstats', (callback, errback) => {
|
|
@@ -731,12 +735,12 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
731
735
|
.catch(errback);
|
|
732
736
|
});
|
|
733
737
|
}
|
|
734
|
-
|
|
738
|
+
handleDataProducer(dataProducer) {
|
|
735
739
|
dataProducer.on('@close', () => {
|
|
736
740
|
this._dataProducers.delete(dataProducer.id);
|
|
737
741
|
});
|
|
738
742
|
}
|
|
739
|
-
|
|
743
|
+
handleDataConsumer(dataConsumer) {
|
|
740
744
|
dataConsumer.on('@close', () => {
|
|
741
745
|
this._dataConsumers.delete(dataConsumer.id);
|
|
742
746
|
});
|
|
@@ -44,8 +44,8 @@ export declare class Chrome55 extends HandlerInterface {
|
|
|
44
44
|
resumeReceiving(localIds: string[]): Promise<void>;
|
|
45
45
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
46
46
|
receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
47
|
-
private
|
|
48
|
-
private
|
|
49
|
-
private
|
|
47
|
+
private setupTransport;
|
|
48
|
+
private assertSendDirection;
|
|
49
|
+
private assertRecvDirection;
|
|
50
50
|
}
|
|
51
51
|
//# sourceMappingURL=Chrome55.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome55.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome55.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Chrome55.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome55.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/Chrome55.js
CHANGED
|
@@ -206,7 +206,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
206
206
|
}
|
|
207
207
|
async send({ track, encodings, codecOptions, codec }) {
|
|
208
208
|
var _a;
|
|
209
|
-
this.
|
|
209
|
+
this.assertSendDirection();
|
|
210
210
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
211
211
|
if (codec) {
|
|
212
212
|
logger.warn('send() | codec selection is not available in %s handler', this.name);
|
|
@@ -223,7 +223,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
223
223
|
sendingRemoteRtpParameters.codecs =
|
|
224
224
|
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
|
|
225
225
|
if (!this._transportReady) {
|
|
226
|
-
await this.
|
|
226
|
+
await this.setupTransport({
|
|
227
227
|
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
228
228
|
localSdpObject
|
|
229
229
|
});
|
|
@@ -284,7 +284,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
284
284
|
};
|
|
285
285
|
}
|
|
286
286
|
async stopSending(localId) {
|
|
287
|
-
this.
|
|
287
|
+
this.assertSendDirection();
|
|
288
288
|
logger.debug('stopSending() [localId:%s]', localId);
|
|
289
289
|
const track = this._mapSendLocalIdTrack.get(localId);
|
|
290
290
|
if (!track)
|
|
@@ -339,7 +339,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
339
339
|
}
|
|
340
340
|
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
341
341
|
var _a;
|
|
342
|
-
this.
|
|
342
|
+
this.assertSendDirection();
|
|
343
343
|
const options = {
|
|
344
344
|
negotiated: true,
|
|
345
345
|
id: this._nextSendSctpStreamId,
|
|
@@ -362,7 +362,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
362
362
|
const offerMediaObject = localSdpObject.media
|
|
363
363
|
.find((m) => m.type === 'application');
|
|
364
364
|
if (!this._transportReady) {
|
|
365
|
-
await this.
|
|
365
|
+
await this.setupTransport({
|
|
366
366
|
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
367
367
|
localSdpObject
|
|
368
368
|
});
|
|
@@ -385,7 +385,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
385
385
|
}
|
|
386
386
|
async receive(optionsList) {
|
|
387
387
|
var _a;
|
|
388
|
-
this.
|
|
388
|
+
this.assertRecvDirection();
|
|
389
389
|
const results = [];
|
|
390
390
|
for (const options of optionsList) {
|
|
391
391
|
const { trackId, kind, rtpParameters, streamId } = options;
|
|
@@ -418,7 +418,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
418
418
|
}
|
|
419
419
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
420
420
|
if (!this._transportReady) {
|
|
421
|
-
await this.
|
|
421
|
+
await this.setupTransport({
|
|
422
422
|
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
423
423
|
localSdpObject
|
|
424
424
|
});
|
|
@@ -442,7 +442,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
442
442
|
return results;
|
|
443
443
|
}
|
|
444
444
|
async stopReceiving(localIds) {
|
|
445
|
-
this.
|
|
445
|
+
this.assertRecvDirection();
|
|
446
446
|
for (const localId of localIds) {
|
|
447
447
|
logger.debug('stopReceiving() [localId:%s]', localId);
|
|
448
448
|
const { mid, rtpParameters } = this._mapRecvLocalIdInfo.get(localId) || {};
|
|
@@ -473,7 +473,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
473
473
|
}
|
|
474
474
|
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
475
475
|
var _a;
|
|
476
|
-
this.
|
|
476
|
+
this.assertRecvDirection();
|
|
477
477
|
const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
|
|
478
478
|
const options = {
|
|
479
479
|
negotiated: true,
|
|
@@ -496,7 +496,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
496
496
|
const answer = await this._pc.createAnswer();
|
|
497
497
|
if (!this._transportReady) {
|
|
498
498
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
499
|
-
await this.
|
|
499
|
+
await this.setupTransport({
|
|
500
500
|
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
501
501
|
localSdpObject
|
|
502
502
|
});
|
|
@@ -507,7 +507,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
507
507
|
}
|
|
508
508
|
return { dataChannel };
|
|
509
509
|
}
|
|
510
|
-
async
|
|
510
|
+
async setupTransport({ localDtlsRole, localSdpObject }) {
|
|
511
511
|
if (!localSdpObject)
|
|
512
512
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
513
513
|
// Get our local DTLS parameters.
|
|
@@ -522,12 +522,12 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
522
522
|
});
|
|
523
523
|
this._transportReady = true;
|
|
524
524
|
}
|
|
525
|
-
|
|
525
|
+
assertSendDirection() {
|
|
526
526
|
if (this._direction !== 'send') {
|
|
527
527
|
throw new Error('method can just be called for handlers with "send" direction');
|
|
528
528
|
}
|
|
529
529
|
}
|
|
530
|
-
|
|
530
|
+
assertRecvDirection() {
|
|
531
531
|
if (this._direction !== 'recv') {
|
|
532
532
|
throw new Error('method can just be called for handlers with "recv" direction');
|
|
533
533
|
}
|
|
@@ -44,8 +44,8 @@ export declare class Chrome67 extends HandlerInterface {
|
|
|
44
44
|
resumeReceiving(localIds: string[]): Promise<void>;
|
|
45
45
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
46
46
|
receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
47
|
-
private
|
|
48
|
-
private
|
|
49
|
-
private
|
|
47
|
+
private setupTransport;
|
|
48
|
+
private assertSendDirection;
|
|
49
|
+
private assertRecvDirection;
|
|
50
50
|
}
|
|
51
51
|
//# sourceMappingURL=Chrome67.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome67.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome67.ts"],"names":[],"mappings":"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
|
|
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
|
@@ -205,7 +205,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
205
205
|
}
|
|
206
206
|
async send({ track, encodings, codecOptions, codec }) {
|
|
207
207
|
var _a;
|
|
208
|
-
this.
|
|
208
|
+
this.assertSendDirection();
|
|
209
209
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
210
210
|
if (codec) {
|
|
211
211
|
logger.warn('send() | codec selection is not available in %s handler', this.name);
|
|
@@ -222,7 +222,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
222
222
|
sendingRemoteRtpParameters.codecs =
|
|
223
223
|
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
|
|
224
224
|
if (!this._transportReady) {
|
|
225
|
-
await this.
|
|
225
|
+
await this.setupTransport({
|
|
226
226
|
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
227
227
|
localSdpObject
|
|
228
228
|
});
|
|
@@ -287,7 +287,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
287
287
|
};
|
|
288
288
|
}
|
|
289
289
|
async stopSending(localId) {
|
|
290
|
-
this.
|
|
290
|
+
this.assertSendDirection();
|
|
291
291
|
logger.debug('stopSending() [localId:%s]', localId);
|
|
292
292
|
const rtpSender = this._mapSendLocalIdRtpSender.get(localId);
|
|
293
293
|
if (!rtpSender)
|
|
@@ -325,7 +325,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
325
325
|
// Unimplemented.
|
|
326
326
|
}
|
|
327
327
|
async replaceTrack(localId, track) {
|
|
328
|
-
this.
|
|
328
|
+
this.assertSendDirection();
|
|
329
329
|
if (track) {
|
|
330
330
|
logger.debug('replaceTrack() [localId:%s, track.id:%s]', localId, track.id);
|
|
331
331
|
}
|
|
@@ -345,7 +345,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
345
345
|
this._sendStream.addTrack(track);
|
|
346
346
|
}
|
|
347
347
|
async setMaxSpatialLayer(localId, spatialLayer) {
|
|
348
|
-
this.
|
|
348
|
+
this.assertSendDirection();
|
|
349
349
|
logger.debug('setMaxSpatialLayer() [localId:%s, spatialLayer:%s]', localId, spatialLayer);
|
|
350
350
|
const rtpSender = this._mapSendLocalIdRtpSender.get(localId);
|
|
351
351
|
if (!rtpSender)
|
|
@@ -360,7 +360,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
360
360
|
await rtpSender.setParameters(parameters);
|
|
361
361
|
}
|
|
362
362
|
async setRtpEncodingParameters(localId, params) {
|
|
363
|
-
this.
|
|
363
|
+
this.assertSendDirection();
|
|
364
364
|
logger.debug('setRtpEncodingParameters() [localId:%s, params:%o]', localId, params);
|
|
365
365
|
const rtpSender = this._mapSendLocalIdRtpSender.get(localId);
|
|
366
366
|
if (!rtpSender)
|
|
@@ -372,7 +372,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
372
372
|
await rtpSender.setParameters(parameters);
|
|
373
373
|
}
|
|
374
374
|
async getSenderStats(localId) {
|
|
375
|
-
this.
|
|
375
|
+
this.assertSendDirection();
|
|
376
376
|
const rtpSender = this._mapSendLocalIdRtpSender.get(localId);
|
|
377
377
|
if (!rtpSender)
|
|
378
378
|
throw new Error('associated RTCRtpSender not found');
|
|
@@ -380,7 +380,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
380
380
|
}
|
|
381
381
|
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
382
382
|
var _a;
|
|
383
|
-
this.
|
|
383
|
+
this.assertSendDirection();
|
|
384
384
|
const options = {
|
|
385
385
|
negotiated: true,
|
|
386
386
|
id: this._nextSendSctpStreamId,
|
|
@@ -403,7 +403,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
403
403
|
const offerMediaObject = localSdpObject.media
|
|
404
404
|
.find((m) => m.type === 'application');
|
|
405
405
|
if (!this._transportReady) {
|
|
406
|
-
await this.
|
|
406
|
+
await this.setupTransport({
|
|
407
407
|
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
408
408
|
localSdpObject
|
|
409
409
|
});
|
|
@@ -426,7 +426,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
426
426
|
}
|
|
427
427
|
async receive(optionsList) {
|
|
428
428
|
var _a;
|
|
429
|
-
this.
|
|
429
|
+
this.assertRecvDirection();
|
|
430
430
|
const results = [];
|
|
431
431
|
for (const options of optionsList) {
|
|
432
432
|
const { trackId, kind, rtpParameters, streamId } = options;
|
|
@@ -459,7 +459,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
459
459
|
}
|
|
460
460
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
461
461
|
if (!this._transportReady) {
|
|
462
|
-
await this.
|
|
462
|
+
await this.setupTransport({
|
|
463
463
|
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
464
464
|
localSdpObject
|
|
465
465
|
});
|
|
@@ -485,7 +485,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
485
485
|
return results;
|
|
486
486
|
}
|
|
487
487
|
async stopReceiving(localIds) {
|
|
488
|
-
this.
|
|
488
|
+
this.assertRecvDirection();
|
|
489
489
|
for (const localId of localIds) {
|
|
490
490
|
logger.debug('stopReceiving() [localId:%s]', localId);
|
|
491
491
|
const { mid, rtpParameters } = this._mapRecvLocalIdInfo.get(localId) || {};
|
|
@@ -511,7 +511,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
511
511
|
// Unimplemented.
|
|
512
512
|
}
|
|
513
513
|
async getReceiverStats(localId) {
|
|
514
|
-
this.
|
|
514
|
+
this.assertRecvDirection();
|
|
515
515
|
const { rtpReceiver } = this._mapRecvLocalIdInfo.get(localId) || {};
|
|
516
516
|
if (!rtpReceiver)
|
|
517
517
|
throw new Error('associated RTCRtpReceiver not found');
|
|
@@ -519,7 +519,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
519
519
|
}
|
|
520
520
|
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
521
521
|
var _a;
|
|
522
|
-
this.
|
|
522
|
+
this.assertRecvDirection();
|
|
523
523
|
const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
|
|
524
524
|
const options = {
|
|
525
525
|
negotiated: true,
|
|
@@ -542,7 +542,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
542
542
|
const answer = await this._pc.createAnswer();
|
|
543
543
|
if (!this._transportReady) {
|
|
544
544
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
545
|
-
await this.
|
|
545
|
+
await this.setupTransport({
|
|
546
546
|
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
547
547
|
localSdpObject
|
|
548
548
|
});
|
|
@@ -553,7 +553,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
553
553
|
}
|
|
554
554
|
return { dataChannel };
|
|
555
555
|
}
|
|
556
|
-
async
|
|
556
|
+
async setupTransport({ localDtlsRole, localSdpObject }) {
|
|
557
557
|
if (!localSdpObject)
|
|
558
558
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
559
559
|
// Get our local DTLS parameters.
|
|
@@ -568,12 +568,12 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
568
568
|
});
|
|
569
569
|
this._transportReady = true;
|
|
570
570
|
}
|
|
571
|
-
|
|
571
|
+
assertSendDirection() {
|
|
572
572
|
if (this._direction !== 'send') {
|
|
573
573
|
throw new Error('method can just be called for handlers with "send" direction');
|
|
574
574
|
}
|
|
575
575
|
}
|
|
576
|
-
|
|
576
|
+
assertRecvDirection() {
|
|
577
577
|
if (this._direction !== 'recv') {
|
|
578
578
|
throw new Error('method can just be called for handlers with "recv" direction');
|
|
579
579
|
}
|
|
@@ -42,8 +42,8 @@ export declare class Chrome70 extends HandlerInterface {
|
|
|
42
42
|
resumeReceiving(localIds: string[]): Promise<void>;
|
|
43
43
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
44
44
|
receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
45
|
-
private
|
|
46
|
-
private
|
|
47
|
-
private
|
|
45
|
+
private setupTransport;
|
|
46
|
+
private assertSendDirection;
|
|
47
|
+
private assertRecvDirection;
|
|
48
48
|
}
|
|
49
49
|
//# sourceMappingURL=Chrome70.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome70.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome70.ts"],"names":[],"mappings":"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
|
|
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;IAgDvD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAK5C,IAAI,CACT,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,kBAAkB,GAC3D,OAAO,CAAC,iBAAiB,CAAC;IAwLvB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgD3C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7C,YAAY,CACjB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAC7C,OAAO,CAAC,IAAI,CAAC;IAsBV,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BxE,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBrE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAYxD,eAAe,CACpB,EACC,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,KAAK,EACL,QAAQ,EACR,EAAE,6BAA6B,GAC9B,OAAO,CAAC,4BAA4B,CAAC;IAuElC,OAAO,CACZ,WAAW,EAAE,qBAAqB,EAAE,GACjC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA8F7B,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsChD,cAAc,CAEnB,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7B,eAAe,CAEpB,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7B,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAY1D,kBAAkB,CACvB,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,gCAAgC,GACzE,OAAO,CAAC,+BAA+B,CAAC;YAiE7B,cAAc;IAuC5B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,mBAAmB;CAQ3B"}
|