mediasoup-client 3.14.1 → 3.15.0
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/Device.d.ts +1 -1
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +22 -25
- package/lib/Transport.d.ts +6 -4
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +10 -6
- package/lib/enhancedEvents.d.ts.map +1 -1
- package/lib/handlers/Chrome111.d.ts +2 -2
- package/lib/handlers/Chrome111.d.ts.map +1 -1
- package/lib/handlers/Chrome111.js +23 -26
- package/lib/handlers/Chrome74.d.ts +2 -2
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +24 -27
- package/lib/handlers/FakeHandler.d.ts +2 -1
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +20 -16
- package/lib/handlers/Firefox120.d.ts +2 -2
- package/lib/handlers/Firefox120.d.ts.map +1 -1
- package/lib/handlers/Firefox120.js +21 -24
- package/lib/handlers/HandlerInterface.d.ts +1 -1
- package/lib/handlers/HandlerInterface.d.ts.map +1 -1
- package/lib/handlers/ReactNative106.d.ts +2 -2
- package/lib/handlers/ReactNative106.d.ts.map +1 -1
- package/lib/handlers/ReactNative106.js +24 -27
- package/lib/handlers/Safari12.d.ts +3 -3
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +23 -26
- package/lib/handlers/sdp/commonUtils.d.ts +4 -2
- package/lib/handlers/sdp/commonUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/commonUtils.js +13 -21
- package/lib/index.d.ts +5 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -2
- package/lib/ortc.d.ts +4 -5
- package/lib/ortc.d.ts.map +1 -1
- package/lib/ortc.js +11 -13
- package/lib/privateTypes.d.ts +10 -1
- package/lib/privateTypes.d.ts.map +1 -1
- package/lib/test/fakeParameters.d.ts.map +1 -1
- package/lib/test/fakeParameters.js +37 -0
- package/lib/test/test.js +3 -26
- package/lib/types.d.ts +11 -10
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +0 -24
- package/package.json +5 -1
package/lib/Device.d.ts
CHANGED
|
@@ -35,7 +35,7 @@ export declare class Device {
|
|
|
35
35
|
private readonly _handlerFactory;
|
|
36
36
|
private readonly _handlerName;
|
|
37
37
|
private _loaded;
|
|
38
|
-
private
|
|
38
|
+
private _getSendExtendedRtpCapabilities?;
|
|
39
39
|
private _recvRtpCapabilities?;
|
|
40
40
|
private readonly _canProduceByKind;
|
|
41
41
|
private _sctpCapabilities?;
|
package/lib/Device.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../src/Device.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAIxD,OAAO,EACN,SAAS,EACT,KAAK,gBAAgB,EAErB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAMlE,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKvC,MAAM,MAAM,kBAAkB,GAC3B,WAAW,GACX,UAAU,GACV,YAAY,GACZ,UAAU,GACV,gBAAgB,CAAC;AAEpB,MAAM,MAAM,aAAa,GAAG;IAC3B;;OAEG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,wBAAsB,iBAAiB,CACtC,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAUzC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC3B,SAAS,CAAC,EAAE,MAAM,GAChB,kBAAkB,GAAG,SAAS,CAUhC;AAED,MAAM,MAAM,cAAc,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;AAExE,MAAM,MAAM,oBAAoB,GAAG;IAClC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC;CAC1B,CAAC;AAEF,qBAAa,MAAM;IAElB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IAEjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,OAAO,CAAC,OAAO,CAAS;
|
|
1
|
+
{"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../src/Device.ts"],"names":[],"mappings":"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"}
|
package/lib/Device.js
CHANGED
|
@@ -49,13 +49,16 @@ class Device {
|
|
|
49
49
|
_handlerName;
|
|
50
50
|
// Loaded flag.
|
|
51
51
|
_loaded = false;
|
|
52
|
-
//
|
|
53
|
-
|
|
52
|
+
// Callback for sending Transports to request sending extended RTP capabilities
|
|
53
|
+
// on demand.
|
|
54
|
+
_getSendExtendedRtpCapabilities;
|
|
54
55
|
// Local RTP capabilities for receiving media.
|
|
55
56
|
_recvRtpCapabilities;
|
|
56
|
-
// Whether we can produce audio/video based on
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
// Whether we can produce audio/video based on remote RTP capabilities.
|
|
58
|
+
_canProduceByKind = {
|
|
59
|
+
audio: false,
|
|
60
|
+
video: false,
|
|
61
|
+
};
|
|
59
62
|
// Local SCTP capabilities.
|
|
60
63
|
_sctpCapabilities;
|
|
61
64
|
// Observer instance.
|
|
@@ -132,13 +135,6 @@ class Device {
|
|
|
132
135
|
}
|
|
133
136
|
}
|
|
134
137
|
this._handlerName = this._handlerFactory.name;
|
|
135
|
-
this._extendedRtpCapabilities = undefined;
|
|
136
|
-
this._recvRtpCapabilities = undefined;
|
|
137
|
-
this._canProduceByKind = {
|
|
138
|
-
audio: false,
|
|
139
|
-
video: false,
|
|
140
|
-
};
|
|
141
|
-
this._sctpCapabilities = undefined;
|
|
142
138
|
}
|
|
143
139
|
/**
|
|
144
140
|
* The RTC handler name.
|
|
@@ -190,28 +186,28 @@ class Device {
|
|
|
190
186
|
// This may throw.
|
|
191
187
|
ortc.validateRtpCapabilities(clonedRouterRtpCapabilities);
|
|
192
188
|
const { getNativeRtpCapabilities, getNativeSctpCapabilities } = this._handlerFactory;
|
|
193
|
-
const
|
|
194
|
-
logger.debug('load() | got native RTP capabilities:%o', nativeRtpCapabilities);
|
|
195
|
-
// Clone obtained native RTP capabilities to not modify input data.
|
|
196
|
-
const clonedNativeRtpCapabilities = utils.clone(nativeRtpCapabilities);
|
|
189
|
+
const clonedNativeRtpCapabilities = utils.clone(await getNativeRtpCapabilities());
|
|
197
190
|
// This may throw.
|
|
198
191
|
ortc.validateRtpCapabilities(clonedNativeRtpCapabilities);
|
|
199
|
-
|
|
200
|
-
this.
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
192
|
+
logger.debug('load() | got native RTP capabilities:%o', clonedNativeRtpCapabilities);
|
|
193
|
+
this._getSendExtendedRtpCapabilities = (nativeRtpCapabilities) => {
|
|
194
|
+
return utils.clone(ortc.getExtendedRtpCapabilities(nativeRtpCapabilities, clonedRouterRtpCapabilities, preferLocalCodecsOrder));
|
|
195
|
+
};
|
|
196
|
+
const recvExtendedRtpCapabilities = ortc.getExtendedRtpCapabilities(clonedNativeRtpCapabilities, clonedRouterRtpCapabilities,
|
|
197
|
+
/* preferLocalCodecsOrder */ false);
|
|
205
198
|
// Generate our receiving RTP capabilities for receiving media.
|
|
206
|
-
this._recvRtpCapabilities = ortc.getRecvRtpCapabilities(
|
|
199
|
+
this._recvRtpCapabilities = ortc.getRecvRtpCapabilities(recvExtendedRtpCapabilities);
|
|
207
200
|
// This may throw.
|
|
208
201
|
ortc.validateRtpCapabilities(this._recvRtpCapabilities);
|
|
209
202
|
logger.debug('load() | got receiving RTP capabilities:%o', this._recvRtpCapabilities);
|
|
203
|
+
// Check whether we can produce audio/video.
|
|
204
|
+
this._canProduceByKind.audio = ortc.canSend('audio', this._recvRtpCapabilities);
|
|
205
|
+
this._canProduceByKind.video = ortc.canSend('video', this._recvRtpCapabilities);
|
|
210
206
|
// Generate our SCTP capabilities.
|
|
211
207
|
this._sctpCapabilities = await getNativeSctpCapabilities();
|
|
212
|
-
logger.debug('load() | got native SCTP capabilities:%o', this._sctpCapabilities);
|
|
213
208
|
// This may throw.
|
|
214
209
|
ortc.validateSctpCapabilities(this._sctpCapabilities);
|
|
210
|
+
logger.debug('load() | got native SCTP capabilities:%o', this._sctpCapabilities);
|
|
215
211
|
logger.debug('load() succeeded');
|
|
216
212
|
this._loaded = true;
|
|
217
213
|
}
|
|
@@ -307,7 +303,8 @@ class Device {
|
|
|
307
303
|
additionalSettings,
|
|
308
304
|
appData,
|
|
309
305
|
handlerFactory: this._handlerFactory,
|
|
310
|
-
|
|
306
|
+
getSendExtendedRtpCapabilities: this._getSendExtendedRtpCapabilities,
|
|
307
|
+
recvRtpCapabilities: this._recvRtpCapabilities,
|
|
311
308
|
canProduceByKind: this._canProduceByKind,
|
|
312
309
|
});
|
|
313
310
|
// Emit observer event.
|
package/lib/Transport.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { Producer, type ProducerOptions } from './Producer';
|
|
|
4
4
|
import { Consumer, type ConsumerOptions } from './Consumer';
|
|
5
5
|
import { DataProducer, type DataProducerOptions } from './DataProducer';
|
|
6
6
|
import { DataConsumer, type DataConsumerOptions } from './DataConsumer';
|
|
7
|
-
import type { RtpParameters, MediaKind } from './RtpParameters';
|
|
7
|
+
import type { RtpCapabilities, RtpParameters, MediaKind } from './RtpParameters';
|
|
8
8
|
import type { SctpParameters, SctpStreamParameters } from './SctpParameters';
|
|
9
9
|
import type { AppData } from './types';
|
|
10
10
|
import type { ExtendedRtpCapabilities } from './privateTypes';
|
|
@@ -154,7 +154,8 @@ export declare class Transport<TransportAppData extends AppData = AppData> exten
|
|
|
154
154
|
private readonly _id;
|
|
155
155
|
private _closed;
|
|
156
156
|
private readonly _direction;
|
|
157
|
-
private
|
|
157
|
+
private _getSendExtendedRtpCapabilities;
|
|
158
|
+
private readonly _recvRtpCapabilities;
|
|
158
159
|
private readonly _canProduceByKind;
|
|
159
160
|
private readonly _maxSctpMessageSize?;
|
|
160
161
|
private readonly _handler;
|
|
@@ -176,10 +177,11 @@ export declare class Transport<TransportAppData extends AppData = AppData> exten
|
|
|
176
177
|
private _pendingCloseConsumers;
|
|
177
178
|
private _consumerCloseInProgress;
|
|
178
179
|
protected readonly _observer: TransportObserver;
|
|
179
|
-
constructor({ direction, id, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, appData, handlerFactory,
|
|
180
|
+
constructor({ direction, id, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, appData, handlerFactory, getSendExtendedRtpCapabilities, recvRtpCapabilities, canProduceByKind, }: {
|
|
180
181
|
direction: 'send' | 'recv';
|
|
181
182
|
handlerFactory: HandlerFactory;
|
|
182
|
-
|
|
183
|
+
getSendExtendedRtpCapabilities: (nativeRtpCapabilities: RtpCapabilities) => ExtendedRtpCapabilities;
|
|
184
|
+
recvRtpCapabilities: RtpCapabilities;
|
|
183
185
|
canProduceByKind: CanProduceByKind;
|
|
184
186
|
} & TransportOptions<TransportAppData>);
|
|
185
187
|
/**
|
package/lib/Transport.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../src/Transport.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../src/Transport.ts"],"names":[],"mappings":"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"}
|
package/lib/Transport.js
CHANGED
|
@@ -32,8 +32,11 @@ class Transport extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
32
32
|
_closed = false;
|
|
33
33
|
// Direction.
|
|
34
34
|
_direction;
|
|
35
|
-
//
|
|
36
|
-
|
|
35
|
+
// Callback for sending Transports to request sending extended RTP capabilities
|
|
36
|
+
// on demand.
|
|
37
|
+
_getSendExtendedRtpCapabilities;
|
|
38
|
+
// Recv RTP capabilities.
|
|
39
|
+
_recvRtpCapabilities;
|
|
37
40
|
// Whether we can produce audio/video based on computed extended RTP
|
|
38
41
|
// capabilities.
|
|
39
42
|
_canProduceByKind;
|
|
@@ -77,12 +80,13 @@ class Transport extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
77
80
|
_consumerCloseInProgress = false;
|
|
78
81
|
// Observer instance.
|
|
79
82
|
_observer = new enhancedEvents_1.EnhancedEventEmitter();
|
|
80
|
-
constructor({ direction, id, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, appData, handlerFactory,
|
|
83
|
+
constructor({ direction, id, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, appData, handlerFactory, getSendExtendedRtpCapabilities, recvRtpCapabilities, canProduceByKind, }) {
|
|
81
84
|
super();
|
|
82
85
|
logger.debug('constructor() [id:%s, direction:%s]', id, direction);
|
|
83
86
|
this._id = id;
|
|
84
87
|
this._direction = direction;
|
|
85
|
-
this.
|
|
88
|
+
this._getSendExtendedRtpCapabilities = getSendExtendedRtpCapabilities;
|
|
89
|
+
this._recvRtpCapabilities = recvRtpCapabilities;
|
|
86
90
|
this._canProduceByKind = canProduceByKind;
|
|
87
91
|
this._maxSctpMessageSize = sctpParameters
|
|
88
92
|
? sctpParameters.maxMessageSize
|
|
@@ -102,7 +106,7 @@ class Transport extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
102
106
|
iceServers,
|
|
103
107
|
iceTransportPolicy,
|
|
104
108
|
additionalSettings: clonedAdditionalSettings,
|
|
105
|
-
|
|
109
|
+
getSendExtendedRtpCapabilities: this._getSendExtendedRtpCapabilities,
|
|
106
110
|
});
|
|
107
111
|
this._appData = appData ?? {};
|
|
108
112
|
this.handleHandler();
|
|
@@ -396,7 +400,7 @@ class Transport extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
396
400
|
// Clone given RTP parameters to not modify input data.
|
|
397
401
|
const clonedRtpParameters = utils.clone(rtpParameters);
|
|
398
402
|
// Ensure the device can consume it.
|
|
399
|
-
const canConsume = ortc.canReceive(clonedRtpParameters, this.
|
|
403
|
+
const canConsume = ortc.canReceive(clonedRtpParameters, this._recvRtpCapabilities);
|
|
400
404
|
if (!canConsume) {
|
|
401
405
|
throw new errors_1.UnsupportedError('cannot consume this Producer');
|
|
402
406
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enhancedEvents.d.ts","sourceRoot":"","sources":["../src/enhancedEvents.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAK3D,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAEpC,qBAAa,oBAAoB,CAChC,CAAC,SAAS,MAAM,GAAG,MAAM,CACxB,SAAQ,YAAY;;
|
|
1
|
+
{"version":3,"file":"enhancedEvents.d.ts","sourceRoot":"","sources":["../src/enhancedEvents.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAK3D,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAEpC,qBAAa,oBAAoB,CAChC,CAAC,SAAS,MAAM,GAAG,MAAM,CACxB,SAAQ,YAAY;;IAOrB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIJ,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EACvC,SAAS,EAAE,CAAC,EACZ,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GACX,OAAO;IAIV;;OAEG;IACH,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;IAoBjE,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EACrC,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAC/B,IAAI;IAME,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EACtC,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAC/B,IAAI;IAME,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAC9C,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAC/B,IAAI;IAME,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAClD,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAC/B,IAAI;IAME,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EACvC,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAC/B,IAAI;IAME,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EACtD,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAC/B,IAAI;IAME,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EACjD,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAC/B,IAAI;IAME,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI;IAMnE,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM;IAI/D,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,QAAQ,EAAE;IAI/D,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,QAAQ,EAAE;CAG3E"}
|
|
@@ -5,8 +5,7 @@ export declare class Chrome111 extends EnhancedEventEmitter<HandlerEvents> imple
|
|
|
5
5
|
private _closed;
|
|
6
6
|
private _direction;
|
|
7
7
|
private _remoteSdp;
|
|
8
|
-
private
|
|
9
|
-
private _sendingRemoteRtpParametersByKind;
|
|
8
|
+
private _getSendExtendedRtpCapabilities;
|
|
10
9
|
private _forcedLocalDtlsRole?;
|
|
11
10
|
private _pc;
|
|
12
11
|
private readonly _mapMidTransceiver;
|
|
@@ -18,6 +17,7 @@ export declare class Chrome111 extends EnhancedEventEmitter<HandlerEvents> imple
|
|
|
18
17
|
* Creates a factory function.
|
|
19
18
|
*/
|
|
20
19
|
static createFactory(): HandlerFactory;
|
|
20
|
+
private static getLocalRtpCapabilities;
|
|
21
21
|
private constructor();
|
|
22
22
|
get name(): string;
|
|
23
23
|
close(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome111.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome111.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Chrome111.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome111.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,6 @@ exports.Chrome111 = void 0;
|
|
|
4
4
|
const sdpTransform = require("sdp-transform");
|
|
5
5
|
const enhancedEvents_1 = require("../enhancedEvents");
|
|
6
6
|
const Logger_1 = require("../Logger");
|
|
7
|
-
const utils = require("../utils");
|
|
8
7
|
const ortc = require("../ortc");
|
|
9
8
|
const errors_1 = require("../errors");
|
|
10
9
|
const scalabilityModes_1 = require("../scalabilityModes");
|
|
@@ -22,11 +21,8 @@ class Chrome111 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
22
21
|
_direction;
|
|
23
22
|
// Remote SDP handler.
|
|
24
23
|
_remoteSdp;
|
|
25
|
-
//
|
|
26
|
-
|
|
27
|
-
// Generic sending RTP parameters for audio and video suitable for the SDP
|
|
28
|
-
// remote answer.
|
|
29
|
-
_sendingRemoteRtpParametersByKind;
|
|
24
|
+
// Callback to request sending extended RTP capabilities on demand.
|
|
25
|
+
_getSendExtendedRtpCapabilities;
|
|
30
26
|
// Initial server side DTLS role. If not 'auto', it will force the opposite
|
|
31
27
|
// value in client side.
|
|
32
28
|
_forcedLocalDtlsRole;
|
|
@@ -71,11 +67,7 @@ class Chrome111 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
71
67
|
catch (error) { }
|
|
72
68
|
pc = undefined;
|
|
73
69
|
const sdpObject = sdpTransform.parse(offer.sdp);
|
|
74
|
-
const nativeRtpCapabilities =
|
|
75
|
-
sdpObject,
|
|
76
|
-
});
|
|
77
|
-
// libwebrtc supports NACK for OPUS but doesn't announce it.
|
|
78
|
-
ortcUtils.addNackSupportForOpus(nativeRtpCapabilities);
|
|
70
|
+
const nativeRtpCapabilities = Chrome111.getLocalRtpCapabilities(sdpObject);
|
|
79
71
|
return nativeRtpCapabilities;
|
|
80
72
|
}
|
|
81
73
|
catch (error) {
|
|
@@ -95,7 +87,15 @@ class Chrome111 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
95
87
|
},
|
|
96
88
|
};
|
|
97
89
|
}
|
|
98
|
-
|
|
90
|
+
static getLocalRtpCapabilities(localSdpObject) {
|
|
91
|
+
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
92
|
+
sdpObject: localSdpObject,
|
|
93
|
+
});
|
|
94
|
+
// libwebrtc supports NACK for OPUS but doesn't announce it.
|
|
95
|
+
ortcUtils.addNackSupportForOpus(nativeRtpCapabilities);
|
|
96
|
+
return nativeRtpCapabilities;
|
|
97
|
+
}
|
|
98
|
+
constructor({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, getSendExtendedRtpCapabilities, }) {
|
|
99
99
|
super();
|
|
100
100
|
logger.debug('constructor()');
|
|
101
101
|
this._direction = direction;
|
|
@@ -105,14 +105,7 @@ class Chrome111 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
105
105
|
dtlsParameters,
|
|
106
106
|
sctpParameters,
|
|
107
107
|
});
|
|
108
|
-
this.
|
|
109
|
-
audio: ortc.getSendingRtpParameters('audio', extendedRtpCapabilities),
|
|
110
|
-
video: ortc.getSendingRtpParameters('video', extendedRtpCapabilities),
|
|
111
|
-
};
|
|
112
|
-
this._sendingRemoteRtpParametersByKind = {
|
|
113
|
-
audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
|
|
114
|
-
video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities),
|
|
115
|
-
};
|
|
108
|
+
this._getSendExtendedRtpCapabilities = getSendExtendedRtpCapabilities;
|
|
116
109
|
if (dtlsParameters.role && dtlsParameters.role !== 'auto') {
|
|
117
110
|
this._forcedLocalDtlsRole =
|
|
118
111
|
dtlsParameters.role === 'server' ? 'client' : 'server';
|
|
@@ -222,12 +215,6 @@ class Chrome111 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
222
215
|
encoding.scalabilityMode = `L1T${maxTemporalLayers}`;
|
|
223
216
|
});
|
|
224
217
|
}
|
|
225
|
-
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
226
|
-
// This may throw.
|
|
227
|
-
sendingRtpParameters.codecs = ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
|
|
228
|
-
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
|
|
229
|
-
// This may throw.
|
|
230
|
-
sendingRemoteRtpParameters.codecs = ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
|
|
231
218
|
const mediaSectionIdx = this._remoteSdp.getNextMediaSectionIdx();
|
|
232
219
|
const transceiver = this._pc.addTransceiver(track, {
|
|
233
220
|
direction: 'sendonly',
|
|
@@ -242,6 +229,16 @@ class Chrome111 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
242
229
|
if (localSdpObject.extmapAllowMixed) {
|
|
243
230
|
this._remoteSdp.setSessionExtmapAllowMixed();
|
|
244
231
|
}
|
|
232
|
+
const nativeRtpCapabilities = Chrome111.getLocalRtpCapabilities(localSdpObject);
|
|
233
|
+
const sendExtendedRtpCapabilities = this._getSendExtendedRtpCapabilities(nativeRtpCapabilities);
|
|
234
|
+
// Generic sending RTP parameters.
|
|
235
|
+
const sendingRtpParameters = ortc.getSendingRtpParameters(track.kind, sendExtendedRtpCapabilities);
|
|
236
|
+
// This may throw.
|
|
237
|
+
sendingRtpParameters.codecs = ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
|
|
238
|
+
// Generic sending RTP parameters suitable for the SDP remote answer.
|
|
239
|
+
const sendingRemoteRtpParameters = ortc.getSendingRemoteRtpParameters(track.kind, sendExtendedRtpCapabilities);
|
|
240
|
+
// This may throw.
|
|
241
|
+
sendingRemoteRtpParameters.codecs = ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
|
|
245
242
|
if (!this._transportReady) {
|
|
246
243
|
await this.setupTransport({
|
|
247
244
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
@@ -5,8 +5,7 @@ export declare class Chrome74 extends EnhancedEventEmitter<HandlerEvents> implem
|
|
|
5
5
|
private _closed;
|
|
6
6
|
private _direction;
|
|
7
7
|
private _remoteSdp;
|
|
8
|
-
private
|
|
9
|
-
private _sendingRemoteRtpParametersByKind;
|
|
8
|
+
private _getSendExtendedRtpCapabilities;
|
|
10
9
|
private _forcedLocalDtlsRole?;
|
|
11
10
|
private _pc;
|
|
12
11
|
private readonly _mapMidTransceiver;
|
|
@@ -18,6 +17,7 @@ export declare class Chrome74 extends EnhancedEventEmitter<HandlerEvents> implem
|
|
|
18
17
|
* Creates a factory function.
|
|
19
18
|
*/
|
|
20
19
|
static createFactory(): HandlerFactory;
|
|
20
|
+
private static getLocalRtpCapabilities;
|
|
21
21
|
private constructor();
|
|
22
22
|
get name(): string;
|
|
23
23
|
close(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome74.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome74.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Chrome74.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome74.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/Chrome74.js
CHANGED
|
@@ -4,7 +4,6 @@ exports.Chrome74 = void 0;
|
|
|
4
4
|
const sdpTransform = require("sdp-transform");
|
|
5
5
|
const Logger_1 = require("../Logger");
|
|
6
6
|
const enhancedEvents_1 = require("../enhancedEvents");
|
|
7
|
-
const utils = require("../utils");
|
|
8
7
|
const ortc = require("../ortc");
|
|
9
8
|
const errors_1 = require("../errors");
|
|
10
9
|
const scalabilityModes_1 = require("../scalabilityModes");
|
|
@@ -22,11 +21,8 @@ class Chrome74 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
22
21
|
_direction;
|
|
23
22
|
// Remote SDP handler.
|
|
24
23
|
_remoteSdp;
|
|
25
|
-
//
|
|
26
|
-
|
|
27
|
-
// Generic sending RTP parameters for audio and video suitable for the SDP
|
|
28
|
-
// remote answer.
|
|
29
|
-
_sendingRemoteRtpParametersByKind;
|
|
24
|
+
// Callback to request sending extended RTP capabilities on demand.
|
|
25
|
+
_getSendExtendedRtpCapabilities;
|
|
30
26
|
// Initial server side DTLS role. If not 'auto', it will force the opposite
|
|
31
27
|
// value in client side.
|
|
32
28
|
_forcedLocalDtlsRole;
|
|
@@ -67,11 +63,7 @@ class Chrome74 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
67
63
|
catch (error) { }
|
|
68
64
|
pc = undefined;
|
|
69
65
|
const sdpObject = sdpTransform.parse(offer.sdp);
|
|
70
|
-
const nativeRtpCapabilities =
|
|
71
|
-
sdpObject,
|
|
72
|
-
});
|
|
73
|
-
// libwebrtc supports NACK for OPUS but doesn't announce it.
|
|
74
|
-
ortcUtils.addNackSupportForOpus(nativeRtpCapabilities);
|
|
66
|
+
const nativeRtpCapabilities = Chrome74.getLocalRtpCapabilities(sdpObject);
|
|
75
67
|
return nativeRtpCapabilities;
|
|
76
68
|
}
|
|
77
69
|
catch (error) {
|
|
@@ -91,7 +83,15 @@ class Chrome74 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
91
83
|
},
|
|
92
84
|
};
|
|
93
85
|
}
|
|
94
|
-
|
|
86
|
+
static getLocalRtpCapabilities(localSdpObject) {
|
|
87
|
+
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
88
|
+
sdpObject: localSdpObject,
|
|
89
|
+
});
|
|
90
|
+
// libwebrtc supports NACK for OPUS but doesn't announce it.
|
|
91
|
+
ortcUtils.addNackSupportForOpus(nativeRtpCapabilities);
|
|
92
|
+
return nativeRtpCapabilities;
|
|
93
|
+
}
|
|
94
|
+
constructor({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, getSendExtendedRtpCapabilities, }) {
|
|
95
95
|
super();
|
|
96
96
|
logger.debug('constructor()');
|
|
97
97
|
this._direction = direction;
|
|
@@ -101,14 +101,7 @@ class Chrome74 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
101
101
|
dtlsParameters,
|
|
102
102
|
sctpParameters,
|
|
103
103
|
});
|
|
104
|
-
this.
|
|
105
|
-
audio: ortc.getSendingRtpParameters('audio', extendedRtpCapabilities),
|
|
106
|
-
video: ortc.getSendingRtpParameters('video', extendedRtpCapabilities),
|
|
107
|
-
};
|
|
108
|
-
this._sendingRemoteRtpParametersByKind = {
|
|
109
|
-
audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
|
|
110
|
-
video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities),
|
|
111
|
-
};
|
|
104
|
+
this._getSendExtendedRtpCapabilities = getSendExtendedRtpCapabilities;
|
|
112
105
|
if (dtlsParameters.role && dtlsParameters.role !== 'auto') {
|
|
113
106
|
this._forcedLocalDtlsRole =
|
|
114
107
|
dtlsParameters.role === 'server' ? 'client' : 'server';
|
|
@@ -203,12 +196,6 @@ class Chrome74 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
203
196
|
encoding.rid = `r${idx}`;
|
|
204
197
|
});
|
|
205
198
|
}
|
|
206
|
-
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
207
|
-
// This may throw.
|
|
208
|
-
sendingRtpParameters.codecs = ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
|
|
209
|
-
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
|
|
210
|
-
// This may throw.
|
|
211
|
-
sendingRemoteRtpParameters.codecs = ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
|
|
212
199
|
const mediaSectionIdx = this._remoteSdp.getNextMediaSectionIdx();
|
|
213
200
|
const transceiver = this._pc.addTransceiver(track, {
|
|
214
201
|
direction: 'sendonly',
|
|
@@ -220,7 +207,16 @@ class Chrome74 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
220
207
|
if (localSdpObject.extmapAllowMixed) {
|
|
221
208
|
this._remoteSdp.setSessionExtmapAllowMixed();
|
|
222
209
|
}
|
|
223
|
-
|
|
210
|
+
const nativeRtpCapabilities = Chrome74.getLocalRtpCapabilities(localSdpObject);
|
|
211
|
+
const sendExtendedRtpCapabilities = this._getSendExtendedRtpCapabilities(nativeRtpCapabilities);
|
|
212
|
+
// Generic sending RTP parameters.
|
|
213
|
+
const sendingRtpParameters = ortc.getSendingRtpParameters(track.kind, sendExtendedRtpCapabilities);
|
|
214
|
+
// This may throw.
|
|
215
|
+
sendingRtpParameters.codecs = ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
|
|
216
|
+
// Generic sending RTP parameters suitable for the SDP remote answer.
|
|
217
|
+
const sendingRemoteRtpParameters = ortc.getSendingRemoteRtpParameters(track.kind, sendExtendedRtpCapabilities);
|
|
218
|
+
// This may throw.
|
|
219
|
+
sendingRemoteRtpParameters.codecs = ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
|
|
224
220
|
if (!this._transportReady) {
|
|
225
221
|
await this.setupTransport({
|
|
226
222
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
@@ -230,6 +226,7 @@ class Chrome74 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
230
226
|
// Special case for VP9 with SVC.
|
|
231
227
|
let hackVp9Svc = false;
|
|
232
228
|
const layers = (0, scalabilityModes_1.parse)((encodings ?? [{}])[0].scalabilityMode);
|
|
229
|
+
let offerMediaObject;
|
|
233
230
|
if (encodings &&
|
|
234
231
|
encodings.length === 1 &&
|
|
235
232
|
layers.spatialLayers > 1 &&
|
|
@@ -11,7 +11,7 @@ export type FakeParameters = {
|
|
|
11
11
|
export declare class FakeHandler extends EnhancedEventEmitter<HandlerEvents> implements HandlerInterface {
|
|
12
12
|
private _closed;
|
|
13
13
|
private _fakeParameters;
|
|
14
|
-
private
|
|
14
|
+
private _getSendExtendedRtpCapabilities;
|
|
15
15
|
private _cname;
|
|
16
16
|
private _transportReady;
|
|
17
17
|
private _nextLocalId;
|
|
@@ -21,6 +21,7 @@ export declare class FakeHandler extends EnhancedEventEmitter<HandlerEvents> imp
|
|
|
21
21
|
* Creates a factory function.
|
|
22
22
|
*/
|
|
23
23
|
static createFactory(fakeParameters: FakeParameters): HandlerFactory;
|
|
24
|
+
private static getLocalRtpCapabilities;
|
|
24
25
|
private constructor();
|
|
25
26
|
get name(): string;
|
|
26
27
|
close(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/FakeHandler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAKzD,OAAO,KAAK,EACX,aAAa,EACb,cAAc,EAEd,iBAAiB,EACjB,eAAe,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACX,eAAe,EAGf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"FakeHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/FakeHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,8 +14,8 @@ class FakeHandler extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
14
14
|
_closed = false;
|
|
15
15
|
// Fake parameters source of RTP and SCTP parameters and capabilities.
|
|
16
16
|
_fakeParameters;
|
|
17
|
-
//
|
|
18
|
-
|
|
17
|
+
// Callback to request sending extended RTP capabilities on demand.
|
|
18
|
+
_getSendExtendedRtpCapabilities;
|
|
19
19
|
// Local RTCP CNAME.
|
|
20
20
|
_cname = `CNAME-${utils.generateRandomNumber()}`;
|
|
21
21
|
// Got transport local and remote parameters.
|
|
@@ -35,7 +35,7 @@ class FakeHandler extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
35
35
|
factory: (options) => new FakeHandler(options, fakeParameters),
|
|
36
36
|
getNativeRtpCapabilities: async () => {
|
|
37
37
|
logger.debug('getNativeRtpCapabilities()');
|
|
38
|
-
return
|
|
38
|
+
return FakeHandler.getLocalRtpCapabilities(fakeParameters);
|
|
39
39
|
},
|
|
40
40
|
getNativeSctpCapabilities: async () => {
|
|
41
41
|
logger.debug('getNativeSctpCapabilities()');
|
|
@@ -43,6 +43,10 @@ class FakeHandler extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
43
43
|
},
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
|
+
static getLocalRtpCapabilities(fakeParameters) {
|
|
47
|
+
const nativeRtpCapabilities = fakeParameters.generateNativeRtpCapabilities();
|
|
48
|
+
return nativeRtpCapabilities;
|
|
49
|
+
}
|
|
46
50
|
constructor({
|
|
47
51
|
// direction,
|
|
48
52
|
// iceParameters,
|
|
@@ -52,15 +56,10 @@ class FakeHandler extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
52
56
|
// iceServers,
|
|
53
57
|
// iceTransportPolicy,
|
|
54
58
|
// additionalSettings,
|
|
55
|
-
|
|
59
|
+
getSendExtendedRtpCapabilities, }, fakeParameters) {
|
|
56
60
|
super();
|
|
57
61
|
logger.debug('constructor()');
|
|
58
|
-
|
|
59
|
-
// @type {Object}
|
|
60
|
-
this._rtpParametersByKind = {
|
|
61
|
-
audio: ortc.getSendingRtpParameters('audio', extendedRtpCapabilities),
|
|
62
|
-
video: ortc.getSendingRtpParameters('video', extendedRtpCapabilities),
|
|
63
|
-
};
|
|
62
|
+
this._getSendExtendedRtpCapabilities = getSendExtendedRtpCapabilities;
|
|
64
63
|
this._fakeParameters = fakeParameters;
|
|
65
64
|
}
|
|
66
65
|
get name() {
|
|
@@ -105,9 +104,14 @@ class FakeHandler extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
105
104
|
if (!this._transportReady) {
|
|
106
105
|
await this.setupTransport({ localDtlsRole: 'server' });
|
|
107
106
|
}
|
|
108
|
-
const
|
|
109
|
-
const
|
|
110
|
-
|
|
107
|
+
const nativeRtpCapabilities = FakeHandler.getLocalRtpCapabilities(this._fakeParameters);
|
|
108
|
+
const sendExtendedRtpCapabilities = this._getSendExtendedRtpCapabilities(nativeRtpCapabilities);
|
|
109
|
+
// Generic sending RTP parameters.
|
|
110
|
+
const sendingRtpParameters = ortc.getSendingRtpParameters(track.kind, sendExtendedRtpCapabilities);
|
|
111
|
+
// This may throw.
|
|
112
|
+
sendingRtpParameters.codecs = ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
|
|
113
|
+
const useRtx = sendingRtpParameters.codecs.some(_codec => /.+\/rtx$/i.test(_codec.mimeType));
|
|
114
|
+
sendingRtpParameters.mid = `mid-${utils.generateRandomNumber()}`;
|
|
111
115
|
if (!encodings) {
|
|
112
116
|
encodings = [{}];
|
|
113
117
|
}
|
|
@@ -117,16 +121,16 @@ class FakeHandler extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
117
121
|
encoding.rtx = { ssrc: utils.generateRandomNumber() };
|
|
118
122
|
}
|
|
119
123
|
}
|
|
120
|
-
|
|
124
|
+
sendingRtpParameters.encodings = encodings;
|
|
121
125
|
// Fill RTCRtpParameters.rtcp.
|
|
122
|
-
|
|
126
|
+
sendingRtpParameters.rtcp = {
|
|
123
127
|
cname: this._cname,
|
|
124
128
|
reducedSize: true,
|
|
125
129
|
mux: true,
|
|
126
130
|
};
|
|
127
131
|
const localId = this._nextLocalId++;
|
|
128
132
|
this._tracks.set(localId, track);
|
|
129
|
-
return { localId: String(localId), rtpParameters };
|
|
133
|
+
return { localId: String(localId), rtpParameters: sendingRtpParameters };
|
|
130
134
|
}
|
|
131
135
|
async stopSending(localId) {
|
|
132
136
|
logger.debug('stopSending() [localId:%s]', localId);
|