mediasoup-client 3.7.0 → 3.7.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/README.md +85 -112
- package/lib/Consumer.d.ts +1 -1
- package/lib/Consumer.d.ts.map +1 -1
- package/lib/Consumer.js +1 -1
- package/lib/DataConsumer.d.ts +1 -1
- package/lib/DataConsumer.d.ts.map +1 -1
- package/lib/DataConsumer.js +1 -1
- package/lib/DataProducer.d.ts +1 -1
- package/lib/DataProducer.d.ts.map +1 -1
- package/lib/DataProducer.js +1 -1
- package/lib/Device.d.ts +3 -3
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +43 -42
- package/lib/EnhancedEventEmitter.d.ts.map +1 -1
- package/lib/Logger.d.ts.map +1 -1
- package/lib/Producer.d.ts +5 -15
- package/lib/Producer.d.ts.map +1 -1
- package/lib/Producer.js +2 -2
- package/lib/RtpParameters.d.ts.map +1 -1
- package/lib/SctpParameters.d.ts.map +1 -1
- package/lib/Transport.d.ts +14 -10
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +71 -53
- package/lib/errors.d.ts.map +1 -1
- package/lib/errors.js +6 -6
- package/lib/handlers/Chrome111.d.ts +4 -4
- package/lib/handlers/Chrome111.d.ts.map +1 -1
- package/lib/handlers/Chrome111.js +64 -57
- package/lib/handlers/Chrome55.d.ts +4 -4
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +75 -62
- package/lib/handlers/Chrome67.d.ts +4 -4
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +77 -65
- package/lib/handlers/Chrome70.d.ts +4 -4
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +68 -60
- package/lib/handlers/Chrome74.d.ts +4 -4
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +65 -58
- package/lib/handlers/Edge11.d.ts +1 -1
- package/lib/handlers/Edge11.d.ts.map +1 -1
- package/lib/handlers/Edge11.js +43 -37
- package/lib/handlers/FakeHandler.d.ts +3 -3
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +19 -22
- package/lib/handlers/Firefox60.d.ts +4 -4
- package/lib/handlers/Firefox60.d.ts.map +1 -1
- package/lib/handlers/Firefox60.js +65 -52
- package/lib/handlers/HandlerInterface.d.ts.map +1 -1
- package/lib/handlers/ReactNative.d.ts +4 -4
- package/lib/handlers/ReactNative.d.ts.map +1 -1
- package/lib/handlers/ReactNative.js +76 -64
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts +4 -4
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts.map +1 -1
- package/lib/handlers/ReactNativeUnifiedPlan.js +65 -58
- package/lib/handlers/Safari11.d.ts +4 -4
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +74 -61
- package/lib/handlers/Safari12.d.ts +4 -4
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +65 -57
- package/lib/handlers/ortc/edgeUtils.d.ts.map +1 -1
- package/lib/handlers/ortc/utils.d.ts.map +1 -1
- package/lib/handlers/ortc/utils.js +2 -2
- package/lib/handlers/sdp/MediaSection.d.ts +5 -5
- package/lib/handlers/sdp/MediaSection.d.ts.map +1 -1
- package/lib/handlers/sdp/MediaSection.js +287 -305
- package/lib/handlers/sdp/RemoteSdp.d.ts +5 -5
- package/lib/handlers/sdp/RemoteSdp.d.ts.map +1 -1
- package/lib/handlers/sdp/RemoteSdp.js +28 -30
- package/lib/handlers/sdp/commonUtils.d.ts +4 -4
- package/lib/handlers/sdp/commonUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/commonUtils.js +41 -46
- package/lib/handlers/sdp/plainRtpUtils.d.ts +2 -2
- package/lib/handlers/sdp/plainRtpUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/plainRtpUtils.js +5 -7
- package/lib/handlers/sdp/planBUtils.d.ts +2 -2
- package/lib/handlers/sdp/planBUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/planBUtils.js +11 -14
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts +2 -2
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/unifiedPlanUtils.js +11 -14
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/ortc.d.ts.map +1 -1
- package/lib/ortc.js +90 -92
- package/lib/scalabilityModes.d.ts.map +1 -1
- package/lib/scalabilityModes.js +2 -2
- package/lib/{tests → test}/fakeParameters.d.ts +2 -2
- package/lib/test/fakeParameters.d.ts.map +1 -0
- package/lib/test/fakeParameters.js +645 -0
- package/lib/{tests → test}/test.d.ts.map +1 -1
- package/lib/{tests → test}/test.js +466 -495
- package/lib/test/uaTestCases.d.ts.map +1 -0
- package/lib/{tests → test}/uaTestCases.js +17 -17
- package/lib/types.d.ts.map +1 -1
- package/lib/utils.d.ts.map +1 -1
- package/npm-scripts.mjs +72 -98
- package/package.json +93 -90
- package/lib/tests/fakeParameters.d.ts.map +0 -1
- package/lib/tests/fakeParameters.js +0 -662
- package/lib/tests/uaTestCases.d.ts.map +0 -1
- /package/lib/{tests → test}/test.d.ts +0 -0
- /package/lib/{tests → test}/uaTestCases.d.ts +0 -0
package/lib/handlers/Chrome55.js
CHANGED
|
@@ -81,19 +81,21 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
81
81
|
iceTransportPolicy: 'all',
|
|
82
82
|
bundlePolicy: 'max-bundle',
|
|
83
83
|
rtcpMuxPolicy: 'require',
|
|
84
|
-
sdpSemantics: 'plan-b'
|
|
84
|
+
sdpSemantics: 'plan-b',
|
|
85
85
|
});
|
|
86
86
|
try {
|
|
87
87
|
const offer = await pc.createOffer({
|
|
88
88
|
offerToReceiveAudio: true,
|
|
89
|
-
offerToReceiveVideo: true
|
|
89
|
+
offerToReceiveVideo: true,
|
|
90
90
|
});
|
|
91
91
|
try {
|
|
92
92
|
pc.close();
|
|
93
93
|
}
|
|
94
94
|
catch (error) { }
|
|
95
95
|
const sdpObject = sdpTransform.parse(offer.sdp);
|
|
96
|
-
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
96
|
+
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
97
|
+
sdpObject,
|
|
98
|
+
});
|
|
97
99
|
return nativeRtpCapabilities;
|
|
98
100
|
}
|
|
99
101
|
catch (error) {
|
|
@@ -107,10 +109,10 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
107
109
|
async getNativeSctpCapabilities() {
|
|
108
110
|
logger.debug('getNativeSctpCapabilities()');
|
|
109
111
|
return {
|
|
110
|
-
numStreams: SCTP_NUM_STREAMS
|
|
112
|
+
numStreams: SCTP_NUM_STREAMS,
|
|
111
113
|
};
|
|
112
114
|
}
|
|
113
|
-
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities }) {
|
|
115
|
+
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }) {
|
|
114
116
|
logger.debug('run()');
|
|
115
117
|
this._direction = direction;
|
|
116
118
|
this._remoteSdp = new RemoteSdp_1.RemoteSdp({
|
|
@@ -118,22 +120,19 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
118
120
|
iceCandidates,
|
|
119
121
|
dtlsParameters,
|
|
120
122
|
sctpParameters,
|
|
121
|
-
planB: true
|
|
123
|
+
planB: true,
|
|
122
124
|
});
|
|
123
|
-
this._sendingRtpParametersByKind =
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities)
|
|
132
|
-
};
|
|
125
|
+
this._sendingRtpParametersByKind = {
|
|
126
|
+
audio: ortc.getSendingRtpParameters('audio', extendedRtpCapabilities),
|
|
127
|
+
video: ortc.getSendingRtpParameters('video', extendedRtpCapabilities),
|
|
128
|
+
};
|
|
129
|
+
this._sendingRemoteRtpParametersByKind = {
|
|
130
|
+
audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
|
|
131
|
+
video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities),
|
|
132
|
+
};
|
|
133
133
|
if (dtlsParameters.role && dtlsParameters.role !== 'auto') {
|
|
134
|
-
this._forcedLocalDtlsRole =
|
|
135
|
-
? 'client'
|
|
136
|
-
: 'server';
|
|
134
|
+
this._forcedLocalDtlsRole =
|
|
135
|
+
dtlsParameters.role === 'server' ? 'client' : 'server';
|
|
137
136
|
}
|
|
138
137
|
this._pc = new RTCPeerConnection({
|
|
139
138
|
iceServers: iceServers || [],
|
|
@@ -141,7 +140,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
141
140
|
bundlePolicy: 'max-bundle',
|
|
142
141
|
rtcpMuxPolicy: 'require',
|
|
143
142
|
sdpSemantics: 'plan-b',
|
|
144
|
-
...additionalSettings
|
|
143
|
+
...additionalSettings,
|
|
145
144
|
}, proprietaryConstraints);
|
|
146
145
|
this._pc.addEventListener('icegatheringstatechange', () => {
|
|
147
146
|
this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
|
|
@@ -155,22 +154,27 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
155
154
|
this._pc.addEventListener('iceconnectionstatechange', () => {
|
|
156
155
|
logger.warn('run() | pc.connectionState not supported, using pc.iceConnectionState');
|
|
157
156
|
switch (this._pc.iceConnectionState) {
|
|
158
|
-
case 'checking':
|
|
157
|
+
case 'checking': {
|
|
159
158
|
this.emit('@connectionstatechange', 'connecting');
|
|
160
159
|
break;
|
|
160
|
+
}
|
|
161
161
|
case 'connected':
|
|
162
|
-
case 'completed':
|
|
162
|
+
case 'completed': {
|
|
163
163
|
this.emit('@connectionstatechange', 'connected');
|
|
164
164
|
break;
|
|
165
|
-
|
|
165
|
+
}
|
|
166
|
+
case 'failed': {
|
|
166
167
|
this.emit('@connectionstatechange', 'failed');
|
|
167
168
|
break;
|
|
168
|
-
|
|
169
|
+
}
|
|
170
|
+
case 'disconnected': {
|
|
169
171
|
this.emit('@connectionstatechange', 'disconnected');
|
|
170
172
|
break;
|
|
171
|
-
|
|
173
|
+
}
|
|
174
|
+
case 'closed': {
|
|
172
175
|
this.emit('@connectionstatechange', 'closed');
|
|
173
176
|
break;
|
|
177
|
+
}
|
|
174
178
|
}
|
|
175
179
|
});
|
|
176
180
|
}
|
|
@@ -208,7 +212,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
208
212
|
async getTransportStats() {
|
|
209
213
|
return this._pc.getStats();
|
|
210
214
|
}
|
|
211
|
-
async send({ track, encodings, codecOptions, codec }) {
|
|
215
|
+
async send({ track, encodings, codecOptions, codec, }) {
|
|
212
216
|
this.assertSendDirection();
|
|
213
217
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
214
218
|
if (codec) {
|
|
@@ -220,15 +224,13 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
220
224
|
let localSdpObject = sdpTransform.parse(offer.sdp);
|
|
221
225
|
let offerMediaObject;
|
|
222
226
|
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
223
|
-
sendingRtpParameters.codecs =
|
|
224
|
-
ortc.reduceCodecs(sendingRtpParameters.codecs);
|
|
227
|
+
sendingRtpParameters.codecs = ortc.reduceCodecs(sendingRtpParameters.codecs);
|
|
225
228
|
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
|
|
226
|
-
sendingRemoteRtpParameters.codecs =
|
|
227
|
-
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
|
|
229
|
+
sendingRemoteRtpParameters.codecs = ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
|
|
228
230
|
if (!this._transportReady) {
|
|
229
231
|
await this.setupTransport({
|
|
230
232
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
231
|
-
localSdpObject
|
|
233
|
+
localSdpObject,
|
|
232
234
|
});
|
|
233
235
|
}
|
|
234
236
|
if (track.kind === 'video' && encodings && encodings.length > 1) {
|
|
@@ -238,21 +240,23 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
238
240
|
sdpPlanBUtils.addLegacySimulcast({
|
|
239
241
|
offerMediaObject,
|
|
240
242
|
track,
|
|
241
|
-
numStreams: encodings.length
|
|
243
|
+
numStreams: encodings.length,
|
|
242
244
|
});
|
|
243
245
|
offer = { type: 'offer', sdp: sdpTransform.write(localSdpObject) };
|
|
244
246
|
}
|
|
245
247
|
logger.debug('send() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
246
248
|
await this._pc.setLocalDescription(offer);
|
|
247
249
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
248
|
-
offerMediaObject = localSdpObject.media
|
|
249
|
-
.find((m) => m.type === track.kind);
|
|
250
|
+
offerMediaObject = localSdpObject.media.find((m) => m.type === track.kind);
|
|
250
251
|
// Set RTCP CNAME.
|
|
251
|
-
sendingRtpParameters.rtcp.cname =
|
|
252
|
-
|
|
252
|
+
sendingRtpParameters.rtcp.cname = sdpCommonUtils.getCname({
|
|
253
|
+
offerMediaObject,
|
|
254
|
+
});
|
|
253
255
|
// Set RTP encodings.
|
|
254
|
-
sendingRtpParameters.encodings =
|
|
255
|
-
|
|
256
|
+
sendingRtpParameters.encodings = sdpPlanBUtils.getRtpEncodings({
|
|
257
|
+
offerMediaObject,
|
|
258
|
+
track,
|
|
259
|
+
});
|
|
256
260
|
// Complete encodings with given values.
|
|
257
261
|
if (encodings) {
|
|
258
262
|
for (let idx = 0; idx < sendingRtpParameters.encodings.length; ++idx) {
|
|
@@ -273,7 +277,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
273
277
|
offerMediaObject,
|
|
274
278
|
offerRtpParameters: sendingRtpParameters,
|
|
275
279
|
answerRtpParameters: sendingRemoteRtpParameters,
|
|
276
|
-
codecOptions
|
|
280
|
+
codecOptions,
|
|
277
281
|
});
|
|
278
282
|
const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
|
|
279
283
|
logger.debug('send() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
@@ -284,7 +288,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
284
288
|
this._mapSendLocalIdTrack.set(localId, track);
|
|
285
289
|
return {
|
|
286
290
|
localId: localId,
|
|
287
|
-
rtpParameters: sendingRtpParameters
|
|
291
|
+
rtpParameters: sendingRtpParameters,
|
|
288
292
|
};
|
|
289
293
|
}
|
|
290
294
|
async stopSending(localId) {
|
|
@@ -328,11 +332,16 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
328
332
|
}
|
|
329
333
|
async replaceTrack(
|
|
330
334
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
331
|
-
localId,
|
|
335
|
+
localId,
|
|
336
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
337
|
+
track) {
|
|
332
338
|
throw new errors_1.UnsupportedError('not implemented');
|
|
333
339
|
}
|
|
340
|
+
async setMaxSpatialLayer(
|
|
341
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
342
|
+
localId,
|
|
334
343
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
335
|
-
|
|
344
|
+
spatialLayer) {
|
|
336
345
|
throw new errors_1.UnsupportedError(' not implemented');
|
|
337
346
|
}
|
|
338
347
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -343,16 +352,16 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
343
352
|
async getSenderStats(localId) {
|
|
344
353
|
throw new errors_1.UnsupportedError('not implemented');
|
|
345
354
|
}
|
|
346
|
-
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
355
|
+
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }) {
|
|
347
356
|
this.assertSendDirection();
|
|
348
357
|
const options = {
|
|
349
358
|
negotiated: true,
|
|
350
359
|
id: this._nextSendSctpStreamId,
|
|
351
360
|
ordered,
|
|
352
361
|
maxPacketLifeTime,
|
|
353
|
-
maxRetransmitTime: maxPacketLifeTime,
|
|
362
|
+
maxRetransmitTime: maxPacketLifeTime, // NOTE: Old spec.
|
|
354
363
|
maxRetransmits,
|
|
355
|
-
protocol
|
|
364
|
+
protocol,
|
|
356
365
|
};
|
|
357
366
|
logger.debug('sendDataChannel() [options:%o]', options);
|
|
358
367
|
const dataChannel = this._pc.createDataChannel(label, options);
|
|
@@ -364,12 +373,11 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
364
373
|
if (!this._hasDataChannelMediaSection) {
|
|
365
374
|
const offer = await this._pc.createOffer();
|
|
366
375
|
const localSdpObject = sdpTransform.parse(offer.sdp);
|
|
367
|
-
const offerMediaObject = localSdpObject.media
|
|
368
|
-
.find((m) => m.type === 'application');
|
|
376
|
+
const offerMediaObject = localSdpObject.media.find((m) => m.type === 'application');
|
|
369
377
|
if (!this._transportReady) {
|
|
370
378
|
await this.setupTransport({
|
|
371
379
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
372
|
-
localSdpObject
|
|
380
|
+
localSdpObject,
|
|
373
381
|
});
|
|
374
382
|
}
|
|
375
383
|
logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
@@ -384,7 +392,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
384
392
|
streamId: options.id,
|
|
385
393
|
ordered: options.ordered,
|
|
386
394
|
maxPacketLifeTime: options.maxPacketLifeTime,
|
|
387
|
-
maxRetransmits: options.maxRetransmits
|
|
395
|
+
maxRetransmits: options.maxRetransmits,
|
|
388
396
|
};
|
|
389
397
|
return { dataChannel, sctpStreamParameters };
|
|
390
398
|
}
|
|
@@ -400,7 +408,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
400
408
|
kind,
|
|
401
409
|
offerRtpParameters: rtpParameters,
|
|
402
410
|
streamId: streamId || rtpParameters.rtcp.cname,
|
|
403
|
-
trackId
|
|
411
|
+
trackId,
|
|
404
412
|
});
|
|
405
413
|
}
|
|
406
414
|
const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
|
|
@@ -411,20 +419,19 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
411
419
|
for (const options of optionsList) {
|
|
412
420
|
const { kind, rtpParameters } = options;
|
|
413
421
|
const mid = kind;
|
|
414
|
-
const answerMediaObject = localSdpObject.media
|
|
415
|
-
.find((m) => String(m.mid) === mid);
|
|
422
|
+
const answerMediaObject = localSdpObject.media.find((m) => String(m.mid) === mid);
|
|
416
423
|
// May need to modify codec parameters in the answer based on codec
|
|
417
424
|
// parameters in the offer.
|
|
418
425
|
sdpCommonUtils.applyCodecParameters({
|
|
419
426
|
offerRtpParameters: rtpParameters,
|
|
420
|
-
answerMediaObject
|
|
427
|
+
answerMediaObject,
|
|
421
428
|
});
|
|
422
429
|
}
|
|
423
430
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
424
431
|
if (!this._transportReady) {
|
|
425
432
|
await this.setupTransport({
|
|
426
433
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
427
|
-
localSdpObject
|
|
434
|
+
localSdpObject,
|
|
428
435
|
});
|
|
429
436
|
}
|
|
430
437
|
logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
@@ -434,7 +441,8 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
434
441
|
const mid = kind;
|
|
435
442
|
const localId = trackId;
|
|
436
443
|
const streamId = options.streamId || rtpParameters.rtcp.cname;
|
|
437
|
-
const stream = this._pc
|
|
444
|
+
const stream = this._pc
|
|
445
|
+
.getRemoteStreams()
|
|
438
446
|
.find((s) => s.id === streamId);
|
|
439
447
|
const track = stream.getTrackById(localId);
|
|
440
448
|
if (!track) {
|
|
@@ -453,7 +461,10 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
453
461
|
const { mid, rtpParameters } = this._mapRecvLocalIdInfo.get(localId) || {};
|
|
454
462
|
// Remove from the map.
|
|
455
463
|
this._mapRecvLocalIdInfo.delete(localId);
|
|
456
|
-
this._remoteSdp.planBStopReceiving({
|
|
464
|
+
this._remoteSdp.planBStopReceiving({
|
|
465
|
+
mid: mid,
|
|
466
|
+
offerRtpParameters: rtpParameters,
|
|
467
|
+
});
|
|
457
468
|
}
|
|
458
469
|
const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
|
|
459
470
|
logger.debug('stopReceiving() | calling pc.setRemoteDescription() [offer:%o]', offer);
|
|
@@ -476,7 +487,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
476
487
|
async getReceiverStats(localId) {
|
|
477
488
|
throw new errors_1.UnsupportedError('not implemented');
|
|
478
489
|
}
|
|
479
|
-
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
490
|
+
async receiveDataChannel({ sctpStreamParameters, label, protocol, }) {
|
|
480
491
|
this.assertRecvDirection();
|
|
481
492
|
const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
|
|
482
493
|
const options = {
|
|
@@ -484,9 +495,9 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
484
495
|
id: streamId,
|
|
485
496
|
ordered,
|
|
486
497
|
maxPacketLifeTime,
|
|
487
|
-
maxRetransmitTime: maxPacketLifeTime,
|
|
498
|
+
maxRetransmitTime: maxPacketLifeTime, // NOTE: Old spec.
|
|
488
499
|
maxRetransmits,
|
|
489
|
-
protocol
|
|
500
|
+
protocol,
|
|
490
501
|
};
|
|
491
502
|
logger.debug('receiveDataChannel() [options:%o]', options);
|
|
492
503
|
const dataChannel = this._pc.createDataChannel(label, options);
|
|
@@ -502,7 +513,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
502
513
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
503
514
|
await this.setupTransport({
|
|
504
515
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
505
|
-
localSdpObject
|
|
516
|
+
localSdpObject,
|
|
506
517
|
});
|
|
507
518
|
}
|
|
508
519
|
logger.debug('receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
@@ -511,12 +522,14 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
511
522
|
}
|
|
512
523
|
return { dataChannel };
|
|
513
524
|
}
|
|
514
|
-
async setupTransport({ localDtlsRole, localSdpObject }) {
|
|
525
|
+
async setupTransport({ localDtlsRole, localSdpObject, }) {
|
|
515
526
|
if (!localSdpObject) {
|
|
516
527
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
517
528
|
}
|
|
518
529
|
// Get our local DTLS parameters.
|
|
519
|
-
const dtlsParameters = sdpCommonUtils.extractDtlsParameters({
|
|
530
|
+
const dtlsParameters = sdpCommonUtils.extractDtlsParameters({
|
|
531
|
+
sdpObject: localSdpObject,
|
|
532
|
+
});
|
|
520
533
|
// Set our DTLS role.
|
|
521
534
|
dtlsParameters.role = localDtlsRole;
|
|
522
535
|
// Update the remote DTLS role in the SDP.
|
|
@@ -25,11 +25,11 @@ export declare class Chrome67 extends HandlerInterface {
|
|
|
25
25
|
close(): void;
|
|
26
26
|
getNativeRtpCapabilities(): Promise<RtpCapabilities>;
|
|
27
27
|
getNativeSctpCapabilities(): Promise<SctpCapabilities>;
|
|
28
|
-
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities }: HandlerRunOptions): void;
|
|
28
|
+
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }: HandlerRunOptions): void;
|
|
29
29
|
updateIceServers(iceServers: RTCIceServer[]): Promise<void>;
|
|
30
30
|
restartIce(iceParameters: IceParameters): Promise<void>;
|
|
31
31
|
getTransportStats(): Promise<RTCStatsReport>;
|
|
32
|
-
send({ track, encodings, codecOptions, codec }: HandlerSendOptions): Promise<HandlerSendResult>;
|
|
32
|
+
send({ track, encodings, codecOptions, codec, }: HandlerSendOptions): Promise<HandlerSendResult>;
|
|
33
33
|
stopSending(localId: string): Promise<void>;
|
|
34
34
|
pauseSending(localId: string): Promise<void>;
|
|
35
35
|
resumeSending(localId: string): Promise<void>;
|
|
@@ -37,13 +37,13 @@ export declare class Chrome67 extends HandlerInterface {
|
|
|
37
37
|
setMaxSpatialLayer(localId: string, spatialLayer: number): Promise<void>;
|
|
38
38
|
setRtpEncodingParameters(localId: string, params: any): Promise<void>;
|
|
39
39
|
getSenderStats(localId: string): Promise<RTCStatsReport>;
|
|
40
|
-
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
40
|
+
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
41
41
|
receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
|
|
42
42
|
stopReceiving(localIds: string[]): Promise<void>;
|
|
43
43
|
pauseReceiving(localIds: string[]): Promise<void>;
|
|
44
44
|
resumeReceiving(localIds: string[]): Promise<void>;
|
|
45
45
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
46
|
-
receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
46
|
+
receiveDataChannel({ sctpStreamParameters, label, protocol, }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
47
47
|
private setupTransport;
|
|
48
48
|
private assertSendDirection;
|
|
49
49
|
private assertRecvDirection;
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"Chrome67.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome67.ts"],"names":[],"mappings":"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"}
|