mediasoup-client 3.14.2 → 3.15.1
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/RtpParameters.d.ts +32 -0
- package/lib/RtpParameters.d.ts.map +1 -1
- package/lib/Transport.d.ts +6 -5
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +10 -6
- 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 +2 -3
- 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 +1 -1
- package/lib/index.js +1 -1
- package/lib/ortc.d.ts +5 -7
- package/lib/ortc.d.ts.map +1 -1
- package/lib/ortc.js +11 -13
- package/lib/test/fakeParameters.d.ts.map +1 -1
- package/lib/test/fakeParameters.js +37 -0
- package/lib/test/test.js +3 -26
- package/npm-scripts.mjs +6 -6
- package/package.json +2 -2
- package/lib/privateTypes.d.ts +0 -27
- package/lib/privateTypes.d.ts.map +0 -1
- package/lib/privateTypes.js +0 -2
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,
|
|
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/RtpParameters.d.ts
CHANGED
|
@@ -307,4 +307,36 @@ export type RtcpParameters = {
|
|
|
307
307
|
*/
|
|
308
308
|
mux?: boolean;
|
|
309
309
|
};
|
|
310
|
+
/**
|
|
311
|
+
* Extended RTP capabilities are a superset of RTP capabilities that include
|
|
312
|
+
* information about sending and receiving ids.
|
|
313
|
+
*
|
|
314
|
+
* @remarks
|
|
315
|
+
* - Only intended for internal purposes within handlers.
|
|
316
|
+
*/
|
|
317
|
+
export type ExtendedRtpCapabilities = {
|
|
318
|
+
codecs: ExtendedRtpCodecCapability[];
|
|
319
|
+
headerExtensions: ExtendedRtpHeaderExtension[];
|
|
320
|
+
};
|
|
321
|
+
export type ExtendedRtpCodecCapability = {
|
|
322
|
+
kind: MediaKind;
|
|
323
|
+
mimeType: string;
|
|
324
|
+
localPayloadType: number;
|
|
325
|
+
localRtxPayloadType?: number;
|
|
326
|
+
remotePayloadType: number;
|
|
327
|
+
remoteRtxPayloadType?: number;
|
|
328
|
+
clockRate: number;
|
|
329
|
+
channels?: number;
|
|
330
|
+
localParameters: Record<string, unknown>;
|
|
331
|
+
remoteParameters: Record<string, unknown>;
|
|
332
|
+
rtcpFeedback?: RtcpFeedback[];
|
|
333
|
+
};
|
|
334
|
+
export type ExtendedRtpHeaderExtension = {
|
|
335
|
+
kind: MediaKind;
|
|
336
|
+
uri: RtpHeaderExtensionUri;
|
|
337
|
+
sendId: number;
|
|
338
|
+
recvId: number;
|
|
339
|
+
encrypt: boolean;
|
|
340
|
+
direction: RtpHeaderExtensionDirection;
|
|
341
|
+
};
|
|
310
342
|
//# sourceMappingURL=RtpParameters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RtpParameters.d.ts","sourceRoot":"","sources":["../src/RtpParameters.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RtpParameters.d.ts","sourceRoot":"","sources":["../src/RtpParameters.ts"],"names":[],"mappings":"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"}
|
package/lib/Transport.d.ts
CHANGED
|
@@ -4,10 +4,9 @@ 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, ExtendedRtpCapabilities } from './RtpParameters';
|
|
8
8
|
import type { SctpParameters, SctpStreamParameters } from './SctpParameters';
|
|
9
9
|
import type { AppData } from './types';
|
|
10
|
-
import type { ExtendedRtpCapabilities } from './privateTypes';
|
|
11
10
|
export type TransportOptions<TransportAppData extends AppData = AppData> = {
|
|
12
11
|
id: string;
|
|
13
12
|
iceParameters: IceParameters;
|
|
@@ -154,7 +153,8 @@ export declare class Transport<TransportAppData extends AppData = AppData> exten
|
|
|
154
153
|
private readonly _id;
|
|
155
154
|
private _closed;
|
|
156
155
|
private readonly _direction;
|
|
157
|
-
private
|
|
156
|
+
private _getSendExtendedRtpCapabilities;
|
|
157
|
+
private readonly _recvRtpCapabilities;
|
|
158
158
|
private readonly _canProduceByKind;
|
|
159
159
|
private readonly _maxSctpMessageSize?;
|
|
160
160
|
private readonly _handler;
|
|
@@ -176,10 +176,11 @@ export declare class Transport<TransportAppData extends AppData = AppData> exten
|
|
|
176
176
|
private _pendingCloseConsumers;
|
|
177
177
|
private _consumerCloseInProgress;
|
|
178
178
|
protected readonly _observer: TransportObserver;
|
|
179
|
-
constructor({ direction, id, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, appData, handlerFactory,
|
|
179
|
+
constructor({ direction, id, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, appData, handlerFactory, getSendExtendedRtpCapabilities, recvRtpCapabilities, canProduceByKind, }: {
|
|
180
180
|
direction: 'send' | 'recv';
|
|
181
181
|
handlerFactory: HandlerFactory;
|
|
182
|
-
|
|
182
|
+
getSendExtendedRtpCapabilities: (nativeRtpCapabilities: RtpCapabilities) => ExtendedRtpCapabilities;
|
|
183
|
+
recvRtpCapabilities: RtpCapabilities;
|
|
183
184
|
canProduceByKind: CanProduceByKind;
|
|
184
185
|
} & TransportOptions<TransportAppData>);
|
|
185
186
|
/**
|
package/lib/Transport.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../src/Transport.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAIxD,OAAO,EACN,KAAK,cAAc,EACnB,gBAAgB,EAEhB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,KAAK,EACX,aAAa,EACb,SAAS,EAET,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
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
|
}
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"FakeHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/FakeHandler.ts"],"names":[],"mappings":"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"}
|