mediasoup-client 3.12.5 → 3.14.0
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/DataConsumer.d.ts.map +1 -1
- package/lib/DataConsumer.js +5 -8
- package/lib/DataProducer.d.ts.map +1 -1
- package/lib/DataProducer.js +5 -7
- package/lib/Device.d.ts +3 -3
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +62 -152
- package/lib/RtpParameters.d.ts +8 -8
- package/lib/RtpParameters.d.ts.map +1 -1
- package/lib/Transport.d.ts +4 -4
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +6 -7
- package/lib/enhancedEvents.d.ts.map +1 -1
- package/lib/enhancedEvents.js +1 -0
- package/lib/handlers/Chrome111.d.ts +7 -12
- package/lib/handlers/Chrome111.d.ts.map +1 -1
- package/lib/handlers/Chrome111.js +130 -89
- package/lib/handlers/Chrome74.d.ts +7 -12
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +130 -85
- package/lib/handlers/FakeHandler.d.ts +6 -9
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +201 -60
- package/lib/handlers/Firefox120.d.ts +7 -12
- package/lib/handlers/Firefox120.d.ts.map +1 -1
- package/lib/handlers/Firefox120.js +154 -111
- package/lib/handlers/HandlerInterface.d.ts +11 -9
- package/lib/handlers/HandlerInterface.d.ts.map +1 -1
- package/lib/handlers/{ReactNativeUnifiedPlan.d.ts → ReactNative106.d.ts} +9 -14
- package/lib/handlers/ReactNative106.d.ts.map +1 -0
- package/lib/handlers/{ReactNativeUnifiedPlan.js → ReactNative106.js} +141 -97
- package/lib/handlers/Safari12.d.ts +7 -12
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +132 -86
- package/lib/handlers/sdp/MediaSection.d.ts +7 -19
- package/lib/handlers/sdp/MediaSection.d.ts.map +1 -1
- package/lib/handlers/sdp/MediaSection.js +47 -156
- package/lib/handlers/sdp/RemoteSdp.d.ts +6 -13
- package/lib/handlers/sdp/RemoteSdp.d.ts.map +1 -1
- package/lib/handlers/sdp/RemoteSdp.js +23 -49
- package/lib/handlers/sdp/commonUtils.d.ts +5 -4
- package/lib/handlers/sdp/commonUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/commonUtils.js +2 -2
- package/lib/handlers/sdp/plainRtpUtils.d.ts +4 -3
- package/lib/handlers/sdp/plainRtpUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/plainRtpUtils.js +2 -2
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts +3 -2
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/unifiedPlanUtils.js +10 -8
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/ortc.d.ts +7 -6
- package/lib/ortc.d.ts.map +1 -1
- package/lib/ortc.js +13 -14
- package/lib/privateTypes.d.ts +27 -0
- package/lib/privateTypes.d.ts.map +1 -0
- package/lib/privateTypes.js +2 -0
- package/lib/test/test.js +18 -113
- package/lib/test/uaTestCases.d.ts.map +1 -1
- package/lib/test/uaTestCases.js +0 -25
- package/lib/utils.d.ts +1 -1
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +5 -4
- package/npm-scripts.mjs +26 -14
- package/package.json +8 -9
- package/lib/handlers/Chrome55.d.ts +0 -51
- package/lib/handlers/Chrome55.d.ts.map +0 -1
- package/lib/handlers/Chrome55.js +0 -554
- package/lib/handlers/Chrome67.d.ts +0 -51
- package/lib/handlers/Chrome67.d.ts.map +0 -1
- package/lib/handlers/Chrome67.js +0 -609
- package/lib/handlers/Chrome70.d.ts +0 -49
- package/lib/handlers/Chrome70.d.ts.map +0 -1
- package/lib/handlers/Chrome70.js +0 -634
- package/lib/handlers/Edge11.d.ts +0 -55
- package/lib/handlers/Edge11.d.ts.map +0 -1
- package/lib/handlers/Edge11.js +0 -447
- package/lib/handlers/Firefox60.d.ts +0 -50
- package/lib/handlers/Firefox60.d.ts.map +0 -1
- package/lib/handlers/Firefox60.js +0 -721
- package/lib/handlers/ReactNative.d.ts +0 -51
- package/lib/handlers/ReactNative.d.ts.map +0 -1
- package/lib/handlers/ReactNative.js +0 -569
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts.map +0 -1
- package/lib/handlers/Safari11.d.ts +0 -51
- package/lib/handlers/Safari11.d.ts.map +0 -1
- package/lib/handlers/Safari11.js +0 -604
- package/lib/handlers/ortc/edgeUtils.d.ts +0 -11
- package/lib/handlers/ortc/edgeUtils.d.ts.map +0 -1
- package/lib/handlers/ortc/edgeUtils.js +0 -70
- package/lib/handlers/sdp/planBUtils.d.ts +0 -14
- package/lib/handlers/sdp/planBUtils.d.ts.map +0 -1
- package/lib/handlers/sdp/planBUtils.js +0 -150
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enhancedEvents.d.ts","sourceRoot":"","sources":["../src/enhancedEvents.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"enhancedEvents.d.ts","sourceRoot":"","sources":["../src/enhancedEvents.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAK3D,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAEpC,qBAAa,oBAAoB,CAChC,CAAC,SAAS,MAAM,GAAG,MAAM,CACxB,SAAQ,YAAY;;IAMZ,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EACvC,SAAS,EAAE,CAAC,EACZ,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GACX,OAAO;IAIV;;OAEG;IACH,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;IAoBjE,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EACrC,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAC/B,IAAI;IAME,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EACtC,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAC/B,IAAI;IAME,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAC9C,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAC/B,IAAI;IAME,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAClD,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAC/B,IAAI;IAME,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EACvC,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAC/B,IAAI;IAME,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EACtD,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAC/B,IAAI;IAME,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EACjD,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAC/B,IAAI;IAME,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI;IAMnE,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM;IAI/D,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,QAAQ,EAAE;IAI/D,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,QAAQ,EAAE;CAG3E"}
|
package/lib/enhancedEvents.js
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import { type HandlerFactory, HandlerInterface, type HandlerRunOptions, type HandlerSendOptions, type HandlerSendResult, type HandlerReceiveOptions, type HandlerReceiveResult, type HandlerSendDataChannelOptions, type HandlerSendDataChannelResult, type HandlerReceiveDataChannelOptions, type HandlerReceiveDataChannelResult } from './HandlerInterface';
|
|
2
1
|
import type { IceParameters } from '../Transport';
|
|
3
|
-
import type
|
|
4
|
-
import type { SctpCapabilities } from '../SctpParameters';
|
|
2
|
+
import { type HandlerFactory, HandlerInterface, type HandlerSendOptions, type HandlerSendResult, type HandlerReceiveOptions, type HandlerReceiveResult, type HandlerSendDataChannelOptions, type HandlerSendDataChannelResult, type HandlerReceiveDataChannelOptions, type HandlerReceiveDataChannelResult } from './HandlerInterface';
|
|
5
3
|
export declare class Chrome111 extends HandlerInterface {
|
|
6
4
|
private _closed;
|
|
7
|
-
private _direction
|
|
8
|
-
private _remoteSdp
|
|
9
|
-
private _sendingRtpParametersByKind
|
|
10
|
-
private _sendingRemoteRtpParametersByKind
|
|
5
|
+
private _direction;
|
|
6
|
+
private _remoteSdp;
|
|
7
|
+
private _sendingRtpParametersByKind;
|
|
8
|
+
private _sendingRemoteRtpParametersByKind;
|
|
11
9
|
private _forcedLocalDtlsRole?;
|
|
12
10
|
private _pc;
|
|
13
11
|
private readonly _mapMidTransceiver;
|
|
@@ -19,12 +17,9 @@ export declare class Chrome111 extends HandlerInterface {
|
|
|
19
17
|
* Creates a factory function.
|
|
20
18
|
*/
|
|
21
19
|
static createFactory(): HandlerFactory;
|
|
22
|
-
constructor();
|
|
20
|
+
private constructor();
|
|
23
21
|
get name(): string;
|
|
24
22
|
close(): void;
|
|
25
|
-
getNativeRtpCapabilities(): Promise<RtpCapabilities>;
|
|
26
|
-
getNativeSctpCapabilities(): Promise<SctpCapabilities>;
|
|
27
|
-
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }: HandlerRunOptions): void;
|
|
28
23
|
updateIceServers(iceServers: RTCIceServer[]): Promise<void>;
|
|
29
24
|
restartIce(iceParameters: IceParameters): Promise<void>;
|
|
30
25
|
getTransportStats(): Promise<RTCStatsReport>;
|
|
@@ -34,7 +29,7 @@ export declare class Chrome111 extends HandlerInterface {
|
|
|
34
29
|
resumeSending(localId: string): Promise<void>;
|
|
35
30
|
replaceTrack(localId: string, track: MediaStreamTrack | null): Promise<void>;
|
|
36
31
|
setMaxSpatialLayer(localId: string, spatialLayer: number): Promise<void>;
|
|
37
|
-
setRtpEncodingParameters(localId: string, params:
|
|
32
|
+
setRtpEncodingParameters(localId: string, params: Partial<RTCRtpEncodingParameters>): Promise<void>;
|
|
38
33
|
getSenderStats(localId: string): Promise<RTCStatsReport>;
|
|
39
34
|
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
40
35
|
receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome111.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome111.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Chrome111.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome111.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,13 +5,13 @@ const sdpTransform = require("sdp-transform");
|
|
|
5
5
|
const Logger_1 = require("../Logger");
|
|
6
6
|
const utils = require("../utils");
|
|
7
7
|
const ortc = require("../ortc");
|
|
8
|
+
const errors_1 = require("../errors");
|
|
9
|
+
const scalabilityModes_1 = require("../scalabilityModes");
|
|
8
10
|
const sdpCommonUtils = require("./sdp/commonUtils");
|
|
9
11
|
const sdpUnifiedPlanUtils = require("./sdp/unifiedPlanUtils");
|
|
10
12
|
const ortcUtils = require("./ortc/utils");
|
|
11
|
-
const errors_1 = require("../errors");
|
|
12
13
|
const HandlerInterface_1 = require("./HandlerInterface");
|
|
13
14
|
const RemoteSdp_1 = require("./sdp/RemoteSdp");
|
|
14
|
-
const scalabilityModes_1 = require("../scalabilityModes");
|
|
15
15
|
const logger = new Logger_1.Logger('Chrome111');
|
|
16
16
|
const NAME = 'Chrome111';
|
|
17
17
|
const SCTP_NUM_STREAMS = { OS: 1024, MIS: 1024 };
|
|
@@ -46,75 +46,56 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
46
46
|
* Creates a factory function.
|
|
47
47
|
*/
|
|
48
48
|
static createFactory() {
|
|
49
|
-
return () => new Chrome111();
|
|
50
|
-
}
|
|
51
|
-
constructor() {
|
|
52
|
-
super();
|
|
53
|
-
}
|
|
54
|
-
get name() {
|
|
55
|
-
return NAME;
|
|
56
|
-
}
|
|
57
|
-
close() {
|
|
58
|
-
logger.debug('close()');
|
|
59
|
-
if (this._closed) {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
this._closed = true;
|
|
63
|
-
// Close RTCPeerConnection.
|
|
64
|
-
if (this._pc) {
|
|
65
|
-
try {
|
|
66
|
-
this._pc.close();
|
|
67
|
-
}
|
|
68
|
-
catch (error) { }
|
|
69
|
-
}
|
|
70
|
-
this.emit('@close');
|
|
71
|
-
}
|
|
72
|
-
async getNativeRtpCapabilities() {
|
|
73
|
-
logger.debug('getNativeRtpCapabilities()');
|
|
74
|
-
const pc = new RTCPeerConnection({
|
|
75
|
-
iceServers: [],
|
|
76
|
-
iceTransportPolicy: 'all',
|
|
77
|
-
bundlePolicy: 'max-bundle',
|
|
78
|
-
rtcpMuxPolicy: 'require',
|
|
79
|
-
sdpSemantics: 'unified-plan',
|
|
80
|
-
});
|
|
81
|
-
try {
|
|
82
|
-
pc.addTransceiver('audio');
|
|
83
|
-
// Create video transceiver with scalability mode in order to retrieve
|
|
84
|
-
// Dependency Descriptor header extension.
|
|
85
|
-
pc.addTransceiver('video', {
|
|
86
|
-
sendEncodings: [{ scalabilityMode: 'L3T3' }],
|
|
87
|
-
});
|
|
88
|
-
const offer = await pc.createOffer();
|
|
89
|
-
try {
|
|
90
|
-
pc.close();
|
|
91
|
-
}
|
|
92
|
-
catch (error) { }
|
|
93
|
-
const sdpObject = sdpTransform.parse(offer.sdp);
|
|
94
|
-
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
95
|
-
sdpObject,
|
|
96
|
-
});
|
|
97
|
-
// libwebrtc supports NACK for OPUS but doesn't announce it.
|
|
98
|
-
ortcUtils.addNackSupportForOpus(nativeRtpCapabilities);
|
|
99
|
-
return nativeRtpCapabilities;
|
|
100
|
-
}
|
|
101
|
-
catch (error) {
|
|
102
|
-
try {
|
|
103
|
-
pc.close();
|
|
104
|
-
}
|
|
105
|
-
catch (error2) { }
|
|
106
|
-
throw error;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
async getNativeSctpCapabilities() {
|
|
110
|
-
logger.debug('getNativeSctpCapabilities()');
|
|
111
49
|
return {
|
|
112
|
-
|
|
50
|
+
name: NAME,
|
|
51
|
+
factory: (options) => new Chrome111(options),
|
|
52
|
+
getNativeRtpCapabilities: async () => {
|
|
53
|
+
logger.debug('getNativeRtpCapabilities()');
|
|
54
|
+
const pc = new RTCPeerConnection({
|
|
55
|
+
iceServers: [],
|
|
56
|
+
iceTransportPolicy: 'all',
|
|
57
|
+
bundlePolicy: 'max-bundle',
|
|
58
|
+
rtcpMuxPolicy: 'require',
|
|
59
|
+
});
|
|
60
|
+
try {
|
|
61
|
+
pc.addTransceiver('audio');
|
|
62
|
+
// Create video transceiver with scalability mode in order to retrieve
|
|
63
|
+
// Dependency Descriptor header extension.
|
|
64
|
+
pc.addTransceiver('video', {
|
|
65
|
+
sendEncodings: [{ scalabilityMode: 'L3T3' }],
|
|
66
|
+
});
|
|
67
|
+
const offer = await pc.createOffer();
|
|
68
|
+
try {
|
|
69
|
+
pc.close();
|
|
70
|
+
}
|
|
71
|
+
catch (error) { }
|
|
72
|
+
const sdpObject = sdpTransform.parse(offer.sdp);
|
|
73
|
+
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
74
|
+
sdpObject,
|
|
75
|
+
});
|
|
76
|
+
// libwebrtc supports NACK for OPUS but doesn't announce it.
|
|
77
|
+
ortcUtils.addNackSupportForOpus(nativeRtpCapabilities);
|
|
78
|
+
return nativeRtpCapabilities;
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
try {
|
|
82
|
+
pc.close();
|
|
83
|
+
}
|
|
84
|
+
catch (error2) { }
|
|
85
|
+
throw error;
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
getNativeSctpCapabilities: async () => {
|
|
89
|
+
logger.debug('getNativeSctpCapabilities()');
|
|
90
|
+
return {
|
|
91
|
+
numStreams: SCTP_NUM_STREAMS,
|
|
92
|
+
};
|
|
93
|
+
},
|
|
113
94
|
};
|
|
114
95
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
logger.debug('
|
|
96
|
+
constructor({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, extendedRtpCapabilities, }) {
|
|
97
|
+
super();
|
|
98
|
+
logger.debug('constructor()');
|
|
118
99
|
this._direction = direction;
|
|
119
100
|
this._remoteSdp = new RemoteSdp_1.RemoteSdp({
|
|
120
101
|
iceParameters,
|
|
@@ -139,9 +120,8 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
139
120
|
iceTransportPolicy: iceTransportPolicy ?? 'all',
|
|
140
121
|
bundlePolicy: 'max-bundle',
|
|
141
122
|
rtcpMuxPolicy: 'require',
|
|
142
|
-
sdpSemantics: 'unified-plan',
|
|
143
123
|
...additionalSettings,
|
|
144
|
-
}
|
|
124
|
+
});
|
|
145
125
|
this._pc.addEventListener('icegatheringstatechange', () => {
|
|
146
126
|
this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
|
|
147
127
|
});
|
|
@@ -182,6 +162,24 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
182
162
|
});
|
|
183
163
|
}
|
|
184
164
|
}
|
|
165
|
+
get name() {
|
|
166
|
+
return NAME;
|
|
167
|
+
}
|
|
168
|
+
close() {
|
|
169
|
+
logger.debug('close()');
|
|
170
|
+
if (this._closed) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
this._closed = true;
|
|
174
|
+
// Close RTCPeerConnection.
|
|
175
|
+
if (this._pc) {
|
|
176
|
+
try {
|
|
177
|
+
this._pc.close();
|
|
178
|
+
}
|
|
179
|
+
catch (error) { }
|
|
180
|
+
}
|
|
181
|
+
this.emit('@close');
|
|
182
|
+
}
|
|
185
183
|
async updateIceServers(iceServers) {
|
|
186
184
|
this.assertNotClosed();
|
|
187
185
|
logger.debug('updateIceServers()');
|
|
@@ -201,12 +199,18 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
201
199
|
const offer = await this._pc.createOffer({ iceRestart: true });
|
|
202
200
|
logger.debug('restartIce() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
203
201
|
await this._pc.setLocalDescription(offer);
|
|
204
|
-
const answer = {
|
|
202
|
+
const answer = {
|
|
203
|
+
type: 'answer',
|
|
204
|
+
sdp: this._remoteSdp.getSdp(),
|
|
205
|
+
};
|
|
205
206
|
logger.debug('restartIce() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
206
207
|
await this._pc.setRemoteDescription(answer);
|
|
207
208
|
}
|
|
208
209
|
else {
|
|
209
|
-
const offer = {
|
|
210
|
+
const offer = {
|
|
211
|
+
type: 'offer',
|
|
212
|
+
sdp: this._remoteSdp.getSdp(),
|
|
213
|
+
};
|
|
210
214
|
logger.debug('restartIce() | calling pc.setRemoteDescription() [offer:%o]', offer);
|
|
211
215
|
await this._pc.setRemoteDescription(offer);
|
|
212
216
|
const answer = await this._pc.createAnswer();
|
|
@@ -259,8 +263,6 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
259
263
|
}
|
|
260
264
|
const offer = await this._pc.createOffer();
|
|
261
265
|
let localSdpObject = sdpTransform.parse(offer.sdp);
|
|
262
|
-
// @ts-expect-error --- sdpTransform.SessionDescription type doesn't
|
|
263
|
-
// define extmapAllowMixed field.
|
|
264
266
|
if (localSdpObject.extmapAllowMixed) {
|
|
265
267
|
this._remoteSdp.setSessionExtmapAllowMixed();
|
|
266
268
|
}
|
|
@@ -308,7 +310,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
308
310
|
answerRtpParameters: sendingRemoteRtpParameters,
|
|
309
311
|
codecOptions,
|
|
310
312
|
});
|
|
311
|
-
const answer = {
|
|
313
|
+
const answer = {
|
|
314
|
+
type: 'answer',
|
|
315
|
+
sdp: this._remoteSdp.getSdp(),
|
|
316
|
+
};
|
|
312
317
|
logger.debug('send() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
313
318
|
await this._pc.setRemoteDescription(answer);
|
|
314
319
|
// Store in the map.
|
|
@@ -341,7 +346,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
341
346
|
const offer = await this._pc.createOffer();
|
|
342
347
|
logger.debug('stopSending() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
343
348
|
await this._pc.setLocalDescription(offer);
|
|
344
|
-
const answer = {
|
|
349
|
+
const answer = {
|
|
350
|
+
type: 'answer',
|
|
351
|
+
sdp: this._remoteSdp.getSdp(),
|
|
352
|
+
};
|
|
345
353
|
logger.debug('stopSending() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
346
354
|
await this._pc.setRemoteDescription(answer);
|
|
347
355
|
this._mapMidTransceiver.delete(localId);
|
|
@@ -359,7 +367,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
359
367
|
const offer = await this._pc.createOffer();
|
|
360
368
|
logger.debug('pauseSending() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
361
369
|
await this._pc.setLocalDescription(offer);
|
|
362
|
-
const answer = {
|
|
370
|
+
const answer = {
|
|
371
|
+
type: 'answer',
|
|
372
|
+
sdp: this._remoteSdp.getSdp(),
|
|
373
|
+
};
|
|
363
374
|
logger.debug('pauseSending() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
364
375
|
await this._pc.setRemoteDescription(answer);
|
|
365
376
|
}
|
|
@@ -376,7 +387,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
376
387
|
const offer = await this._pc.createOffer();
|
|
377
388
|
logger.debug('resumeSending() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
378
389
|
await this._pc.setLocalDescription(offer);
|
|
379
|
-
const answer = {
|
|
390
|
+
const answer = {
|
|
391
|
+
type: 'answer',
|
|
392
|
+
sdp: this._remoteSdp.getSdp(),
|
|
393
|
+
};
|
|
380
394
|
logger.debug('resumeSending() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
381
395
|
await this._pc.setRemoteDescription(answer);
|
|
382
396
|
}
|
|
@@ -417,7 +431,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
417
431
|
const offer = await this._pc.createOffer();
|
|
418
432
|
logger.debug('setMaxSpatialLayer() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
419
433
|
await this._pc.setLocalDescription(offer);
|
|
420
|
-
const answer = {
|
|
434
|
+
const answer = {
|
|
435
|
+
type: 'answer',
|
|
436
|
+
sdp: this._remoteSdp.getSdp(),
|
|
437
|
+
};
|
|
421
438
|
logger.debug('setMaxSpatialLayer() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
422
439
|
await this._pc.setRemoteDescription(answer);
|
|
423
440
|
}
|
|
@@ -438,7 +455,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
438
455
|
const offer = await this._pc.createOffer();
|
|
439
456
|
logger.debug('setRtpEncodingParameters() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
440
457
|
await this._pc.setLocalDescription(offer);
|
|
441
|
-
const answer = {
|
|
458
|
+
const answer = {
|
|
459
|
+
type: 'answer',
|
|
460
|
+
sdp: this._remoteSdp.getSdp(),
|
|
461
|
+
};
|
|
442
462
|
logger.debug('setRtpEncodingParameters() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
443
463
|
await this._pc.setRemoteDescription(answer);
|
|
444
464
|
}
|
|
@@ -472,7 +492,7 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
472
492
|
if (!this._hasDataChannelMediaSection) {
|
|
473
493
|
const offer = await this._pc.createOffer();
|
|
474
494
|
const localSdpObject = sdpTransform.parse(offer.sdp);
|
|
475
|
-
const offerMediaObject = localSdpObject.media.find(
|
|
495
|
+
const offerMediaObject = localSdpObject.media.find(m => m.type === 'application');
|
|
476
496
|
if (!this._transportReady) {
|
|
477
497
|
await this.setupTransport({
|
|
478
498
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
@@ -482,7 +502,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
482
502
|
logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
483
503
|
await this._pc.setLocalDescription(offer);
|
|
484
504
|
this._remoteSdp.sendSctpAssociation({ offerMediaObject });
|
|
485
|
-
const answer = {
|
|
505
|
+
const answer = {
|
|
506
|
+
type: 'answer',
|
|
507
|
+
sdp: this._remoteSdp.getSdp(),
|
|
508
|
+
};
|
|
486
509
|
logger.debug('sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
487
510
|
await this._pc.setRemoteDescription(answer);
|
|
488
511
|
this._hasDataChannelMediaSection = true;
|
|
@@ -513,7 +536,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
513
536
|
trackId,
|
|
514
537
|
});
|
|
515
538
|
}
|
|
516
|
-
const offer = {
|
|
539
|
+
const offer = {
|
|
540
|
+
type: 'offer',
|
|
541
|
+
sdp: this._remoteSdp.getSdp(),
|
|
542
|
+
};
|
|
517
543
|
logger.debug('receive() | calling pc.setRemoteDescription() [offer:%o]', offer);
|
|
518
544
|
await this._pc.setRemoteDescription(offer);
|
|
519
545
|
for (const options of optionsList) {
|
|
@@ -534,7 +560,7 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
534
560
|
for (const options of optionsList) {
|
|
535
561
|
const { trackId, rtpParameters } = options;
|
|
536
562
|
const localId = mapLocalId.get(trackId);
|
|
537
|
-
const answerMediaObject = localSdpObject.media.find(
|
|
563
|
+
const answerMediaObject = localSdpObject.media.find(m => String(m.mid) === localId);
|
|
538
564
|
// May need to modify codec parameters in the answer based on codec
|
|
539
565
|
// parameters in the offer.
|
|
540
566
|
sdpCommonUtils.applyCodecParameters({
|
|
@@ -542,7 +568,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
542
568
|
answerMediaObject,
|
|
543
569
|
});
|
|
544
570
|
}
|
|
545
|
-
answer = {
|
|
571
|
+
answer = {
|
|
572
|
+
type: 'answer',
|
|
573
|
+
sdp: sdpTransform.write(localSdpObject),
|
|
574
|
+
};
|
|
546
575
|
if (!this._transportReady) {
|
|
547
576
|
await this.setupTransport({
|
|
548
577
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
@@ -585,7 +614,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
585
614
|
}
|
|
586
615
|
this._remoteSdp.closeMediaSection(transceiver.mid);
|
|
587
616
|
}
|
|
588
|
-
const offer = {
|
|
617
|
+
const offer = {
|
|
618
|
+
type: 'offer',
|
|
619
|
+
sdp: this._remoteSdp.getSdp(),
|
|
620
|
+
};
|
|
589
621
|
logger.debug('stopReceiving() | calling pc.setRemoteDescription() [offer:%o]', offer);
|
|
590
622
|
await this._pc.setRemoteDescription(offer);
|
|
591
623
|
const answer = await this._pc.createAnswer();
|
|
@@ -607,7 +639,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
607
639
|
transceiver.direction = 'inactive';
|
|
608
640
|
this._remoteSdp.pauseMediaSection(localId);
|
|
609
641
|
}
|
|
610
|
-
const offer = {
|
|
642
|
+
const offer = {
|
|
643
|
+
type: 'offer',
|
|
644
|
+
sdp: this._remoteSdp.getSdp(),
|
|
645
|
+
};
|
|
611
646
|
logger.debug('pauseReceiving() | calling pc.setRemoteDescription() [offer:%o]', offer);
|
|
612
647
|
await this._pc.setRemoteDescription(offer);
|
|
613
648
|
const answer = await this._pc.createAnswer();
|
|
@@ -626,7 +661,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
626
661
|
transceiver.direction = 'recvonly';
|
|
627
662
|
this._remoteSdp.resumeReceivingMediaSection(localId);
|
|
628
663
|
}
|
|
629
|
-
const offer = {
|
|
664
|
+
const offer = {
|
|
665
|
+
type: 'offer',
|
|
666
|
+
sdp: this._remoteSdp.getSdp(),
|
|
667
|
+
};
|
|
630
668
|
logger.debug('resumeReceiving() | calling pc.setRemoteDescription() [offer:%o]', offer);
|
|
631
669
|
await this._pc.setRemoteDescription(offer);
|
|
632
670
|
const answer = await this._pc.createAnswer();
|
|
@@ -660,7 +698,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
660
698
|
// m=application section.
|
|
661
699
|
if (!this._hasDataChannelMediaSection) {
|
|
662
700
|
this._remoteSdp.receiveSctpAssociation();
|
|
663
|
-
const offer = {
|
|
701
|
+
const offer = {
|
|
702
|
+
type: 'offer',
|
|
703
|
+
sdp: this._remoteSdp.getSdp(),
|
|
704
|
+
};
|
|
664
705
|
logger.debug('receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]', offer);
|
|
665
706
|
await this._pc.setRemoteDescription(offer);
|
|
666
707
|
const answer = await this._pc.createAnswer();
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import { type HandlerFactory, HandlerInterface, type HandlerRunOptions, type HandlerSendOptions, type HandlerSendResult, type HandlerReceiveOptions, type HandlerReceiveResult, type HandlerSendDataChannelOptions, type HandlerSendDataChannelResult, type HandlerReceiveDataChannelOptions, type HandlerReceiveDataChannelResult } from './HandlerInterface';
|
|
2
1
|
import type { IceParameters } from '../Transport';
|
|
3
|
-
import type
|
|
4
|
-
import type { SctpCapabilities } from '../SctpParameters';
|
|
2
|
+
import { type HandlerFactory, HandlerInterface, type HandlerSendOptions, type HandlerSendResult, type HandlerReceiveOptions, type HandlerReceiveResult, type HandlerSendDataChannelOptions, type HandlerSendDataChannelResult, type HandlerReceiveDataChannelOptions, type HandlerReceiveDataChannelResult } from './HandlerInterface';
|
|
5
3
|
export declare class Chrome74 extends HandlerInterface {
|
|
6
4
|
private _closed;
|
|
7
|
-
private _direction
|
|
8
|
-
private _remoteSdp
|
|
9
|
-
private _sendingRtpParametersByKind
|
|
10
|
-
private _sendingRemoteRtpParametersByKind
|
|
5
|
+
private _direction;
|
|
6
|
+
private _remoteSdp;
|
|
7
|
+
private _sendingRtpParametersByKind;
|
|
8
|
+
private _sendingRemoteRtpParametersByKind;
|
|
11
9
|
private _forcedLocalDtlsRole?;
|
|
12
10
|
private _pc;
|
|
13
11
|
private readonly _mapMidTransceiver;
|
|
@@ -19,12 +17,9 @@ export declare class Chrome74 extends HandlerInterface {
|
|
|
19
17
|
* Creates a factory function.
|
|
20
18
|
*/
|
|
21
19
|
static createFactory(): HandlerFactory;
|
|
22
|
-
constructor();
|
|
20
|
+
private constructor();
|
|
23
21
|
get name(): string;
|
|
24
22
|
close(): void;
|
|
25
|
-
getNativeRtpCapabilities(): Promise<RtpCapabilities>;
|
|
26
|
-
getNativeSctpCapabilities(): Promise<SctpCapabilities>;
|
|
27
|
-
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }: HandlerRunOptions): void;
|
|
28
23
|
updateIceServers(iceServers: RTCIceServer[]): Promise<void>;
|
|
29
24
|
restartIce(iceParameters: IceParameters): Promise<void>;
|
|
30
25
|
getTransportStats(): Promise<RTCStatsReport>;
|
|
@@ -34,7 +29,7 @@ export declare class Chrome74 extends HandlerInterface {
|
|
|
34
29
|
resumeSending(localId: string): Promise<void>;
|
|
35
30
|
replaceTrack(localId: string, track: MediaStreamTrack | null): Promise<void>;
|
|
36
31
|
setMaxSpatialLayer(localId: string, spatialLayer: number): Promise<void>;
|
|
37
|
-
setRtpEncodingParameters(localId: string, params:
|
|
32
|
+
setRtpEncodingParameters(localId: string, params: Partial<RTCRtpEncodingParameters>): Promise<void>;
|
|
38
33
|
getSenderStats(localId: string): Promise<RTCStatsReport>;
|
|
39
34
|
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
40
35
|
receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome74.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome74.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Chrome74.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome74.ts"],"names":[],"mappings":"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"}
|