mediasoup-client 3.6.50 → 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 +22 -24
- package/lib/Consumer.d.ts.map +1 -1
- package/lib/Consumer.js +5 -18
- package/lib/DataConsumer.d.ts +17 -19
- package/lib/DataConsumer.d.ts.map +1 -1
- package/lib/DataConsumer.js +2 -14
- package/lib/DataProducer.d.ts +17 -19
- package/lib/DataProducer.d.ts.map +1 -1
- package/lib/DataProducer.js +2 -14
- package/lib/Device.d.ts +4 -6
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +8 -9
- 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 +35 -28
- package/lib/Producer.d.ts.map +1 -1
- package/lib/Producer.js +20 -29
- package/lib/Transport.d.ts +49 -21
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +97 -31
- package/lib/handlers/Chrome55.d.ts +2 -2
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +10 -4
- package/lib/handlers/Chrome67.d.ts +2 -2
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +10 -4
- package/lib/handlers/Chrome70.d.ts +2 -2
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +10 -4
- package/lib/handlers/Chrome74.d.ts +2 -2
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +24 -14
- package/lib/handlers/Edge11.d.ts +2 -2
- package/lib/handlers/Edge11.d.ts.map +1 -1
- package/lib/handlers/Edge11.js +10 -4
- package/lib/handlers/FakeHandler.d.ts +4 -4
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +7 -3
- package/lib/handlers/Firefox60.d.ts +2 -2
- package/lib/handlers/Firefox60.d.ts.map +1 -1
- package/lib/handlers/Firefox60.js +24 -14
- package/lib/handlers/HandlerInterface.d.ts +14 -12
- package/lib/handlers/HandlerInterface.d.ts.map +1 -1
- package/lib/handlers/HandlerInterface.js +0 -8
- package/lib/handlers/ReactNative.d.ts +2 -2
- package/lib/handlers/ReactNative.d.ts.map +1 -1
- package/lib/handlers/ReactNative.js +10 -4
- package/lib/handlers/Safari11.d.ts +2 -2
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +10 -4
- package/lib/handlers/Safari12.d.ts +2 -2
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +24 -14
- package/lib/handlers/ortc/edgeUtils.js +5 -1
- package/lib/handlers/sdp/MediaSection.js +5 -1
- package/lib/handlers/sdp/RemoteSdp.js +5 -1
- package/lib/handlers/sdp/commonUtils.js +5 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +6 -2
- package/lib/ortc.js +5 -1
- package/lib/types.js +5 -1
- package/lib/utils.d.ts.map +1 -1
- package/package.json +11 -11
- package/src/Consumer.ts +40 -29
- package/src/DataConsumer.ts +26 -22
- package/src/DataProducer.ts +26 -22
- package/src/Device.ts +9 -9
- package/src/EnhancedEventEmitter.ts +105 -22
- package/src/Producer.ts +99 -38
- package/src/Transport.ts +193 -52
- package/src/handlers/Chrome55.ts +12 -4
- package/src/handlers/Chrome67.ts +11 -3
- package/src/handlers/Chrome70.ts +11 -3
- package/src/handlers/Chrome74.ts +29 -15
- package/src/handlers/Edge11.ts +11 -3
- package/src/handlers/FakeHandler.ts +6 -5
- package/src/handlers/Firefox60.ts +29 -15
- package/src/handlers/HandlerInterface.ts +16 -12
- package/src/handlers/ReactNative.ts +11 -3
- package/src/handlers/Safari11.ts +11 -3
- package/src/handlers/Safari12.ts +29 -15
- package/src/utils.ts +0 -1
- package/.vimrc +0 -21
- package/NO_GIT/Notes.txt +0 -18
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;
|
|
@@ -10,12 +12,26 @@ export type DataProducerOptions =
|
|
|
10
12
|
maxRetransmits?: number;
|
|
11
13
|
label?: string;
|
|
12
14
|
protocol?: string;
|
|
13
|
-
appData?:
|
|
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;
|
|
@@ -26,18 +42,10 @@ export class DataProducer extends EnhancedEventEmitter
|
|
|
26
42
|
// SCTP stream parameters.
|
|
27
43
|
private readonly _sctpStreamParameters: SctpStreamParameters;
|
|
28
44
|
// App custom data.
|
|
29
|
-
private readonly _appData:
|
|
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,
|
|
@@ -49,7 +57,7 @@ export class DataProducer extends EnhancedEventEmitter
|
|
|
49
57
|
id: string;
|
|
50
58
|
dataChannel: RTCDataChannel;
|
|
51
59
|
sctpStreamParameters: SctpStreamParameters;
|
|
52
|
-
appData
|
|
60
|
+
appData?: Record<string, unknown>;
|
|
53
61
|
}
|
|
54
62
|
)
|
|
55
63
|
{
|
|
@@ -60,7 +68,7 @@ export class DataProducer extends EnhancedEventEmitter
|
|
|
60
68
|
this._id = id;
|
|
61
69
|
this._dataChannel = dataChannel;
|
|
62
70
|
this._sctpStreamParameters = sctpStreamParameters;
|
|
63
|
-
this._appData = appData;
|
|
71
|
+
this._appData = appData || {};
|
|
64
72
|
|
|
65
73
|
this._handleDataChannel();
|
|
66
74
|
}
|
|
@@ -140,7 +148,7 @@ export class DataProducer extends EnhancedEventEmitter
|
|
|
140
148
|
/**
|
|
141
149
|
* App custom data.
|
|
142
150
|
*/
|
|
143
|
-
get appData():
|
|
151
|
+
get appData(): Record<string, unknown>
|
|
144
152
|
{
|
|
145
153
|
return this._appData;
|
|
146
154
|
}
|
|
@@ -148,16 +156,12 @@ export class DataProducer extends EnhancedEventEmitter
|
|
|
148
156
|
/**
|
|
149
157
|
* Invalid setter.
|
|
150
158
|
*/
|
|
151
|
-
|
|
159
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
160
|
+
set appData(appData: Record<string, unknown>)
|
|
152
161
|
{
|
|
153
162
|
throw new Error('cannot override appData object');
|
|
154
163
|
}
|
|
155
164
|
|
|
156
|
-
/**
|
|
157
|
-
* Observer.
|
|
158
|
-
*
|
|
159
|
-
* @emits close
|
|
160
|
-
*/
|
|
161
165
|
get observer(): EnhancedEventEmitter
|
|
162
166
|
{
|
|
163
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;
|
|
@@ -465,7 +465,7 @@ export class Device
|
|
|
465
465
|
iceTransportPolicy,
|
|
466
466
|
additionalSettings,
|
|
467
467
|
proprietaryConstraints,
|
|
468
|
-
appData
|
|
468
|
+
appData
|
|
469
469
|
}: TransportOptions
|
|
470
470
|
): Transport
|
|
471
471
|
{
|
|
@@ -504,7 +504,7 @@ export class Device
|
|
|
504
504
|
iceTransportPolicy,
|
|
505
505
|
additionalSettings,
|
|
506
506
|
proprietaryConstraints,
|
|
507
|
-
appData
|
|
507
|
+
appData
|
|
508
508
|
}: TransportOptions
|
|
509
509
|
): Transport
|
|
510
510
|
{
|
|
@@ -538,7 +538,7 @@ export class Device
|
|
|
538
538
|
iceTransportPolicy,
|
|
539
539
|
additionalSettings,
|
|
540
540
|
proprietaryConstraints,
|
|
541
|
-
appData
|
|
541
|
+
appData
|
|
542
542
|
}: InternalTransportOptions
|
|
543
543
|
): Transport
|
|
544
544
|
{
|
|
@@ -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;
|
|
@@ -17,7 +19,7 @@ export type ProducerOptions =
|
|
|
17
19
|
stopTracks?: boolean;
|
|
18
20
|
disableTrackOnPause?: boolean;
|
|
19
21
|
zeroRtpOnPause?: boolean;
|
|
20
|
-
appData?:
|
|
22
|
+
appData?: Record<string, unknown>;
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
// https://mediasoup.org/documentation/v3/mediasoup-client/api/#ProducerCodecOptions
|
|
@@ -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;
|
|
@@ -63,19 +98,10 @@ export class Producer extends EnhancedEventEmitter
|
|
|
63
98
|
// Whether we should replace the RTCRtpSender.track with null when paused.
|
|
64
99
|
private _zeroRtpOnPause: boolean;
|
|
65
100
|
// App custom data.
|
|
66
|
-
private readonly _appData:
|
|
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,
|
|
@@ -97,7 +123,7 @@ export class Producer extends EnhancedEventEmitter
|
|
|
97
123
|
stopTracks: boolean;
|
|
98
124
|
disableTrackOnPause: boolean;
|
|
99
125
|
zeroRtpOnPause: boolean;
|
|
100
|
-
appData
|
|
126
|
+
appData?: Record<string, unknown>;
|
|
101
127
|
}
|
|
102
128
|
)
|
|
103
129
|
{
|
|
@@ -116,7 +142,7 @@ export class Producer extends EnhancedEventEmitter
|
|
|
116
142
|
this._stopTracks = stopTracks;
|
|
117
143
|
this._disableTrackOnPause = disableTrackOnPause;
|
|
118
144
|
this._zeroRtpOnPause = zeroRtpOnPause;
|
|
119
|
-
this._appData = appData;
|
|
145
|
+
this._appData = appData || {};
|
|
120
146
|
this._onTrackEnded = this._onTrackEnded.bind(this);
|
|
121
147
|
|
|
122
148
|
// NOTE: Minor issue. If zeroRtpOnPause is true, we cannot emit the
|
|
@@ -152,7 +178,7 @@ export class Producer extends EnhancedEventEmitter
|
|
|
152
178
|
/**
|
|
153
179
|
* Media kind.
|
|
154
180
|
*/
|
|
155
|
-
get kind():
|
|
181
|
+
get kind(): MediaKind
|
|
156
182
|
{
|
|
157
183
|
return this._kind;
|
|
158
184
|
}
|
|
@@ -202,7 +228,7 @@ export class Producer extends EnhancedEventEmitter
|
|
|
202
228
|
/**
|
|
203
229
|
* App custom data.
|
|
204
230
|
*/
|
|
205
|
-
get appData():
|
|
231
|
+
get appData(): Record<string, unknown>
|
|
206
232
|
{
|
|
207
233
|
return this._appData;
|
|
208
234
|
}
|
|
@@ -210,19 +236,12 @@ export class Producer extends EnhancedEventEmitter
|
|
|
210
236
|
/**
|
|
211
237
|
* Invalid setter.
|
|
212
238
|
*/
|
|
213
|
-
|
|
239
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
240
|
+
set appData(appData: Record<string, unknown>)
|
|
214
241
|
{
|
|
215
242
|
throw new Error('cannot override appData object');
|
|
216
243
|
}
|
|
217
244
|
|
|
218
|
-
/**
|
|
219
|
-
* Observer.
|
|
220
|
-
*
|
|
221
|
-
* @emits close
|
|
222
|
-
* @emits pause
|
|
223
|
-
* @emits resume
|
|
224
|
-
* @emits trackended
|
|
225
|
-
*/
|
|
226
245
|
get observer(): EnhancedEventEmitter
|
|
227
246
|
{
|
|
228
247
|
return this._observer;
|
|
@@ -276,7 +295,14 @@ export class Producer extends EnhancedEventEmitter
|
|
|
276
295
|
if (this._closed)
|
|
277
296
|
throw new InvalidStateError('closed');
|
|
278
297
|
|
|
279
|
-
return
|
|
298
|
+
return new Promise<RTCStatsReport>((resolve, reject) =>
|
|
299
|
+
{
|
|
300
|
+
this.safeEmit(
|
|
301
|
+
'@getstats',
|
|
302
|
+
resolve,
|
|
303
|
+
reject
|
|
304
|
+
);
|
|
305
|
+
});
|
|
280
306
|
}
|
|
281
307
|
|
|
282
308
|
/**
|
|
@@ -302,8 +328,15 @@ export class Producer extends EnhancedEventEmitter
|
|
|
302
328
|
|
|
303
329
|
if (this._zeroRtpOnPause)
|
|
304
330
|
{
|
|
305
|
-
|
|
306
|
-
|
|
331
|
+
new Promise<void>((resolve, reject) =>
|
|
332
|
+
{
|
|
333
|
+
this.safeEmit(
|
|
334
|
+
'@replacetrack',
|
|
335
|
+
null,
|
|
336
|
+
resolve,
|
|
337
|
+
reject
|
|
338
|
+
);
|
|
339
|
+
}).catch(() => {});
|
|
307
340
|
}
|
|
308
341
|
|
|
309
342
|
// Emit observer event.
|
|
@@ -333,8 +366,15 @@ export class Producer extends EnhancedEventEmitter
|
|
|
333
366
|
|
|
334
367
|
if (this._zeroRtpOnPause)
|
|
335
368
|
{
|
|
336
|
-
|
|
337
|
-
|
|
369
|
+
new Promise<void>((resolve, reject) =>
|
|
370
|
+
{
|
|
371
|
+
this.safeEmit(
|
|
372
|
+
'@replacetrack',
|
|
373
|
+
this._track,
|
|
374
|
+
resolve,
|
|
375
|
+
reject
|
|
376
|
+
);
|
|
377
|
+
}).catch(() => {});
|
|
338
378
|
}
|
|
339
379
|
|
|
340
380
|
// Emit observer event.
|
|
@@ -375,7 +415,15 @@ export class Producer extends EnhancedEventEmitter
|
|
|
375
415
|
|
|
376
416
|
if (!this._zeroRtpOnPause || !this._paused)
|
|
377
417
|
{
|
|
378
|
-
await
|
|
418
|
+
await new Promise<void>((resolve, reject) =>
|
|
419
|
+
{
|
|
420
|
+
this.safeEmit(
|
|
421
|
+
'@replacetrack',
|
|
422
|
+
track,
|
|
423
|
+
resolve,
|
|
424
|
+
reject
|
|
425
|
+
);
|
|
426
|
+
});
|
|
379
427
|
}
|
|
380
428
|
|
|
381
429
|
// Destroy the previous track.
|
|
@@ -413,14 +461,19 @@ export class Producer extends EnhancedEventEmitter
|
|
|
413
461
|
if (spatialLayer === this._maxSpatialLayer)
|
|
414
462
|
return;
|
|
415
463
|
|
|
416
|
-
await
|
|
464
|
+
await new Promise<void>((resolve, reject) =>
|
|
465
|
+
{
|
|
466
|
+
this.safeEmit(
|
|
467
|
+
'@setmaxspatiallayer',
|
|
468
|
+
spatialLayer,
|
|
469
|
+
resolve,
|
|
470
|
+
reject
|
|
471
|
+
);
|
|
472
|
+
}).catch(() => {});
|
|
417
473
|
|
|
418
474
|
this._maxSpatialLayer = spatialLayer;
|
|
419
475
|
}
|
|
420
476
|
|
|
421
|
-
/**
|
|
422
|
-
* Sets the DSCP value.
|
|
423
|
-
*/
|
|
424
477
|
async setRtpEncodingParameters(
|
|
425
478
|
params: RTCRtpEncodingParameters
|
|
426
479
|
): Promise<void>
|
|
@@ -430,7 +483,15 @@ export class Producer extends EnhancedEventEmitter
|
|
|
430
483
|
else if (typeof params !== 'object')
|
|
431
484
|
throw new TypeError('invalid params');
|
|
432
485
|
|
|
433
|
-
await
|
|
486
|
+
await new Promise<void>((resolve, reject) =>
|
|
487
|
+
{
|
|
488
|
+
this.safeEmit(
|
|
489
|
+
'@setrtpencodingparameters',
|
|
490
|
+
params,
|
|
491
|
+
resolve,
|
|
492
|
+
reject
|
|
493
|
+
);
|
|
494
|
+
});
|
|
434
495
|
}
|
|
435
496
|
|
|
436
497
|
private _onTrackEnded(): void
|