mediasoup-client 3.6.41 → 3.6.45
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 +2 -0
- package/lib/Consumer.d.ts.map +1 -1
- package/lib/Consumer.js +4 -0
- package/lib/Transport.d.ts +3 -3
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +8 -0
- package/lib/handlers/Chrome55.d.ts +3 -0
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +41 -7
- package/lib/handlers/Chrome67.d.ts +3 -0
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +41 -7
- package/lib/handlers/Chrome70.d.ts +3 -0
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +43 -7
- package/lib/handlers/Chrome74.d.ts +3 -0
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +61 -7
- package/lib/handlers/Edge11.d.ts +2 -0
- package/lib/handlers/Edge11.d.ts.map +1 -1
- package/lib/handlers/Edge11.js +10 -0
- package/lib/handlers/FakeHandler.d.ts +2 -0
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +10 -0
- package/lib/handlers/Firefox60.d.ts +2 -0
- package/lib/handlers/Firefox60.d.ts.map +1 -1
- package/lib/handlers/Firefox60.js +31 -1
- package/lib/handlers/HandlerInterface.d.ts +2 -0
- package/lib/handlers/HandlerInterface.d.ts.map +1 -1
- package/lib/handlers/ReactNative.d.ts +3 -0
- package/lib/handlers/ReactNative.d.ts.map +1 -1
- package/lib/handlers/ReactNative.js +41 -7
- package/lib/handlers/Safari11.d.ts +3 -0
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +41 -7
- package/lib/handlers/Safari12.d.ts +3 -0
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +61 -7
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/package.json +5 -5
- package/src/Consumer.ts +6 -0
- package/src/Transport.ts +19 -3
- package/src/handlers/Chrome55.ts +50 -4
- package/src/handlers/Chrome67.ts +50 -4
- package/src/handlers/Chrome70.ts +54 -4
- package/src/handlers/Chrome74.ts +100 -4
- package/src/handlers/Edge11.ts +14 -0
- package/src/handlers/FakeHandler.ts +14 -0
- package/src/handlers/Firefox60.ts +65 -1
- package/src/handlers/HandlerInterface.ts +4 -0
- package/src/handlers/ReactNative.ts +50 -4
- package/src/handlers/Safari11.ts +50 -4
- package/src/handlers/Safari12.ts +100 -4
package/lib/Consumer.d.ts
CHANGED
|
@@ -23,6 +23,8 @@ export declare class Consumer extends EnhancedEventEmitter {
|
|
|
23
23
|
* @emits trackended
|
|
24
24
|
* @emits @getstats
|
|
25
25
|
* @emits @close
|
|
26
|
+
* @emits @pause
|
|
27
|
+
* @emits @resume
|
|
26
28
|
*/
|
|
27
29
|
constructor({ id, localId, producerId, rtpReceiver, track, rtpParameters, appData }: {
|
|
28
30
|
id: string;
|
package/lib/Consumer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Consumer.d.ts","sourceRoot":"","sources":["../src/Consumer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,oBAAY,eAAe,GAC3B;IACC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,EAAE,GAAG,CAAC;CACd,CAAA;AAID,qBAAa,QAAS,SAAQ,oBAAoB;IAGjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAiB;IAE/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAE1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAE/C,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAM;IAE/B,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAE1D
|
|
1
|
+
{"version":3,"file":"Consumer.d.ts","sourceRoot":"","sources":["../src/Consumer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,oBAAY,eAAe,GAC3B;IACC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,EAAE,GAAG,CAAC;CACd,CAAA;AAID,qBAAa,QAAS,SAAQ,oBAAoB;IAGjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAiB;IAE/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAE1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAE/C,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAM;IAE/B,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAE1D;;;;;;;OAOG;gBAEF,EACC,EAAE,EACF,OAAO,EACP,UAAU,EACV,WAAW,EACX,KAAK,EACL,aAAa,EACb,OAAO,EACP,EACD;QACC,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,cAAc,CAAC;QAC7B,KAAK,EAAE,gBAAgB,CAAC;QACxB,aAAa,EAAE,aAAa,CAAC;QAC7B,OAAO,EAAE,GAAG,CAAC;KACb;IAoBF;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,CAGf;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAGpB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAGvB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAGpB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,cAAc,GAAG,SAAS,CAG5C;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,gBAAgB,CAG5B;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,aAAa,CAGjC;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAGpB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,GAAG,CAGjB;IAED;;OAEG;IACH,IAAI,OAAO,CAAC,OAAO,EARJ,GAQI,EAGlB;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ,IAAI,oBAAoB,CAGnC;IAED;;OAEG;IACH,KAAK,IAAI,IAAI;IAiBb;;OAEG;IACH,eAAe,IAAI,IAAI;IAiBvB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAQzC;;OAEG;IACH,KAAK,IAAI,IAAI;IAoBb;;OAEG;IACH,MAAM,IAAI,IAAI;IAoBd,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,aAAa;CAUrB"}
|
package/lib/Consumer.js
CHANGED
|
@@ -11,6 +11,8 @@ class Consumer extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
11
11
|
* @emits trackended
|
|
12
12
|
* @emits @getstats
|
|
13
13
|
* @emits @close
|
|
14
|
+
* @emits @pause
|
|
15
|
+
* @emits @resume
|
|
14
16
|
*/
|
|
15
17
|
constructor({ id, localId, producerId, rtpReceiver, track, rtpParameters, appData }) {
|
|
16
18
|
super();
|
|
@@ -152,6 +154,7 @@ class Consumer extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
152
154
|
}
|
|
153
155
|
this._paused = true;
|
|
154
156
|
this._track.enabled = false;
|
|
157
|
+
this.emit('@pause');
|
|
155
158
|
// Emit observer event.
|
|
156
159
|
this._observer.safeEmit('pause');
|
|
157
160
|
}
|
|
@@ -166,6 +169,7 @@ class Consumer extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
166
169
|
}
|
|
167
170
|
this._paused = false;
|
|
168
171
|
this._track.enabled = true;
|
|
172
|
+
this.emit('@resume');
|
|
169
173
|
// Emit observer event.
|
|
170
174
|
this._observer.safeEmit('resume');
|
|
171
175
|
}
|
package/lib/Transport.d.ts
CHANGED
|
@@ -65,7 +65,7 @@ export declare type IceCandidate = {
|
|
|
65
65
|
*/
|
|
66
66
|
port: number;
|
|
67
67
|
/**
|
|
68
|
-
* The type of candidate
|
|
68
|
+
* The type of candidate.
|
|
69
69
|
*/
|
|
70
70
|
type: 'host' | 'srflx' | 'prflx' | 'relay';
|
|
71
71
|
/**
|
|
@@ -75,11 +75,11 @@ export declare type IceCandidate = {
|
|
|
75
75
|
};
|
|
76
76
|
export declare type DtlsParameters = {
|
|
77
77
|
/**
|
|
78
|
-
* DTLS role. Default 'auto'.
|
|
78
|
+
* Server DTLS role. Default 'auto'.
|
|
79
79
|
*/
|
|
80
80
|
role?: DtlsRole;
|
|
81
81
|
/**
|
|
82
|
-
* DTLS fingerprints.
|
|
82
|
+
* Server DTLS fingerprints.
|
|
83
83
|
*/
|
|
84
84
|
fingerprints: DtlsFingerprint[];
|
|
85
85
|
};
|
package/lib/Transport.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../src/Transport.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../src/Transport.ts"],"names":[],"mappings":"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"}
|
package/lib/Transport.js
CHANGED
|
@@ -515,6 +515,14 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
515
515
|
this._awaitQueue.push(async () => this._handler.stopReceiving(consumer.localId), 'consumer @close event')
|
|
516
516
|
.catch(() => { });
|
|
517
517
|
});
|
|
518
|
+
consumer.on('@pause', () => {
|
|
519
|
+
this._awaitQueue.push(async () => this._handler.pauseReceiving(consumer.localId), 'consumer @pause event')
|
|
520
|
+
.catch(() => { });
|
|
521
|
+
});
|
|
522
|
+
consumer.on('@resume', () => {
|
|
523
|
+
this._awaitQueue.push(async () => this._handler.resumeReceiving(consumer.localId), 'consumer @resume event')
|
|
524
|
+
.catch(() => { });
|
|
525
|
+
});
|
|
518
526
|
consumer.on('@getstats', (callback, errback) => {
|
|
519
527
|
if (this._closed)
|
|
520
528
|
return errback(new errors_1.InvalidStateError('closed'));
|
|
@@ -7,6 +7,7 @@ export declare class Chrome55 extends HandlerInterface {
|
|
|
7
7
|
private _remoteSdp?;
|
|
8
8
|
private _sendingRtpParametersByKind?;
|
|
9
9
|
private _sendingRemoteRtpParametersByKind?;
|
|
10
|
+
private _forcedLocalDtlsRole?;
|
|
10
11
|
private _pc;
|
|
11
12
|
private readonly _sendStream;
|
|
12
13
|
private readonly _mapSendLocalIdTrack;
|
|
@@ -37,6 +38,8 @@ export declare class Chrome55 extends HandlerInterface {
|
|
|
37
38
|
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
38
39
|
receive({ trackId, kind, rtpParameters }: HandlerReceiveOptions): Promise<HandlerReceiveResult>;
|
|
39
40
|
stopReceiving(localId: string): Promise<void>;
|
|
41
|
+
pauseReceiving(localId: string): Promise<void>;
|
|
42
|
+
resumeReceiving(localId: string): Promise<void>;
|
|
40
43
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
41
44
|
receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
42
45
|
private _setupTransport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome55.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome55.ts"],"names":[],"mappings":"AAOA,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAM3E,qBAAa,QAAS,SAAQ,gBAAgB;IAG7C,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,2BAA2B,CAAC,CAAmC;IAGvE,OAAO,CAAC,iCAAiC,CAAC,CAAmC;
|
|
1
|
+
{"version":3,"file":"Chrome55.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome55.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/Chrome55.js
CHANGED
|
@@ -125,6 +125,11 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
125
125
|
audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
|
|
126
126
|
video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities)
|
|
127
127
|
};
|
|
128
|
+
if (dtlsParameters.role && dtlsParameters.role !== 'auto') {
|
|
129
|
+
this._forcedLocalDtlsRole = dtlsParameters.role === 'server'
|
|
130
|
+
? 'client'
|
|
131
|
+
: 'server';
|
|
132
|
+
}
|
|
128
133
|
this._pc = new RTCPeerConnection(Object.assign({ iceServers: iceServers || [], iceTransportPolicy: iceTransportPolicy || 'all', bundlePolicy: 'max-bundle', rtcpMuxPolicy: 'require', sdpSemantics: 'plan-b' }, additionalSettings), proprietaryConstraints);
|
|
129
134
|
// Handle RTCPeerConnection connection status.
|
|
130
135
|
this._pc.addEventListener('iceconnectionstatechange', () => {
|
|
@@ -181,6 +186,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
181
186
|
return this._pc.getStats();
|
|
182
187
|
}
|
|
183
188
|
async send({ track, encodings, codecOptions, codec }) {
|
|
189
|
+
var _a;
|
|
184
190
|
this._assertSendDirection();
|
|
185
191
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
186
192
|
if (codec) {
|
|
@@ -197,8 +203,12 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
197
203
|
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind], {});
|
|
198
204
|
sendingRemoteRtpParameters.codecs =
|
|
199
205
|
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
|
|
200
|
-
if (!this._transportReady)
|
|
201
|
-
await this._setupTransport({
|
|
206
|
+
if (!this._transportReady) {
|
|
207
|
+
await this._setupTransport({
|
|
208
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
209
|
+
localSdpObject
|
|
210
|
+
});
|
|
211
|
+
}
|
|
202
212
|
if (track.kind === 'video' && encodings && encodings.length > 1) {
|
|
203
213
|
logger.debug('send() | enabling simulcast');
|
|
204
214
|
localSdpObject = sdpTransform.parse(offer.sdp);
|
|
@@ -301,6 +311,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
301
311
|
throw new errors_1.UnsupportedError('not implemented');
|
|
302
312
|
}
|
|
303
313
|
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
314
|
+
var _a;
|
|
304
315
|
this._assertSendDirection();
|
|
305
316
|
const options = {
|
|
306
317
|
negotiated: true,
|
|
@@ -323,8 +334,12 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
323
334
|
const localSdpObject = sdpTransform.parse(offer.sdp);
|
|
324
335
|
const offerMediaObject = localSdpObject.media
|
|
325
336
|
.find((m) => m.type === 'application');
|
|
326
|
-
if (!this._transportReady)
|
|
327
|
-
await this._setupTransport({
|
|
337
|
+
if (!this._transportReady) {
|
|
338
|
+
await this._setupTransport({
|
|
339
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
340
|
+
localSdpObject
|
|
341
|
+
});
|
|
342
|
+
}
|
|
328
343
|
logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
329
344
|
await this._pc.setLocalDescription(offer);
|
|
330
345
|
this._remoteSdp.sendSctpAssociation({ offerMediaObject });
|
|
@@ -342,6 +357,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
342
357
|
return { dataChannel, sctpStreamParameters };
|
|
343
358
|
}
|
|
344
359
|
async receive({ trackId, kind, rtpParameters }) {
|
|
360
|
+
var _a;
|
|
345
361
|
this._assertRecvDirection();
|
|
346
362
|
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
347
363
|
const localId = trackId;
|
|
@@ -368,8 +384,12 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
368
384
|
answerMediaObject
|
|
369
385
|
});
|
|
370
386
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
371
|
-
if (!this._transportReady)
|
|
372
|
-
await this._setupTransport({
|
|
387
|
+
if (!this._transportReady) {
|
|
388
|
+
await this._setupTransport({
|
|
389
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
390
|
+
localSdpObject
|
|
391
|
+
});
|
|
392
|
+
}
|
|
373
393
|
logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
374
394
|
await this._pc.setLocalDescription(answer);
|
|
375
395
|
const stream = this._pc.getRemoteStreams()
|
|
@@ -395,11 +415,22 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
395
415
|
logger.debug('stopReceiving() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
396
416
|
await this._pc.setLocalDescription(answer);
|
|
397
417
|
}
|
|
418
|
+
async pauseReceiving(
|
|
419
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
420
|
+
localId) {
|
|
421
|
+
// Unimplemented.
|
|
422
|
+
}
|
|
423
|
+
async resumeReceiving(
|
|
424
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
425
|
+
localId) {
|
|
426
|
+
// Unimplemented.
|
|
427
|
+
}
|
|
398
428
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
399
429
|
async getReceiverStats(localId) {
|
|
400
430
|
throw new errors_1.UnsupportedError('not implemented');
|
|
401
431
|
}
|
|
402
432
|
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
433
|
+
var _a;
|
|
403
434
|
this._assertRecvDirection();
|
|
404
435
|
const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
|
|
405
436
|
const options = {
|
|
@@ -423,7 +454,10 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
423
454
|
const answer = await this._pc.createAnswer();
|
|
424
455
|
if (!this._transportReady) {
|
|
425
456
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
426
|
-
await this._setupTransport({
|
|
457
|
+
await this._setupTransport({
|
|
458
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
459
|
+
localSdpObject
|
|
460
|
+
});
|
|
427
461
|
}
|
|
428
462
|
logger.debug('receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
429
463
|
await this._pc.setLocalDescription(answer);
|
|
@@ -7,6 +7,7 @@ export declare class Chrome67 extends HandlerInterface {
|
|
|
7
7
|
private _remoteSdp?;
|
|
8
8
|
private _sendingRtpParametersByKind?;
|
|
9
9
|
private _sendingRemoteRtpParametersByKind?;
|
|
10
|
+
private _forcedLocalDtlsRole?;
|
|
10
11
|
private _pc;
|
|
11
12
|
private readonly _sendStream;
|
|
12
13
|
private readonly _mapSendLocalIdRtpSender;
|
|
@@ -37,6 +38,8 @@ export declare class Chrome67 extends HandlerInterface {
|
|
|
37
38
|
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
38
39
|
receive({ trackId, kind, rtpParameters }: HandlerReceiveOptions): Promise<HandlerReceiveResult>;
|
|
39
40
|
stopReceiving(localId: string): Promise<void>;
|
|
41
|
+
pauseReceiving(localId: string): Promise<void>;
|
|
42
|
+
resumeReceiving(localId: string): Promise<void>;
|
|
40
43
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
41
44
|
receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
42
45
|
private _setupTransport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome67.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome67.ts"],"names":[],"mappings":"AAMA,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAM3E,qBAAa,QAAS,SAAQ,gBAAgB;IAG7C,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,2BAA2B,CAAC,CAAmC;IAGvE,OAAO,CAAC,iCAAiC,CAAC,CAAmC;
|
|
1
|
+
{"version":3,"file":"Chrome67.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome67.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/Chrome67.js
CHANGED
|
@@ -124,6 +124,11 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
124
124
|
audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
|
|
125
125
|
video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities)
|
|
126
126
|
};
|
|
127
|
+
if (dtlsParameters.role && dtlsParameters.role !== 'auto') {
|
|
128
|
+
this._forcedLocalDtlsRole = dtlsParameters.role === 'server'
|
|
129
|
+
? 'client'
|
|
130
|
+
: 'server';
|
|
131
|
+
}
|
|
127
132
|
this._pc = new RTCPeerConnection(Object.assign({ iceServers: iceServers || [], iceTransportPolicy: iceTransportPolicy || 'all', bundlePolicy: 'max-bundle', rtcpMuxPolicy: 'require', sdpSemantics: 'plan-b' }, additionalSettings), proprietaryConstraints);
|
|
128
133
|
// Handle RTCPeerConnection connection status.
|
|
129
134
|
this._pc.addEventListener('iceconnectionstatechange', () => {
|
|
@@ -180,6 +185,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
180
185
|
return this._pc.getStats();
|
|
181
186
|
}
|
|
182
187
|
async send({ track, encodings, codecOptions, codec }) {
|
|
188
|
+
var _a;
|
|
183
189
|
this._assertSendDirection();
|
|
184
190
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
185
191
|
if (codec) {
|
|
@@ -196,8 +202,12 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
196
202
|
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind], {});
|
|
197
203
|
sendingRemoteRtpParameters.codecs =
|
|
198
204
|
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
|
|
199
|
-
if (!this._transportReady)
|
|
200
|
-
await this._setupTransport({
|
|
205
|
+
if (!this._transportReady) {
|
|
206
|
+
await this._setupTransport({
|
|
207
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
208
|
+
localSdpObject
|
|
209
|
+
});
|
|
210
|
+
}
|
|
201
211
|
if (track.kind === 'video' && encodings && encodings.length > 1) {
|
|
202
212
|
logger.debug('send() | enabling simulcast');
|
|
203
213
|
localSdpObject = sdpTransform.parse(offer.sdp);
|
|
@@ -342,6 +352,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
342
352
|
return rtpSender.getStats();
|
|
343
353
|
}
|
|
344
354
|
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
355
|
+
var _a;
|
|
345
356
|
this._assertSendDirection();
|
|
346
357
|
const options = {
|
|
347
358
|
negotiated: true,
|
|
@@ -364,8 +375,12 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
364
375
|
const localSdpObject = sdpTransform.parse(offer.sdp);
|
|
365
376
|
const offerMediaObject = localSdpObject.media
|
|
366
377
|
.find((m) => m.type === 'application');
|
|
367
|
-
if (!this._transportReady)
|
|
368
|
-
await this._setupTransport({
|
|
378
|
+
if (!this._transportReady) {
|
|
379
|
+
await this._setupTransport({
|
|
380
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
381
|
+
localSdpObject
|
|
382
|
+
});
|
|
383
|
+
}
|
|
369
384
|
logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
370
385
|
await this._pc.setLocalDescription(offer);
|
|
371
386
|
this._remoteSdp.sendSctpAssociation({ offerMediaObject });
|
|
@@ -383,6 +398,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
383
398
|
return { dataChannel, sctpStreamParameters };
|
|
384
399
|
}
|
|
385
400
|
async receive({ trackId, kind, rtpParameters }) {
|
|
401
|
+
var _a;
|
|
386
402
|
this._assertRecvDirection();
|
|
387
403
|
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
388
404
|
const localId = trackId;
|
|
@@ -408,8 +424,12 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
408
424
|
answerMediaObject
|
|
409
425
|
});
|
|
410
426
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
411
|
-
if (!this._transportReady)
|
|
412
|
-
await this._setupTransport({
|
|
427
|
+
if (!this._transportReady) {
|
|
428
|
+
await this._setupTransport({
|
|
429
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
430
|
+
localSdpObject
|
|
431
|
+
});
|
|
432
|
+
}
|
|
413
433
|
logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
414
434
|
await this._pc.setLocalDescription(answer);
|
|
415
435
|
const rtpReceiver = this._pc.getReceivers()
|
|
@@ -438,6 +458,16 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
438
458
|
logger.debug('stopReceiving() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
439
459
|
await this._pc.setLocalDescription(answer);
|
|
440
460
|
}
|
|
461
|
+
async pauseReceiving(
|
|
462
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
463
|
+
localId) {
|
|
464
|
+
// Unimplemented.
|
|
465
|
+
}
|
|
466
|
+
async resumeReceiving(
|
|
467
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
468
|
+
localId) {
|
|
469
|
+
// Unimplemented.
|
|
470
|
+
}
|
|
441
471
|
async getReceiverStats(localId) {
|
|
442
472
|
this._assertRecvDirection();
|
|
443
473
|
const { rtpReceiver } = this._mapRecvLocalIdInfo.get(localId) || {};
|
|
@@ -446,6 +476,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
446
476
|
return rtpReceiver.getStats();
|
|
447
477
|
}
|
|
448
478
|
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
479
|
+
var _a;
|
|
449
480
|
this._assertRecvDirection();
|
|
450
481
|
const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
|
|
451
482
|
const options = {
|
|
@@ -469,7 +500,10 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
469
500
|
const answer = await this._pc.createAnswer();
|
|
470
501
|
if (!this._transportReady) {
|
|
471
502
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
472
|
-
await this._setupTransport({
|
|
503
|
+
await this._setupTransport({
|
|
504
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
505
|
+
localSdpObject
|
|
506
|
+
});
|
|
473
507
|
}
|
|
474
508
|
logger.debug('receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
475
509
|
await this._pc.setLocalDescription(answer);
|
|
@@ -7,6 +7,7 @@ export declare class Chrome70 extends HandlerInterface {
|
|
|
7
7
|
private _remoteSdp?;
|
|
8
8
|
private _sendingRtpParametersByKind?;
|
|
9
9
|
private _sendingRemoteRtpParametersByKind?;
|
|
10
|
+
private _forcedLocalDtlsRole?;
|
|
10
11
|
private _pc;
|
|
11
12
|
private readonly _mapMidTransceiver;
|
|
12
13
|
private readonly _sendStream;
|
|
@@ -35,6 +36,8 @@ export declare class Chrome70 extends HandlerInterface {
|
|
|
35
36
|
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
36
37
|
receive({ trackId, kind, rtpParameters }: HandlerReceiveOptions): Promise<HandlerReceiveResult>;
|
|
37
38
|
stopReceiving(localId: string): Promise<void>;
|
|
39
|
+
pauseReceiving(localId: string): Promise<void>;
|
|
40
|
+
resumeReceiving(localId: string): Promise<void>;
|
|
38
41
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
39
42
|
receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
40
43
|
private _setupTransport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome70.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome70.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;AAG5B,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAM3E,qBAAa,QAAS,SAAQ,gBAAgB;IAG7C,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,2BAA2B,CAAC,CAAmC;IAGvE,OAAO,CAAC,iCAAiC,CAAC,CAAmC;
|
|
1
|
+
{"version":3,"file":"Chrome70.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome70.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/Chrome70.js
CHANGED
|
@@ -118,6 +118,11 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
118
118
|
audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
|
|
119
119
|
video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities)
|
|
120
120
|
};
|
|
121
|
+
if (dtlsParameters.role && dtlsParameters.role !== 'auto') {
|
|
122
|
+
this._forcedLocalDtlsRole = dtlsParameters.role === 'server'
|
|
123
|
+
? 'client'
|
|
124
|
+
: 'server';
|
|
125
|
+
}
|
|
121
126
|
this._pc = new RTCPeerConnection(Object.assign({ iceServers: iceServers || [], iceTransportPolicy: iceTransportPolicy || 'all', bundlePolicy: 'max-bundle', rtcpMuxPolicy: 'require', sdpSemantics: 'unified-plan' }, additionalSettings), proprietaryConstraints);
|
|
122
127
|
// Handle RTCPeerConnection connection status.
|
|
123
128
|
this._pc.addEventListener('iceconnectionstatechange', () => {
|
|
@@ -174,6 +179,7 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
174
179
|
return this._pc.getStats();
|
|
175
180
|
}
|
|
176
181
|
async send({ track, encodings, codecOptions, codec }) {
|
|
182
|
+
var _a;
|
|
177
183
|
this._assertSendDirection();
|
|
178
184
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
179
185
|
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind], {});
|
|
@@ -189,8 +195,12 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
189
195
|
let offer = await this._pc.createOffer();
|
|
190
196
|
let localSdpObject = sdpTransform.parse(offer.sdp);
|
|
191
197
|
let offerMediaObject;
|
|
192
|
-
if (!this._transportReady)
|
|
193
|
-
await this._setupTransport({
|
|
198
|
+
if (!this._transportReady) {
|
|
199
|
+
await this._setupTransport({
|
|
200
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
201
|
+
localSdpObject
|
|
202
|
+
});
|
|
203
|
+
}
|
|
194
204
|
if (encodings && encodings.length > 1) {
|
|
195
205
|
logger.debug('send() | enabling legacy simulcast');
|
|
196
206
|
localSdpObject = sdpTransform.parse(offer.sdp);
|
|
@@ -299,6 +309,7 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
299
309
|
const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
|
|
300
310
|
logger.debug('stopSending() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
301
311
|
await this._pc.setRemoteDescription(answer);
|
|
312
|
+
this._mapMidTransceiver.delete(localId);
|
|
302
313
|
}
|
|
303
314
|
async replaceTrack(localId, track) {
|
|
304
315
|
this._assertSendDirection();
|
|
@@ -348,6 +359,7 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
348
359
|
return transceiver.sender.getStats();
|
|
349
360
|
}
|
|
350
361
|
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
362
|
+
var _a;
|
|
351
363
|
this._assertSendDirection();
|
|
352
364
|
const options = {
|
|
353
365
|
negotiated: true,
|
|
@@ -370,8 +382,12 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
370
382
|
const localSdpObject = sdpTransform.parse(offer.sdp);
|
|
371
383
|
const offerMediaObject = localSdpObject.media
|
|
372
384
|
.find((m) => m.type === 'application');
|
|
373
|
-
if (!this._transportReady)
|
|
374
|
-
await this._setupTransport({
|
|
385
|
+
if (!this._transportReady) {
|
|
386
|
+
await this._setupTransport({
|
|
387
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
388
|
+
localSdpObject
|
|
389
|
+
});
|
|
390
|
+
}
|
|
375
391
|
logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
376
392
|
await this._pc.setLocalDescription(offer);
|
|
377
393
|
this._remoteSdp.sendSctpAssociation({ offerMediaObject });
|
|
@@ -389,6 +405,7 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
389
405
|
return { dataChannel, sctpStreamParameters };
|
|
390
406
|
}
|
|
391
407
|
async receive({ trackId, kind, rtpParameters }) {
|
|
408
|
+
var _a;
|
|
392
409
|
this._assertRecvDirection();
|
|
393
410
|
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
394
411
|
const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
|
|
@@ -413,8 +430,12 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
413
430
|
answerMediaObject
|
|
414
431
|
});
|
|
415
432
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
416
|
-
if (!this._transportReady)
|
|
417
|
-
await this._setupTransport({
|
|
433
|
+
if (!this._transportReady) {
|
|
434
|
+
await this._setupTransport({
|
|
435
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
436
|
+
localSdpObject
|
|
437
|
+
});
|
|
438
|
+
}
|
|
418
439
|
logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
419
440
|
await this._pc.setLocalDescription(answer);
|
|
420
441
|
const transceiver = this._pc.getTransceivers()
|
|
@@ -442,6 +463,17 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
442
463
|
const answer = await this._pc.createAnswer();
|
|
443
464
|
logger.debug('stopReceiving() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
444
465
|
await this._pc.setLocalDescription(answer);
|
|
466
|
+
this._mapMidTransceiver.delete(localId);
|
|
467
|
+
}
|
|
468
|
+
async pauseReceiving(
|
|
469
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
470
|
+
localId) {
|
|
471
|
+
// Unimplemented.
|
|
472
|
+
}
|
|
473
|
+
async resumeReceiving(
|
|
474
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
475
|
+
localId) {
|
|
476
|
+
// Unimplemented.
|
|
445
477
|
}
|
|
446
478
|
async getReceiverStats(localId) {
|
|
447
479
|
this._assertRecvDirection();
|
|
@@ -451,6 +483,7 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
451
483
|
return transceiver.receiver.getStats();
|
|
452
484
|
}
|
|
453
485
|
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
486
|
+
var _a;
|
|
454
487
|
this._assertRecvDirection();
|
|
455
488
|
const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
|
|
456
489
|
const options = {
|
|
@@ -474,7 +507,10 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
474
507
|
const answer = await this._pc.createAnswer();
|
|
475
508
|
if (!this._transportReady) {
|
|
476
509
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
477
|
-
await this._setupTransport({
|
|
510
|
+
await this._setupTransport({
|
|
511
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
512
|
+
localSdpObject
|
|
513
|
+
});
|
|
478
514
|
}
|
|
479
515
|
logger.debug('receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
480
516
|
await this._pc.setLocalDescription(answer);
|
|
@@ -7,6 +7,7 @@ export declare class Chrome74 extends HandlerInterface {
|
|
|
7
7
|
private _remoteSdp?;
|
|
8
8
|
private _sendingRtpParametersByKind?;
|
|
9
9
|
private _sendingRemoteRtpParametersByKind?;
|
|
10
|
+
private _forcedLocalDtlsRole?;
|
|
10
11
|
private _pc;
|
|
11
12
|
private readonly _mapMidTransceiver;
|
|
12
13
|
private readonly _sendStream;
|
|
@@ -35,6 +36,8 @@ export declare class Chrome74 extends HandlerInterface {
|
|
|
35
36
|
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
36
37
|
receive({ trackId, kind, rtpParameters }: HandlerReceiveOptions): Promise<HandlerReceiveResult>;
|
|
37
38
|
stopReceiving(localId: string): Promise<void>;
|
|
39
|
+
pauseReceiving(localId: string): Promise<void>;
|
|
40
|
+
resumeReceiving(localId: string): Promise<void>;
|
|
38
41
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
39
42
|
receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
40
43
|
private _setupTransport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome74.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome74.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;AAG5B,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AACvD,OAAO,EACN,eAAe,EAGf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAM3E,qBAAa,QAAS,SAAQ,gBAAgB;IAG7C,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,2BAA2B,CAAC,CAAmC;IAGvE,OAAO,CAAC,iCAAiC,CAAC,CAAmC;
|
|
1
|
+
{"version":3,"file":"Chrome74.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome74.ts"],"names":[],"mappings":"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"}
|