mediasoup-client 3.6.89 → 3.6.90

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.
Files changed (125) hide show
  1. package/lib/index.d.ts +1435 -14
  2. package/lib/index.js +11884 -43
  3. package/lib/index.js.map +1 -0
  4. package/lib/index.mjs +11860 -0
  5. package/lib/index.mjs.map +1 -0
  6. package/npm-scripts.mjs +17 -11
  7. package/package.json +12 -8
  8. package/lib/Consumer.d.ts +0 -115
  9. package/lib/Consumer.d.ts.map +0 -1
  10. package/lib/Consumer.js +0 -190
  11. package/lib/DataConsumer.d.ts +0 -93
  12. package/lib/DataConsumer.d.ts.map +0 -1
  13. package/lib/DataConsumer.js +0 -162
  14. package/lib/DataProducer.d.ts +0 -97
  15. package/lib/DataProducer.d.ts.map +0 -1
  16. package/lib/DataProducer.js +0 -180
  17. package/lib/Device.d.ts +0 -92
  18. package/lib/Device.d.ts.map +0 -1
  19. package/lib/Device.js +0 -464
  20. package/lib/EnhancedEventEmitter.d.ts +0 -24
  21. package/lib/EnhancedEventEmitter.d.ts.map +0 -1
  22. package/lib/EnhancedEventEmitter.js +0 -70
  23. package/lib/Logger.d.ts +0 -11
  24. package/lib/Logger.d.ts.map +0 -1
  25. package/lib/Logger.js +0 -37
  26. package/lib/Producer.d.ts +0 -169
  27. package/lib/Producer.d.ts.map +0 -1
  28. package/lib/Producer.js +0 -287
  29. package/lib/RtpParameters.d.ts +0 -306
  30. package/lib/RtpParameters.d.ts.map +0 -1
  31. package/lib/RtpParameters.js +0 -6
  32. package/lib/SctpParameters.d.ts +0 -68
  33. package/lib/SctpParameters.d.ts.map +0 -1
  34. package/lib/SctpParameters.js +0 -2
  35. package/lib/Transport.d.ts +0 -243
  36. package/lib/Transport.d.ts.map +0 -1
  37. package/lib/Transport.js +0 -824
  38. package/lib/errors.d.ts +0 -13
  39. package/lib/errors.d.ts.map +0 -1
  40. package/lib/errors.js +0 -39
  41. package/lib/handlers/Chrome111.d.ts +0 -49
  42. package/lib/handlers/Chrome111.d.ts.map +0 -1
  43. package/lib/handlers/Chrome111.js +0 -658
  44. package/lib/handlers/Chrome55.d.ts +0 -51
  45. package/lib/handlers/Chrome55.d.ts.map +0 -1
  46. package/lib/handlers/Chrome55.js +0 -542
  47. package/lib/handlers/Chrome67.d.ts +0 -51
  48. package/lib/handlers/Chrome67.d.ts.map +0 -1
  49. package/lib/handlers/Chrome67.js +0 -598
  50. package/lib/handlers/Chrome70.d.ts +0 -49
  51. package/lib/handlers/Chrome70.d.ts.map +0 -1
  52. package/lib/handlers/Chrome70.js +0 -627
  53. package/lib/handlers/Chrome74.d.ts +0 -49
  54. package/lib/handlers/Chrome74.d.ts.map +0 -1
  55. package/lib/handlers/Chrome74.js +0 -675
  56. package/lib/handlers/Edge11.d.ts +0 -55
  57. package/lib/handlers/Edge11.d.ts.map +0 -1
  58. package/lib/handlers/Edge11.js +0 -447
  59. package/lib/handlers/FakeHandler.d.ts +0 -49
  60. package/lib/handlers/FakeHandler.d.ts.map +0 -1
  61. package/lib/handlers/FakeHandler.js +0 -276
  62. package/lib/handlers/Firefox60.d.ts +0 -48
  63. package/lib/handlers/Firefox60.d.ts.map +0 -1
  64. package/lib/handlers/Firefox60.js +0 -681
  65. package/lib/handlers/HandlerInterface.d.ts +0 -97
  66. package/lib/handlers/HandlerInterface.d.ts.map +0 -1
  67. package/lib/handlers/HandlerInterface.js +0 -10
  68. package/lib/handlers/ReactNative.d.ts +0 -51
  69. package/lib/handlers/ReactNative.d.ts.map +0 -1
  70. package/lib/handlers/ReactNative.js +0 -558
  71. package/lib/handlers/ReactNativeUnifiedPlan.d.ts +0 -49
  72. package/lib/handlers/ReactNativeUnifiedPlan.d.ts.map +0 -1
  73. package/lib/handlers/ReactNativeUnifiedPlan.js +0 -694
  74. package/lib/handlers/Safari11.d.ts +0 -51
  75. package/lib/handlers/Safari11.d.ts.map +0 -1
  76. package/lib/handlers/Safari11.js +0 -592
  77. package/lib/handlers/Safari12.d.ts +0 -49
  78. package/lib/handlers/Safari12.d.ts.map +0 -1
  79. package/lib/handlers/Safari12.js +0 -648
  80. package/lib/handlers/ortc/edgeUtils.d.ts +0 -11
  81. package/lib/handlers/ortc/edgeUtils.d.ts.map +0 -1
  82. package/lib/handlers/ortc/edgeUtils.js +0 -86
  83. package/lib/handlers/ortc/utils.d.ts +0 -6
  84. package/lib/handlers/ortc/utils.d.ts.map +0 -1
  85. package/lib/handlers/ortc/utils.js +0 -20
  86. package/lib/handlers/sdp/MediaSection.d.ts +0 -68
  87. package/lib/handlers/sdp/MediaSection.d.ts.map +0 -1
  88. package/lib/handlers/sdp/MediaSection.js +0 -589
  89. package/lib/handlers/sdp/RemoteSdp.d.ts +0 -75
  90. package/lib/handlers/sdp/RemoteSdp.d.ts.map +0 -1
  91. package/lib/handlers/sdp/RemoteSdp.js +0 -303
  92. package/lib/handlers/sdp/commonUtils.d.ts +0 -24
  93. package/lib/handlers/sdp/commonUtils.d.ts.map +0 -1
  94. package/lib/handlers/sdp/commonUtils.js +0 -224
  95. package/lib/handlers/sdp/plainRtpUtils.d.ts +0 -14
  96. package/lib/handlers/sdp/plainRtpUtils.d.ts.map +0 -1
  97. package/lib/handlers/sdp/plainRtpUtils.js +0 -33
  98. package/lib/handlers/sdp/planBUtils.d.ts +0 -14
  99. package/lib/handlers/sdp/planBUtils.d.ts.map +0 -1
  100. package/lib/handlers/sdp/planBUtils.js +0 -155
  101. package/lib/handlers/sdp/unifiedPlanUtils.d.ts +0 -12
  102. package/lib/handlers/sdp/unifiedPlanUtils.d.ts.map +0 -1
  103. package/lib/handlers/sdp/unifiedPlanUtils.js +0 -131
  104. package/lib/index.d.ts.map +0 -1
  105. package/lib/ortc.d.ts +0 -123
  106. package/lib/ortc.d.ts.map +0 -1
  107. package/lib/ortc.js +0 -943
  108. package/lib/scalabilityModes.d.ts +0 -6
  109. package/lib/scalabilityModes.d.ts.map +0 -1
  110. package/lib/scalabilityModes.js +0 -20
  111. package/lib/tests/fakeParameters.d.ts +0 -20
  112. package/lib/tests/fakeParameters.d.ts.map +0 -1
  113. package/lib/tests/fakeParameters.js +0 -659
  114. package/lib/tests/test.d.ts +0 -6
  115. package/lib/tests/test.d.ts.map +0 -1
  116. package/lib/tests/test.js +0 -1297
  117. package/lib/tests/uaTestCases.d.ts +0 -9
  118. package/lib/tests/uaTestCases.d.ts.map +0 -1
  119. package/lib/tests/uaTestCases.js +0 -85
  120. package/lib/types.d.ts +0 -15
  121. package/lib/types.d.ts.map +0 -1
  122. package/lib/types.js +0 -26
  123. package/lib/utils.d.ts +0 -9
  124. package/lib/utils.d.ts.map +0 -1
  125. package/lib/utils.js +0 -20
