mediasoup-client 3.6.45 → 3.6.49
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/.vimrc +21 -0
- package/NO_GIT/Notes.txt +18 -0
- package/lib/DataConsumer.d.ts +2 -2
- package/lib/DataConsumer.d.ts.map +1 -1
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +7 -3
- package/lib/Logger.js +6 -6
- package/lib/Transport.d.ts +3 -0
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +111 -40
- package/lib/handlers/Chrome55.d.ts +1 -1
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +51 -30
- package/lib/handlers/Chrome67.d.ts +1 -1
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +55 -33
- package/lib/handlers/Chrome70.d.ts +1 -1
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +53 -33
- package/lib/handlers/Chrome74.d.ts +1 -1
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +56 -33
- package/lib/handlers/Edge11.d.ts +1 -1
- package/lib/handlers/Edge11.d.ts.map +1 -1
- package/lib/handlers/Edge11.js +31 -22
- package/lib/handlers/FakeHandler.d.ts +1 -1
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +14 -11
- package/lib/handlers/Firefox60.d.ts +1 -1
- package/lib/handlers/Firefox60.d.ts.map +1 -1
- package/lib/handlers/Firefox60.js +54 -33
- package/lib/handlers/HandlerInterface.d.ts +1 -1
- package/lib/handlers/HandlerInterface.d.ts.map +1 -1
- package/lib/handlers/ReactNative.d.ts +1 -1
- package/lib/handlers/ReactNative.d.ts.map +1 -1
- package/lib/handlers/ReactNative.js +59 -36
- package/lib/handlers/Safari11.d.ts +1 -1
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +52 -33
- package/lib/handlers/Safari12.d.ts +1 -1
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +51 -32
- package/lib/handlers/ortc/edgeUtils.js +1 -1
- package/lib/handlers/sdp/MediaSection.js +1 -1
- package/lib/handlers/sdp/RemoteSdp.js +1 -1
- package/lib/handlers/sdp/commonUtils.js +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +3 -3
- package/lib/ortc.js +5 -7
- package/lib/types.js +1 -1
- package/package.json +11 -11
- package/src/DataConsumer.ts +2 -2
- package/src/Device.ts +7 -2
- package/src/Transport.ts +162 -58
- package/src/handlers/Chrome55.ts +53 -32
- package/src/handlers/Chrome67.ts +55 -34
- package/src/handlers/Chrome70.ts +52 -32
- package/src/handlers/Chrome74.ts +56 -32
- package/src/handlers/Edge11.ts +42 -26
- package/src/handlers/FakeHandler.ts +18 -10
- package/src/handlers/Firefox60.ts +54 -33
- package/src/handlers/HandlerInterface.ts +2 -2
- package/src/handlers/ReactNative.ts +63 -39
- package/src/handlers/Safari11.ts +55 -34
- package/src/handlers/Safari12.ts +52 -32
- package/src/ortc.ts +6 -8
- package/tsconfig.json +1 -1
package/src/handlers/Chrome55.ts
CHANGED
|
@@ -454,7 +454,7 @@ export class Chrome55 extends HandlerInterface
|
|
|
454
454
|
{
|
|
455
455
|
logger.warn(
|
|
456
456
|
'stopSending() | ignoring expected error due no sending tracks: %s',
|
|
457
|
-
error.toString());
|
|
457
|
+
(error as Error).toString());
|
|
458
458
|
|
|
459
459
|
return;
|
|
460
460
|
}
|
|
@@ -580,25 +580,31 @@ export class Chrome55 extends HandlerInterface
|
|
|
580
580
|
}
|
|
581
581
|
|
|
582
582
|
async receive(
|
|
583
|
-
|
|
584
|
-
): Promise<HandlerReceiveResult>
|
|
583
|
+
optionsList: HandlerReceiveOptions[]
|
|
584
|
+
) : Promise<HandlerReceiveResult[]>
|
|
585
585
|
{
|
|
586
586
|
this._assertRecvDirection();
|
|
587
587
|
|
|
588
|
-
|
|
588
|
+
const results: HandlerReceiveResult[] = [];
|
|
589
589
|
|
|
590
|
-
const
|
|
591
|
-
|
|
592
|
-
|
|
590
|
+
for (const options of optionsList)
|
|
591
|
+
{
|
|
592
|
+
const { trackId, kind, rtpParameters } = options;
|
|
593
593
|
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
594
|
+
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
595
|
+
|
|
596
|
+
const mid = kind;
|
|
597
|
+
const streamId = rtpParameters.rtcp!.cname!;
|
|
598
|
+
|
|
599
|
+
this._remoteSdp!.receive(
|
|
600
|
+
{
|
|
601
|
+
mid,
|
|
602
|
+
kind,
|
|
603
|
+
offerRtpParameters : rtpParameters,
|
|
604
|
+
streamId,
|
|
605
|
+
trackId
|
|
606
|
+
});
|
|
607
|
+
}
|
|
602
608
|
|
|
603
609
|
const offer = { type: 'offer', sdp: this._remoteSdp!.getSdp() };
|
|
604
610
|
|
|
@@ -610,16 +616,22 @@ export class Chrome55 extends HandlerInterface
|
|
|
610
616
|
|
|
611
617
|
let answer = await this._pc.createAnswer();
|
|
612
618
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
613
|
-
const answerMediaObject = localSdpObject.media
|
|
614
|
-
.find((m: any) => String(m.mid) === mid);
|
|
615
619
|
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
620
|
+
for (const options of optionsList)
|
|
621
|
+
{
|
|
622
|
+
const { kind, rtpParameters } = options;
|
|
623
|
+
const mid = kind;
|
|
624
|
+
const answerMediaObject = localSdpObject.media
|
|
625
|
+
.find((m: any) => String(m.mid) === mid);
|
|
626
|
+
|
|
627
|
+
// May need to modify codec parameters in the answer based on codec
|
|
628
|
+
// parameters in the offer.
|
|
629
|
+
sdpCommonUtils.applyCodecParameters(
|
|
630
|
+
{
|
|
631
|
+
offerRtpParameters : rtpParameters,
|
|
632
|
+
answerMediaObject
|
|
633
|
+
});
|
|
634
|
+
}
|
|
623
635
|
|
|
624
636
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
625
637
|
|
|
@@ -638,17 +650,26 @@ export class Chrome55 extends HandlerInterface
|
|
|
638
650
|
|
|
639
651
|
await this._pc.setLocalDescription(answer);
|
|
640
652
|
|
|
641
|
-
const
|
|
642
|
-
|
|
643
|
-
|
|
653
|
+
for (const options of optionsList)
|
|
654
|
+
{
|
|
655
|
+
const { kind, trackId, rtpParameters } = options;
|
|
656
|
+
const mid = kind;
|
|
657
|
+
const localId = trackId;
|
|
658
|
+
const streamId = rtpParameters.rtcp!.cname!;
|
|
659
|
+
const stream = this._pc.getRemoteStreams()
|
|
660
|
+
.find((s: any) => s.id === streamId);
|
|
661
|
+
const track = stream.getTrackById(localId);
|
|
644
662
|
|
|
645
|
-
|
|
646
|
-
|
|
663
|
+
if (!track)
|
|
664
|
+
throw new Error('remote track not found');
|
|
647
665
|
|
|
648
|
-
|
|
649
|
-
|
|
666
|
+
// Insert into the map.
|
|
667
|
+
this._mapRecvLocalIdInfo.set(localId, { mid, rtpParameters });
|
|
668
|
+
|
|
669
|
+
results.push({ localId, track });
|
|
670
|
+
}
|
|
650
671
|
|
|
651
|
-
return
|
|
672
|
+
return results;
|
|
652
673
|
}
|
|
653
674
|
|
|
654
675
|
async stopReceiving(localId: string): Promise<void>
|
package/src/handlers/Chrome67.ts
CHANGED
|
@@ -462,7 +462,7 @@ export class Chrome67 extends HandlerInterface
|
|
|
462
462
|
{
|
|
463
463
|
logger.warn(
|
|
464
464
|
'stopSending() | ignoring expected error due no sending tracks: %s',
|
|
465
|
-
error.toString());
|
|
465
|
+
(error as Error).toString());
|
|
466
466
|
|
|
467
467
|
return;
|
|
468
468
|
}
|
|
@@ -657,24 +657,31 @@ export class Chrome67 extends HandlerInterface
|
|
|
657
657
|
}
|
|
658
658
|
|
|
659
659
|
async receive(
|
|
660
|
-
|
|
661
|
-
|
|
660
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
661
|
+
optionsList: HandlerReceiveOptions[]
|
|
662
|
+
) : Promise<HandlerReceiveResult[]>
|
|
662
663
|
{
|
|
663
664
|
this._assertRecvDirection();
|
|
664
665
|
|
|
665
|
-
|
|
666
|
+
const results: HandlerReceiveResult[] = [];
|
|
666
667
|
|
|
667
|
-
const
|
|
668
|
-
|
|
668
|
+
for (const options of optionsList)
|
|
669
|
+
{
|
|
670
|
+
const { trackId, kind, rtpParameters } = options;
|
|
669
671
|
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
672
|
+
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
673
|
+
|
|
674
|
+
const mid = kind;
|
|
675
|
+
|
|
676
|
+
this._remoteSdp!.receive(
|
|
677
|
+
{
|
|
678
|
+
mid,
|
|
679
|
+
kind,
|
|
680
|
+
offerRtpParameters : rtpParameters,
|
|
681
|
+
streamId : rtpParameters.rtcp!.cname!,
|
|
682
|
+
trackId
|
|
683
|
+
});
|
|
684
|
+
}
|
|
678
685
|
|
|
679
686
|
const offer = { type: 'offer', sdp: this._remoteSdp!.getSdp() };
|
|
680
687
|
|
|
@@ -686,16 +693,22 @@ export class Chrome67 extends HandlerInterface
|
|
|
686
693
|
|
|
687
694
|
let answer = await this._pc.createAnswer();
|
|
688
695
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
689
|
-
const answerMediaObject = localSdpObject.media
|
|
690
|
-
.find((m: any) => String(m.mid) === mid);
|
|
691
696
|
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
697
|
+
for (const options of optionsList)
|
|
698
|
+
{
|
|
699
|
+
const { kind, rtpParameters } = options;
|
|
700
|
+
const mid = kind;
|
|
701
|
+
const answerMediaObject = localSdpObject.media
|
|
702
|
+
.find((m: any) => String(m.mid) === mid);
|
|
703
|
+
|
|
704
|
+
// May need to modify codec parameters in the answer based on codec
|
|
705
|
+
// parameters in the offer.
|
|
706
|
+
sdpCommonUtils.applyCodecParameters(
|
|
707
|
+
{
|
|
708
|
+
offerRtpParameters : rtpParameters,
|
|
709
|
+
answerMediaObject
|
|
710
|
+
});
|
|
711
|
+
}
|
|
699
712
|
|
|
700
713
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
701
714
|
|
|
@@ -714,20 +727,28 @@ export class Chrome67 extends HandlerInterface
|
|
|
714
727
|
|
|
715
728
|
await this._pc.setLocalDescription(answer);
|
|
716
729
|
|
|
717
|
-
const
|
|
718
|
-
|
|
730
|
+
for (const options of optionsList)
|
|
731
|
+
{
|
|
732
|
+
const { kind, trackId, rtpParameters } = options;
|
|
733
|
+
const localId = trackId;
|
|
734
|
+
const mid = kind;
|
|
735
|
+
const rtpReceiver = this._pc.getReceivers()
|
|
736
|
+
.find((r: RTCRtpReceiver) => r.track && r.track.id === localId);
|
|
719
737
|
|
|
720
|
-
|
|
721
|
-
|
|
738
|
+
if (!rtpReceiver)
|
|
739
|
+
throw new Error('new RTCRtpReceiver not');
|
|
722
740
|
|
|
723
|
-
|
|
724
|
-
|
|
741
|
+
// Insert into the map.
|
|
742
|
+
this._mapRecvLocalIdInfo.set(localId, { mid, rtpParameters, rtpReceiver });
|
|
725
743
|
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
744
|
+
results.push({
|
|
745
|
+
localId,
|
|
746
|
+
track : rtpReceiver.track,
|
|
747
|
+
rtpReceiver
|
|
748
|
+
});
|
|
749
|
+
}
|
|
750
|
+
|
|
751
|
+
return results;
|
|
731
752
|
}
|
|
732
753
|
|
|
733
754
|
async stopReceiving(localId: string): Promise<void>
|
package/src/handlers/Chrome70.ts
CHANGED
|
@@ -663,23 +663,30 @@ export class Chrome70 extends HandlerInterface
|
|
|
663
663
|
}
|
|
664
664
|
|
|
665
665
|
async receive(
|
|
666
|
-
|
|
667
|
-
): Promise<HandlerReceiveResult>
|
|
666
|
+
optionsList: HandlerReceiveOptions[]
|
|
667
|
+
) : Promise<HandlerReceiveResult[]>
|
|
668
668
|
{
|
|
669
669
|
this._assertRecvDirection();
|
|
670
670
|
|
|
671
|
-
|
|
671
|
+
const results: HandlerReceiveResult[] = [];
|
|
672
672
|
|
|
673
|
-
const
|
|
673
|
+
for (const options of optionsList)
|
|
674
|
+
{
|
|
675
|
+
const { trackId, kind, rtpParameters } = options;
|
|
674
676
|
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
677
|
+
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
678
|
+
|
|
679
|
+
const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
|
|
680
|
+
|
|
681
|
+
this._remoteSdp!.receive(
|
|
682
|
+
{
|
|
683
|
+
mid : localId,
|
|
684
|
+
kind,
|
|
685
|
+
offerRtpParameters : rtpParameters,
|
|
686
|
+
streamId : rtpParameters.rtcp!.cname!,
|
|
687
|
+
trackId
|
|
688
|
+
});
|
|
689
|
+
}
|
|
683
690
|
|
|
684
691
|
const offer = { type: 'offer', sdp: this._remoteSdp!.getSdp() };
|
|
685
692
|
|
|
@@ -691,16 +698,22 @@ export class Chrome70 extends HandlerInterface
|
|
|
691
698
|
|
|
692
699
|
let answer = await this._pc.createAnswer();
|
|
693
700
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
694
|
-
const answerMediaObject = localSdpObject.media
|
|
695
|
-
.find((m: any) => String(m.mid) === localId);
|
|
696
701
|
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
702
|
+
for (const options of optionsList)
|
|
703
|
+
{
|
|
704
|
+
const { rtpParameters } = options;
|
|
705
|
+
const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
|
|
706
|
+
const answerMediaObject = localSdpObject.media
|
|
707
|
+
.find((m: any) => String(m.mid) === localId);
|
|
708
|
+
|
|
709
|
+
// May need to modify codec parameters in the answer based on codec
|
|
710
|
+
// parameters in the offer.
|
|
711
|
+
sdpCommonUtils.applyCodecParameters(
|
|
712
|
+
{
|
|
713
|
+
offerRtpParameters : rtpParameters,
|
|
714
|
+
answerMediaObject
|
|
715
|
+
});
|
|
716
|
+
}
|
|
704
717
|
|
|
705
718
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
706
719
|
|
|
@@ -719,20 +732,27 @@ export class Chrome70 extends HandlerInterface
|
|
|
719
732
|
|
|
720
733
|
await this._pc.setLocalDescription(answer);
|
|
721
734
|
|
|
722
|
-
const
|
|
723
|
-
|
|
735
|
+
for (const options of optionsList)
|
|
736
|
+
{
|
|
737
|
+
const { rtpParameters } = options;
|
|
738
|
+
const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
|
|
739
|
+
const transceiver = this._pc.getTransceivers()
|
|
740
|
+
.find((t: RTCRtpTransceiver) => t.mid === localId);
|
|
724
741
|
|
|
725
|
-
|
|
726
|
-
|
|
742
|
+
if (!transceiver)
|
|
743
|
+
throw new Error('new RTCRtpTransceiver not found');
|
|
727
744
|
|
|
728
|
-
|
|
729
|
-
|
|
745
|
+
// Store in the map.
|
|
746
|
+
this._mapMidTransceiver.set(localId, transceiver);
|
|
730
747
|
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
748
|
+
results.push({
|
|
749
|
+
localId,
|
|
750
|
+
track : transceiver.receiver.track,
|
|
751
|
+
rtpReceiver : transceiver.receiver
|
|
752
|
+
});
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
return results;
|
|
736
756
|
}
|
|
737
757
|
|
|
738
758
|
async stopReceiving(localId: string): Promise<void>
|
package/src/handlers/Chrome74.ts
CHANGED
|
@@ -649,23 +649,30 @@ export class Chrome74 extends HandlerInterface
|
|
|
649
649
|
}
|
|
650
650
|
|
|
651
651
|
async receive(
|
|
652
|
-
|
|
653
|
-
): Promise<HandlerReceiveResult>
|
|
652
|
+
optionsList: HandlerReceiveOptions[]
|
|
653
|
+
) : Promise<HandlerReceiveResult[]>
|
|
654
654
|
{
|
|
655
655
|
this._assertRecvDirection();
|
|
656
656
|
|
|
657
|
-
|
|
657
|
+
const results: HandlerReceiveResult[] = [];
|
|
658
658
|
|
|
659
|
-
const
|
|
659
|
+
for (const options of optionsList)
|
|
660
|
+
{
|
|
661
|
+
const { trackId, kind, rtpParameters } = options;
|
|
660
662
|
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
663
|
+
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
664
|
+
|
|
665
|
+
const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
|
|
666
|
+
|
|
667
|
+
this._remoteSdp!.receive(
|
|
668
|
+
{
|
|
669
|
+
mid : localId,
|
|
670
|
+
kind,
|
|
671
|
+
offerRtpParameters : rtpParameters,
|
|
672
|
+
streamId : rtpParameters.rtcp!.cname!,
|
|
673
|
+
trackId
|
|
674
|
+
});
|
|
675
|
+
}
|
|
669
676
|
|
|
670
677
|
const offer = { type: 'offer', sdp: this._remoteSdp!.getSdp() };
|
|
671
678
|
|
|
@@ -677,16 +684,22 @@ export class Chrome74 extends HandlerInterface
|
|
|
677
684
|
|
|
678
685
|
let answer = await this._pc.createAnswer();
|
|
679
686
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
680
|
-
const answerMediaObject = localSdpObject.media
|
|
681
|
-
.find((m: any) => String(m.mid) === localId);
|
|
682
687
|
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
688
|
+
for (const options of optionsList)
|
|
689
|
+
{
|
|
690
|
+
const { rtpParameters } = options;
|
|
691
|
+
const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
|
|
692
|
+
const answerMediaObject = localSdpObject.media
|
|
693
|
+
.find((m: any) => String(m.mid) === localId);
|
|
694
|
+
|
|
695
|
+
// May need to modify codec parameters in the answer based on codec
|
|
696
|
+
// parameters in the offer.
|
|
697
|
+
sdpCommonUtils.applyCodecParameters(
|
|
698
|
+
{
|
|
699
|
+
offerRtpParameters : rtpParameters,
|
|
700
|
+
answerMediaObject
|
|
701
|
+
});
|
|
702
|
+
}
|
|
690
703
|
|
|
691
704
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
692
705
|
|
|
@@ -705,20 +718,31 @@ export class Chrome74 extends HandlerInterface
|
|
|
705
718
|
|
|
706
719
|
await this._pc.setLocalDescription(answer);
|
|
707
720
|
|
|
708
|
-
const
|
|
709
|
-
|
|
721
|
+
for (const options of optionsList)
|
|
722
|
+
{
|
|
723
|
+
const { rtpParameters } = options;
|
|
724
|
+
const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
|
|
725
|
+
const transceiver = this._pc.getTransceivers()
|
|
726
|
+
.find((t: RTCRtpTransceiver) => t.mid === localId);
|
|
710
727
|
|
|
711
|
-
|
|
712
|
-
|
|
728
|
+
if (!transceiver)
|
|
729
|
+
{
|
|
730
|
+
throw new Error('new RTCRtpTransceiver not found');
|
|
731
|
+
}
|
|
732
|
+
else
|
|
733
|
+
{
|
|
734
|
+
// Store in the map.
|
|
735
|
+
this._mapMidTransceiver.set(localId, transceiver);
|
|
713
736
|
|
|
714
|
-
|
|
715
|
-
|
|
737
|
+
results.push({
|
|
738
|
+
localId,
|
|
739
|
+
track : transceiver.receiver.track,
|
|
740
|
+
rtpReceiver : transceiver.receiver
|
|
741
|
+
});
|
|
742
|
+
}
|
|
743
|
+
}
|
|
716
744
|
|
|
717
|
-
return
|
|
718
|
-
localId,
|
|
719
|
-
track : transceiver.receiver.track,
|
|
720
|
-
rtpReceiver : transceiver.receiver
|
|
721
|
-
};
|
|
745
|
+
return results;
|
|
722
746
|
}
|
|
723
747
|
|
|
724
748
|
async stopReceiving(localId: string): Promise<void>
|
package/src/handlers/Edge11.ts
CHANGED
|
@@ -361,44 +361,58 @@ export class Edge11 extends HandlerInterface
|
|
|
361
361
|
}
|
|
362
362
|
|
|
363
363
|
async receive(
|
|
364
|
-
|
|
365
|
-
): Promise<HandlerReceiveResult>
|
|
364
|
+
optionsList: HandlerReceiveOptions[]
|
|
365
|
+
) : Promise<HandlerReceiveResult[]>
|
|
366
366
|
{
|
|
367
|
-
|
|
367
|
+
const results: HandlerReceiveResult[] = [];
|
|
368
|
+
|
|
369
|
+
for (const options of optionsList)
|
|
370
|
+
{
|
|
371
|
+
const { trackId, kind } = options;
|
|
372
|
+
|
|
373
|
+
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
374
|
+
}
|
|
368
375
|
|
|
369
376
|
if (!this._transportReady)
|
|
370
377
|
await this._setupTransport({ localDtlsRole: 'server' });
|
|
371
378
|
|
|
372
|
-
|
|
379
|
+
for (const options of optionsList)
|
|
380
|
+
{
|
|
381
|
+
const { trackId, kind, rtpParameters } = options;
|
|
373
382
|
|
|
374
|
-
|
|
383
|
+
logger.debug('receive() | calling new RTCRtpReceiver()');
|
|
375
384
|
|
|
376
|
-
|
|
377
|
-
{
|
|
378
|
-
logger.error('rtpReceiver "error" event [event:%o]', event);
|
|
379
|
-
});
|
|
385
|
+
const rtpReceiver = new (RTCRtpReceiver as any)(this._dtlsTransport, kind);
|
|
380
386
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
387
|
+
rtpReceiver.addEventListener('error', (event: any) =>
|
|
388
|
+
{
|
|
389
|
+
logger.error('rtpReceiver "error" event [event:%o]', event);
|
|
390
|
+
});
|
|
385
391
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
edgeRtpParameters
|
|
392
|
+
// NOTE: Convert our standard RTCRtpParameters into those that Edge
|
|
393
|
+
// expects.
|
|
394
|
+
const edgeRtpParameters =
|
|
395
|
+
edgeUtils.mangleRtpParameters(rtpParameters);
|
|
389
396
|
|
|
390
|
-
|
|
397
|
+
logger.debug(
|
|
398
|
+
'receive() | calling rtpReceiver.receive() [params:%o]',
|
|
399
|
+
edgeRtpParameters);
|
|
391
400
|
|
|
392
|
-
|
|
401
|
+
await rtpReceiver.receive(edgeRtpParameters);
|
|
393
402
|
|
|
394
|
-
|
|
395
|
-
this._rtpReceivers.set(localId, rtpReceiver);
|
|
403
|
+
const localId = trackId;
|
|
396
404
|
|
|
397
|
-
|
|
398
|
-
localId,
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
405
|
+
// Store it.
|
|
406
|
+
this._rtpReceivers.set(localId, rtpReceiver);
|
|
407
|
+
|
|
408
|
+
results.push({
|
|
409
|
+
localId,
|
|
410
|
+
track : rtpReceiver.track,
|
|
411
|
+
rtpReceiver
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
return results;
|
|
402
416
|
}
|
|
403
417
|
|
|
404
418
|
async stopReceiving(localId: string): Promise<void>
|
|
@@ -461,6 +475,7 @@ export class Edge11 extends HandlerInterface
|
|
|
461
475
|
{ iceServers?: any[]; iceTransportPolicy?: RTCIceTransportPolicy }
|
|
462
476
|
): void
|
|
463
477
|
{
|
|
478
|
+
// @ts-ignore
|
|
464
479
|
const iceGatherer = new (RTCIceGatherer as any)(
|
|
465
480
|
{
|
|
466
481
|
iceServers : iceServers || [],
|
|
@@ -480,7 +495,8 @@ export class Edge11 extends HandlerInterface
|
|
|
480
495
|
catch (error)
|
|
481
496
|
{
|
|
482
497
|
logger.debug(
|
|
483
|
-
'_setIceGatherer() | iceGatherer.gather() failed: %s',
|
|
498
|
+
'_setIceGatherer() | iceGatherer.gather() failed: %s',
|
|
499
|
+
(error as Error).toString());
|
|
484
500
|
}
|
|
485
501
|
|
|
486
502
|
this._iceGatherer = iceGatherer;
|
|
@@ -324,21 +324,29 @@ export class FakeHandler extends HandlerInterface
|
|
|
324
324
|
}
|
|
325
325
|
|
|
326
326
|
async receive(
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
): Promise<HandlerReceiveResult>
|
|
327
|
+
optionsList: HandlerReceiveOptions[]
|
|
328
|
+
) : Promise<HandlerReceiveResult[]>
|
|
330
329
|
{
|
|
331
|
-
|
|
332
|
-
await this._setupTransport({ localDtlsRole: 'client' });
|
|
330
|
+
const results: HandlerReceiveResult[] = [];
|
|
333
331
|
|
|
334
|
-
|
|
332
|
+
for (const options of optionsList)
|
|
333
|
+
{
|
|
334
|
+
const { trackId, kind } = options;
|
|
335
335
|
|
|
336
|
-
|
|
337
|
-
|
|
336
|
+
if (!this._transportReady)
|
|
337
|
+
await this._setupTransport({ localDtlsRole: 'client' });
|
|
338
338
|
|
|
339
|
-
|
|
339
|
+
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
340
|
+
|
|
341
|
+
const localId = this._nextLocalId++;
|
|
342
|
+
const track = new FakeMediaStreamTrack({ kind });
|
|
343
|
+
|
|
344
|
+
this._tracks.set(localId, track);
|
|
345
|
+
|
|
346
|
+
results.push({ localId: String(localId), track });
|
|
347
|
+
}
|
|
340
348
|
|
|
341
|
-
return
|
|
349
|
+
return results;
|
|
342
350
|
}
|
|
343
351
|
|
|
344
352
|
async stopReceiving(localId: string): Promise<void>
|