mediasoup-client 3.14.0 → 3.14.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/lib/Consumer.d.ts.map +1 -1
- package/lib/Consumer.js +3 -0
- package/lib/DataConsumer.d.ts.map +1 -1
- package/lib/DataConsumer.js +3 -0
- package/lib/DataProducer.d.ts.map +1 -1
- package/lib/DataProducer.js +3 -0
- package/lib/Producer.d.ts.map +1 -1
- package/lib/Producer.js +3 -0
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +3 -0
- package/lib/enhancedEvents.d.ts +4 -0
- package/lib/enhancedEvents.d.ts.map +1 -1
- package/lib/enhancedEvents.js +6 -0
- package/lib/handlers/Chrome111.d.ts +7 -2
- package/lib/handlers/Chrome111.d.ts.map +1 -1
- package/lib/handlers/Chrome111.js +54 -44
- package/lib/handlers/Chrome74.d.ts +7 -2
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +54 -44
- package/lib/handlers/FakeHandler.d.ts +3 -2
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +4 -2
- package/lib/handlers/Firefox120.d.ts +7 -2
- package/lib/handlers/Firefox120.d.ts.map +1 -1
- package/lib/handlers/Firefox120.js +55 -45
- package/lib/handlers/HandlerInterface.d.ts.map +1 -1
- package/lib/handlers/ReactNative106.d.ts +7 -2
- package/lib/handlers/ReactNative106.d.ts.map +1 -1
- package/lib/handlers/ReactNative106.js +55 -45
- package/lib/handlers/Safari12.d.ts +7 -2
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +55 -39
- package/lib/index.d.ts +5 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -2
- package/lib/test/test.js +4 -2
- package/lib/types.d.ts +11 -10
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +0 -24
- package/package.json +12 -8
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FakeHandler = void 0;
|
|
4
4
|
const fake_mediastreamtrack_1 = require("fake-mediastreamtrack");
|
|
5
|
+
const enhancedEvents_1 = require("../enhancedEvents");
|
|
5
6
|
const Logger_1 = require("../Logger");
|
|
6
7
|
const utils = require("../utils");
|
|
7
8
|
const ortc = require("../ortc");
|
|
8
9
|
const errors_1 = require("../errors");
|
|
9
|
-
const HandlerInterface_1 = require("./HandlerInterface");
|
|
10
10
|
const logger = new Logger_1.Logger('FakeHandler');
|
|
11
11
|
const NAME = 'FakeHandler';
|
|
12
|
-
class FakeHandler extends
|
|
12
|
+
class FakeHandler extends enhancedEvents_1.EnhancedEventEmitter {
|
|
13
13
|
// Closed flag.
|
|
14
14
|
_closed = false;
|
|
15
15
|
// Fake parameters source of RTP and SCTP parameters and capabilities.
|
|
@@ -72,6 +72,8 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
|
|
|
72
72
|
return;
|
|
73
73
|
}
|
|
74
74
|
this._closed = true;
|
|
75
|
+
// Invoke close() in EnhancedEventEmitter classes.
|
|
76
|
+
super.close();
|
|
75
77
|
}
|
|
76
78
|
// NOTE: Custom method for simulation purposes.
|
|
77
79
|
setIceGatheringState(iceGatheringState) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { EnhancedEventEmitter } from '../enhancedEvents';
|
|
1
2
|
import type { IceParameters } from '../Transport';
|
|
2
|
-
import {
|
|
3
|
-
export declare class Firefox120 extends HandlerInterface {
|
|
3
|
+
import type { HandlerFactory, HandlerInterface, HandlerEvents, HandlerSendOptions, HandlerSendResult, HandlerReceiveOptions, HandlerReceiveResult, HandlerSendDataChannelOptions, HandlerSendDataChannelResult, HandlerReceiveDataChannelOptions, HandlerReceiveDataChannelResult } from './HandlerInterface';
|
|
4
|
+
export declare class Firefox120 extends EnhancedEventEmitter<HandlerEvents> implements HandlerInterface {
|
|
4
5
|
private _closed;
|
|
5
6
|
private _direction;
|
|
6
7
|
private _remoteSdp;
|
|
@@ -38,6 +39,10 @@ export declare class Firefox120 extends HandlerInterface {
|
|
|
38
39
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
39
40
|
receiveDataChannel({ sctpStreamParameters, label, protocol, }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
40
41
|
private setupTransport;
|
|
42
|
+
private onIceGatheringStateChange;
|
|
43
|
+
private onIceCandidateError;
|
|
44
|
+
private onConnectionStateChange;
|
|
45
|
+
private onIceConnectionStateChange;
|
|
41
46
|
private assertNotClosed;
|
|
42
47
|
private assertSendDirection;
|
|
43
48
|
private assertRecvDirection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Firefox120.d.ts","sourceRoot":"","sources":["../../src/handlers/Firefox120.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Firefox120.d.ts","sourceRoot":"","sources":["../../src/handlers/Firefox120.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Firefox120 = void 0;
|
|
4
4
|
const sdpTransform = require("sdp-transform");
|
|
5
|
+
const enhancedEvents_1 = require("../enhancedEvents");
|
|
5
6
|
const Logger_1 = require("../Logger");
|
|
6
7
|
const errors_1 = require("../errors");
|
|
7
8
|
const utils = require("../utils");
|
|
@@ -9,12 +10,11 @@ const ortc = require("../ortc");
|
|
|
9
10
|
const scalabilityModes_1 = require("../scalabilityModes");
|
|
10
11
|
const sdpCommonUtils = require("./sdp/commonUtils");
|
|
11
12
|
const sdpUnifiedPlanUtils = require("./sdp/unifiedPlanUtils");
|
|
12
|
-
const HandlerInterface_1 = require("./HandlerInterface");
|
|
13
13
|
const RemoteSdp_1 = require("./sdp/RemoteSdp");
|
|
14
14
|
const logger = new Logger_1.Logger('Firefox120');
|
|
15
15
|
const NAME = 'Firefox120';
|
|
16
16
|
const SCTP_NUM_STREAMS = { OS: 16, MIS: 2048 };
|
|
17
|
-
class Firefox120 extends
|
|
17
|
+
class Firefox120 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
18
18
|
// Closed flag.
|
|
19
19
|
_closed = false;
|
|
20
20
|
// Handler direction.
|
|
@@ -47,7 +47,7 @@ class Firefox120 extends HandlerInterface_1.HandlerInterface {
|
|
|
47
47
|
factory: (options) => new Firefox120(options),
|
|
48
48
|
getNativeRtpCapabilities: async () => {
|
|
49
49
|
logger.debug('getNativeRtpCapabilities()');
|
|
50
|
-
|
|
50
|
+
let pc = new RTCPeerConnection({
|
|
51
51
|
iceServers: [],
|
|
52
52
|
iceTransportPolicy: 'all',
|
|
53
53
|
bundlePolicy: 'max-bundle',
|
|
@@ -82,6 +82,7 @@ class Firefox120 extends HandlerInterface_1.HandlerInterface {
|
|
|
82
82
|
pc.close();
|
|
83
83
|
}
|
|
84
84
|
catch (error) { }
|
|
85
|
+
pc = undefined;
|
|
85
86
|
const sdpObject = sdpTransform.parse(offer.sdp);
|
|
86
87
|
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
87
88
|
sdpObject,
|
|
@@ -98,9 +99,10 @@ class Firefox120 extends HandlerInterface_1.HandlerInterface {
|
|
|
98
99
|
}
|
|
99
100
|
catch (error2) { }
|
|
100
101
|
try {
|
|
101
|
-
pc
|
|
102
|
+
pc?.close();
|
|
102
103
|
}
|
|
103
104
|
catch (error2) { }
|
|
105
|
+
pc = undefined;
|
|
104
106
|
throw error;
|
|
105
107
|
}
|
|
106
108
|
},
|
|
@@ -137,44 +139,14 @@ class Firefox120 extends HandlerInterface_1.HandlerInterface {
|
|
|
137
139
|
rtcpMuxPolicy: 'require',
|
|
138
140
|
...additionalSettings,
|
|
139
141
|
});
|
|
140
|
-
this._pc.addEventListener('icegatheringstatechange',
|
|
141
|
-
|
|
142
|
-
});
|
|
143
|
-
this._pc.addEventListener('icecandidateerror', (event) => {
|
|
144
|
-
this.emit('@icecandidateerror', event);
|
|
145
|
-
});
|
|
142
|
+
this._pc.addEventListener('icegatheringstatechange', this.onIceGatheringStateChange);
|
|
143
|
+
this._pc.addEventListener('icecandidateerror', this.onIceCandidateError);
|
|
146
144
|
if (this._pc.connectionState) {
|
|
147
|
-
this._pc.addEventListener('connectionstatechange',
|
|
148
|
-
this.emit('@connectionstatechange', this._pc.connectionState);
|
|
149
|
-
});
|
|
145
|
+
this._pc.addEventListener('connectionstatechange', this.onConnectionStateChange);
|
|
150
146
|
}
|
|
151
147
|
else {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
switch (this._pc.iceConnectionState) {
|
|
155
|
-
case 'checking': {
|
|
156
|
-
this.emit('@connectionstatechange', 'connecting');
|
|
157
|
-
break;
|
|
158
|
-
}
|
|
159
|
-
case 'connected':
|
|
160
|
-
case 'completed': {
|
|
161
|
-
this.emit('@connectionstatechange', 'connected');
|
|
162
|
-
break;
|
|
163
|
-
}
|
|
164
|
-
case 'failed': {
|
|
165
|
-
this.emit('@connectionstatechange', 'failed');
|
|
166
|
-
break;
|
|
167
|
-
}
|
|
168
|
-
case 'disconnected': {
|
|
169
|
-
this.emit('@connectionstatechange', 'disconnected');
|
|
170
|
-
break;
|
|
171
|
-
}
|
|
172
|
-
case 'closed': {
|
|
173
|
-
this.emit('@connectionstatechange', 'closed');
|
|
174
|
-
break;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
});
|
|
148
|
+
logger.warn('run() | pc.connectionState not supported, using pc.iceConnectionState');
|
|
149
|
+
this._pc.addEventListener('iceconnectionstatechange', this.onIceConnectionStateChange);
|
|
178
150
|
}
|
|
179
151
|
}
|
|
180
152
|
get name() {
|
|
@@ -187,13 +159,17 @@ class Firefox120 extends HandlerInterface_1.HandlerInterface {
|
|
|
187
159
|
}
|
|
188
160
|
this._closed = true;
|
|
189
161
|
// Close RTCPeerConnection.
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
162
|
+
try {
|
|
163
|
+
this._pc.close();
|
|
164
|
+
}
|
|
165
|
+
catch (error) { }
|
|
166
|
+
this._pc.removeEventListener('icegatheringstatechange', this.onIceGatheringStateChange);
|
|
167
|
+
this._pc.removeEventListener('icecandidateerror', this.onIceCandidateError);
|
|
168
|
+
this._pc.removeEventListener('connectionstatechange', this.onConnectionStateChange);
|
|
169
|
+
this._pc.removeEventListener('iceconnectionstatechange', this.onIceConnectionStateChange);
|
|
196
170
|
this.emit('@close');
|
|
171
|
+
// Invoke close() in EnhancedEventEmitter classes.
|
|
172
|
+
super.close();
|
|
197
173
|
}
|
|
198
174
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
199
175
|
async updateIceServers(iceServers) {
|
|
@@ -745,6 +721,40 @@ class Firefox120 extends HandlerInterface_1.HandlerInterface {
|
|
|
745
721
|
});
|
|
746
722
|
this._transportReady = true;
|
|
747
723
|
}
|
|
724
|
+
onIceGatheringStateChange = () => {
|
|
725
|
+
this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
|
|
726
|
+
};
|
|
727
|
+
onIceCandidateError = (event) => {
|
|
728
|
+
this.emit('@icecandidateerror', event);
|
|
729
|
+
};
|
|
730
|
+
onConnectionStateChange = () => {
|
|
731
|
+
this.emit('@connectionstatechange', this._pc.connectionState);
|
|
732
|
+
};
|
|
733
|
+
onIceConnectionStateChange = () => {
|
|
734
|
+
switch (this._pc.iceConnectionState) {
|
|
735
|
+
case 'checking': {
|
|
736
|
+
this.emit('@connectionstatechange', 'connecting');
|
|
737
|
+
break;
|
|
738
|
+
}
|
|
739
|
+
case 'connected':
|
|
740
|
+
case 'completed': {
|
|
741
|
+
this.emit('@connectionstatechange', 'connected');
|
|
742
|
+
break;
|
|
743
|
+
}
|
|
744
|
+
case 'failed': {
|
|
745
|
+
this.emit('@connectionstatechange', 'failed');
|
|
746
|
+
break;
|
|
747
|
+
}
|
|
748
|
+
case 'disconnected': {
|
|
749
|
+
this.emit('@connectionstatechange', 'disconnected');
|
|
750
|
+
break;
|
|
751
|
+
}
|
|
752
|
+
case 'closed': {
|
|
753
|
+
this.emit('@connectionstatechange', 'closed');
|
|
754
|
+
break;
|
|
755
|
+
}
|
|
756
|
+
}
|
|
757
|
+
};
|
|
748
758
|
assertNotClosed() {
|
|
749
759
|
if (this._closed) {
|
|
750
760
|
throw new errors_1.InvalidStateError('method called in a closed handler');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandlerInterface.d.ts","sourceRoot":"","sources":["../../src/handlers/HandlerInterface.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"HandlerInterface.d.ts","sourceRoot":"","sources":["../../src/handlers/HandlerInterface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { EnhancedEventEmitter } from '../enhancedEvents';
|
|
1
2
|
import type { IceParameters } from '../Transport';
|
|
2
|
-
import {
|
|
3
|
-
export declare class ReactNative106 extends HandlerInterface {
|
|
3
|
+
import type { HandlerFactory, HandlerInterface, HandlerEvents, HandlerSendOptions, HandlerSendResult, HandlerReceiveOptions, HandlerReceiveResult, HandlerSendDataChannelOptions, HandlerSendDataChannelResult, HandlerReceiveDataChannelOptions, HandlerReceiveDataChannelResult } from './HandlerInterface';
|
|
4
|
+
export declare class ReactNative106 extends EnhancedEventEmitter<HandlerEvents> implements HandlerInterface {
|
|
4
5
|
private _closed;
|
|
5
6
|
private _direction;
|
|
6
7
|
private _remoteSdp;
|
|
@@ -39,6 +40,10 @@ export declare class ReactNative106 extends HandlerInterface {
|
|
|
39
40
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
40
41
|
receiveDataChannel({ sctpStreamParameters, label, protocol, }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
41
42
|
private setupTransport;
|
|
43
|
+
private onIceGatheringStateChange;
|
|
44
|
+
private onIceCandidateError;
|
|
45
|
+
private onConnectionStateChange;
|
|
46
|
+
private onIceConnectionStateChange;
|
|
42
47
|
private assertNotClosed;
|
|
43
48
|
private assertSendDirection;
|
|
44
49
|
private assertRecvDirection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactNative106.d.ts","sourceRoot":"","sources":["../../src/handlers/ReactNative106.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReactNative106.d.ts","sourceRoot":"","sources":["../../src/handlers/ReactNative106.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAMzD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AAQ5D,OAAO,KAAK,EACX,cAAc,EACd,gBAAgB,EAChB,aAAa,EAEb,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAW5B,qBAAa,cACZ,SAAQ,oBAAoB,CAAC,aAAa,CAC1C,YAAW,gBAAgB;IAG3B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,2BAA2B,CAAsC;IAGzE,OAAO,CAAC,iCAAiC,CAEvC;IAGF,OAAO,CAAC,oBAAoB,CAAC,CAAW;IAExC,OAAO,CAAC,GAAG,CAAoB;IAE/B,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;IAwDtC,OAAO;IA6EP,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEQ,KAAK,IAAI,IAAI;IA0ChB,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDvD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAM5C,IAAI,CAAC,EACV,KAAK,EACL,SAAS,EACT,YAAY,EACZ,KAAK,EACL,WAAW,GACX,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0M5C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqD3C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC5C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC7C,YAAY,CACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC;IAuBV,kBAAkB,CACvB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAsDV,wBAAwB,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,OAAO,CAAC,wBAAwB,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC;IAkDV,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAaxD,eAAe,CAAC,EACrB,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,KAAK,EACL,QAAQ,GACR,EAAE,6BAA6B,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAuElE,OAAO,CACZ,WAAW,EAAE,qBAAqB,EAAE,GAClC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAmH5B,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6ChD,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuCjD,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuClD,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAa1D,kBAAkB,CAAC,EACxB,oBAAoB,EACpB,KAAK,EACL,QAAQ,GACR,EAAE,gCAAgC,GAAG,OAAO,CAAC,+BAA+B,CAAC;YAiEhE,cAAc;IAgC5B,OAAO,CAAC,yBAAyB,CAE/B;IAEF,OAAO,CAAC,mBAAmB,CAIzB;IAEF,OAAO,CAAC,uBAAuB,CAE7B;IAEF,OAAO,CAAC,0BAA0B,CAiChC;IAEF,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,mBAAmB;CAO3B"}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ReactNative106 = void 0;
|
|
4
4
|
const sdpTransform = require("sdp-transform");
|
|
5
|
+
const enhancedEvents_1 = require("../enhancedEvents");
|
|
5
6
|
const Logger_1 = require("../Logger");
|
|
6
7
|
const utils = require("../utils");
|
|
7
8
|
const ortc = require("../ortc");
|
|
8
9
|
const errors_1 = require("../errors");
|
|
9
10
|
const scalabilityModes_1 = require("../scalabilityModes");
|
|
10
|
-
const HandlerInterface_1 = require("./HandlerInterface");
|
|
11
11
|
const RemoteSdp_1 = require("./sdp/RemoteSdp");
|
|
12
12
|
const sdpCommonUtils = require("./sdp/commonUtils");
|
|
13
13
|
const sdpUnifiedPlanUtils = require("./sdp/unifiedPlanUtils");
|
|
@@ -15,7 +15,7 @@ const ortcUtils = require("./ortc/utils");
|
|
|
15
15
|
const logger = new Logger_1.Logger('ReactNative106');
|
|
16
16
|
const NAME = 'ReactNative106';
|
|
17
17
|
const SCTP_NUM_STREAMS = { OS: 1024, MIS: 1024 };
|
|
18
|
-
class ReactNative106 extends
|
|
18
|
+
class ReactNative106 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
19
19
|
// Closed flag.
|
|
20
20
|
_closed = false;
|
|
21
21
|
// Handler direction.
|
|
@@ -51,7 +51,7 @@ class ReactNative106 extends HandlerInterface_1.HandlerInterface {
|
|
|
51
51
|
factory: (options) => new ReactNative106(options),
|
|
52
52
|
getNativeRtpCapabilities: async () => {
|
|
53
53
|
logger.debug('getNativeRtpCapabilities()');
|
|
54
|
-
|
|
54
|
+
let pc = new RTCPeerConnection({
|
|
55
55
|
iceServers: [],
|
|
56
56
|
iceTransportPolicy: 'all',
|
|
57
57
|
bundlePolicy: 'max-bundle',
|
|
@@ -65,6 +65,7 @@ class ReactNative106 extends HandlerInterface_1.HandlerInterface {
|
|
|
65
65
|
pc.close();
|
|
66
66
|
}
|
|
67
67
|
catch (error) { }
|
|
68
|
+
pc = undefined;
|
|
68
69
|
const sdpObject = sdpTransform.parse(offer.sdp);
|
|
69
70
|
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
70
71
|
sdpObject,
|
|
@@ -75,9 +76,10 @@ class ReactNative106 extends HandlerInterface_1.HandlerInterface {
|
|
|
75
76
|
}
|
|
76
77
|
catch (error) {
|
|
77
78
|
try {
|
|
78
|
-
pc
|
|
79
|
+
pc?.close();
|
|
79
80
|
}
|
|
80
81
|
catch (error2) { }
|
|
82
|
+
pc = undefined;
|
|
81
83
|
throw error;
|
|
82
84
|
}
|
|
83
85
|
},
|
|
@@ -118,44 +120,14 @@ class ReactNative106 extends HandlerInterface_1.HandlerInterface {
|
|
|
118
120
|
rtcpMuxPolicy: 'require',
|
|
119
121
|
...additionalSettings,
|
|
120
122
|
});
|
|
121
|
-
this._pc.addEventListener('icegatheringstatechange',
|
|
122
|
-
|
|
123
|
-
});
|
|
124
|
-
this._pc.addEventListener('icecandidateerror', (event) => {
|
|
125
|
-
this.emit('@icecandidateerror', event);
|
|
126
|
-
});
|
|
123
|
+
this._pc.addEventListener('icegatheringstatechange', this.onIceGatheringStateChange);
|
|
124
|
+
this._pc.addEventListener('icecandidateerror', this.onIceCandidateError);
|
|
127
125
|
if (this._pc.connectionState) {
|
|
128
|
-
this._pc.addEventListener('connectionstatechange',
|
|
129
|
-
this.emit('@connectionstatechange', this._pc.connectionState);
|
|
130
|
-
});
|
|
126
|
+
this._pc.addEventListener('connectionstatechange', this.onConnectionStateChange);
|
|
131
127
|
}
|
|
132
128
|
else {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
switch (this._pc.iceConnectionState) {
|
|
136
|
-
case 'checking': {
|
|
137
|
-
this.emit('@connectionstatechange', 'connecting');
|
|
138
|
-
break;
|
|
139
|
-
}
|
|
140
|
-
case 'connected':
|
|
141
|
-
case 'completed': {
|
|
142
|
-
this.emit('@connectionstatechange', 'connected');
|
|
143
|
-
break;
|
|
144
|
-
}
|
|
145
|
-
case 'failed': {
|
|
146
|
-
this.emit('@connectionstatechange', 'failed');
|
|
147
|
-
break;
|
|
148
|
-
}
|
|
149
|
-
case 'disconnected': {
|
|
150
|
-
this.emit('@connectionstatechange', 'disconnected');
|
|
151
|
-
break;
|
|
152
|
-
}
|
|
153
|
-
case 'closed': {
|
|
154
|
-
this.emit('@connectionstatechange', 'closed');
|
|
155
|
-
break;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
});
|
|
129
|
+
logger.warn('run() | pc.connectionState not supported, using pc.iceConnectionState');
|
|
130
|
+
this._pc.addEventListener('iceconnectionstatechange', this.onIceConnectionStateChange);
|
|
159
131
|
}
|
|
160
132
|
}
|
|
161
133
|
get name() {
|
|
@@ -172,13 +144,17 @@ class ReactNative106 extends HandlerInterface_1.HandlerInterface {
|
|
|
172
144
|
// @ts-expect-error --- Proprietary API in react-native-webrtc.
|
|
173
145
|
this._sendStream.release(/* releaseTracks */ false);
|
|
174
146
|
// Close RTCPeerConnection.
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
147
|
+
try {
|
|
148
|
+
this._pc.close();
|
|
149
|
+
}
|
|
150
|
+
catch (error) { }
|
|
151
|
+
this._pc.removeEventListener('icegatheringstatechange', this.onIceGatheringStateChange);
|
|
152
|
+
this._pc.removeEventListener('icecandidateerror', this.onIceCandidateError);
|
|
153
|
+
this._pc.removeEventListener('connectionstatechange', this.onConnectionStateChange);
|
|
154
|
+
this._pc.removeEventListener('iceconnectionstatechange', this.onIceConnectionStateChange);
|
|
181
155
|
this.emit('@close');
|
|
156
|
+
// Invoke close() in EnhancedEventEmitter classes.
|
|
157
|
+
super.close();
|
|
182
158
|
}
|
|
183
159
|
async updateIceServers(iceServers) {
|
|
184
160
|
this.assertNotClosed();
|
|
@@ -778,6 +754,40 @@ class ReactNative106 extends HandlerInterface_1.HandlerInterface {
|
|
|
778
754
|
});
|
|
779
755
|
this._transportReady = true;
|
|
780
756
|
}
|
|
757
|
+
onIceGatheringStateChange = () => {
|
|
758
|
+
this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
|
|
759
|
+
};
|
|
760
|
+
onIceCandidateError = (event) => {
|
|
761
|
+
this.emit('@icecandidateerror', event);
|
|
762
|
+
};
|
|
763
|
+
onConnectionStateChange = () => {
|
|
764
|
+
this.emit('@connectionstatechange', this._pc.connectionState);
|
|
765
|
+
};
|
|
766
|
+
onIceConnectionStateChange = () => {
|
|
767
|
+
switch (this._pc.iceConnectionState) {
|
|
768
|
+
case 'checking': {
|
|
769
|
+
this.emit('@connectionstatechange', 'connecting');
|
|
770
|
+
break;
|
|
771
|
+
}
|
|
772
|
+
case 'connected':
|
|
773
|
+
case 'completed': {
|
|
774
|
+
this.emit('@connectionstatechange', 'connected');
|
|
775
|
+
break;
|
|
776
|
+
}
|
|
777
|
+
case 'failed': {
|
|
778
|
+
this.emit('@connectionstatechange', 'failed');
|
|
779
|
+
break;
|
|
780
|
+
}
|
|
781
|
+
case 'disconnected': {
|
|
782
|
+
this.emit('@connectionstatechange', 'disconnected');
|
|
783
|
+
break;
|
|
784
|
+
}
|
|
785
|
+
case 'closed': {
|
|
786
|
+
this.emit('@connectionstatechange', 'closed');
|
|
787
|
+
break;
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
};
|
|
781
791
|
assertNotClosed() {
|
|
782
792
|
if (this._closed) {
|
|
783
793
|
throw new errors_1.InvalidStateError('method called in a closed handler');
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { EnhancedEventEmitter } from '../enhancedEvents';
|
|
1
2
|
import type { IceParameters } from '../Transport';
|
|
2
|
-
import {
|
|
3
|
-
export declare class Safari12 extends HandlerInterface {
|
|
3
|
+
import type { HandlerFactory, HandlerInterface, HandlerEvents, HandlerOptions, HandlerSendOptions, HandlerSendResult, HandlerReceiveOptions, HandlerReceiveResult, HandlerSendDataChannelOptions, HandlerSendDataChannelResult, HandlerReceiveDataChannelOptions, HandlerReceiveDataChannelResult } from './HandlerInterface';
|
|
4
|
+
export declare class Safari12 extends EnhancedEventEmitter<HandlerEvents> implements HandlerInterface {
|
|
4
5
|
private _closed;
|
|
5
6
|
private _direction;
|
|
6
7
|
private _remoteSdp;
|
|
@@ -39,6 +40,10 @@ export declare class Safari12 extends HandlerInterface {
|
|
|
39
40
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
40
41
|
receiveDataChannel({ sctpStreamParameters, label, protocol, }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
41
42
|
private setupTransport;
|
|
43
|
+
private onIceGatheringStateChange;
|
|
44
|
+
private onIceCandidateError;
|
|
45
|
+
private onConnectionStateChange;
|
|
46
|
+
private onIceConnectionStateChange;
|
|
42
47
|
private assertNotClosed;
|
|
43
48
|
private assertSendDirection;
|
|
44
49
|
private assertRecvDirection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Safari12.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari12.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Safari12.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari12.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/Safari12.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Safari12 = void 0;
|
|
4
4
|
const sdpTransform = require("sdp-transform");
|
|
5
|
+
const enhancedEvents_1 = require("../enhancedEvents");
|
|
5
6
|
const Logger_1 = require("../Logger");
|
|
6
7
|
const utils = require("../utils");
|
|
7
8
|
const ortc = require("../ortc");
|
|
8
9
|
const errors_1 = require("../errors");
|
|
9
10
|
const scalabilityModes_1 = require("../scalabilityModes");
|
|
10
|
-
const HandlerInterface_1 = require("./HandlerInterface");
|
|
11
11
|
const RemoteSdp_1 = require("./sdp/RemoteSdp");
|
|
12
12
|
const sdpCommonUtils = require("./sdp/commonUtils");
|
|
13
13
|
const sdpUnifiedPlanUtils = require("./sdp/unifiedPlanUtils");
|
|
@@ -15,7 +15,7 @@ const ortcUtils = require("./ortc/utils");
|
|
|
15
15
|
const logger = new Logger_1.Logger('Safari12');
|
|
16
16
|
const NAME = 'Safari12';
|
|
17
17
|
const SCTP_NUM_STREAMS = { OS: 1024, MIS: 1024 };
|
|
18
|
-
class Safari12 extends
|
|
18
|
+
class Safari12 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
19
19
|
// Closed flag.
|
|
20
20
|
_closed = false;
|
|
21
21
|
// Handler direction.
|
|
@@ -51,7 +51,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
51
51
|
factory: (options) => new Safari12(options),
|
|
52
52
|
getNativeRtpCapabilities: async () => {
|
|
53
53
|
logger.debug('getNativeRtpCapabilities()');
|
|
54
|
-
|
|
54
|
+
let pc = new RTCPeerConnection({
|
|
55
55
|
iceServers: [],
|
|
56
56
|
iceTransportPolicy: 'all',
|
|
57
57
|
bundlePolicy: 'max-bundle',
|
|
@@ -65,6 +65,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
65
65
|
pc.close();
|
|
66
66
|
}
|
|
67
67
|
catch (error) { }
|
|
68
|
+
pc = undefined;
|
|
68
69
|
const sdpObject = sdpTransform.parse(offer.sdp);
|
|
69
70
|
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
70
71
|
sdpObject,
|
|
@@ -75,9 +76,10 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
75
76
|
}
|
|
76
77
|
catch (error) {
|
|
77
78
|
try {
|
|
78
|
-
pc
|
|
79
|
+
pc?.close();
|
|
79
80
|
}
|
|
80
81
|
catch (error2) { }
|
|
82
|
+
pc = undefined;
|
|
81
83
|
throw error;
|
|
82
84
|
}
|
|
83
85
|
},
|
|
@@ -124,38 +126,14 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
124
126
|
this._pc.addEventListener('icecandidateerror', (event) => {
|
|
125
127
|
this.emit('@icecandidateerror', event);
|
|
126
128
|
});
|
|
129
|
+
this._pc.addEventListener('icegatheringstatechange', this.onIceGatheringStateChange);
|
|
130
|
+
this._pc.addEventListener('icecandidateerror', this.onIceCandidateError);
|
|
127
131
|
if (this._pc.connectionState) {
|
|
128
|
-
this._pc.addEventListener('connectionstatechange',
|
|
129
|
-
this.emit('@connectionstatechange', this._pc.connectionState);
|
|
130
|
-
});
|
|
132
|
+
this._pc.addEventListener('connectionstatechange', this.onConnectionStateChange);
|
|
131
133
|
}
|
|
132
134
|
else {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
switch (this._pc.iceConnectionState) {
|
|
136
|
-
case 'checking': {
|
|
137
|
-
this.emit('@connectionstatechange', 'connecting');
|
|
138
|
-
break;
|
|
139
|
-
}
|
|
140
|
-
case 'connected':
|
|
141
|
-
case 'completed': {
|
|
142
|
-
this.emit('@connectionstatechange', 'connected');
|
|
143
|
-
break;
|
|
144
|
-
}
|
|
145
|
-
case 'failed': {
|
|
146
|
-
this.emit('@connectionstatechange', 'failed');
|
|
147
|
-
break;
|
|
148
|
-
}
|
|
149
|
-
case 'disconnected': {
|
|
150
|
-
this.emit('@connectionstatechange', 'disconnected');
|
|
151
|
-
break;
|
|
152
|
-
}
|
|
153
|
-
case 'closed': {
|
|
154
|
-
this.emit('@connectionstatechange', 'closed');
|
|
155
|
-
break;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
});
|
|
135
|
+
logger.warn('run() | pc.connectionState not supported, using pc.iceConnectionState');
|
|
136
|
+
this._pc.addEventListener('iceconnectionstatechange', this.onIceConnectionStateChange);
|
|
159
137
|
}
|
|
160
138
|
}
|
|
161
139
|
get name() {
|
|
@@ -168,13 +146,17 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
168
146
|
}
|
|
169
147
|
this._closed = true;
|
|
170
148
|
// Close RTCPeerConnection.
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
149
|
+
try {
|
|
150
|
+
this._pc.close();
|
|
151
|
+
}
|
|
152
|
+
catch (error) { }
|
|
153
|
+
this._pc.removeEventListener('icegatheringstatechange', this.onIceGatheringStateChange);
|
|
154
|
+
this._pc.removeEventListener('icecandidateerror', this.onIceCandidateError);
|
|
155
|
+
this._pc.removeEventListener('connectionstatechange', this.onConnectionStateChange);
|
|
156
|
+
this._pc.removeEventListener('iceconnectionstatechange', this.onIceConnectionStateChange);
|
|
177
157
|
this.emit('@close');
|
|
158
|
+
// Invoke close() in EnhancedEventEmitter classes.
|
|
159
|
+
super.close();
|
|
178
160
|
}
|
|
179
161
|
async updateIceServers(iceServers) {
|
|
180
162
|
this.assertNotClosed();
|
|
@@ -731,6 +713,40 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
731
713
|
});
|
|
732
714
|
this._transportReady = true;
|
|
733
715
|
}
|
|
716
|
+
onIceGatheringStateChange = () => {
|
|
717
|
+
this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
|
|
718
|
+
};
|
|
719
|
+
onIceCandidateError = (event) => {
|
|
720
|
+
this.emit('@icecandidateerror', event);
|
|
721
|
+
};
|
|
722
|
+
onConnectionStateChange = () => {
|
|
723
|
+
this.emit('@connectionstatechange', this._pc.connectionState);
|
|
724
|
+
};
|
|
725
|
+
onIceConnectionStateChange = () => {
|
|
726
|
+
switch (this._pc.iceConnectionState) {
|
|
727
|
+
case 'checking': {
|
|
728
|
+
this.emit('@connectionstatechange', 'connecting');
|
|
729
|
+
break;
|
|
730
|
+
}
|
|
731
|
+
case 'connected':
|
|
732
|
+
case 'completed': {
|
|
733
|
+
this.emit('@connectionstatechange', 'connected');
|
|
734
|
+
break;
|
|
735
|
+
}
|
|
736
|
+
case 'failed': {
|
|
737
|
+
this.emit('@connectionstatechange', 'failed');
|
|
738
|
+
break;
|
|
739
|
+
}
|
|
740
|
+
case 'disconnected': {
|
|
741
|
+
this.emit('@connectionstatechange', 'disconnected');
|
|
742
|
+
break;
|
|
743
|
+
}
|
|
744
|
+
case 'closed': {
|
|
745
|
+
this.emit('@connectionstatechange', 'closed');
|
|
746
|
+
break;
|
|
747
|
+
}
|
|
748
|
+
}
|
|
749
|
+
};
|
|
734
750
|
assertNotClosed() {
|
|
735
751
|
if (this._closed) {
|
|
736
752
|
throw new errors_1.InvalidStateError('method called in a closed handler');
|