package/lib/Producer.d.ts DELETED
@@ -1,169 +0,0 @@
1
- import { EnhancedEventEmitter } from './EnhancedEventEmitter';
2
- import { MediaKind, RtpCodecCapability, RtpParameters, RtpEncodingParameters } from './RtpParameters';
3
- import { AppData } from './types';
4
- export type ProducerOptions<ProducerAppData extends AppData = AppData> = {
5
- track?: MediaStreamTrack;
6
- encodings?: RtpEncodingParameters[];
7
- codecOptions?: ProducerCodecOptions;
8
- codec?: RtpCodecCapability;
9
- stopTracks?: boolean;
10
- disableTrackOnPause?: boolean;
11
- zeroRtpOnPause?: boolean;
12
- appData?: ProducerAppData;
13
- };
14
- export type ProducerCodecOptions = {
15
- opusStereo?: boolean;
16
- opusFec?: boolean;
17
- opusDtx?: boolean;
18
- opusMaxPlaybackRate?: number;
19
- opusMaxAverageBitrate?: number;
20
- opusPtime?: number;
21
- opusNack?: boolean;
22
- videoGoogleStartBitrate?: number;
23
- videoGoogleMaxBitrate?: number;
24
- videoGoogleMinBitrate?: number;
25
- };
26
- export type ProducerEvents = {
27
- transportclose: [];
28
- trackended: [];
29
- '@pause': [
30
- () => void,
31
- (error: Error) => void
32
- ];
33
- '@resume': [
34
- () => void,
35
- (error: Error) => void
36
- ];
37
- '@replacetrack': [
38
- MediaStreamTrack | null,
39
- () => void,
40
- (error: Error) => void
41
- ];
42
- '@setmaxspatiallayer': [
43
- number,
44
- () => void,
45
- (error: Error) => void
46
- ];
47
- '@setrtpencodingparameters': [
48
- RTCRtpEncodingParameters,
49
- () => void,
50
- (error: Error) => void
51
- ];
52
- '@getstats': [(stats: RTCStatsReport) => void, (error: Error) => void];
53
- '@close': [];
54
- };
55
- export type ProducerObserverEvents = {
56
- close: [];
57
- pause: [];
58
- resume: [];
59
- trackended: [];
60
- };
61
- export declare class Producer<ProducerAppData extends AppData = AppData> extends EnhancedEventEmitter<ProducerEvents> {
62
- private readonly _id;
63
- private readonly _localId;
64
- private _closed;
65
- private readonly _rtpSender?;
66
- private _track;
67
- private readonly _kind;
68
- private readonly _rtpParameters;
69
- private _paused;
70
- private _maxSpatialLayer;
71
- private _stopTracks;
72
- private _disableTrackOnPause;
73
- private _zeroRtpOnPause;
74
- private _appData;
75
- protected readonly _observer: EnhancedEventEmitter<ProducerObserverEvents>;
76
- constructor({ id, localId, rtpSender, track, rtpParameters, stopTracks, disableTrackOnPause, zeroRtpOnPause, appData }: {
77
- id: string;
78
- localId: string;
79
- rtpSender?: RTCRtpSender;
80
- track: MediaStreamTrack;
81
- rtpParameters: RtpParameters;
82
- stopTracks: boolean;
83
- disableTrackOnPause: boolean;
84
- zeroRtpOnPause: boolean;
85
- appData?: ProducerAppData;
86
- });
87
- /**
88
- * Producer id.
89
- */
90
- get id(): string;
91
- /**
92
- * Local id.
93
- */
94
- get localId(): string;
95
- /**
96
- * Whether the Producer is closed.
97
- */
98
- get closed(): boolean;
99
- /**
100
- * Media kind.
101
- */
102
- get kind(): MediaKind;
103
- /**
104
- * Associated RTCRtpSender.
105
- */
106
- get rtpSender(): RTCRtpSender | undefined;
107
- /**
108
- * The associated track.
109
- */
110
- get track(): MediaStreamTrack | null;
111
- /**
112
- * RTP parameters.
113
- */
114
- get rtpParameters(): RtpParameters;
115
- /**
116
- * Whether the Producer is paused.
117
- */
118
- get paused(): boolean;
119
- /**
120
- * Max spatial layer.
121
- *
122
- * @type {Number | undefined}
123
- */
124
- get maxSpatialLayer(): number | undefined;
125
- /**
126
- * App custom data.
127
- */
128
- get appData(): ProducerAppData;
129
- /**
130
- * App custom data setter.
131
- */
132
- set appData(appData: ProducerAppData);
133
- get observer(): EnhancedEventEmitter;
134
- /**
135
- * Closes the Producer.
136
- */
137
- close(): void;
138
- /**
139
- * Transport was closed.
140
- */
141
- transportClosed(): void;
142
- /**
143
- * Get associated RTCRtpSender stats.
144
- */
145
- getStats(): Promise<RTCStatsReport>;
146
- /**
147
- * Pauses sending media.
148
- */
149
- pause(): void;
150
- /**
151
- * Resumes sending media.
152
- */
153
- resume(): void;
154
- /**
155
- * Replaces the current track with a new one or null.
156
- */
157
- replaceTrack({ track }: {
158
- track: MediaStreamTrack | null;
159
- }): Promise<void>;
160
- /**
161
- * Sets the video max spatial layer to be sent.
162
- */
163
- setMaxSpatialLayer(spatialLayer: number): Promise<void>;
164
- setRtpEncodingParameters(params: RTCRtpEncodingParameters): Promise<void>;
165
- private onTrackEnded;
166
- private handleTrack;
167
- private destroyTrack;
168
- }
169
- //# sourceMappingURL=Producer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Producer.d.ts","sourceRoot":"","sources":["../src/Producer.ts"],"names":[],"mappings":"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"}
package/lib/Producer.js DELETED
@@ -1,287 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Producer = void 0;
4
- const Logger_1 = require("./Logger");
5
- const EnhancedEventEmitter_1 = require("./EnhancedEventEmitter");
6
- const errors_1 = require("./errors");
7
- const logger = new Logger_1.Logger('Producer');
8
- class Producer extends EnhancedEventEmitter_1.EnhancedEventEmitter {
9
- constructor({ id, localId, rtpSender, track, rtpParameters, stopTracks, disableTrackOnPause, zeroRtpOnPause, appData }) {
10
- super();
11
- // Closed flag.
12
- this._closed = false;
13
- // Observer instance.
14
- this._observer = new EnhancedEventEmitter_1.EnhancedEventEmitter();
15
- logger.debug('constructor()');
16
- this._id = id;
17
- this._localId = localId;
18
- this._rtpSender = rtpSender;
19
- this._track = track;
20
- this._kind = track.kind;
21
- this._rtpParameters = rtpParameters;
22
- this._paused = disableTrackOnPause ? !track.enabled : false;
23
- this._maxSpatialLayer = undefined;
24
- this._stopTracks = stopTracks;
25
- this._disableTrackOnPause = disableTrackOnPause;
26
- this._zeroRtpOnPause = zeroRtpOnPause;
27
- this._appData = appData || {};
28
- this.onTrackEnded = this.onTrackEnded.bind(this);
29
- // NOTE: Minor issue. If zeroRtpOnPause is true, we cannot emit the
30
- // '@replacetrack' event here, so RTCRtpSender.track won't be null.
31
- this.handleTrack();
32
- }
33
- /**
34
- * Producer id.
35
- */
36
- get id() {
37
- return this._id;
38
- }
39
- /**
40
- * Local id.
41
- */
42
- get localId() {
43
- return this._localId;
44
- }
45
- /**
46
- * Whether the Producer is closed.
47
- */
48
- get closed() {
49
- return this._closed;
50
- }
51
- /**
52
- * Media kind.
53
- */
54
- get kind() {
55
- return this._kind;
56
- }
57
- /**
58
- * Associated RTCRtpSender.
59
- */
60
- get rtpSender() {
61
- return this._rtpSender;
62
- }
63
- /**
64
- * The associated track.
65
- */
66
- get track() {
67
- return this._track;
68
- }
69
- /**
70
- * RTP parameters.
71
- */
72
- get rtpParameters() {
73
- return this._rtpParameters;
74
- }
75
- /**
76
- * Whether the Producer is paused.
77
- */
78
- get paused() {
79
- return this._paused;
80
- }
81
- /**
82
- * Max spatial layer.
83
- *
84
- * @type {Number | undefined}
85
- */
86
- get maxSpatialLayer() {
87
- return this._maxSpatialLayer;
88
- }
89
- /**
90
- * App custom data.
91
- */
92
- get appData() {
93
- return this._appData;
94
- }
95
- /**
96
- * App custom data setter.
97
- */
98
- set appData(appData) {
99
- this._appData = appData;
100
- }
101
- get observer() {
102
- return this._observer;
103
- }
104
- /**
105
- * Closes the Producer.
106
- */
107
- close() {
108
- if (this._closed) {
109
- return;
110
- }
111
- logger.debug('close()');
112
- this._closed = true;
113
- this.destroyTrack();
114
- this.emit('@close');
115
- // Emit observer event.
116
- this._observer.safeEmit('close');
117
- }
118
- /**
119
- * Transport was closed.
120
- */
121
- transportClosed() {
122
- if (this._closed) {
123
- return;
124
- }
125
- logger.debug('transportClosed()');
126
- this._closed = true;
127
- this.destroyTrack();
128
- this.safeEmit('transportclose');
129
- // Emit observer event.
130
- this._observer.safeEmit('close');
131
- }
132
- /**
133
- * Get associated RTCRtpSender stats.
134
- */
135
- async getStats() {
136
- if (this._closed) {
137
- throw new errors_1.InvalidStateError('closed');
138
- }
139
- return new Promise((resolve, reject) => {
140
- this.safeEmit('@getstats', resolve, reject);
141
- });
142
- }
143
- /**
144
- * Pauses sending media.
145
- */
146
- pause() {
147
- logger.debug('pause()');
148
- if (this._closed) {
149
- logger.error('pause() | Producer closed');
150
- return;
151
- }
152
- this._paused = true;
153
- if (this._track && this._disableTrackOnPause) {
154
- this._track.enabled = false;
155
- }
156
- if (this._zeroRtpOnPause) {
157
- new Promise((resolve, reject) => {
158
- this.safeEmit('@pause', resolve, reject);
159
- }).catch(() => { });
160
- }
161
- // Emit observer event.
162
- this._observer.safeEmit('pause');
163
- }
164
- /**
165
- * Resumes sending media.
166
- */
167
- resume() {
168
- logger.debug('resume()');
169
- if (this._closed) {
170
- logger.error('resume() | Producer closed');
171
- return;
172
- }
173
- this._paused = false;
174
- if (this._track && this._disableTrackOnPause) {
175
- this._track.enabled = true;
176
- }
177
- if (this._zeroRtpOnPause) {
178
- new Promise((resolve, reject) => {
179
- this.safeEmit('@resume', resolve, reject);
180
- }).catch(() => { });
181
- }
182
- // Emit observer event.
183
- this._observer.safeEmit('resume');
184
- }
185
- /**
186
- * Replaces the current track with a new one or null.
187
- */
188
- async replaceTrack({ track }) {
189
- logger.debug('replaceTrack() [track:%o]', track);
190
- if (this._closed) {
191
- // This must be done here. Otherwise there is no chance to stop the given
192
- // track.
193
- if (track && this._stopTracks) {
194
- try {
195
- track.stop();
196
- }
197
- catch (error) { }
198
- }
199
- throw new errors_1.InvalidStateError('closed');
200
- }
201
- else if (track && track.readyState === 'ended') {
202
- throw new errors_1.InvalidStateError('track ended');
203
- }
204
- // Do nothing if this is the same track as the current handled one.
205
- if (track === this._track) {
206
- logger.debug('replaceTrack() | same track, ignored');
207
- return;
208
- }
209
- await new Promise((resolve, reject) => {
210
- this.safeEmit('@replacetrack', track, resolve, reject);
211
- });
212
- // Destroy the previous track.
213
- this.destroyTrack();
214
- // Set the new track.
215
- this._track = track;
216
- // If this Producer was paused/resumed and the state of the new
217
- // track does not match, fix it.
218
- if (this._track && this._disableTrackOnPause) {
219
- if (!this._paused) {
220
- this._track.enabled = true;
221
- }
222
- else if (this._paused) {
223
- this._track.enabled = false;
224
- }
225
- }
226
- // Handle the effective track.
227
- this.handleTrack();
228
- }
229
- /**
230
- * Sets the video max spatial layer to be sent.
231
- */
232
- async setMaxSpatialLayer(spatialLayer) {
233
- if (this._closed) {
234
- throw new errors_1.InvalidStateError('closed');
235
- }
236
- else if (this._kind !== 'video') {
237
- throw new errors_1.UnsupportedError('not a video Producer');
238
- }
239
- else if (typeof spatialLayer !== 'number') {
240
- throw new TypeError('invalid spatialLayer');
241
- }
242
- if (spatialLayer === this._maxSpatialLayer) {
243
- return;
244
- }
245
- await new Promise((resolve, reject) => {
246
- this.safeEmit('@setmaxspatiallayer', spatialLayer, resolve, reject);
247
- }).catch(() => { });
248
- this._maxSpatialLayer = spatialLayer;
249
- }
250
- async setRtpEncodingParameters(params) {
251
- if (this._closed) {
252
- throw new errors_1.InvalidStateError('closed');
253
- }
254
- else if (typeof params !== 'object') {
255
- throw new TypeError('invalid params');
256
- }
257
- await new Promise((resolve, reject) => {
258
- this.safeEmit('@setrtpencodingparameters', params, resolve, reject);
259
- });
260
- }
261
- onTrackEnded() {
262
- logger.debug('track "ended" event');
263
- this.safeEmit('trackended');
264
- // Emit observer event.
265
- this._observer.safeEmit('trackended');
266
- }
267
- handleTrack() {
268
- if (!this._track) {
269
- return;
270
- }
271
- this._track.addEventListener('ended', this.onTrackEnded);
272
- }
273
- destroyTrack() {
274
- if (!this._track) {
275
- return;
276
- }
277
- try {
278
- this._track.removeEventListener('ended', this.onTrackEnded);
279
- // Just stop the track unless the app set stopTracks: false.
280
- if (this._stopTracks) {
281
- this._track.stop();
282
- }
283
- }
284
- catch (error) { }
285
- }
286
- }
287
- exports.Producer = Producer;