mediasoup-client 3.20.0 → 3.22.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/README.md +9 -0
- package/lib/Consumer.d.ts.map +1 -1
- package/lib/Consumer.js +3 -0
- package/lib/DataConsumer.d.ts.map +1 -1
- package/lib/DataConsumer.js +8 -1
- package/lib/DataProducer.d.ts.map +1 -1
- package/lib/DataProducer.js +8 -1
- package/lib/Device.d.ts +0 -8
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +36 -21
- package/lib/Logger.d.ts +1 -0
- package/lib/Logger.d.ts.map +1 -1
- package/lib/Logger.js +4 -1
- package/lib/Producer.d.ts.map +1 -1
- package/lib/Producer.js +3 -0
- package/lib/RtpParameters.d.ts.map +1 -1
- package/lib/SctpParameters.d.ts +9 -22
- package/lib/SctpParameters.d.ts.map +1 -1
- package/lib/Transport.d.ts +1 -1
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +85 -25
- package/lib/handlers/Chrome111.d.ts +1 -0
- package/lib/handlers/Chrome111.d.ts.map +1 -1
- package/lib/handlers/Chrome111.js +56 -20
- package/lib/handlers/Chrome74.d.ts +1 -0
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +56 -20
- package/lib/handlers/FakeHandler.d.ts +0 -2
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +35 -6
- package/lib/handlers/Firefox120.d.ts +1 -0
- package/lib/handlers/Firefox120.d.ts.map +1 -1
- package/lib/handlers/Firefox120.js +49 -15
- package/lib/handlers/HandlerInterface.d.ts +2 -3
- package/lib/handlers/HandlerInterface.d.ts.map +1 -1
- package/lib/handlers/ReactNative106.d.ts +1 -0
- package/lib/handlers/ReactNative106.d.ts.map +1 -1
- package/lib/handlers/ReactNative106.js +56 -20
- package/lib/handlers/Safari12.d.ts +1 -0
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +56 -20
- package/lib/handlers/fakeEvents/FakeEventListener.d.ts.map +1 -1
- package/lib/handlers/sdp/{MediaSection.d.ts → RemoteMediaSection.d.ts} +4 -4
- package/lib/handlers/sdp/RemoteMediaSection.d.ts.map +1 -0
- package/lib/handlers/sdp/{MediaSection.js → RemoteMediaSection.js} +47 -12
- package/lib/handlers/sdp/RemoteSdp.d.ts.map +1 -1
- package/lib/handlers/sdp/RemoteSdp.js +41 -8
- package/lib/handlers/sdp/commonUtils.js +34 -1
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +42 -6
- package/lib/ortc.d.ts +1 -6
- package/lib/ortc.d.ts.map +1 -1
- package/lib/ortc.js +35 -34
- package/lib/test/fakeParameters.d.ts +0 -1
- package/lib/test/fakeParameters.d.ts.map +1 -1
- package/lib/test/fakeParameters.js +36 -10
- package/lib/test/test.js +39 -10
- package/npm-scripts.mjs +157 -36
- package/package.json +17 -15
- package/lib/handlers/sdp/MediaSection.d.ts.map +0 -1
package/lib/Transport.js
CHANGED
|
@@ -1,12 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.Transport = void 0;
|
|
4
37
|
const awaitqueue_1 = require("awaitqueue");
|
|
5
38
|
const Logger_1 = require("./Logger");
|
|
6
39
|
const enhancedEvents_1 = require("./enhancedEvents");
|
|
7
40
|
const errors_1 = require("./errors");
|
|
8
|
-
const utils = require("./utils");
|
|
9
|
-
const ortc = require("./ortc");
|
|
41
|
+
const utils = __importStar(require("./utils"));
|
|
42
|
+
const ortc = __importStar(require("./ortc"));
|
|
10
43
|
const Producer_1 = require("./Producer");
|
|
11
44
|
const Consumer_1 = require("./Consumer");
|
|
12
45
|
const DataProducer_1 = require("./DataProducer");
|
|
@@ -40,8 +73,8 @@ class Transport extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
40
73
|
// Whether we can produce audio/video based on computed extended RTP
|
|
41
74
|
// capabilities.
|
|
42
75
|
_canProduceByKind;
|
|
43
|
-
// SCTP
|
|
44
|
-
|
|
76
|
+
// SCTP parameters of the mediasoup transport.
|
|
77
|
+
_sctpParameters;
|
|
45
78
|
// RTC handler isntance.
|
|
46
79
|
_handler;
|
|
47
80
|
// Transport ICE gathering state.
|
|
@@ -88,7 +121,17 @@ class Transport extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
88
121
|
this._getSendExtendedRtpCapabilities = getSendExtendedRtpCapabilities;
|
|
89
122
|
this._recvRtpCapabilities = recvRtpCapabilities;
|
|
90
123
|
this._canProduceByKind = canProduceByKind;
|
|
91
|
-
|
|
124
|
+
// NOTE: Let's clone received SctpParameters and adapt them to be backwards
|
|
125
|
+
// compatible with old mediasoup server versions.
|
|
126
|
+
this._sctpParameters = utils.clone(sctpParameters);
|
|
127
|
+
if (this._sctpParameters) {
|
|
128
|
+
this._sctpParameters.maxSendMessageSize =
|
|
129
|
+
this._sctpParameters.maxSendMessageSize ??
|
|
130
|
+
this._sctpParameters.maxMessageSize;
|
|
131
|
+
this._sctpParameters.maxReceiveMessageSize =
|
|
132
|
+
this._sctpParameters.maxReceiveMessageSize ??
|
|
133
|
+
this._sctpParameters.maxMessageSize;
|
|
134
|
+
}
|
|
92
135
|
// Clone and sanitize additionalSettings.
|
|
93
136
|
const clonedAdditionalSettings = utils.clone(additionalSettings) ?? {};
|
|
94
137
|
delete clonedAdditionalSettings.iceServers;
|
|
@@ -100,7 +143,7 @@ class Transport extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
100
143
|
iceParameters,
|
|
101
144
|
iceCandidates,
|
|
102
145
|
dtlsParameters,
|
|
103
|
-
sctpParameters,
|
|
146
|
+
sctpParameters: this._sctpParameters,
|
|
104
147
|
iceServers,
|
|
105
148
|
iceTransportPolicy,
|
|
106
149
|
additionalSettings: clonedAdditionalSettings,
|
|
@@ -225,7 +268,9 @@ class Transport extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
225
268
|
throw new TypeError('missing iceParameters');
|
|
226
269
|
}
|
|
227
270
|
// Enqueue command.
|
|
228
|
-
|
|
271
|
+
await this._awaitQueue.push(async () => {
|
|
272
|
+
await this._handler.restartIce(iceParameters);
|
|
273
|
+
}, 'transport.restartIce()');
|
|
229
274
|
}
|
|
230
275
|
/**
|
|
231
276
|
* Update ICE servers.
|
|
@@ -239,7 +284,9 @@ class Transport extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
239
284
|
throw new TypeError('missing iceServers');
|
|
240
285
|
}
|
|
241
286
|
// Enqueue command.
|
|
242
|
-
|
|
287
|
+
await this._awaitQueue.push(async () => {
|
|
288
|
+
await this._handler.updateIceServers(iceServers);
|
|
289
|
+
}, 'transport.updateIceServers()');
|
|
243
290
|
}
|
|
244
291
|
/**
|
|
245
292
|
* Create a Producer.
|
|
@@ -253,7 +300,7 @@ class Transport extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
253
300
|
throw new TypeError('missing track');
|
|
254
301
|
}
|
|
255
302
|
else if (this._direction !== 'send') {
|
|
256
|
-
throw new errors_1.UnsupportedError('not a sending
|
|
303
|
+
throw new errors_1.UnsupportedError('not a sending transport');
|
|
257
304
|
}
|
|
258
305
|
else if (!this._canProduceByKind[track.kind]) {
|
|
259
306
|
throw new errors_1.UnsupportedError(`cannot produce ${track.kind}`);
|
|
@@ -379,7 +426,7 @@ class Transport extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
379
426
|
throw new errors_1.InvalidStateError('closed');
|
|
380
427
|
}
|
|
381
428
|
else if (this._direction !== 'recv') {
|
|
382
|
-
throw new errors_1.UnsupportedError('not a receiving
|
|
429
|
+
throw new errors_1.UnsupportedError('not a receiving transport');
|
|
383
430
|
}
|
|
384
431
|
else if (typeof id !== 'string') {
|
|
385
432
|
throw new TypeError('missing id');
|
|
@@ -435,10 +482,10 @@ class Transport extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
435
482
|
throw new errors_1.InvalidStateError('closed');
|
|
436
483
|
}
|
|
437
484
|
else if (this._direction !== 'send') {
|
|
438
|
-
throw new errors_1.UnsupportedError('not a sending
|
|
485
|
+
throw new errors_1.UnsupportedError('not a sending transport');
|
|
439
486
|
}
|
|
440
|
-
else if (!this.
|
|
441
|
-
throw new errors_1.UnsupportedError('SCTP not enabled by remote
|
|
487
|
+
else if (!this._sctpParameters) {
|
|
488
|
+
throw new errors_1.UnsupportedError('SCTP not enabled by remote transport');
|
|
442
489
|
}
|
|
443
490
|
else if (this.listenerCount('connect') === 0 &&
|
|
444
491
|
this._connectionState === 'new') {
|
|
@@ -496,10 +543,10 @@ class Transport extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
496
543
|
throw new errors_1.InvalidStateError('closed');
|
|
497
544
|
}
|
|
498
545
|
else if (this._direction !== 'recv') {
|
|
499
|
-
throw new errors_1.UnsupportedError('not a receiving
|
|
546
|
+
throw new errors_1.UnsupportedError('not a receiving transport');
|
|
500
547
|
}
|
|
501
|
-
else if (!this.
|
|
502
|
-
throw new errors_1.UnsupportedError('SCTP not enabled by remote
|
|
548
|
+
else if (!this._sctpParameters) {
|
|
549
|
+
throw new errors_1.UnsupportedError('SCTP not enabled by remote transport');
|
|
503
550
|
}
|
|
504
551
|
else if (typeof id !== 'string') {
|
|
505
552
|
throw new TypeError('missing id');
|
|
@@ -521,7 +568,8 @@ class Transport extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
521
568
|
// Enqueue command.
|
|
522
569
|
return this._awaitQueue.push(async () => {
|
|
523
570
|
const { dataChannel } = await this._handler.receiveDataChannel({
|
|
524
|
-
|
|
571
|
+
// NOTE: Mirror it.
|
|
572
|
+
maxMessageSize: this._sctpParameters?.maxSendMessageSize,
|
|
525
573
|
sctpStreamParameters: clonedSctpStreamParameters,
|
|
526
574
|
label,
|
|
527
575
|
protocol,
|
|
@@ -739,7 +787,7 @@ class Transport extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
739
787
|
}
|
|
740
788
|
});
|
|
741
789
|
handler.on('@icecandidateerror', (event) => {
|
|
742
|
-
logger.
|
|
790
|
+
logger.debug(`ICE candidate error [url:${event.url}, localAddress:${event.address}, localPort:${event.port}]: ${event.errorCode} "${event.errorText}"`);
|
|
743
791
|
this.safeEmit('icecandidateerror', event);
|
|
744
792
|
});
|
|
745
793
|
handler.on('@connectionstatechange', (connectionState) => {
|
|
@@ -760,36 +808,48 @@ class Transport extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
760
808
|
return;
|
|
761
809
|
}
|
|
762
810
|
this._awaitQueue
|
|
763
|
-
.push(async () =>
|
|
764
|
-
|
|
811
|
+
.push(async () => {
|
|
812
|
+
await this._handler.stopSending(producer.localId);
|
|
813
|
+
}, 'producer @close event')
|
|
814
|
+
.catch((error) => logger.warn('producer closure failed:%o', error));
|
|
765
815
|
});
|
|
766
816
|
producer.on('@pause', (callback, errback) => {
|
|
767
817
|
this._awaitQueue
|
|
768
|
-
.push(async () =>
|
|
818
|
+
.push(async () => {
|
|
819
|
+
await this._handler.pauseSending(producer.localId);
|
|
820
|
+
}, 'producer @pause event')
|
|
769
821
|
.then(callback)
|
|
770
822
|
.catch(errback);
|
|
771
823
|
});
|
|
772
824
|
producer.on('@resume', (callback, errback) => {
|
|
773
825
|
this._awaitQueue
|
|
774
|
-
.push(async () =>
|
|
826
|
+
.push(async () => {
|
|
827
|
+
await this._handler.resumeSending(producer.localId);
|
|
828
|
+
}, 'producer @resume event')
|
|
775
829
|
.then(callback)
|
|
776
830
|
.catch(errback);
|
|
777
831
|
});
|
|
778
832
|
producer.on('@replacetrack', (track, callback, errback) => {
|
|
779
833
|
this._awaitQueue
|
|
780
|
-
.push(async () =>
|
|
834
|
+
.push(async () => {
|
|
835
|
+
await this._handler.replaceTrack(producer.localId, track);
|
|
836
|
+
}, 'producer @replacetrack event')
|
|
781
837
|
.then(callback)
|
|
782
838
|
.catch(errback);
|
|
783
839
|
});
|
|
784
840
|
producer.on('@setmaxspatiallayer', (spatialLayer, callback, errback) => {
|
|
785
841
|
this._awaitQueue
|
|
786
|
-
.push(async () =>
|
|
842
|
+
.push(async () => {
|
|
843
|
+
await this._handler.setMaxSpatialLayer(producer.localId, spatialLayer);
|
|
844
|
+
}, 'producer @setmaxspatiallayer event')
|
|
787
845
|
.then(callback)
|
|
788
846
|
.catch(errback);
|
|
789
847
|
});
|
|
790
848
|
producer.on('@setrtpencodingparameters', (params, callback, errback) => {
|
|
791
849
|
this._awaitQueue
|
|
792
|
-
.push(async () =>
|
|
850
|
+
.push(async () => {
|
|
851
|
+
await this._handler.setRtpEncodingParameters(producer.localId, params);
|
|
852
|
+
}, 'producer @setrtpencodingparameters event')
|
|
793
853
|
.then(callback)
|
|
794
854
|
.catch(errback);
|
|
795
855
|
});
|
|
@@ -4,6 +4,7 @@ import type { HandlerFactory, HandlerInterface, HandlerEvents, HandlerSendOption
|
|
|
4
4
|
export declare class Chrome111 extends EnhancedEventEmitter<HandlerEvents> implements HandlerInterface {
|
|
5
5
|
private _closed;
|
|
6
6
|
private _direction;
|
|
7
|
+
private _sctpMaxReceiveMessageSize?;
|
|
7
8
|
private _remoteSdp;
|
|
8
9
|
private _getSendExtendedRtpCapabilities;
|
|
9
10
|
private _forcedLocalDtlsRole?;
|
|
@@ -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;AAKzD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AAa5D,OAAO,KAAK,EACX,cAAc,EACd,gBAAgB,EAChB,aAAa,EAGb,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"Chrome111.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome111.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,58 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.Chrome111 = void 0;
|
|
4
|
-
const sdpTransform = require("sdp-transform");
|
|
37
|
+
const sdpTransform = __importStar(require("sdp-transform"));
|
|
5
38
|
const enhancedEvents_1 = require("../enhancedEvents");
|
|
6
39
|
const Logger_1 = require("../Logger");
|
|
7
|
-
const ortc = require("../ortc");
|
|
40
|
+
const ortc = __importStar(require("../ortc"));
|
|
8
41
|
const errors_1 = require("../errors");
|
|
9
42
|
const scalabilityModes_1 = require("../scalabilityModes");
|
|
10
43
|
const RemoteSdp_1 = require("./sdp/RemoteSdp");
|
|
11
|
-
const sdpCommonUtils = require("./sdp/commonUtils");
|
|
12
|
-
const sdpUnifiedPlanUtils = require("./sdp/unifiedPlanUtils");
|
|
13
|
-
const ortcUtils = require("./ortc/utils");
|
|
44
|
+
const sdpCommonUtils = __importStar(require("./sdp/commonUtils"));
|
|
45
|
+
const sdpUnifiedPlanUtils = __importStar(require("./sdp/unifiedPlanUtils"));
|
|
46
|
+
const ortcUtils = __importStar(require("./ortc/utils"));
|
|
14
47
|
const logger = new Logger_1.Logger('Chrome111');
|
|
15
48
|
const NAME = 'Chrome111';
|
|
16
|
-
const SCTP_NUM_STREAMS = { OS: 65535, MIS: 65535 };
|
|
17
49
|
class Chrome111 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
18
50
|
// Closed flag.
|
|
19
51
|
_closed = false;
|
|
20
52
|
// Handler direction.
|
|
21
53
|
_direction;
|
|
54
|
+
// DataChannel max receive message size.
|
|
55
|
+
_sctpMaxReceiveMessageSize;
|
|
22
56
|
// Remote SDP handler.
|
|
23
57
|
_remoteSdp;
|
|
24
58
|
// Callback to request sending extended RTP capabilities on demand.
|
|
@@ -81,12 +115,6 @@ class Chrome111 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
81
115
|
throw error;
|
|
82
116
|
}
|
|
83
117
|
},
|
|
84
|
-
getNativeSctpCapabilities: async () => {
|
|
85
|
-
logger.debug('getNativeSctpCapabilities()');
|
|
86
|
-
return {
|
|
87
|
-
numStreams: SCTP_NUM_STREAMS,
|
|
88
|
-
};
|
|
89
|
-
},
|
|
90
118
|
};
|
|
91
119
|
}
|
|
92
120
|
static getLocalRtpCapabilities(localSdpObject, extraHeaderExtensions = []) {
|
|
@@ -106,6 +134,8 @@ class Chrome111 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
106
134
|
super();
|
|
107
135
|
logger.debug('constructor()');
|
|
108
136
|
this._direction = direction;
|
|
137
|
+
// NOTE: Mirror it.
|
|
138
|
+
this._sctpMaxReceiveMessageSize = sctpParameters?.maxSendMessageSize;
|
|
109
139
|
this._remoteSdp = new RemoteSdp_1.RemoteSdp({
|
|
110
140
|
iceParameters,
|
|
111
141
|
iceCandidates,
|
|
@@ -237,11 +267,13 @@ class Chrome111 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
237
267
|
this._remoteSdp.setSessionExtmapAllowMixed();
|
|
238
268
|
}
|
|
239
269
|
const extraHeaderExtensions = [];
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
270
|
+
if (headerExtensionOptions?.absCaptureTime) {
|
|
271
|
+
extraHeaderExtensions.push({
|
|
272
|
+
uri: 'http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time',
|
|
273
|
+
kind: track.kind,
|
|
274
|
+
direction: 'sendonly',
|
|
275
|
+
});
|
|
276
|
+
}
|
|
245
277
|
const nativeRtpCapabilities = Chrome111.getLocalRtpCapabilities(localSdpObject, extraHeaderExtensions);
|
|
246
278
|
const sendExtendedRtpCapabilities = this._getSendExtendedRtpCapabilities(nativeRtpCapabilities);
|
|
247
279
|
// Generic sending RTP parameters.
|
|
@@ -490,7 +522,7 @@ class Chrome111 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
490
522
|
const dataChannel = this._pc.createDataChannel(sctpStreamParameters.label, options);
|
|
491
523
|
// Increase next id.
|
|
492
524
|
this._nextSendSctpStreamId =
|
|
493
|
-
++this._nextSendSctpStreamId %
|
|
525
|
+
++this._nextSendSctpStreamId % (this._pc.sctp?.maxChannels ?? 65536);
|
|
494
526
|
// If this is the first DataChannel we need to create the SDP answer with
|
|
495
527
|
// m=application section.
|
|
496
528
|
if (!this._hasDataChannelMediaSection) {
|
|
@@ -714,7 +746,9 @@ class Chrome111 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
714
746
|
let answer = await this._pc.createAnswer();
|
|
715
747
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
716
748
|
const answerMediaObject = localSdpObject.media.find(m => m.type === 'application');
|
|
717
|
-
|
|
749
|
+
if (typeof maxMessageSize === 'number') {
|
|
750
|
+
answerMediaObject.maxMessageSize = maxMessageSize;
|
|
751
|
+
}
|
|
718
752
|
if (!this._transportReady) {
|
|
719
753
|
await this.setupTransport({
|
|
720
754
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
@@ -732,7 +766,9 @@ class Chrome111 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
732
766
|
return { dataChannel };
|
|
733
767
|
}
|
|
734
768
|
getDataChannelMaxMessageSize() {
|
|
735
|
-
return this.
|
|
769
|
+
return this._direction === 'send'
|
|
770
|
+
? this._pc.sctp?.maxMessageSize
|
|
771
|
+
: this._sctpMaxReceiveMessageSize;
|
|
736
772
|
}
|
|
737
773
|
async setupTransport({ localDtlsRole, localSdpObject, }) {
|
|
738
774
|
if (!localSdpObject) {
|
|
@@ -4,6 +4,7 @@ import type { HandlerFactory, HandlerEvents, HandlerInterface, HandlerSendOption
|
|
|
4
4
|
export declare class Chrome74 extends EnhancedEventEmitter<HandlerEvents> implements HandlerInterface {
|
|
5
5
|
private _closed;
|
|
6
6
|
private _direction;
|
|
7
|
+
private _sctpMaxReceiveMessageSize?;
|
|
7
8
|
private _remoteSdp;
|
|
8
9
|
private _getSendExtendedRtpCapabilities;
|
|
9
10
|
private _forcedLocalDtlsRole?;
|
|
@@ -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;AAIzD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AAc5D,OAAO,KAAK,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAGhB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,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
|
@@ -1,24 +1,58 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.Chrome74 = void 0;
|
|
4
|
-
const sdpTransform = require("sdp-transform");
|
|
37
|
+
const sdpTransform = __importStar(require("sdp-transform"));
|
|
5
38
|
const Logger_1 = require("../Logger");
|
|
6
39
|
const enhancedEvents_1 = require("../enhancedEvents");
|
|
7
|
-
const ortc = require("../ortc");
|
|
40
|
+
const ortc = __importStar(require("../ortc"));
|
|
8
41
|
const errors_1 = require("../errors");
|
|
9
42
|
const scalabilityModes_1 = require("../scalabilityModes");
|
|
10
43
|
const RemoteSdp_1 = require("./sdp/RemoteSdp");
|
|
11
|
-
const sdpCommonUtils = require("./sdp/commonUtils");
|
|
12
|
-
const sdpUnifiedPlanUtils = require("./sdp/unifiedPlanUtils");
|
|
13
|
-
const ortcUtils = require("./ortc/utils");
|
|
44
|
+
const sdpCommonUtils = __importStar(require("./sdp/commonUtils"));
|
|
45
|
+
const sdpUnifiedPlanUtils = __importStar(require("./sdp/unifiedPlanUtils"));
|
|
46
|
+
const ortcUtils = __importStar(require("./ortc/utils"));
|
|
14
47
|
const logger = new Logger_1.Logger('Chrome74');
|
|
15
48
|
const NAME = 'Chrome74';
|
|
16
|
-
const SCTP_NUM_STREAMS = { OS: 1024, MIS: 1024 };
|
|
17
49
|
class Chrome74 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
18
50
|
// Closed flag.
|
|
19
51
|
_closed = false;
|
|
20
52
|
// Handler direction.
|
|
21
53
|
_direction;
|
|
54
|
+
// DataChannel max receive message size.
|
|
55
|
+
_sctpMaxReceiveMessageSize;
|
|
22
56
|
// Remote SDP handler.
|
|
23
57
|
_remoteSdp;
|
|
24
58
|
// Callback to request sending extended RTP capabilities on demand.
|
|
@@ -76,12 +110,6 @@ class Chrome74 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
76
110
|
throw error;
|
|
77
111
|
}
|
|
78
112
|
},
|
|
79
|
-
getNativeSctpCapabilities: async () => {
|
|
80
|
-
logger.debug('getNativeSctpCapabilities()');
|
|
81
|
-
return {
|
|
82
|
-
numStreams: SCTP_NUM_STREAMS,
|
|
83
|
-
};
|
|
84
|
-
},
|
|
85
113
|
};
|
|
86
114
|
}
|
|
87
115
|
static getLocalRtpCapabilities(localSdpObject, extraHeaderExtensions = []) {
|
|
@@ -101,6 +129,8 @@ class Chrome74 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
101
129
|
super();
|
|
102
130
|
logger.debug('constructor()');
|
|
103
131
|
this._direction = direction;
|
|
132
|
+
// NOTE: Mirror it.
|
|
133
|
+
this._sctpMaxReceiveMessageSize = sctpParameters?.maxSendMessageSize;
|
|
104
134
|
this._remoteSdp = new RemoteSdp_1.RemoteSdp({
|
|
105
135
|
iceParameters,
|
|
106
136
|
iceCandidates,
|
|
@@ -214,11 +244,13 @@ class Chrome74 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
214
244
|
this._remoteSdp.setSessionExtmapAllowMixed();
|
|
215
245
|
}
|
|
216
246
|
const extraHeaderExtensions = [];
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
247
|
+
if (headerExtensionOptions?.absCaptureTime) {
|
|
248
|
+
extraHeaderExtensions.push({
|
|
249
|
+
uri: 'http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time',
|
|
250
|
+
kind: track.kind,
|
|
251
|
+
direction: 'sendonly',
|
|
252
|
+
});
|
|
253
|
+
}
|
|
222
254
|
const nativeRtpCapabilities = Chrome74.getLocalRtpCapabilities(localSdpObject, extraHeaderExtensions);
|
|
223
255
|
const sendExtendedRtpCapabilities = this._getSendExtendedRtpCapabilities(nativeRtpCapabilities);
|
|
224
256
|
// Generic sending RTP parameters.
|
|
@@ -505,7 +537,7 @@ class Chrome74 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
505
537
|
const dataChannel = this._pc.createDataChannel(sctpStreamParameters.label, options);
|
|
506
538
|
// Increase next id.
|
|
507
539
|
this._nextSendSctpStreamId =
|
|
508
|
-
++this._nextSendSctpStreamId %
|
|
540
|
+
++this._nextSendSctpStreamId % (this._pc.sctp?.maxChannels ?? 65536);
|
|
509
541
|
// If this is the first DataChannel we need to create the SDP answer with
|
|
510
542
|
// m=application section.
|
|
511
543
|
if (!this._hasDataChannelMediaSection) {
|
|
@@ -716,7 +748,9 @@ class Chrome74 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
716
748
|
let answer = await this._pc.createAnswer();
|
|
717
749
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
718
750
|
const answerMediaObject = localSdpObject.media.find(m => m.type === 'application');
|
|
719
|
-
|
|
751
|
+
if (typeof maxMessageSize === 'number') {
|
|
752
|
+
answerMediaObject.maxMessageSize = maxMessageSize;
|
|
753
|
+
}
|
|
720
754
|
if (!this._transportReady) {
|
|
721
755
|
await this.setupTransport({
|
|
722
756
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
@@ -734,7 +768,9 @@ class Chrome74 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
734
768
|
return { dataChannel };
|
|
735
769
|
}
|
|
736
770
|
getDataChannelMaxMessageSize() {
|
|
737
|
-
return this.
|
|
771
|
+
return this._direction === 'send'
|
|
772
|
+
? this._pc.sctp?.maxMessageSize
|
|
773
|
+
: this._sctpMaxReceiveMessageSize;
|
|
738
774
|
}
|
|
739
775
|
async setupTransport({ localDtlsRole, localSdpObject, }) {
|
|
740
776
|
if (!localSdpObject) {
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { EnhancedEventEmitter } from '../enhancedEvents';
|
|
2
2
|
import type { IceParameters, DtlsParameters, IceGatheringState, ConnectionState } from '../Transport';
|
|
3
3
|
import type { RtpCapabilities } from '../RtpParameters';
|
|
4
|
-
import type { SctpCapabilities } from '../SctpParameters';
|
|
5
4
|
import type { HandlerFactory, HandlerInterface, HandlerEvents, HandlerSendOptions, HandlerSendResult, HandlerReceiveOptions, HandlerReceiveResult, HandlerSendDataChannelOptions, HandlerSendDataChannelResult, HandlerReceiveDataChannelOptions, HandlerReceiveDataChannelResult } from './HandlerInterface';
|
|
6
5
|
export type FakeParameters = {
|
|
7
6
|
generateNativeRtpCapabilities: () => RtpCapabilities;
|
|
8
|
-
generateNativeSctpCapabilities: () => SctpCapabilities;
|
|
9
7
|
generateLocalDtlsParameters: () => DtlsParameters;
|
|
10
8
|
};
|
|
11
9
|
export declare class FakeHandler extends EnhancedEventEmitter<HandlerEvents> implements HandlerInterface {
|
|
@@ -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,EAIf,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"FakeHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/FakeHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.FakeHandler = void 0;
|
|
4
37
|
const fake_mediastreamtrack_1 = require("fake-mediastreamtrack");
|
|
5
38
|
const enhancedEvents_1 = require("../enhancedEvents");
|
|
6
39
|
const Logger_1 = require("../Logger");
|
|
7
|
-
const utils = require("../utils");
|
|
8
|
-
const ortc = require("../ortc");
|
|
40
|
+
const utils = __importStar(require("../utils"));
|
|
41
|
+
const ortc = __importStar(require("../ortc"));
|
|
9
42
|
const errors_1 = require("../errors");
|
|
10
43
|
const FakeEventTarget_1 = require("./fakeEvents/FakeEventTarget");
|
|
11
44
|
const logger = new Logger_1.Logger('FakeHandler');
|
|
@@ -40,10 +73,6 @@ class FakeHandler extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
40
73
|
logger.debug('getNativeRtpCapabilities() [direction:%o]', direction);
|
|
41
74
|
return FakeHandler.getLocalRtpCapabilities(fakeParameters);
|
|
42
75
|
},
|
|
43
|
-
getNativeSctpCapabilities: async () => {
|
|
44
|
-
logger.debug('getNativeSctpCapabilities()');
|
|
45
|
-
return fakeParameters.generateNativeSctpCapabilities();
|
|
46
|
-
},
|
|
47
76
|
};
|
|
48
77
|
}
|
|
49
78
|
static getLocalRtpCapabilities(fakeParameters) {
|
|
@@ -4,6 +4,7 @@ import type { HandlerFactory, HandlerInterface, HandlerEvents, HandlerSendOption
|
|
|
4
4
|
export declare class Firefox120 extends EnhancedEventEmitter<HandlerEvents> implements HandlerInterface {
|
|
5
5
|
private _closed;
|
|
6
6
|
private _direction;
|
|
7
|
+
private _sctpMaxReceiveMessageSize?;
|
|
7
8
|
private _remoteSdp;
|
|
8
9
|
private _getSendExtendedRtpCapabilities;
|
|
9
10
|
private _pc;
|