mediasoup-client 3.6.52 → 3.6.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vimrc +21 -0
- package/NO_GIT/Notes.txt +18 -0
- package/lib/Consumer.d.ts +16 -18
- package/lib/Consumer.d.ts.map +1 -1
- package/lib/Consumer.js +11 -17
- package/lib/DataConsumer.d.ts +13 -15
- package/lib/DataConsumer.d.ts.map +1 -1
- package/lib/DataConsumer.js +0 -13
- package/lib/DataProducer.d.ts +13 -15
- package/lib/DataProducer.d.ts.map +1 -1
- package/lib/DataProducer.js +0 -13
- package/lib/Device.d.ts +4 -6
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +1 -10
- package/lib/EnhancedEventEmitter.d.ts +19 -3
- package/lib/EnhancedEventEmitter.d.ts.map +1 -1
- package/lib/EnhancedEventEmitter.js +50 -14
- package/lib/Producer.d.ts +37 -22
- package/lib/Producer.d.ts.map +1 -1
- package/lib/Producer.js +18 -28
- package/lib/Transport.d.ts +43 -18
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +87 -41
- package/lib/handlers/Chrome55.d.ts +3 -1
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +20 -12
- package/lib/handlers/Chrome67.d.ts +3 -1
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +20 -12
- package/lib/handlers/Chrome70.d.ts +3 -1
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +23 -13
- package/lib/handlers/Chrome74.d.ts +3 -1
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +43 -13
- package/lib/handlers/Edge11.d.ts +3 -1
- package/lib/handlers/Edge11.d.ts.map +1 -1
- package/lib/handlers/Edge11.js +26 -18
- package/lib/handlers/FakeHandler.d.ts +5 -3
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +14 -8
- package/lib/handlers/Firefox60.d.ts +3 -1
- package/lib/handlers/Firefox60.d.ts.map +1 -1
- package/lib/handlers/Firefox60.js +45 -13
- package/lib/handlers/HandlerInterface.d.ts +15 -11
- package/lib/handlers/HandlerInterface.d.ts.map +1 -1
- package/lib/handlers/HandlerInterface.js +0 -8
- package/lib/handlers/ReactNative.d.ts +3 -1
- package/lib/handlers/ReactNative.d.ts.map +1 -1
- package/lib/handlers/ReactNative.js +20 -12
- package/lib/handlers/Safari11.d.ts +3 -1
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +20 -12
- package/lib/handlers/Safari12.d.ts +3 -1
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +45 -13
- package/lib/handlers/ortc/edgeUtils.js +1 -5
- package/lib/handlers/sdp/MediaSection.js +1 -5
- package/lib/handlers/sdp/RemoteSdp.js +1 -5
- package/lib/handlers/sdp/commonUtils.js +1 -5
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -6
- package/lib/ortc.js +1 -5
- package/lib/types.js +1 -5
- package/lib/utils.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/Consumer.ts +44 -20
- package/src/DataConsumer.ts +19 -16
- package/src/DataProducer.ts +19 -16
- package/src/Device.ts +6 -6
- package/src/EnhancedEventEmitter.ts +105 -22
- package/src/Producer.ts +97 -31
- package/src/Transport.ts +185 -58
- package/src/handlers/Chrome55.ts +31 -8
- package/src/handlers/Chrome67.ts +31 -8
- package/src/handlers/Chrome70.ts +34 -8
- package/src/handlers/Chrome74.ts +82 -8
- package/src/handlers/Edge11.ts +38 -15
- package/src/handlers/FakeHandler.ts +22 -6
- package/src/handlers/Firefox60.ts +84 -8
- package/src/handlers/HandlerInterface.ts +19 -11
- package/src/handlers/ReactNative.ts +31 -8
- package/src/handlers/Safari11.ts +31 -8
- package/src/handlers/Safari12.ts +84 -8
- package/src/utils.ts +0 -1
package/lib/Producer.js
CHANGED
|
@@ -6,15 +6,6 @@ const EnhancedEventEmitter_1 = require("./EnhancedEventEmitter");
|
|
|
6
6
|
const errors_1 = require("./errors");
|
|
7
7
|
const logger = new Logger_1.Logger('Producer');
|
|
8
8
|
class Producer extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
9
|
-
/**
|
|
10
|
-
* @emits transportclose
|
|
11
|
-
* @emits trackended
|
|
12
|
-
* @emits @replacetrack - (track: MediaStreamTrack | null)
|
|
13
|
-
* @emits @setmaxspatiallayer - (spatialLayer: string)
|
|
14
|
-
* @emits @setrtpencodingparameters - (params: any)
|
|
15
|
-
* @emits @getstats
|
|
16
|
-
* @emits @close
|
|
17
|
-
*/
|
|
18
9
|
constructor({ id, localId, rtpSender, track, rtpParameters, stopTracks, disableTrackOnPause, zeroRtpOnPause, appData }) {
|
|
19
10
|
super();
|
|
20
11
|
// Closed flag.
|
|
@@ -108,14 +99,6 @@ class Producer extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
108
99
|
set appData(appData) {
|
|
109
100
|
throw new Error('cannot override appData object');
|
|
110
101
|
}
|
|
111
|
-
/**
|
|
112
|
-
* Observer.
|
|
113
|
-
*
|
|
114
|
-
* @emits close
|
|
115
|
-
* @emits pause
|
|
116
|
-
* @emits resume
|
|
117
|
-
* @emits trackended
|
|
118
|
-
*/
|
|
119
102
|
get observer() {
|
|
120
103
|
return this._observer;
|
|
121
104
|
}
|
|
@@ -151,7 +134,9 @@ class Producer extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
151
134
|
async getStats() {
|
|
152
135
|
if (this._closed)
|
|
153
136
|
throw new errors_1.InvalidStateError('closed');
|
|
154
|
-
return
|
|
137
|
+
return new Promise((resolve, reject) => {
|
|
138
|
+
this.safeEmit('@getstats', resolve, reject);
|
|
139
|
+
});
|
|
155
140
|
}
|
|
156
141
|
/**
|
|
157
142
|
* Pauses sending media.
|
|
@@ -167,8 +152,9 @@ class Producer extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
167
152
|
this._track.enabled = false;
|
|
168
153
|
}
|
|
169
154
|
if (this._zeroRtpOnPause) {
|
|
170
|
-
|
|
171
|
-
.
|
|
155
|
+
new Promise((resolve, reject) => {
|
|
156
|
+
this.safeEmit('@pause', resolve, reject);
|
|
157
|
+
}).catch(() => { });
|
|
172
158
|
}
|
|
173
159
|
// Emit observer event.
|
|
174
160
|
this._observer.safeEmit('pause');
|
|
@@ -187,8 +173,9 @@ class Producer extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
187
173
|
this._track.enabled = true;
|
|
188
174
|
}
|
|
189
175
|
if (this._zeroRtpOnPause) {
|
|
190
|
-
|
|
191
|
-
.
|
|
176
|
+
new Promise((resolve, reject) => {
|
|
177
|
+
this.safeEmit('@resume', resolve, reject);
|
|
178
|
+
}).catch(() => { });
|
|
192
179
|
}
|
|
193
180
|
// Emit observer event.
|
|
194
181
|
this._observer.safeEmit('resume');
|
|
@@ -218,7 +205,9 @@ class Producer extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
218
205
|
return;
|
|
219
206
|
}
|
|
220
207
|
if (!this._zeroRtpOnPause || !this._paused) {
|
|
221
|
-
await
|
|
208
|
+
await new Promise((resolve, reject) => {
|
|
209
|
+
this.safeEmit('@replacetrack', track, resolve, reject);
|
|
210
|
+
});
|
|
222
211
|
}
|
|
223
212
|
// Destroy the previous track.
|
|
224
213
|
this._destroyTrack();
|
|
@@ -247,18 +236,19 @@ class Producer extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
247
236
|
throw new TypeError('invalid spatialLayer');
|
|
248
237
|
if (spatialLayer === this._maxSpatialLayer)
|
|
249
238
|
return;
|
|
250
|
-
await
|
|
239
|
+
await new Promise((resolve, reject) => {
|
|
240
|
+
this.safeEmit('@setmaxspatiallayer', spatialLayer, resolve, reject);
|
|
241
|
+
}).catch(() => { });
|
|
251
242
|
this._maxSpatialLayer = spatialLayer;
|
|
252
243
|
}
|
|
253
|
-
/**
|
|
254
|
-
* Sets the DSCP value.
|
|
255
|
-
*/
|
|
256
244
|
async setRtpEncodingParameters(params) {
|
|
257
245
|
if (this._closed)
|
|
258
246
|
throw new errors_1.InvalidStateError('closed');
|
|
259
247
|
else if (typeof params !== 'object')
|
|
260
248
|
throw new TypeError('invalid params');
|
|
261
|
-
await
|
|
249
|
+
await new Promise((resolve, reject) => {
|
|
250
|
+
this.safeEmit('@setrtpencodingparameters', params, resolve, reject);
|
|
251
|
+
});
|
|
262
252
|
}
|
|
263
253
|
_onTrackEnded() {
|
|
264
254
|
logger.debug('track "ended" event');
|
package/lib/Transport.d.ts
CHANGED
|
@@ -4,7 +4,8 @@ import { Producer, ProducerOptions } from './Producer';
|
|
|
4
4
|
import { Consumer, ConsumerOptions } from './Consumer';
|
|
5
5
|
import { DataProducer, DataProducerOptions } from './DataProducer';
|
|
6
6
|
import { DataConsumer, DataConsumerOptions } from './DataConsumer';
|
|
7
|
-
import {
|
|
7
|
+
import { RtpParameters, MediaKind } from './RtpParameters';
|
|
8
|
+
import { SctpParameters, SctpStreamParameters } from './SctpParameters';
|
|
8
9
|
interface InternalTransportOptions extends TransportOptions {
|
|
9
10
|
direction: 'send' | 'recv';
|
|
10
11
|
handlerFactory: HandlerFactory;
|
|
@@ -100,7 +101,43 @@ export declare type PlainRtpParameters = {
|
|
|
100
101
|
ipVersion: 4 | 6;
|
|
101
102
|
port: number;
|
|
102
103
|
};
|
|
103
|
-
export declare
|
|
104
|
+
export declare type TransportEvents = {
|
|
105
|
+
connect: [{
|
|
106
|
+
dtlsParameters: DtlsParameters;
|
|
107
|
+
}, () => void, (error: Error) => void];
|
|
108
|
+
connectionstatechange: [ConnectionState];
|
|
109
|
+
produce: [
|
|
110
|
+
{
|
|
111
|
+
kind: MediaKind;
|
|
112
|
+
rtpParameters: RtpParameters;
|
|
113
|
+
appData: Record<string, unknown>;
|
|
114
|
+
},
|
|
115
|
+
({ id }: {
|
|
116
|
+
id: string;
|
|
117
|
+
}) => void,
|
|
118
|
+
(error: Error) => void
|
|
119
|
+
];
|
|
120
|
+
producedata: [
|
|
121
|
+
{
|
|
122
|
+
sctpStreamParameters: SctpStreamParameters;
|
|
123
|
+
label?: string;
|
|
124
|
+
protocol?: string;
|
|
125
|
+
appData: Record<string, unknown>;
|
|
126
|
+
},
|
|
127
|
+
({ id }: {
|
|
128
|
+
id: string;
|
|
129
|
+
}) => void,
|
|
130
|
+
(error: Error) => void
|
|
131
|
+
];
|
|
132
|
+
};
|
|
133
|
+
export declare type TransportObserverEvents = {
|
|
134
|
+
close: [];
|
|
135
|
+
newproducer: [Producer];
|
|
136
|
+
newconsumer: [Consumer];
|
|
137
|
+
newdataproducer: [DataProducer];
|
|
138
|
+
newdataconsumer: [DataConsumer];
|
|
139
|
+
};
|
|
140
|
+
export declare class Transport extends EnhancedEventEmitter<TransportEvents> {
|
|
104
141
|
private readonly _id;
|
|
105
142
|
private _closed;
|
|
106
143
|
private readonly _direction;
|
|
@@ -122,13 +159,9 @@ export declare class Transport extends EnhancedEventEmitter {
|
|
|
122
159
|
private _consumerPauseInProgress;
|
|
123
160
|
private _pendingResumeConsumers;
|
|
124
161
|
private _consumerResumeInProgress;
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
* @emits connectionstatechange - (connectionState: ConnectionState)
|
|
129
|
-
* @emits produce - (producerLocalParameters: any, callback: Function, errback: Function)
|
|
130
|
-
* @emits producedata - (dataProducerLocalParameters: any, callback: Function, errback: Function)
|
|
131
|
-
*/
|
|
162
|
+
private _pendingCloseConsumers;
|
|
163
|
+
private _consumerCloseInProgress;
|
|
164
|
+
protected readonly _observer: EnhancedEventEmitter<TransportObserverEvents>;
|
|
132
165
|
constructor({ direction, id, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, appData, handlerFactory, extendedRtpCapabilities, canProduceByKind }: InternalTransportOptions);
|
|
133
166
|
/**
|
|
134
167
|
* Transport id.
|
|
@@ -158,15 +191,6 @@ export declare class Transport extends EnhancedEventEmitter {
|
|
|
158
191
|
* Invalid setter.
|
|
159
192
|
*/
|
|
160
193
|
set appData(appData: Record<string, unknown>);
|
|
161
|
-
/**
|
|
162
|
-
* Observer.
|
|
163
|
-
*
|
|
164
|
-
* @emits close
|
|
165
|
-
* @emits newproducer - (producer: Producer)
|
|
166
|
-
* @emits newconsumer - (producer: Producer)
|
|
167
|
-
* @emits newdataproducer - (dataProducer: DataProducer)
|
|
168
|
-
* @emits newdataconsumer - (dataProducer: DataProducer)
|
|
169
|
-
*/
|
|
170
194
|
get observer(): EnhancedEventEmitter;
|
|
171
195
|
/**
|
|
172
196
|
* Close the Transport.
|
|
@@ -209,6 +233,7 @@ export declare class Transport extends EnhancedEventEmitter {
|
|
|
209
233
|
_createPendingConsumers(): Promise<void>;
|
|
210
234
|
_pausePendingConsumers(): void;
|
|
211
235
|
_resumePendingConsumers(): void;
|
|
236
|
+
_closePendingConsumers(): void;
|
|
212
237
|
_handleHandler(): void;
|
|
213
238
|
_handleProducer(producer: Producer): void;
|
|
214
239
|
_handleConsumer(consumer: Consumer): void;
|
package/lib/Transport.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../src/Transport.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAyB,MAAM,6BAA6B,CAAC;AACtG,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../src/Transport.ts"],"names":[],"mappings":"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"}
|
package/lib/Transport.js
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
9
5
|
}) : (function(o, m, k, k2) {
|
|
10
6
|
if (k2 === undefined) k2 = k;
|
|
11
7
|
o[k2] = m[k];
|
|
@@ -34,6 +30,7 @@ const Producer_1 = require("./Producer");
|
|
|
34
30
|
const Consumer_1 = require("./Consumer");
|
|
35
31
|
const DataProducer_1 = require("./DataProducer");
|
|
36
32
|
const DataConsumer_1 = require("./DataConsumer");
|
|
33
|
+
const logger = new Logger_1.Logger('Transport');
|
|
37
34
|
class ConsumerCreationTask {
|
|
38
35
|
constructor(consumerOptions) {
|
|
39
36
|
this.consumerOptions = consumerOptions;
|
|
@@ -43,14 +40,7 @@ class ConsumerCreationTask {
|
|
|
43
40
|
});
|
|
44
41
|
}
|
|
45
42
|
}
|
|
46
|
-
const logger = new Logger_1.Logger('Transport');
|
|
47
43
|
class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
48
|
-
/**
|
|
49
|
-
* @emits connect - (transportLocalParameters: any, callback: Function, errback: Function)
|
|
50
|
-
* @emits connectionstatechange - (connectionState: ConnectionState)
|
|
51
|
-
* @emits produce - (producerLocalParameters: any, callback: Function, errback: Function)
|
|
52
|
-
* @emits producedata - (dataProducerLocalParameters: any, callback: Function, errback: Function)
|
|
53
|
-
*/
|
|
54
44
|
constructor({ direction, id, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, appData, handlerFactory, extendedRtpCapabilities, canProduceByKind }) {
|
|
55
45
|
super();
|
|
56
46
|
// Closed flag.
|
|
@@ -81,6 +71,10 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
81
71
|
this._pendingResumeConsumers = new Map();
|
|
82
72
|
// Consumer resume in progress flag.
|
|
83
73
|
this._consumerResumeInProgress = false;
|
|
74
|
+
// Consumers pending to be closed.
|
|
75
|
+
this._pendingCloseConsumers = new Map();
|
|
76
|
+
// Consumer close in progress flag.
|
|
77
|
+
this._consumerCloseInProgress = false;
|
|
84
78
|
// Observer instance.
|
|
85
79
|
this._observer = new EnhancedEventEmitter_1.EnhancedEventEmitter();
|
|
86
80
|
logger.debug('constructor() [id:%s, direction:%s]', id, direction);
|
|
@@ -156,15 +150,6 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
156
150
|
set appData(appData) {
|
|
157
151
|
throw new Error('cannot override appData object');
|
|
158
152
|
}
|
|
159
|
-
/**
|
|
160
|
-
* Observer.
|
|
161
|
-
*
|
|
162
|
-
* @emits close
|
|
163
|
-
* @emits newproducer - (producer: Producer)
|
|
164
|
-
* @emits newconsumer - (producer: Producer)
|
|
165
|
-
* @emits newdataproducer - (dataProducer: DataProducer)
|
|
166
|
-
* @emits newdataconsumer - (dataProducer: DataProducer)
|
|
167
|
-
*/
|
|
168
153
|
get observer() {
|
|
169
154
|
return this._observer;
|
|
170
155
|
}
|
|
@@ -299,10 +284,12 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
299
284
|
try {
|
|
300
285
|
// This will fill rtpParameters's missing fields with default values.
|
|
301
286
|
ortc.validateRtpParameters(rtpParameters);
|
|
302
|
-
const { id } = await
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
287
|
+
const { id } = await new Promise((resolve, reject) => {
|
|
288
|
+
this.safeEmit('produce', {
|
|
289
|
+
kind: track.kind,
|
|
290
|
+
rtpParameters,
|
|
291
|
+
appData
|
|
292
|
+
}, resolve, reject);
|
|
306
293
|
});
|
|
307
294
|
const producer = new Producer_1.Producer({
|
|
308
295
|
id,
|
|
@@ -406,11 +393,13 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
406
393
|
});
|
|
407
394
|
// This will fill sctpStreamParameters's missing fields with default values.
|
|
408
395
|
ortc.validateSctpStreamParameters(sctpStreamParameters);
|
|
409
|
-
const { id } = await
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
396
|
+
const { id } = await new Promise((resolve, reject) => {
|
|
397
|
+
this.safeEmit('producedata', {
|
|
398
|
+
sctpStreamParameters,
|
|
399
|
+
label,
|
|
400
|
+
protocol,
|
|
401
|
+
appData
|
|
402
|
+
}, resolve, reject);
|
|
414
403
|
});
|
|
415
404
|
const dataProducer = new DataProducer_1.DataProducer({ id, dataChannel, sctpStreamParameters, appData });
|
|
416
405
|
this._dataProducers.set(dataProducer.id, dataProducer);
|
|
@@ -465,8 +454,12 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
465
454
|
}
|
|
466
455
|
// This method is guaranteed to never throw.
|
|
467
456
|
async _createPendingConsumers() {
|
|
457
|
+
this._consumerCreationInProgress = true;
|
|
468
458
|
this._awaitQueue.push(async () => {
|
|
469
|
-
this.
|
|
459
|
+
if (this._pendingConsumerTasks.length === 0) {
|
|
460
|
+
logger.debug('_createPendingConsumers() | there is no Consumer to be created');
|
|
461
|
+
return;
|
|
462
|
+
}
|
|
470
463
|
const pendingConsumerTasks = [...this._pendingConsumerTasks];
|
|
471
464
|
// Clear pending Consumer tasks.
|
|
472
465
|
this._pendingConsumerTasks = [];
|
|
@@ -531,9 +524,9 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
531
524
|
logger.error('_createPendingConsumers() | failed to create Consumer for RTP probation:%o', error);
|
|
532
525
|
}
|
|
533
526
|
}
|
|
534
|
-
this._consumerCreationInProgress = false;
|
|
535
527
|
}, 'transport._createPendingConsumers()')
|
|
536
528
|
.then(() => {
|
|
529
|
+
this._consumerCreationInProgress = false;
|
|
537
530
|
// There are pending Consumer tasks, enqueue their creation.
|
|
538
531
|
if (this._pendingConsumerTasks.length > 0) {
|
|
539
532
|
this._createPendingConsumers();
|
|
@@ -543,20 +536,26 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
543
536
|
.catch(() => { });
|
|
544
537
|
}
|
|
545
538
|
_pausePendingConsumers() {
|
|
539
|
+
this._consumerPauseInProgress = true;
|
|
546
540
|
this._awaitQueue.push(async () => {
|
|
547
|
-
this.
|
|
541
|
+
if (this._pendingPauseConsumers.size === 0) {
|
|
542
|
+
logger.debug('_pausePendingConsumers() | there is no Consumer to be paused');
|
|
543
|
+
return;
|
|
544
|
+
}
|
|
548
545
|
const pendingPauseConsumers = Array.from(this._pendingPauseConsumers.values());
|
|
549
546
|
// Clear pending pause Consumer map.
|
|
550
547
|
this._pendingPauseConsumers.clear();
|
|
551
548
|
try {
|
|
552
|
-
|
|
549
|
+
const localIds = pendingPauseConsumers
|
|
550
|
+
.map((consumer) => consumer.localId);
|
|
551
|
+
await this._handler.pauseReceiving(localIds);
|
|
553
552
|
}
|
|
554
553
|
catch (error) {
|
|
555
554
|
logger.error('_pausePendingConsumers() | failed to pause Consumers:', error);
|
|
556
555
|
}
|
|
557
|
-
|
|
558
|
-
}, 'consumer @pause event')
|
|
556
|
+
}, 'transport._pausePendingConsumers')
|
|
559
557
|
.then(() => {
|
|
558
|
+
this._consumerPauseInProgress = false;
|
|
560
559
|
// There are pending Consumers to be paused, do it.
|
|
561
560
|
if (this._pendingPauseConsumers.size > 0) {
|
|
562
561
|
this._pausePendingConsumers();
|
|
@@ -566,18 +565,24 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
566
565
|
.catch(() => { });
|
|
567
566
|
}
|
|
568
567
|
_resumePendingConsumers() {
|
|
568
|
+
this._consumerResumeInProgress = true;
|
|
569
569
|
this._awaitQueue.push(async () => {
|
|
570
|
-
this.
|
|
570
|
+
if (this._pendingResumeConsumers.size === 0) {
|
|
571
|
+
logger.debug('_resumePendingConsumers() | there is no Consumer to be resumed');
|
|
572
|
+
return;
|
|
573
|
+
}
|
|
571
574
|
const pendingResumeConsumers = Array.from(this._pendingResumeConsumers.values());
|
|
572
575
|
// Clear pending resume Consumer map.
|
|
573
576
|
this._pendingResumeConsumers.clear();
|
|
574
577
|
try {
|
|
575
|
-
|
|
578
|
+
const localIds = pendingResumeConsumers
|
|
579
|
+
.map((consumer) => consumer.localId);
|
|
580
|
+
await this._handler.resumeReceiving(localIds);
|
|
576
581
|
}
|
|
577
582
|
catch (error) {
|
|
578
583
|
logger.error('_resumePendingConsumers() | failed to resume Consumers:', error);
|
|
579
584
|
}
|
|
580
|
-
}, '
|
|
585
|
+
}, 'transport._resumePendingConsumers')
|
|
581
586
|
.then(() => {
|
|
582
587
|
this._consumerResumeInProgress = false;
|
|
583
588
|
// There are pending Consumer to be resumed, do it.
|
|
@@ -588,6 +593,33 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
588
593
|
// NOTE: We only get here when the await queue is closed.
|
|
589
594
|
.catch(() => { });
|
|
590
595
|
}
|
|
596
|
+
_closePendingConsumers() {
|
|
597
|
+
this._consumerCloseInProgress = true;
|
|
598
|
+
this._awaitQueue.push(async () => {
|
|
599
|
+
if (this._pendingCloseConsumers.size === 0) {
|
|
600
|
+
logger.debug('_closePendingConsumers() | there is no Consumer to be closed');
|
|
601
|
+
return;
|
|
602
|
+
}
|
|
603
|
+
const pendingCloseConsumers = Array.from(this._pendingCloseConsumers.values());
|
|
604
|
+
// Clear pending close Consumer map.
|
|
605
|
+
this._pendingCloseConsumers.clear();
|
|
606
|
+
try {
|
|
607
|
+
await this._handler.stopReceiving(pendingCloseConsumers.map((consumer) => consumer.localId));
|
|
608
|
+
}
|
|
609
|
+
catch (error) {
|
|
610
|
+
logger.error('_closePendingConsumers() | failed to close Consumers:', error);
|
|
611
|
+
}
|
|
612
|
+
}, 'transport._closePendingConsumers')
|
|
613
|
+
.then(() => {
|
|
614
|
+
this._consumerCloseInProgress = false;
|
|
615
|
+
// There are pending Consumer to be resumed, do it.
|
|
616
|
+
if (this._pendingCloseConsumers.size > 0) {
|
|
617
|
+
this._closePendingConsumers();
|
|
618
|
+
}
|
|
619
|
+
})
|
|
620
|
+
// NOTE: We only get here when the await queue is closed.
|
|
621
|
+
.catch(() => { });
|
|
622
|
+
}
|
|
591
623
|
_handleHandler() {
|
|
592
624
|
const handler = this._handler;
|
|
593
625
|
handler.on('@connect', ({ dtlsParameters }, callback, errback) => {
|
|
@@ -614,6 +646,16 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
614
646
|
this._awaitQueue.push(async () => this._handler.stopSending(producer.localId), 'producer @close event')
|
|
615
647
|
.catch((error) => logger.warn('producer.close() failed:%o', error));
|
|
616
648
|
});
|
|
649
|
+
producer.on('@pause', (callback, errback) => {
|
|
650
|
+
this._awaitQueue.push(async () => this._handler.pauseSending(producer.localId), 'producer @pause event')
|
|
651
|
+
.then(callback)
|
|
652
|
+
.catch(errback);
|
|
653
|
+
});
|
|
654
|
+
producer.on('@resume', (callback, errback) => {
|
|
655
|
+
this._awaitQueue.push(async () => this._handler.resumeSending(producer.localId), 'producer @resume event')
|
|
656
|
+
.then(callback)
|
|
657
|
+
.catch(errback);
|
|
658
|
+
});
|
|
617
659
|
producer.on('@replacetrack', (track, callback, errback) => {
|
|
618
660
|
this._awaitQueue.push(async () => this._handler.replaceTrack(producer.localId, track), 'producer @replacetrack event')
|
|
619
661
|
.then(callback)
|
|
@@ -644,8 +686,12 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
644
686
|
this._pendingResumeConsumers.delete(consumer.id);
|
|
645
687
|
if (this._closed)
|
|
646
688
|
return;
|
|
647
|
-
|
|
648
|
-
|
|
689
|
+
// Store the Consumer into the close list.
|
|
690
|
+
this._pendingCloseConsumers.set(consumer.id, consumer);
|
|
691
|
+
// There is no Consumer close in progress, do it now.
|
|
692
|
+
if (this._consumerCloseInProgress === false) {
|
|
693
|
+
this._closePendingConsumers();
|
|
694
|
+
}
|
|
649
695
|
});
|
|
650
696
|
consumer.on('@pause', () => {
|
|
651
697
|
// If Consumer is pending to be resumed, remove from pending resume list.
|
|
@@ -31,13 +31,15 @@ export declare class Chrome55 extends HandlerInterface {
|
|
|
31
31
|
getTransportStats(): Promise<RTCStatsReport>;
|
|
32
32
|
send({ track, encodings, codecOptions, codec }: HandlerSendOptions): Promise<HandlerSendResult>;
|
|
33
33
|
stopSending(localId: string): Promise<void>;
|
|
34
|
+
pauseSending(localId: string): Promise<void>;
|
|
35
|
+
resumeSending(localId: string): Promise<void>;
|
|
34
36
|
replaceTrack(localId: string, track: MediaStreamTrack | null): Promise<void>;
|
|
35
37
|
setMaxSpatialLayer(localId: string, spatialLayer: number): Promise<void>;
|
|
36
38
|
setRtpEncodingParameters(localId: string, params: any): Promise<void>;
|
|
37
39
|
getSenderStats(localId: string): Promise<RTCStatsReport>;
|
|
38
40
|
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
39
41
|
receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
|
|
40
|
-
stopReceiving(
|
|
42
|
+
stopReceiving(localIds: string[]): Promise<void>;
|
|
41
43
|
pauseReceiving(localIds: string[]): Promise<void>;
|
|
42
44
|
resumeReceiving(localIds: string[]): Promise<void>;
|
|
43
45
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
@@ -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;IAG7E,OAAO,CAAC,oBAAoB,CAAC,CAAW;IAExC,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA4C;IAEjF,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAOrB;IAEf,OAAO,CAAC,2BAA2B,CAAS;IAE5C,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,cAAc;;IAUtC,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,KAAK,IAAI,IAAI;IAYP,wBAAwB,IAAI,OAAO,CAAC,eAAe,CAAC;IAuCpD,yBAAyB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAS5D,GAAG,CACF,EACC,SAAS,EACT,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,EAAE,iBAAiB,GAClB,IAAI;IAsED,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDvD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAK5C,IAAI,CACT,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,kBAAkB,GAC3D,OAAO,CAAC,iBAAiB,CAAC;IAgIvB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
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
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
9
5
|
}) : (function(o, m, k, k2) {
|
|
10
6
|
if (k2 === undefined) k2 = k;
|
|
11
7
|
o[k2] = m[k];
|
|
@@ -304,6 +300,14 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
304
300
|
logger.debug('stopSending() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
305
301
|
await this._pc.setRemoteDescription(answer);
|
|
306
302
|
}
|
|
303
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
304
|
+
async pauseSending(localId) {
|
|
305
|
+
// Unimplemented.
|
|
306
|
+
}
|
|
307
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
308
|
+
async resumeSending(localId) {
|
|
309
|
+
// Unimplemented.
|
|
310
|
+
}
|
|
307
311
|
async replaceTrack(
|
|
308
312
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
309
313
|
localId, track) {
|
|
@@ -426,13 +430,15 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
426
430
|
}
|
|
427
431
|
return results;
|
|
428
432
|
}
|
|
429
|
-
async stopReceiving(
|
|
433
|
+
async stopReceiving(localIds) {
|
|
430
434
|
this._assertRecvDirection();
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
435
|
+
for (const localId of localIds) {
|
|
436
|
+
logger.debug('stopReceiving() [localId:%s]', localId);
|
|
437
|
+
const { mid, rtpParameters } = this._mapRecvLocalIdInfo.get(localId) || {};
|
|
438
|
+
// Remove from the map.
|
|
439
|
+
this._mapRecvLocalIdInfo.delete(localId);
|
|
440
|
+
this._remoteSdp.planBStopReceiving({ mid: mid, offerRtpParameters: rtpParameters });
|
|
441
|
+
}
|
|
436
442
|
const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
|
|
437
443
|
logger.debug('stopReceiving() | calling pc.setRemoteDescription() [offer:%o]', offer);
|
|
438
444
|
await this._pc.setRemoteDescription(offer);
|
|
@@ -500,7 +506,9 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
500
506
|
// Update the remote DTLS role in the SDP.
|
|
501
507
|
this._remoteSdp.updateDtlsRole(localDtlsRole === 'client' ? 'server' : 'client');
|
|
502
508
|
// Need to tell the remote transport about our parameters.
|
|
503
|
-
await
|
|
509
|
+
await new Promise((resolve, reject) => {
|
|
510
|
+
this.safeEmit('@connect', { dtlsParameters }, resolve, reject);
|
|
511
|
+
});
|
|
504
512
|
this._transportReady = true;
|
|
505
513
|
}
|
|
506
514
|
_assertSendDirection() {
|
|
@@ -31,13 +31,15 @@ export declare class Chrome67 extends HandlerInterface {
|
|
|
31
31
|
getTransportStats(): Promise<RTCStatsReport>;
|
|
32
32
|
send({ track, encodings, codecOptions, codec }: HandlerSendOptions): Promise<HandlerSendResult>;
|
|
33
33
|
stopSending(localId: string): Promise<void>;
|
|
34
|
+
pauseSending(localId: string): Promise<void>;
|
|
35
|
+
resumeSending(localId: string): Promise<void>;
|
|
34
36
|
replaceTrack(localId: string, track: MediaStreamTrack | null): Promise<void>;
|
|
35
37
|
setMaxSpatialLayer(localId: string, spatialLayer: number): Promise<void>;
|
|
36
38
|
setRtpEncodingParameters(localId: string, params: any): Promise<void>;
|
|
37
39
|
getSenderStats(localId: string): Promise<RTCStatsReport>;
|
|
38
40
|
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
39
41
|
receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
|
|
40
|
-
stopReceiving(
|
|
42
|
+
stopReceiving(localIds: string[]): Promise<void>;
|
|
41
43
|
pauseReceiving(localIds: string[]): Promise<void>;
|
|
42
44
|
resumeReceiving(localIds: string[]): Promise<void>;
|
|
43
45
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
@@ -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;IAG7E,OAAO,CAAC,oBAAoB,CAAC,CAAW;IAExC,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAC9B;IAEX,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAQrB;IAEf,OAAO,CAAC,2BAA2B,CAAS;IAE5C,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,cAAc;;IAUtC,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,KAAK,IAAI,IAAI;IAYP,wBAAwB,IAAI,OAAO,CAAC,eAAe,CAAC;IAuCpD,yBAAyB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAS5D,GAAG,CACF,EACC,SAAS,EACT,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,EAAE,iBAAiB,GAClB,IAAI;IAsED,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDvD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAK5C,IAAI,CACT,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,kBAAkB,GAC3D,OAAO,CAAC,iBAAiB,CAAC;IAoIvB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"Chrome67.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome67.ts"],"names":[],"mappings":"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"}
|