mediasoup-client 3.6.52 → 3.6.53
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 +16 -18
- package/lib/Consumer.d.ts.map +1 -1
- package/lib/Consumer.js +3 -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 +0 -5
- 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 +29 -22
- package/lib/Producer.d.ts.map +1 -1
- package/lib/Producer.js +18 -28
- package/lib/Transport.d.ts +40 -18
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +14 -25
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +3 -1
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +3 -1
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +3 -1
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +3 -1
- package/lib/handlers/Edge11.d.ts.map +1 -1
- package/lib/handlers/Edge11.js +3 -1
- package/lib/handlers/FakeHandler.d.ts +2 -2
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/Firefox60.d.ts.map +1 -1
- package/lib/handlers/Firefox60.js +3 -1
- package/lib/handlers/HandlerInterface.d.ts +12 -10
- package/lib/handlers/HandlerInterface.d.ts.map +1 -1
- package/lib/handlers/HandlerInterface.js +0 -8
- package/lib/handlers/ReactNative.d.ts.map +1 -1
- package/lib/handlers/ReactNative.js +3 -1
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +3 -1
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +3 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/utils.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/Consumer.ts +30 -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 +91 -31
- package/src/Transport.ts +73 -39
- package/src/handlers/Chrome55.ts +9 -1
- package/src/handlers/Chrome67.ts +9 -1
- package/src/handlers/Chrome70.ts +9 -1
- package/src/handlers/Chrome74.ts +9 -1
- package/src/handlers/Edge11.ts +9 -1
- package/src/handlers/FakeHandler.ts +4 -3
- package/src/handlers/Firefox60.ts +9 -1
- package/src/handlers/HandlerInterface.ts +14 -10
- package/src/handlers/ReactNative.ts +9 -1
- package/src/handlers/Safari11.ts +9 -1
- package/src/handlers/Safari12.ts +9 -1
- package/src/utils.ts +0 -1
package/src/Consumer.ts
CHANGED
|
@@ -3,6 +3,8 @@ import { EnhancedEventEmitter } from './EnhancedEventEmitter';
|
|
|
3
3
|
import { InvalidStateError } from './errors';
|
|
4
4
|
import { MediaKind, RtpParameters } from './RtpParameters';
|
|
5
5
|
|
|
6
|
+
const logger = new Logger('Consumer');
|
|
7
|
+
|
|
6
8
|
export type ConsumerOptions =
|
|
7
9
|
{
|
|
8
10
|
id?: string;
|
|
@@ -12,9 +14,26 @@ export type ConsumerOptions =
|
|
|
12
14
|
appData?: Record<string, unknown>;
|
|
13
15
|
}
|
|
14
16
|
|
|
15
|
-
|
|
17
|
+
export type ConsumerEvents =
|
|
18
|
+
{
|
|
19
|
+
transportclose: [];
|
|
20
|
+
trackended: [];
|
|
21
|
+
// Private events.
|
|
22
|
+
'@getstats': [(stats: RTCStatsReport) => void, (error: Error) => void];
|
|
23
|
+
'@close': [];
|
|
24
|
+
'@pause': [];
|
|
25
|
+
'@resume': [];
|
|
26
|
+
}
|
|
16
27
|
|
|
17
|
-
export
|
|
28
|
+
export type ConsumerObserverEvents =
|
|
29
|
+
{
|
|
30
|
+
close: [];
|
|
31
|
+
pause: [];
|
|
32
|
+
resume: [];
|
|
33
|
+
trackended: [];
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export class Consumer extends EnhancedEventEmitter<ConsumerEvents>
|
|
18
37
|
{
|
|
19
38
|
// Id.
|
|
20
39
|
private readonly _id: string;
|
|
@@ -35,16 +54,8 @@ export class Consumer extends EnhancedEventEmitter
|
|
|
35
54
|
// App custom data.
|
|
36
55
|
private readonly _appData: Record<string, unknown>;
|
|
37
56
|
// Observer instance.
|
|
38
|
-
protected readonly _observer = new EnhancedEventEmitter();
|
|
57
|
+
protected readonly _observer = new EnhancedEventEmitter<ConsumerObserverEvents>();
|
|
39
58
|
|
|
40
|
-
/**
|
|
41
|
-
* @emits transportclose
|
|
42
|
-
* @emits trackended
|
|
43
|
-
* @emits @getstats
|
|
44
|
-
* @emits @close
|
|
45
|
-
* @emits @pause
|
|
46
|
-
* @emits @resume
|
|
47
|
-
*/
|
|
48
59
|
constructor(
|
|
49
60
|
{
|
|
50
61
|
id,
|
|
@@ -172,14 +183,6 @@ export class Consumer extends EnhancedEventEmitter
|
|
|
172
183
|
throw new Error('cannot override appData object');
|
|
173
184
|
}
|
|
174
185
|
|
|
175
|
-
/**
|
|
176
|
-
* Observer.
|
|
177
|
-
*
|
|
178
|
-
* @emits close
|
|
179
|
-
* @emits pause
|
|
180
|
-
* @emits resume
|
|
181
|
-
* @emits trackended
|
|
182
|
-
*/
|
|
183
186
|
get observer(): EnhancedEventEmitter
|
|
184
187
|
{
|
|
185
188
|
return this._observer;
|
|
@@ -233,7 +236,14 @@ export class Consumer extends EnhancedEventEmitter
|
|
|
233
236
|
if (this._closed)
|
|
234
237
|
throw new InvalidStateError('closed');
|
|
235
238
|
|
|
236
|
-
return
|
|
239
|
+
return new Promise<RTCStatsReport>((resolve, reject) =>
|
|
240
|
+
{
|
|
241
|
+
this.safeEmit(
|
|
242
|
+
'@getstats',
|
|
243
|
+
resolve,
|
|
244
|
+
reject
|
|
245
|
+
);
|
|
246
|
+
});
|
|
237
247
|
}
|
|
238
248
|
|
|
239
249
|
/**
|
package/src/DataConsumer.ts
CHANGED
|
@@ -2,6 +2,8 @@ import { Logger } from './Logger';
|
|
|
2
2
|
import { EnhancedEventEmitter } from './EnhancedEventEmitter';
|
|
3
3
|
import { SctpStreamParameters } from './SctpParameters';
|
|
4
4
|
|
|
5
|
+
const logger = new Logger('DataConsumer');
|
|
6
|
+
|
|
5
7
|
export type DataConsumerOptions =
|
|
6
8
|
{
|
|
7
9
|
id?: string;
|
|
@@ -12,9 +14,23 @@ export type DataConsumerOptions =
|
|
|
12
14
|
appData?: Record<string, unknown>;
|
|
13
15
|
}
|
|
14
16
|
|
|
15
|
-
|
|
17
|
+
export type DataConsumerEvents =
|
|
18
|
+
{
|
|
19
|
+
transportclose: [];
|
|
20
|
+
open: [];
|
|
21
|
+
error: [Error];
|
|
22
|
+
close: [];
|
|
23
|
+
message: [any];
|
|
24
|
+
// Private events.
|
|
25
|
+
'@close': [];
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export type DataConsumerObserverEvents =
|
|
29
|
+
{
|
|
30
|
+
close: [];
|
|
31
|
+
}
|
|
16
32
|
|
|
17
|
-
export class DataConsumer extends EnhancedEventEmitter
|
|
33
|
+
export class DataConsumer extends EnhancedEventEmitter<DataConsumerEvents>
|
|
18
34
|
{
|
|
19
35
|
// Id.
|
|
20
36
|
private readonly _id: string;
|
|
@@ -29,16 +45,8 @@ export class DataConsumer extends EnhancedEventEmitter
|
|
|
29
45
|
// App custom data.
|
|
30
46
|
private readonly _appData: Record<string, unknown>;
|
|
31
47
|
// Observer instance.
|
|
32
|
-
protected readonly _observer = new EnhancedEventEmitter();
|
|
48
|
+
protected readonly _observer = new EnhancedEventEmitter<DataConsumerObserverEvents>();
|
|
33
49
|
|
|
34
|
-
/**
|
|
35
|
-
* @emits transportclose
|
|
36
|
-
* @emits open
|
|
37
|
-
* @emits error - (error: Error)
|
|
38
|
-
* @emits close
|
|
39
|
-
* @emits message - (message: any)
|
|
40
|
-
* @emits @close
|
|
41
|
-
*/
|
|
42
50
|
constructor(
|
|
43
51
|
{
|
|
44
52
|
id,
|
|
@@ -158,11 +166,6 @@ export class DataConsumer extends EnhancedEventEmitter
|
|
|
158
166
|
throw new Error('cannot override appData object');
|
|
159
167
|
}
|
|
160
168
|
|
|
161
|
-
/**
|
|
162
|
-
* Observer.
|
|
163
|
-
*
|
|
164
|
-
* @emits close
|
|
165
|
-
*/
|
|
166
169
|
get observer(): EnhancedEventEmitter
|
|
167
170
|
{
|
|
168
171
|
return this._observer;
|
package/src/DataProducer.ts
CHANGED
|
@@ -3,6 +3,8 @@ import { EnhancedEventEmitter } from './EnhancedEventEmitter';
|
|
|
3
3
|
import { InvalidStateError } from './errors';
|
|
4
4
|
import { SctpStreamParameters } from './SctpParameters';
|
|
5
5
|
|
|
6
|
+
const logger = new Logger('DataProducer');
|
|
7
|
+
|
|
6
8
|
export type DataProducerOptions =
|
|
7
9
|
{
|
|
8
10
|
ordered?: boolean;
|
|
@@ -13,9 +15,23 @@ export type DataProducerOptions =
|
|
|
13
15
|
appData?: Record<string, unknown>;
|
|
14
16
|
}
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
export type DataProducerEvents =
|
|
19
|
+
{
|
|
20
|
+
transportclose: [];
|
|
21
|
+
open: [];
|
|
22
|
+
error: [Error];
|
|
23
|
+
close: [];
|
|
24
|
+
bufferedamountlow: [];
|
|
25
|
+
// Private events.
|
|
26
|
+
'@close': [];
|
|
27
|
+
}
|
|
17
28
|
|
|
18
|
-
export
|
|
29
|
+
export type DataProducerObserverEvents =
|
|
30
|
+
{
|
|
31
|
+
close: [];
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export class DataProducer extends EnhancedEventEmitter<DataProducerEvents>
|
|
19
35
|
{
|
|
20
36
|
// Id.
|
|
21
37
|
private readonly _id: string;
|
|
@@ -28,16 +44,8 @@ export class DataProducer extends EnhancedEventEmitter
|
|
|
28
44
|
// App custom data.
|
|
29
45
|
private readonly _appData: Record<string, unknown>;
|
|
30
46
|
// Observer instance.
|
|
31
|
-
protected readonly _observer = new EnhancedEventEmitter();
|
|
47
|
+
protected readonly _observer = new EnhancedEventEmitter<DataProducerObserverEvents>();
|
|
32
48
|
|
|
33
|
-
/**
|
|
34
|
-
* @emits transportclose
|
|
35
|
-
* @emits open
|
|
36
|
-
* @emits error - (error: Error)
|
|
37
|
-
* @emits close
|
|
38
|
-
* @emits bufferedamountlow
|
|
39
|
-
* @emits @close
|
|
40
|
-
*/
|
|
41
49
|
constructor(
|
|
42
50
|
{
|
|
43
51
|
id,
|
|
@@ -154,11 +162,6 @@ export class DataProducer extends EnhancedEventEmitter
|
|
|
154
162
|
throw new Error('cannot override appData object');
|
|
155
163
|
}
|
|
156
164
|
|
|
157
|
-
/**
|
|
158
|
-
* Observer.
|
|
159
|
-
*
|
|
160
|
-
* @emits close
|
|
161
|
-
*/
|
|
162
165
|
get observer(): EnhancedEventEmitter
|
|
163
166
|
{
|
|
164
167
|
return this._observer;
|
package/src/Device.ts
CHANGED
|
@@ -179,6 +179,11 @@ export function detectDevice(): BuiltinHandlerName | undefined
|
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
181
|
|
|
182
|
+
export type DeviceObserverEvents =
|
|
183
|
+
{
|
|
184
|
+
newtransport: [Transport];
|
|
185
|
+
}
|
|
186
|
+
|
|
182
187
|
export class Device
|
|
183
188
|
{
|
|
184
189
|
// RTC handler factory.
|
|
@@ -197,7 +202,7 @@ export class Device
|
|
|
197
202
|
// Local SCTP capabilities.
|
|
198
203
|
private _sctpCapabilities?: SctpCapabilities;
|
|
199
204
|
// Observer instance.
|
|
200
|
-
protected readonly _observer = new EnhancedEventEmitter();
|
|
205
|
+
protected readonly _observer = new EnhancedEventEmitter<DeviceObserverEvents>();
|
|
201
206
|
|
|
202
207
|
/**
|
|
203
208
|
* Create a new Device to connect to mediasoup server.
|
|
@@ -340,11 +345,6 @@ export class Device
|
|
|
340
345
|
return this._sctpCapabilities!;
|
|
341
346
|
}
|
|
342
347
|
|
|
343
|
-
/**
|
|
344
|
-
* Observer.
|
|
345
|
-
*
|
|
346
|
-
* @emits newtransport - (transport: Transport)
|
|
347
|
-
*/
|
|
348
348
|
get observer(): EnhancedEventEmitter
|
|
349
349
|
{
|
|
350
350
|
return this._observer;
|
|
@@ -3,7 +3,9 @@ import { Logger } from './Logger';
|
|
|
3
3
|
|
|
4
4
|
const logger = new Logger('EnhancedEventEmitter');
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
type Events = Record<string, any[]>
|
|
7
|
+
|
|
8
|
+
export class EnhancedEventEmitter<E extends Events = Events> extends EventEmitter
|
|
7
9
|
{
|
|
8
10
|
constructor()
|
|
9
11
|
{
|
|
@@ -11,40 +13,121 @@ export class EnhancedEventEmitter extends EventEmitter
|
|
|
11
13
|
this.setMaxListeners(Infinity);
|
|
12
14
|
}
|
|
13
15
|
|
|
14
|
-
|
|
16
|
+
emit<K extends keyof E & string>(eventName: K, ...args: E[K]): boolean
|
|
17
|
+
{
|
|
18
|
+
return super.emit(eventName, ...args);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Special addition to the EventEmitter API.
|
|
23
|
+
*/
|
|
24
|
+
safeEmit<K extends keyof E & string>(eventName: K, ...args: E[K]): boolean
|
|
15
25
|
{
|
|
16
|
-
const numListeners =
|
|
26
|
+
const numListeners = super.listenerCount(eventName);
|
|
17
27
|
|
|
18
28
|
try
|
|
19
29
|
{
|
|
20
|
-
return
|
|
30
|
+
return super.emit(eventName, ...args);
|
|
21
31
|
}
|
|
22
32
|
catch (error)
|
|
23
33
|
{
|
|
24
34
|
logger.error(
|
|
25
|
-
'safeEmit() | event listener threw an error [
|
|
26
|
-
|
|
35
|
+
'safeEmit() | event listener threw an error [eventName:%s]:%o',
|
|
36
|
+
eventName, error);
|
|
27
37
|
|
|
28
38
|
return Boolean(numListeners);
|
|
29
39
|
}
|
|
30
40
|
}
|
|
31
41
|
|
|
32
|
-
|
|
42
|
+
on<K extends keyof E & string>(
|
|
43
|
+
eventName: K,
|
|
44
|
+
listener: (...args: E[K]) => void
|
|
45
|
+
): this
|
|
33
46
|
{
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
super.on(eventName, listener as (...args: any[]) => void);
|
|
48
|
+
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
off<K extends keyof E & string>(
|
|
53
|
+
eventName: K,
|
|
54
|
+
listener: (...args: E[K]) => void
|
|
55
|
+
): this
|
|
56
|
+
{
|
|
57
|
+
super.off(eventName, listener as (...args: any[]) => void);
|
|
58
|
+
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
addListener<K extends keyof E & string>(
|
|
63
|
+
eventName: K,
|
|
64
|
+
listener: (...args: E[K]) => void
|
|
65
|
+
): this
|
|
66
|
+
{
|
|
67
|
+
super.on(eventName, listener as (...args: any[]) => void);
|
|
68
|
+
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
prependListener<K extends keyof E & string>(
|
|
73
|
+
eventName: K,
|
|
74
|
+
listener: (...args: E[K]) => void
|
|
75
|
+
): this
|
|
76
|
+
{
|
|
77
|
+
super.prependListener(eventName, listener as (...args: any[]) => void);
|
|
78
|
+
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
once<K extends keyof E & string>(
|
|
83
|
+
eventName: K,
|
|
84
|
+
listener: (...args: E[K]) => void
|
|
85
|
+
): this
|
|
86
|
+
{
|
|
87
|
+
super.once(eventName, listener as (...args: any[]) => void);
|
|
88
|
+
|
|
89
|
+
return this;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
prependOnceListener<K extends keyof E & string>(
|
|
93
|
+
eventName: K,
|
|
94
|
+
listener: (...args: E[K]) => void
|
|
95
|
+
): this
|
|
96
|
+
{
|
|
97
|
+
super.prependOnceListener(eventName, listener as (...args: any[]) => void);
|
|
98
|
+
|
|
99
|
+
return this;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
removeListener<K extends keyof E & string>(
|
|
103
|
+
eventName: K,
|
|
104
|
+
listener: (...args: E[K]) => void
|
|
105
|
+
): this
|
|
106
|
+
{
|
|
107
|
+
super.off(eventName, listener as (...args: any[]) => void);
|
|
108
|
+
|
|
109
|
+
return this;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
removeAllListeners<K extends keyof E & string>(eventName: K): this
|
|
113
|
+
{
|
|
114
|
+
super.removeAllListeners(eventName);
|
|
115
|
+
|
|
116
|
+
return this;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
listenerCount<K extends keyof E & string>(eventName: K): number
|
|
120
|
+
{
|
|
121
|
+
return super.listenerCount(eventName);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
listeners<K extends keyof E & string>(eventName: K): Function[]
|
|
125
|
+
{
|
|
126
|
+
return super.listeners(eventName);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
rawListeners<K extends keyof E & string>(eventName: K): Function[]
|
|
130
|
+
{
|
|
131
|
+
return super.rawListeners(eventName);
|
|
49
132
|
}
|
|
50
133
|
}
|
package/src/Producer.ts
CHANGED
|
@@ -8,6 +8,8 @@ import {
|
|
|
8
8
|
RtpEncodingParameters
|
|
9
9
|
} from './RtpParameters';
|
|
10
10
|
|
|
11
|
+
const logger = new Logger('Producer');
|
|
12
|
+
|
|
11
13
|
export type ProducerOptions =
|
|
12
14
|
{
|
|
13
15
|
track?: MediaStreamTrack;
|
|
@@ -34,9 +36,42 @@ export type ProducerCodecOptions =
|
|
|
34
36
|
videoGoogleMinBitrate?: number;
|
|
35
37
|
}
|
|
36
38
|
|
|
37
|
-
|
|
39
|
+
export type ProducerEvents =
|
|
40
|
+
{
|
|
41
|
+
transportclose: [];
|
|
42
|
+
trackended: [];
|
|
43
|
+
// Private events.
|
|
44
|
+
'@replacetrack':
|
|
45
|
+
[
|
|
46
|
+
MediaStreamTrack | null,
|
|
47
|
+
() => void,
|
|
48
|
+
(error: Error) => void
|
|
49
|
+
];
|
|
50
|
+
'@setmaxspatiallayer':
|
|
51
|
+
[
|
|
52
|
+
number,
|
|
53
|
+
() => void,
|
|
54
|
+
(error: Error) => void
|
|
55
|
+
];
|
|
56
|
+
'@setrtpencodingparameters':
|
|
57
|
+
[
|
|
58
|
+
RTCRtpEncodingParameters,
|
|
59
|
+
() => void,
|
|
60
|
+
(error: Error) => void
|
|
61
|
+
];
|
|
62
|
+
'@getstats': [(stats: RTCStatsReport) => void, (error: Error) => void];
|
|
63
|
+
'@close': [];
|
|
64
|
+
}
|
|
38
65
|
|
|
39
|
-
export
|
|
66
|
+
export type ProducerObserverEvents =
|
|
67
|
+
{
|
|
68
|
+
close: [];
|
|
69
|
+
pause: [];
|
|
70
|
+
resume: [];
|
|
71
|
+
trackended: [];
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export class Producer extends EnhancedEventEmitter<ProducerEvents>
|
|
40
75
|
{
|
|
41
76
|
// Id.
|
|
42
77
|
private readonly _id: string;
|
|
@@ -65,17 +100,8 @@ export class Producer extends EnhancedEventEmitter
|
|
|
65
100
|
// App custom data.
|
|
66
101
|
private readonly _appData: Record<string, unknown>;
|
|
67
102
|
// Observer instance.
|
|
68
|
-
protected readonly _observer = new EnhancedEventEmitter();
|
|
103
|
+
protected readonly _observer = new EnhancedEventEmitter<ProducerObserverEvents>();
|
|
69
104
|
|
|
70
|
-
/**
|
|
71
|
-
* @emits transportclose
|
|
72
|
-
* @emits trackended
|
|
73
|
-
* @emits @replacetrack - (track: MediaStreamTrack | null)
|
|
74
|
-
* @emits @setmaxspatiallayer - (spatialLayer: string)
|
|
75
|
-
* @emits @setrtpencodingparameters - (params: any)
|
|
76
|
-
* @emits @getstats
|
|
77
|
-
* @emits @close
|
|
78
|
-
*/
|
|
79
105
|
constructor(
|
|
80
106
|
{
|
|
81
107
|
id,
|
|
@@ -216,14 +242,6 @@ export class Producer extends EnhancedEventEmitter
|
|
|
216
242
|
throw new Error('cannot override appData object');
|
|
217
243
|
}
|
|
218
244
|
|
|
219
|
-
/**
|
|
220
|
-
* Observer.
|
|
221
|
-
*
|
|
222
|
-
* @emits close
|
|
223
|
-
* @emits pause
|
|
224
|
-
* @emits resume
|
|
225
|
-
* @emits trackended
|
|
226
|
-
*/
|
|
227
245
|
get observer(): EnhancedEventEmitter
|
|
228
246
|
{
|
|
229
247
|
return this._observer;
|
|
@@ -277,7 +295,14 @@ export class Producer extends EnhancedEventEmitter
|
|
|
277
295
|
if (this._closed)
|
|
278
296
|
throw new InvalidStateError('closed');
|
|
279
297
|
|
|
280
|
-
return
|
|
298
|
+
return new Promise<RTCStatsReport>((resolve, reject) =>
|
|
299
|
+
{
|
|
300
|
+
this.safeEmit(
|
|
301
|
+
'@getstats',
|
|
302
|
+
resolve,
|
|
303
|
+
reject
|
|
304
|
+
);
|
|
305
|
+
});
|
|
281
306
|
}
|
|
282
307
|
|
|
283
308
|
/**
|
|
@@ -303,8 +328,15 @@ export class Producer extends EnhancedEventEmitter
|
|
|
303
328
|
|
|
304
329
|
if (this._zeroRtpOnPause)
|
|
305
330
|
{
|
|
306
|
-
|
|
307
|
-
|
|
331
|
+
new Promise<void>((resolve, reject) =>
|
|
332
|
+
{
|
|
333
|
+
this.safeEmit(
|
|
334
|
+
'@replacetrack',
|
|
335
|
+
null,
|
|
336
|
+
resolve,
|
|
337
|
+
reject
|
|
338
|
+
);
|
|
339
|
+
}).catch(() => {});
|
|
308
340
|
}
|
|
309
341
|
|
|
310
342
|
// Emit observer event.
|
|
@@ -334,8 +366,15 @@ export class Producer extends EnhancedEventEmitter
|
|
|
334
366
|
|
|
335
367
|
if (this._zeroRtpOnPause)
|
|
336
368
|
{
|
|
337
|
-
|
|
338
|
-
|
|
369
|
+
new Promise<void>((resolve, reject) =>
|
|
370
|
+
{
|
|
371
|
+
this.safeEmit(
|
|
372
|
+
'@replacetrack',
|
|
373
|
+
this._track,
|
|
374
|
+
resolve,
|
|
375
|
+
reject
|
|
376
|
+
);
|
|
377
|
+
}).catch(() => {});
|
|
339
378
|
}
|
|
340
379
|
|
|
341
380
|
// Emit observer event.
|
|
@@ -376,7 +415,15 @@ export class Producer extends EnhancedEventEmitter
|
|
|
376
415
|
|
|
377
416
|
if (!this._zeroRtpOnPause || !this._paused)
|
|
378
417
|
{
|
|
379
|
-
await
|
|
418
|
+
await new Promise<void>((resolve, reject) =>
|
|
419
|
+
{
|
|
420
|
+
this.safeEmit(
|
|
421
|
+
'@replacetrack',
|
|
422
|
+
track,
|
|
423
|
+
resolve,
|
|
424
|
+
reject
|
|
425
|
+
);
|
|
426
|
+
});
|
|
380
427
|
}
|
|
381
428
|
|
|
382
429
|
// Destroy the previous track.
|
|
@@ -414,14 +461,19 @@ export class Producer extends EnhancedEventEmitter
|
|
|
414
461
|
if (spatialLayer === this._maxSpatialLayer)
|
|
415
462
|
return;
|
|
416
463
|
|
|
417
|
-
await
|
|
464
|
+
await new Promise<void>((resolve, reject) =>
|
|
465
|
+
{
|
|
466
|
+
this.safeEmit(
|
|
467
|
+
'@setmaxspatiallayer',
|
|
468
|
+
spatialLayer,
|
|
469
|
+
resolve,
|
|
470
|
+
reject
|
|
471
|
+
);
|
|
472
|
+
}).catch(() => {});
|
|
418
473
|
|
|
419
474
|
this._maxSpatialLayer = spatialLayer;
|
|
420
475
|
}
|
|
421
476
|
|
|
422
|
-
/**
|
|
423
|
-
* Sets the DSCP value.
|
|
424
|
-
*/
|
|
425
477
|
async setRtpEncodingParameters(
|
|
426
478
|
params: RTCRtpEncodingParameters
|
|
427
479
|
): Promise<void>
|
|
@@ -431,7 +483,15 @@ export class Producer extends EnhancedEventEmitter
|
|
|
431
483
|
else if (typeof params !== 'object')
|
|
432
484
|
throw new TypeError('invalid params');
|
|
433
485
|
|
|
434
|
-
await
|
|
486
|
+
await new Promise<void>((resolve, reject) =>
|
|
487
|
+
{
|
|
488
|
+
this.safeEmit(
|
|
489
|
+
'@setrtpencodingparameters',
|
|
490
|
+
params,
|
|
491
|
+
resolve,
|
|
492
|
+
reject
|
|
493
|
+
);
|
|
494
|
+
});
|
|
435
495
|
}
|
|
436
496
|
|
|
437
497
|
private _onTrackEnded(): void
|