mediasoup-client 3.6.67 → 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 +4 -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 +10 -10
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +49 -43
- package/lib/handlers/Chrome55.d.ts +3 -3
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +16 -17
- package/lib/handlers/Chrome67.d.ts +3 -3
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +21 -23
- package/lib/handlers/Chrome70.d.ts +3 -3
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +20 -20
- package/lib/handlers/Chrome74.d.ts +3 -3
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +24 -24
- 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 +23 -23
- package/lib/handlers/HandlerInterface.d.ts +7 -0
- package/lib/handlers/HandlerInterface.d.ts.map +1 -1
- package/lib/handlers/ReactNative.d.ts +3 -3
- package/lib/handlers/ReactNative.d.ts.map +1 -1
- package/lib/handlers/ReactNative.js +14 -14
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts +3 -3
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts.map +1 -1
- package/lib/handlers/ReactNativeUnifiedPlan.js +24 -24
- package/lib/handlers/Safari11.d.ts +3 -3
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +20 -20
- package/lib/handlers/Safari12.d.ts +3 -3
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +24 -24
- 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;
|
|
@@ -333,7 +335,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
333
335
|
/**
|
|
334
336
|
* Create a Consumer to consume a remote Producer.
|
|
335
337
|
*/
|
|
336
|
-
async consume({ id, producerId, kind, rtpParameters, appData = {} }) {
|
|
338
|
+
async consume({ id, producerId, kind, rtpParameters, streamId, appData = {} }) {
|
|
337
339
|
logger.debug('consume()');
|
|
338
340
|
rtpParameters = utils.clone(rtpParameters, undefined);
|
|
339
341
|
if (this._closed)
|
|
@@ -359,13 +361,14 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
359
361
|
producerId,
|
|
360
362
|
kind,
|
|
361
363
|
rtpParameters,
|
|
364
|
+
streamId,
|
|
362
365
|
appData
|
|
363
366
|
});
|
|
364
367
|
// Store the Consumer creation task.
|
|
365
368
|
this._pendingConsumerTasks.push(consumerCreationTask);
|
|
366
369
|
// There is no Consumer creation in progress, create it now.
|
|
367
370
|
if (this._consumerCreationInProgress === false) {
|
|
368
|
-
this.
|
|
371
|
+
this.createPendingConsumers();
|
|
369
372
|
}
|
|
370
373
|
return consumerCreationTask.promise;
|
|
371
374
|
}
|
|
@@ -374,7 +377,9 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
374
377
|
*/
|
|
375
378
|
async produceData({ ordered = true, maxPacketLifeTime, maxRetransmits, label = '', protocol = '', appData = {} } = {}) {
|
|
376
379
|
logger.debug('produceData()');
|
|
377
|
-
if (this.
|
|
380
|
+
if (this._closed)
|
|
381
|
+
throw new errors_1.InvalidStateError('closed');
|
|
382
|
+
else if (this._direction !== 'send')
|
|
378
383
|
throw new errors_1.UnsupportedError('not a sending Transport');
|
|
379
384
|
else if (!this._maxSctpMessageSize)
|
|
380
385
|
throw new errors_1.UnsupportedError('SCTP not enabled by remote Transport');
|
|
@@ -407,7 +412,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
407
412
|
});
|
|
408
413
|
const dataProducer = new DataProducer_1.DataProducer({ id, dataChannel, sctpStreamParameters, appData });
|
|
409
414
|
this._dataProducers.set(dataProducer.id, dataProducer);
|
|
410
|
-
this.
|
|
415
|
+
this.handleDataProducer(dataProducer);
|
|
411
416
|
// Emit observer event.
|
|
412
417
|
this._observer.safeEmit('newdataproducer', dataProducer);
|
|
413
418
|
return dataProducer;
|
|
@@ -450,18 +455,18 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
450
455
|
appData
|
|
451
456
|
});
|
|
452
457
|
this._dataConsumers.set(dataConsumer.id, dataConsumer);
|
|
453
|
-
this.
|
|
458
|
+
this.handleDataConsumer(dataConsumer);
|
|
454
459
|
// Emit observer event.
|
|
455
460
|
this._observer.safeEmit('newdataconsumer', dataConsumer);
|
|
456
461
|
return dataConsumer;
|
|
457
462
|
}, 'transport.consumeData()');
|
|
458
463
|
}
|
|
459
464
|
// This method is guaranteed to never throw.
|
|
460
|
-
async
|
|
465
|
+
async createPendingConsumers() {
|
|
461
466
|
this._consumerCreationInProgress = true;
|
|
462
467
|
this._awaitQueue.push(async () => {
|
|
463
468
|
if (this._pendingConsumerTasks.length === 0) {
|
|
464
|
-
logger.debug('
|
|
469
|
+
logger.debug('createPendingConsumers() | there is no Consumer to be created');
|
|
465
470
|
return;
|
|
466
471
|
}
|
|
467
472
|
const pendingConsumerTasks = [...this._pendingConsumerTasks];
|
|
@@ -472,11 +477,12 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
472
477
|
// Fill options list.
|
|
473
478
|
const optionsList = [];
|
|
474
479
|
for (const task of pendingConsumerTasks) {
|
|
475
|
-
const { id, kind, rtpParameters } = task.consumerOptions;
|
|
480
|
+
const { id, kind, rtpParameters, streamId } = task.consumerOptions;
|
|
476
481
|
optionsList.push({
|
|
477
482
|
trackId: id,
|
|
478
483
|
kind: kind,
|
|
479
|
-
rtpParameters
|
|
484
|
+
rtpParameters,
|
|
485
|
+
streamId
|
|
480
486
|
});
|
|
481
487
|
}
|
|
482
488
|
try {
|
|
@@ -496,7 +502,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
496
502
|
appData
|
|
497
503
|
});
|
|
498
504
|
this._consumers.set(consumer.id, consumer);
|
|
499
|
-
this.
|
|
505
|
+
this.handleConsumer(consumer);
|
|
500
506
|
// If this is the first video Consumer and the Consumer for RTP probation
|
|
501
507
|
// has not yet been created, it's time to create it.
|
|
502
508
|
if (!this._probatorConsumerCreated && !videoConsumerForProbator && kind === 'video') {
|
|
@@ -521,29 +527,29 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
521
527
|
kind: 'video',
|
|
522
528
|
rtpParameters: probatorRtpParameters
|
|
523
529
|
}]);
|
|
524
|
-
logger.debug('
|
|
530
|
+
logger.debug('createPendingConsumers() | Consumer for RTP probation created');
|
|
525
531
|
this._probatorConsumerCreated = true;
|
|
526
532
|
}
|
|
527
533
|
catch (error) {
|
|
528
|
-
logger.error('
|
|
534
|
+
logger.error('createPendingConsumers() | failed to create Consumer for RTP probation:%o', error);
|
|
529
535
|
}
|
|
530
536
|
}
|
|
531
|
-
}, 'transport.
|
|
537
|
+
}, 'transport.createPendingConsumers()')
|
|
532
538
|
.then(() => {
|
|
533
539
|
this._consumerCreationInProgress = false;
|
|
534
540
|
// There are pending Consumer tasks, enqueue their creation.
|
|
535
541
|
if (this._pendingConsumerTasks.length > 0) {
|
|
536
|
-
this.
|
|
542
|
+
this.createPendingConsumers();
|
|
537
543
|
}
|
|
538
544
|
})
|
|
539
545
|
// NOTE: We only get here when the await queue is closed.
|
|
540
546
|
.catch(() => { });
|
|
541
547
|
}
|
|
542
|
-
|
|
548
|
+
pausePendingConsumers() {
|
|
543
549
|
this._consumerPauseInProgress = true;
|
|
544
550
|
this._awaitQueue.push(async () => {
|
|
545
551
|
if (this._pendingPauseConsumers.size === 0) {
|
|
546
|
-
logger.debug('
|
|
552
|
+
logger.debug('pausePendingConsumers() | there is no Consumer to be paused');
|
|
547
553
|
return;
|
|
548
554
|
}
|
|
549
555
|
const pendingPauseConsumers = Array.from(this._pendingPauseConsumers.values());
|
|
@@ -555,24 +561,24 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
555
561
|
await this._handler.pauseReceiving(localIds);
|
|
556
562
|
}
|
|
557
563
|
catch (error) {
|
|
558
|
-
logger.error('
|
|
564
|
+
logger.error('pausePendingConsumers() | failed to pause Consumers:', error);
|
|
559
565
|
}
|
|
560
|
-
}, 'transport.
|
|
566
|
+
}, 'transport.pausePendingConsumers')
|
|
561
567
|
.then(() => {
|
|
562
568
|
this._consumerPauseInProgress = false;
|
|
563
569
|
// There are pending Consumers to be paused, do it.
|
|
564
570
|
if (this._pendingPauseConsumers.size > 0) {
|
|
565
|
-
this.
|
|
571
|
+
this.pausePendingConsumers();
|
|
566
572
|
}
|
|
567
573
|
})
|
|
568
574
|
// NOTE: We only get here when the await queue is closed.
|
|
569
575
|
.catch(() => { });
|
|
570
576
|
}
|
|
571
|
-
|
|
577
|
+
resumePendingConsumers() {
|
|
572
578
|
this._consumerResumeInProgress = true;
|
|
573
579
|
this._awaitQueue.push(async () => {
|
|
574
580
|
if (this._pendingResumeConsumers.size === 0) {
|
|
575
|
-
logger.debug('
|
|
581
|
+
logger.debug('resumePendingConsumers() | there is no Consumer to be resumed');
|
|
576
582
|
return;
|
|
577
583
|
}
|
|
578
584
|
const pendingResumeConsumers = Array.from(this._pendingResumeConsumers.values());
|
|
@@ -584,24 +590,24 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
584
590
|
await this._handler.resumeReceiving(localIds);
|
|
585
591
|
}
|
|
586
592
|
catch (error) {
|
|
587
|
-
logger.error('
|
|
593
|
+
logger.error('resumePendingConsumers() | failed to resume Consumers:', error);
|
|
588
594
|
}
|
|
589
|
-
}, 'transport.
|
|
595
|
+
}, 'transport.resumePendingConsumers')
|
|
590
596
|
.then(() => {
|
|
591
597
|
this._consumerResumeInProgress = false;
|
|
592
598
|
// There are pending Consumer to be resumed, do it.
|
|
593
599
|
if (this._pendingResumeConsumers.size > 0) {
|
|
594
|
-
this.
|
|
600
|
+
this.resumePendingConsumers();
|
|
595
601
|
}
|
|
596
602
|
})
|
|
597
603
|
// NOTE: We only get here when the await queue is closed.
|
|
598
604
|
.catch(() => { });
|
|
599
605
|
}
|
|
600
|
-
|
|
606
|
+
closePendingConsumers() {
|
|
601
607
|
this._consumerCloseInProgress = true;
|
|
602
608
|
this._awaitQueue.push(async () => {
|
|
603
609
|
if (this._pendingCloseConsumers.size === 0) {
|
|
604
|
-
logger.debug('
|
|
610
|
+
logger.debug('closePendingConsumers() | there is no Consumer to be closed');
|
|
605
611
|
return;
|
|
606
612
|
}
|
|
607
613
|
const pendingCloseConsumers = Array.from(this._pendingCloseConsumers.values());
|
|
@@ -611,20 +617,20 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
611
617
|
await this._handler.stopReceiving(pendingCloseConsumers.map((consumer) => consumer.localId));
|
|
612
618
|
}
|
|
613
619
|
catch (error) {
|
|
614
|
-
logger.error('
|
|
620
|
+
logger.error('closePendingConsumers() | failed to close Consumers:', error);
|
|
615
621
|
}
|
|
616
|
-
}, 'transport.
|
|
622
|
+
}, 'transport.closePendingConsumers')
|
|
617
623
|
.then(() => {
|
|
618
624
|
this._consumerCloseInProgress = false;
|
|
619
625
|
// There are pending Consumer to be resumed, do it.
|
|
620
626
|
if (this._pendingCloseConsumers.size > 0) {
|
|
621
|
-
this.
|
|
627
|
+
this.closePendingConsumers();
|
|
622
628
|
}
|
|
623
629
|
})
|
|
624
630
|
// NOTE: We only get here when the await queue is closed.
|
|
625
631
|
.catch(() => { });
|
|
626
632
|
}
|
|
627
|
-
|
|
633
|
+
handleHandler() {
|
|
628
634
|
const handler = this._handler;
|
|
629
635
|
handler.on('@connect', ({ dtlsParameters }, callback, errback) => {
|
|
630
636
|
if (this._closed) {
|
|
@@ -642,7 +648,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
642
648
|
this.safeEmit('connectionstatechange', connectionState);
|
|
643
649
|
});
|
|
644
650
|
}
|
|
645
|
-
|
|
651
|
+
handleProducer(producer) {
|
|
646
652
|
producer.on('@close', () => {
|
|
647
653
|
this._producers.delete(producer.id);
|
|
648
654
|
if (this._closed)
|
|
@@ -683,7 +689,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
683
689
|
.catch(errback);
|
|
684
690
|
});
|
|
685
691
|
}
|
|
686
|
-
|
|
692
|
+
handleConsumer(consumer) {
|
|
687
693
|
consumer.on('@close', () => {
|
|
688
694
|
this._consumers.delete(consumer.id);
|
|
689
695
|
this._pendingPauseConsumers.delete(consumer.id);
|
|
@@ -694,7 +700,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
694
700
|
this._pendingCloseConsumers.set(consumer.id, consumer);
|
|
695
701
|
// There is no Consumer close in progress, do it now.
|
|
696
702
|
if (this._consumerCloseInProgress === false) {
|
|
697
|
-
this.
|
|
703
|
+
this.closePendingConsumers();
|
|
698
704
|
}
|
|
699
705
|
});
|
|
700
706
|
consumer.on('@pause', () => {
|
|
@@ -706,7 +712,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
706
712
|
this._pendingPauseConsumers.set(consumer.id, consumer);
|
|
707
713
|
// There is no Consumer pause in progress, do it now.
|
|
708
714
|
if (this._consumerPauseInProgress === false) {
|
|
709
|
-
this.
|
|
715
|
+
this.pausePendingConsumers();
|
|
710
716
|
}
|
|
711
717
|
});
|
|
712
718
|
consumer.on('@resume', () => {
|
|
@@ -718,7 +724,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
718
724
|
this._pendingResumeConsumers.set(consumer.id, consumer);
|
|
719
725
|
// There is no Consumer resume in progress, do it now.
|
|
720
726
|
if (this._consumerResumeInProgress === false) {
|
|
721
|
-
this.
|
|
727
|
+
this.resumePendingConsumers();
|
|
722
728
|
}
|
|
723
729
|
});
|
|
724
730
|
consumer.on('@getstats', (callback, errback) => {
|
|
@@ -729,12 +735,12 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
729
735
|
.catch(errback);
|
|
730
736
|
});
|
|
731
737
|
}
|
|
732
|
-
|
|
738
|
+
handleDataProducer(dataProducer) {
|
|
733
739
|
dataProducer.on('@close', () => {
|
|
734
740
|
this._dataProducers.delete(dataProducer.id);
|
|
735
741
|
});
|
|
736
742
|
}
|
|
737
|
-
|
|
743
|
+
handleDataConsumer(dataConsumer) {
|
|
738
744
|
dataConsumer.on('@close', () => {
|
|
739
745
|
this._dataConsumers.delete(dataConsumer.id);
|
|
740
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":"AAOA,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAM3E,qBAAa,QAAS,SAAQ,gBAAgB;IAG7C,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,2BAA2B,CAAC,CAAmC;IAGvE,OAAO,CAAC,iCAAiC,CAAC,CAAmC;IAG7E,OAAO,CAAC,oBAAoB,CAAC,CAAW;IAExC,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA4C;IAEjF,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAOrB;IAEf,OAAO,CAAC,2BAA2B,CAAS;IAE5C,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,cAAc;;IAUtC,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,KAAK,IAAI,IAAI;IAcP,wBAAwB,IAAI,OAAO,CAAC,eAAe,CAAC;IAuCpD,yBAAyB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAS5D,GAAG,CACF,EACC,SAAS,EACT,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,EAAE,iBAAiB,GAClB,IAAI;IAkFD,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;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;IAgIvB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsD3C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7C,YAAY,CAEjB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAC7C,OAAO,CAAC,IAAI,CAAC;IAMV,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxE,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKxD,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;
|
|
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,18 +385,17 @@ 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
|
-
const { trackId, kind, rtpParameters } = options;
|
|
391
|
+
const { trackId, kind, rtpParameters, streamId } = options;
|
|
392
392
|
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
393
393
|
const mid = kind;
|
|
394
|
-
const streamId = rtpParameters.rtcp.cname;
|
|
395
394
|
this._remoteSdp.receive({
|
|
396
395
|
mid,
|
|
397
396
|
kind,
|
|
398
397
|
offerRtpParameters: rtpParameters,
|
|
399
|
-
streamId,
|
|
398
|
+
streamId: streamId || rtpParameters.rtcp.cname,
|
|
400
399
|
trackId
|
|
401
400
|
});
|
|
402
401
|
}
|
|
@@ -419,7 +418,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
419
418
|
}
|
|
420
419
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
421
420
|
if (!this._transportReady) {
|
|
422
|
-
await this.
|
|
421
|
+
await this.setupTransport({
|
|
423
422
|
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
424
423
|
localSdpObject
|
|
425
424
|
});
|
|
@@ -430,7 +429,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
430
429
|
const { kind, trackId, rtpParameters } = options;
|
|
431
430
|
const mid = kind;
|
|
432
431
|
const localId = trackId;
|
|
433
|
-
const streamId = rtpParameters.rtcp.cname;
|
|
432
|
+
const streamId = options.streamId || rtpParameters.rtcp.cname;
|
|
434
433
|
const stream = this._pc.getRemoteStreams()
|
|
435
434
|
.find((s) => s.id === streamId);
|
|
436
435
|
const track = stream.getTrackById(localId);
|
|
@@ -443,7 +442,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
443
442
|
return results;
|
|
444
443
|
}
|
|
445
444
|
async stopReceiving(localIds) {
|
|
446
|
-
this.
|
|
445
|
+
this.assertRecvDirection();
|
|
447
446
|
for (const localId of localIds) {
|
|
448
447
|
logger.debug('stopReceiving() [localId:%s]', localId);
|
|
449
448
|
const { mid, rtpParameters } = this._mapRecvLocalIdInfo.get(localId) || {};
|
|
@@ -474,7 +473,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
474
473
|
}
|
|
475
474
|
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
476
475
|
var _a;
|
|
477
|
-
this.
|
|
476
|
+
this.assertRecvDirection();
|
|
478
477
|
const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
|
|
479
478
|
const options = {
|
|
480
479
|
negotiated: true,
|
|
@@ -497,7 +496,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
497
496
|
const answer = await this._pc.createAnswer();
|
|
498
497
|
if (!this._transportReady) {
|
|
499
498
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
500
|
-
await this.
|
|
499
|
+
await this.setupTransport({
|
|
501
500
|
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
502
501
|
localSdpObject
|
|
503
502
|
});
|
|
@@ -508,7 +507,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
508
507
|
}
|
|
509
508
|
return { dataChannel };
|
|
510
509
|
}
|
|
511
|
-
async
|
|
510
|
+
async setupTransport({ localDtlsRole, localSdpObject }) {
|
|
512
511
|
if (!localSdpObject)
|
|
513
512
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
514
513
|
// Get our local DTLS parameters.
|
|
@@ -523,12 +522,12 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
523
522
|
});
|
|
524
523
|
this._transportReady = true;
|
|
525
524
|
}
|
|
526
|
-
|
|
525
|
+
assertSendDirection() {
|
|
527
526
|
if (this._direction !== 'send') {
|
|
528
527
|
throw new Error('method can just be called for handlers with "send" direction');
|
|
529
528
|
}
|
|
530
529
|
}
|
|
531
|
-
|
|
530
|
+
assertRecvDirection() {
|
|
532
531
|
if (this._direction !== 'recv') {
|
|
533
532
|
throw new Error('method can just be called for handlers with "recv" direction');
|
|
534
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":"AAMA,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAM3E,qBAAa,QAAS,SAAQ,gBAAgB;IAG7C,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,2BAA2B,CAAC,CAAmC;IAGvE,OAAO,CAAC,iCAAiC,CAAC,CAAmC;IAG7E,OAAO,CAAC,oBAAoB,CAAC,CAAW;IAExC,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAC9B;IAEX,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAQrB;IAEf,OAAO,CAAC,2BAA2B,CAAS;IAE5C,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,cAAc;;IAUtC,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,KAAK,IAAI,IAAI;IAcP,wBAAwB,IAAI,OAAO,CAAC,eAAe,CAAC;IAuCpD,yBAAyB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAS5D,GAAG,CACF,EACC,SAAS,EACT,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,EAAE,iBAAiB,GAClB,IAAI;IAkFD,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;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;IAoIvB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyD3C,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;IAgCV,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,
|
|
1
|
+
{"version":3,"file":"Chrome67.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome67.ts"],"names":[],"mappings":"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"}
|