mediasoup-client 3.6.89 → 3.6.90
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.d.ts +1435 -14
- package/lib/index.js +11884 -43
- package/lib/index.js.map +1 -0
- package/lib/index.mjs +11860 -0
- package/lib/index.mjs.map +1 -0
- package/npm-scripts.mjs +17 -11
- package/package.json +12 -8
- package/lib/Consumer.d.ts +0 -115
- package/lib/Consumer.d.ts.map +0 -1
- package/lib/Consumer.js +0 -190
- package/lib/DataConsumer.d.ts +0 -93
- package/lib/DataConsumer.d.ts.map +0 -1
- package/lib/DataConsumer.js +0 -162
- package/lib/DataProducer.d.ts +0 -97
- package/lib/DataProducer.d.ts.map +0 -1
- package/lib/DataProducer.js +0 -180
- package/lib/Device.d.ts +0 -92
- package/lib/Device.d.ts.map +0 -1
- package/lib/Device.js +0 -464
- package/lib/EnhancedEventEmitter.d.ts +0 -24
- package/lib/EnhancedEventEmitter.d.ts.map +0 -1
- package/lib/EnhancedEventEmitter.js +0 -70
- package/lib/Logger.d.ts +0 -11
- package/lib/Logger.d.ts.map +0 -1
- package/lib/Logger.js +0 -37
- package/lib/Producer.d.ts +0 -169
- package/lib/Producer.d.ts.map +0 -1
- package/lib/Producer.js +0 -287
- package/lib/RtpParameters.d.ts +0 -306
- package/lib/RtpParameters.d.ts.map +0 -1
- package/lib/RtpParameters.js +0 -6
- package/lib/SctpParameters.d.ts +0 -68
- package/lib/SctpParameters.d.ts.map +0 -1
- package/lib/SctpParameters.js +0 -2
- package/lib/Transport.d.ts +0 -243
- package/lib/Transport.d.ts.map +0 -1
- package/lib/Transport.js +0 -824
- package/lib/errors.d.ts +0 -13
- package/lib/errors.d.ts.map +0 -1
- package/lib/errors.js +0 -39
- package/lib/handlers/Chrome111.d.ts +0 -49
- package/lib/handlers/Chrome111.d.ts.map +0 -1
- package/lib/handlers/Chrome111.js +0 -658
- package/lib/handlers/Chrome55.d.ts +0 -51
- package/lib/handlers/Chrome55.d.ts.map +0 -1
- package/lib/handlers/Chrome55.js +0 -542
- package/lib/handlers/Chrome67.d.ts +0 -51
- package/lib/handlers/Chrome67.d.ts.map +0 -1
- package/lib/handlers/Chrome67.js +0 -598
- package/lib/handlers/Chrome70.d.ts +0 -49
- package/lib/handlers/Chrome70.d.ts.map +0 -1
- package/lib/handlers/Chrome70.js +0 -627
- package/lib/handlers/Chrome74.d.ts +0 -49
- package/lib/handlers/Chrome74.d.ts.map +0 -1
- package/lib/handlers/Chrome74.js +0 -675
- package/lib/handlers/Edge11.d.ts +0 -55
- package/lib/handlers/Edge11.d.ts.map +0 -1
- package/lib/handlers/Edge11.js +0 -447
- package/lib/handlers/FakeHandler.d.ts +0 -49
- package/lib/handlers/FakeHandler.d.ts.map +0 -1
- package/lib/handlers/FakeHandler.js +0 -276
- package/lib/handlers/Firefox60.d.ts +0 -48
- package/lib/handlers/Firefox60.d.ts.map +0 -1
- package/lib/handlers/Firefox60.js +0 -681
- package/lib/handlers/HandlerInterface.d.ts +0 -97
- package/lib/handlers/HandlerInterface.d.ts.map +0 -1
- package/lib/handlers/HandlerInterface.js +0 -10
- package/lib/handlers/ReactNative.d.ts +0 -51
- package/lib/handlers/ReactNative.d.ts.map +0 -1
- package/lib/handlers/ReactNative.js +0 -558
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts +0 -49
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts.map +0 -1
- package/lib/handlers/ReactNativeUnifiedPlan.js +0 -694
- package/lib/handlers/Safari11.d.ts +0 -51
- package/lib/handlers/Safari11.d.ts.map +0 -1
- package/lib/handlers/Safari11.js +0 -592
- package/lib/handlers/Safari12.d.ts +0 -49
- package/lib/handlers/Safari12.d.ts.map +0 -1
- package/lib/handlers/Safari12.js +0 -648
- package/lib/handlers/ortc/edgeUtils.d.ts +0 -11
- package/lib/handlers/ortc/edgeUtils.d.ts.map +0 -1
- package/lib/handlers/ortc/edgeUtils.js +0 -86
- package/lib/handlers/ortc/utils.d.ts +0 -6
- package/lib/handlers/ortc/utils.d.ts.map +0 -1
- package/lib/handlers/ortc/utils.js +0 -20
- package/lib/handlers/sdp/MediaSection.d.ts +0 -68
- package/lib/handlers/sdp/MediaSection.d.ts.map +0 -1
- package/lib/handlers/sdp/MediaSection.js +0 -589
- package/lib/handlers/sdp/RemoteSdp.d.ts +0 -75
- package/lib/handlers/sdp/RemoteSdp.d.ts.map +0 -1
- package/lib/handlers/sdp/RemoteSdp.js +0 -303
- package/lib/handlers/sdp/commonUtils.d.ts +0 -24
- package/lib/handlers/sdp/commonUtils.d.ts.map +0 -1
- package/lib/handlers/sdp/commonUtils.js +0 -224
- package/lib/handlers/sdp/plainRtpUtils.d.ts +0 -14
- package/lib/handlers/sdp/plainRtpUtils.d.ts.map +0 -1
- package/lib/handlers/sdp/plainRtpUtils.js +0 -33
- package/lib/handlers/sdp/planBUtils.d.ts +0 -14
- package/lib/handlers/sdp/planBUtils.d.ts.map +0 -1
- package/lib/handlers/sdp/planBUtils.js +0 -155
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts +0 -12
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts.map +0 -1
- package/lib/handlers/sdp/unifiedPlanUtils.js +0 -131
- package/lib/index.d.ts.map +0 -1
- package/lib/ortc.d.ts +0 -123
- package/lib/ortc.d.ts.map +0 -1
- package/lib/ortc.js +0 -943
- package/lib/scalabilityModes.d.ts +0 -6
- package/lib/scalabilityModes.d.ts.map +0 -1
- package/lib/scalabilityModes.js +0 -20
- package/lib/tests/fakeParameters.d.ts +0 -20
- package/lib/tests/fakeParameters.d.ts.map +0 -1
- package/lib/tests/fakeParameters.js +0 -659
- package/lib/tests/test.d.ts +0 -6
- package/lib/tests/test.d.ts.map +0 -1
- package/lib/tests/test.js +0 -1297
- package/lib/tests/uaTestCases.d.ts +0 -9
- package/lib/tests/uaTestCases.d.ts.map +0 -1
- package/lib/tests/uaTestCases.js +0 -85
- package/lib/types.d.ts +0 -15
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js +0 -26
- package/lib/utils.d.ts +0 -9
- package/lib/utils.d.ts.map +0 -1
- package/lib/utils.js +0 -20
package/lib/handlers/Edge11.d.ts
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { HandlerFactory, HandlerInterface, HandlerRunOptions, HandlerSendOptions, HandlerSendResult, HandlerReceiveOptions, HandlerReceiveResult, HandlerSendDataChannelOptions, HandlerSendDataChannelResult, HandlerReceiveDataChannelOptions, HandlerReceiveDataChannelResult } from './HandlerInterface';
|
|
2
|
-
import { IceParameters } from '../Transport';
|
|
3
|
-
import { RtpCapabilities } from '../RtpParameters';
|
|
4
|
-
import { SctpCapabilities } from '../SctpParameters';
|
|
5
|
-
export declare class Edge11 extends HandlerInterface {
|
|
6
|
-
private _sendingRtpParametersByKind?;
|
|
7
|
-
private _remoteIceParameters?;
|
|
8
|
-
private _remoteIceCandidates?;
|
|
9
|
-
private _remoteDtlsParameters?;
|
|
10
|
-
private _iceGatherer?;
|
|
11
|
-
private _iceTransport?;
|
|
12
|
-
private _dtlsTransport?;
|
|
13
|
-
private readonly _rtpSenders;
|
|
14
|
-
private readonly _rtpReceivers;
|
|
15
|
-
private _nextSendLocalId;
|
|
16
|
-
private _cname?;
|
|
17
|
-
private _transportReady;
|
|
18
|
-
/**
|
|
19
|
-
* Creates a factory function.
|
|
20
|
-
*/
|
|
21
|
-
static createFactory(): HandlerFactory;
|
|
22
|
-
constructor();
|
|
23
|
-
get name(): string;
|
|
24
|
-
close(): void;
|
|
25
|
-
getNativeRtpCapabilities(): Promise<RtpCapabilities>;
|
|
26
|
-
getNativeSctpCapabilities(): Promise<SctpCapabilities>;
|
|
27
|
-
run({ direction, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
28
|
-
iceParameters, iceCandidates, dtlsParameters, sctpParameters, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
29
|
-
iceServers, iceTransportPolicy, additionalSettings, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
30
|
-
proprietaryConstraints, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
31
|
-
extendedRtpCapabilities }: HandlerRunOptions): void;
|
|
32
|
-
updateIceServers(iceServers: RTCIceServer[]): Promise<void>;
|
|
33
|
-
restartIce(iceParameters: IceParameters): Promise<void>;
|
|
34
|
-
getTransportStats(): Promise<RTCStatsReport>;
|
|
35
|
-
send({ track, encodings, codecOptions, codec }: HandlerSendOptions): Promise<HandlerSendResult>;
|
|
36
|
-
stopSending(localId: string): Promise<void>;
|
|
37
|
-
pauseSending(localId: string): Promise<void>;
|
|
38
|
-
resumeSending(localId: string): Promise<void>;
|
|
39
|
-
replaceTrack(localId: string, track: MediaStreamTrack | null): Promise<void>;
|
|
40
|
-
setMaxSpatialLayer(localId: string, spatialLayer: number): Promise<void>;
|
|
41
|
-
setRtpEncodingParameters(localId: string, params: any): Promise<void>;
|
|
42
|
-
getSenderStats(localId: string): Promise<RTCStatsReport>;
|
|
43
|
-
sendDataChannel(options: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
44
|
-
receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
|
|
45
|
-
stopReceiving(localIds: string[]): Promise<void>;
|
|
46
|
-
pauseReceiving(localIds: string[]): Promise<void>;
|
|
47
|
-
resumeReceiving(localIds: string[]): Promise<void>;
|
|
48
|
-
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
49
|
-
receiveDataChannel(options: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
50
|
-
private setIceGatherer;
|
|
51
|
-
private setIceTransport;
|
|
52
|
-
private setDtlsTransport;
|
|
53
|
-
private setupTransport;
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=Edge11.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Edge11.d.ts","sourceRoot":"","sources":["../../src/handlers/Edge11.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/Edge11.js
DELETED
|
@@ -1,447 +0,0 @@
|
|
|
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 (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.Edge11 = void 0;
|
|
27
|
-
const Logger_1 = require("../Logger");
|
|
28
|
-
const errors_1 = require("../errors");
|
|
29
|
-
const utils = __importStar(require("../utils"));
|
|
30
|
-
const ortc = __importStar(require("../ortc"));
|
|
31
|
-
const edgeUtils = __importStar(require("./ortc/edgeUtils"));
|
|
32
|
-
const HandlerInterface_1 = require("./HandlerInterface");
|
|
33
|
-
const logger = new Logger_1.Logger('Edge11');
|
|
34
|
-
class Edge11 extends HandlerInterface_1.HandlerInterface {
|
|
35
|
-
/**
|
|
36
|
-
* Creates a factory function.
|
|
37
|
-
*/
|
|
38
|
-
static createFactory() {
|
|
39
|
-
return () => new Edge11();
|
|
40
|
-
}
|
|
41
|
-
constructor() {
|
|
42
|
-
super();
|
|
43
|
-
// Map of RTCRtpSenders indexed by id.
|
|
44
|
-
this._rtpSenders = new Map();
|
|
45
|
-
// Map of RTCRtpReceivers indexed by id.
|
|
46
|
-
this._rtpReceivers = new Map();
|
|
47
|
-
// Next localId for sending tracks.
|
|
48
|
-
this._nextSendLocalId = 0;
|
|
49
|
-
// Got transport local and remote parameters.
|
|
50
|
-
this._transportReady = false;
|
|
51
|
-
}
|
|
52
|
-
get name() {
|
|
53
|
-
return 'Edge11';
|
|
54
|
-
}
|
|
55
|
-
close() {
|
|
56
|
-
logger.debug('close()');
|
|
57
|
-
// Close the ICE gatherer.
|
|
58
|
-
// NOTE: Not yet implemented by Edge.
|
|
59
|
-
try {
|
|
60
|
-
this._iceGatherer.close();
|
|
61
|
-
}
|
|
62
|
-
catch (error) { }
|
|
63
|
-
// Close the ICE transport.
|
|
64
|
-
try {
|
|
65
|
-
this._iceTransport.stop();
|
|
66
|
-
}
|
|
67
|
-
catch (error) { }
|
|
68
|
-
// Close the DTLS transport.
|
|
69
|
-
try {
|
|
70
|
-
this._dtlsTransport.stop();
|
|
71
|
-
}
|
|
72
|
-
catch (error) { }
|
|
73
|
-
// Close RTCRtpSenders.
|
|
74
|
-
for (const rtpSender of this._rtpSenders.values()) {
|
|
75
|
-
try {
|
|
76
|
-
rtpSender.stop();
|
|
77
|
-
}
|
|
78
|
-
catch (error) { }
|
|
79
|
-
}
|
|
80
|
-
// Close RTCRtpReceivers.
|
|
81
|
-
for (const rtpReceiver of this._rtpReceivers.values()) {
|
|
82
|
-
try {
|
|
83
|
-
rtpReceiver.stop();
|
|
84
|
-
}
|
|
85
|
-
catch (error) { }
|
|
86
|
-
}
|
|
87
|
-
this.emit('@close');
|
|
88
|
-
}
|
|
89
|
-
async getNativeRtpCapabilities() {
|
|
90
|
-
logger.debug('getNativeRtpCapabilities()');
|
|
91
|
-
return edgeUtils.getCapabilities();
|
|
92
|
-
}
|
|
93
|
-
async getNativeSctpCapabilities() {
|
|
94
|
-
logger.debug('getNativeSctpCapabilities()');
|
|
95
|
-
return {
|
|
96
|
-
numStreams: { OS: 0, MIS: 0 }
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
run({ direction, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
100
|
-
iceParameters, iceCandidates, dtlsParameters, sctpParameters, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
101
|
-
iceServers, iceTransportPolicy, additionalSettings, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
102
|
-
proprietaryConstraints, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
103
|
-
extendedRtpCapabilities }) {
|
|
104
|
-
logger.debug('run()');
|
|
105
|
-
this._sendingRtpParametersByKind =
|
|
106
|
-
{
|
|
107
|
-
audio: ortc.getSendingRtpParameters('audio', extendedRtpCapabilities),
|
|
108
|
-
video: ortc.getSendingRtpParameters('video', extendedRtpCapabilities)
|
|
109
|
-
};
|
|
110
|
-
this._remoteIceParameters = iceParameters;
|
|
111
|
-
this._remoteIceCandidates = iceCandidates;
|
|
112
|
-
this._remoteDtlsParameters = dtlsParameters;
|
|
113
|
-
this._cname = `CNAME-${utils.generateRandomNumber()}`;
|
|
114
|
-
this.setIceGatherer({ iceServers, iceTransportPolicy });
|
|
115
|
-
this.setIceTransport();
|
|
116
|
-
this.setDtlsTransport();
|
|
117
|
-
}
|
|
118
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
119
|
-
async updateIceServers(iceServers) {
|
|
120
|
-
// NOTE: Edge 11 does not implement iceGatherer.gater().
|
|
121
|
-
throw new errors_1.UnsupportedError('not supported');
|
|
122
|
-
}
|
|
123
|
-
async restartIce(iceParameters) {
|
|
124
|
-
logger.debug('restartIce()');
|
|
125
|
-
this._remoteIceParameters = iceParameters;
|
|
126
|
-
if (!this._transportReady) {
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
logger.debug('restartIce() | calling iceTransport.start()');
|
|
130
|
-
this._iceTransport.start(this._iceGatherer, iceParameters, 'controlling');
|
|
131
|
-
for (const candidate of this._remoteIceCandidates) {
|
|
132
|
-
this._iceTransport.addRemoteCandidate(candidate);
|
|
133
|
-
}
|
|
134
|
-
this._iceTransport.addRemoteCandidate({});
|
|
135
|
-
}
|
|
136
|
-
async getTransportStats() {
|
|
137
|
-
return this._iceTransport.getStats();
|
|
138
|
-
}
|
|
139
|
-
async send(
|
|
140
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
141
|
-
{ track, encodings, codecOptions, codec }) {
|
|
142
|
-
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
143
|
-
if (!this._transportReady) {
|
|
144
|
-
await this.setupTransport({ localDtlsRole: 'server' });
|
|
145
|
-
}
|
|
146
|
-
logger.debug('send() | calling new RTCRtpSender()');
|
|
147
|
-
const rtpSender = new RTCRtpSender(track, this._dtlsTransport);
|
|
148
|
-
const rtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind], {});
|
|
149
|
-
rtpParameters.codecs = ortc.reduceCodecs(rtpParameters.codecs, codec);
|
|
150
|
-
const useRtx = rtpParameters.codecs
|
|
151
|
-
.some((_codec) => /.+\/rtx$/i.test(_codec.mimeType));
|
|
152
|
-
if (!encodings) {
|
|
153
|
-
encodings = [{}];
|
|
154
|
-
}
|
|
155
|
-
for (const encoding of encodings) {
|
|
156
|
-
encoding.ssrc = utils.generateRandomNumber();
|
|
157
|
-
if (useRtx) {
|
|
158
|
-
encoding.rtx = { ssrc: utils.generateRandomNumber() };
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
rtpParameters.encodings = encodings;
|
|
162
|
-
// Fill RTCRtpParameters.rtcp.
|
|
163
|
-
rtpParameters.rtcp =
|
|
164
|
-
{
|
|
165
|
-
cname: this._cname,
|
|
166
|
-
reducedSize: true,
|
|
167
|
-
mux: true
|
|
168
|
-
};
|
|
169
|
-
// NOTE: Convert our standard RTCRtpParameters into those that Edge
|
|
170
|
-
// expects.
|
|
171
|
-
const edgeRtpParameters = edgeUtils.mangleRtpParameters(rtpParameters);
|
|
172
|
-
logger.debug('send() | calling rtpSender.send() [params:%o]', edgeRtpParameters);
|
|
173
|
-
await rtpSender.send(edgeRtpParameters);
|
|
174
|
-
const localId = String(this._nextSendLocalId);
|
|
175
|
-
this._nextSendLocalId++;
|
|
176
|
-
// Store it.
|
|
177
|
-
this._rtpSenders.set(localId, rtpSender);
|
|
178
|
-
return { localId, rtpParameters, rtpSender };
|
|
179
|
-
}
|
|
180
|
-
async stopSending(localId) {
|
|
181
|
-
logger.debug('stopSending() [localId:%s]', localId);
|
|
182
|
-
const rtpSender = this._rtpSenders.get(localId);
|
|
183
|
-
if (!rtpSender) {
|
|
184
|
-
throw new Error('RTCRtpSender not found');
|
|
185
|
-
}
|
|
186
|
-
this._rtpSenders.delete(localId);
|
|
187
|
-
try {
|
|
188
|
-
logger.debug('stopSending() | calling rtpSender.stop()');
|
|
189
|
-
rtpSender.stop();
|
|
190
|
-
}
|
|
191
|
-
catch (error) {
|
|
192
|
-
logger.warn('stopSending() | rtpSender.stop() failed:%o', error);
|
|
193
|
-
throw error;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
197
|
-
async pauseSending(localId) {
|
|
198
|
-
// Unimplemented.
|
|
199
|
-
}
|
|
200
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
201
|
-
async resumeSending(localId) {
|
|
202
|
-
// Unimplemented.
|
|
203
|
-
}
|
|
204
|
-
async replaceTrack(localId, track) {
|
|
205
|
-
if (track) {
|
|
206
|
-
logger.debug('replaceTrack() [localId:%s, track.id:%s]', localId, track.id);
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
logger.debug('replaceTrack() [localId:%s, no track]', localId);
|
|
210
|
-
}
|
|
211
|
-
const rtpSender = this._rtpSenders.get(localId);
|
|
212
|
-
if (!rtpSender) {
|
|
213
|
-
throw new Error('RTCRtpSender not found');
|
|
214
|
-
}
|
|
215
|
-
rtpSender.setTrack(track);
|
|
216
|
-
}
|
|
217
|
-
async setMaxSpatialLayer(localId, spatialLayer) {
|
|
218
|
-
logger.debug('setMaxSpatialLayer() [localId:%s, spatialLayer:%s]', localId, spatialLayer);
|
|
219
|
-
const rtpSender = this._rtpSenders.get(localId);
|
|
220
|
-
if (!rtpSender) {
|
|
221
|
-
throw new Error('RTCRtpSender not found');
|
|
222
|
-
}
|
|
223
|
-
const parameters = rtpSender.getParameters();
|
|
224
|
-
parameters.encodings
|
|
225
|
-
.forEach((encoding, idx) => {
|
|
226
|
-
if (idx <= spatialLayer) {
|
|
227
|
-
encoding.active = true;
|
|
228
|
-
}
|
|
229
|
-
else {
|
|
230
|
-
encoding.active = false;
|
|
231
|
-
}
|
|
232
|
-
});
|
|
233
|
-
await rtpSender.setParameters(parameters);
|
|
234
|
-
}
|
|
235
|
-
async setRtpEncodingParameters(localId, params) {
|
|
236
|
-
logger.debug('setRtpEncodingParameters() [localId:%s, params:%o]', localId, params);
|
|
237
|
-
const rtpSender = this._rtpSenders.get(localId);
|
|
238
|
-
if (!rtpSender) {
|
|
239
|
-
throw new Error('RTCRtpSender not found');
|
|
240
|
-
}
|
|
241
|
-
const parameters = rtpSender.getParameters();
|
|
242
|
-
parameters.encodings.forEach((encoding, idx) => {
|
|
243
|
-
parameters.encodings[idx] = { ...encoding, ...params };
|
|
244
|
-
});
|
|
245
|
-
await rtpSender.setParameters(parameters);
|
|
246
|
-
}
|
|
247
|
-
async getSenderStats(localId) {
|
|
248
|
-
const rtpSender = this._rtpSenders.get(localId);
|
|
249
|
-
if (!rtpSender) {
|
|
250
|
-
throw new Error('RTCRtpSender not found');
|
|
251
|
-
}
|
|
252
|
-
return rtpSender.getStats();
|
|
253
|
-
}
|
|
254
|
-
async sendDataChannel(
|
|
255
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
256
|
-
options) {
|
|
257
|
-
throw new errors_1.UnsupportedError('not implemented');
|
|
258
|
-
}
|
|
259
|
-
async receive(optionsList) {
|
|
260
|
-
const results = [];
|
|
261
|
-
for (const options of optionsList) {
|
|
262
|
-
const { trackId, kind } = options;
|
|
263
|
-
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
264
|
-
}
|
|
265
|
-
if (!this._transportReady) {
|
|
266
|
-
await this.setupTransport({ localDtlsRole: 'server' });
|
|
267
|
-
}
|
|
268
|
-
for (const options of optionsList) {
|
|
269
|
-
const { trackId, kind, rtpParameters } = options;
|
|
270
|
-
logger.debug('receive() | calling new RTCRtpReceiver()');
|
|
271
|
-
const rtpReceiver = new RTCRtpReceiver(this._dtlsTransport, kind);
|
|
272
|
-
rtpReceiver.addEventListener('error', (event) => {
|
|
273
|
-
logger.error('rtpReceiver "error" event [event:%o]', event);
|
|
274
|
-
});
|
|
275
|
-
// NOTE: Convert our standard RTCRtpParameters into those that Edge
|
|
276
|
-
// expects.
|
|
277
|
-
const edgeRtpParameters = edgeUtils.mangleRtpParameters(rtpParameters);
|
|
278
|
-
logger.debug('receive() | calling rtpReceiver.receive() [params:%o]', edgeRtpParameters);
|
|
279
|
-
await rtpReceiver.receive(edgeRtpParameters);
|
|
280
|
-
const localId = trackId;
|
|
281
|
-
// Store it.
|
|
282
|
-
this._rtpReceivers.set(localId, rtpReceiver);
|
|
283
|
-
results.push({
|
|
284
|
-
localId,
|
|
285
|
-
track: rtpReceiver.track,
|
|
286
|
-
rtpReceiver
|
|
287
|
-
});
|
|
288
|
-
}
|
|
289
|
-
return results;
|
|
290
|
-
}
|
|
291
|
-
async stopReceiving(localIds) {
|
|
292
|
-
for (const localId of localIds) {
|
|
293
|
-
logger.debug('stopReceiving() [localId:%s]', localId);
|
|
294
|
-
const rtpReceiver = this._rtpReceivers.get(localId);
|
|
295
|
-
if (!rtpReceiver) {
|
|
296
|
-
throw new Error('RTCRtpReceiver not found');
|
|
297
|
-
}
|
|
298
|
-
this._rtpReceivers.delete(localId);
|
|
299
|
-
try {
|
|
300
|
-
logger.debug('stopReceiving() | calling rtpReceiver.stop()');
|
|
301
|
-
rtpReceiver.stop();
|
|
302
|
-
}
|
|
303
|
-
catch (error) {
|
|
304
|
-
logger.warn('stopReceiving() | rtpReceiver.stop() failed:%o', error);
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
async pauseReceiving(
|
|
309
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
310
|
-
localIds) {
|
|
311
|
-
// Unimplemented.
|
|
312
|
-
}
|
|
313
|
-
async resumeReceiving(
|
|
314
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
315
|
-
localIds) {
|
|
316
|
-
// Unimplemented.
|
|
317
|
-
}
|
|
318
|
-
async getReceiverStats(localId) {
|
|
319
|
-
const rtpReceiver = this._rtpReceivers.get(localId);
|
|
320
|
-
if (!rtpReceiver) {
|
|
321
|
-
throw new Error('RTCRtpReceiver not found');
|
|
322
|
-
}
|
|
323
|
-
return rtpReceiver.getStats();
|
|
324
|
-
}
|
|
325
|
-
async receiveDataChannel(
|
|
326
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
327
|
-
options) {
|
|
328
|
-
throw new errors_1.UnsupportedError('not implemented');
|
|
329
|
-
}
|
|
330
|
-
setIceGatherer({ iceServers, iceTransportPolicy }) {
|
|
331
|
-
// @ts-ignore
|
|
332
|
-
const iceGatherer = new RTCIceGatherer({
|
|
333
|
-
iceServers: iceServers || [],
|
|
334
|
-
gatherPolicy: iceTransportPolicy || 'all'
|
|
335
|
-
});
|
|
336
|
-
iceGatherer.addEventListener('error', (event) => {
|
|
337
|
-
logger.error('iceGatherer "error" event [event:%o]', event);
|
|
338
|
-
});
|
|
339
|
-
// NOTE: Not yet implemented by Edge, which starts gathering automatically.
|
|
340
|
-
try {
|
|
341
|
-
iceGatherer.gather();
|
|
342
|
-
}
|
|
343
|
-
catch (error) {
|
|
344
|
-
logger.debug('setIceGatherer() | iceGatherer.gather() failed: %s', error.toString());
|
|
345
|
-
}
|
|
346
|
-
this._iceGatherer = iceGatherer;
|
|
347
|
-
}
|
|
348
|
-
setIceTransport() {
|
|
349
|
-
const iceTransport = new RTCIceTransport(this._iceGatherer);
|
|
350
|
-
// NOTE: Not yet implemented by Edge.
|
|
351
|
-
iceTransport.addEventListener('statechange', () => {
|
|
352
|
-
switch (iceTransport.state) {
|
|
353
|
-
case 'checking':
|
|
354
|
-
this.emit('@connectionstatechange', 'connecting');
|
|
355
|
-
break;
|
|
356
|
-
case 'connected':
|
|
357
|
-
case 'completed':
|
|
358
|
-
this.emit('@connectionstatechange', 'connected');
|
|
359
|
-
break;
|
|
360
|
-
case 'failed':
|
|
361
|
-
this.emit('@connectionstatechange', 'failed');
|
|
362
|
-
break;
|
|
363
|
-
case 'disconnected':
|
|
364
|
-
this.emit('@connectionstatechange', 'disconnected');
|
|
365
|
-
break;
|
|
366
|
-
case 'closed':
|
|
367
|
-
this.emit('@connectionstatechange', 'closed');
|
|
368
|
-
break;
|
|
369
|
-
}
|
|
370
|
-
});
|
|
371
|
-
// NOTE: Not standard, but implemented by Edge.
|
|
372
|
-
iceTransport.addEventListener('icestatechange', () => {
|
|
373
|
-
switch (iceTransport.state) {
|
|
374
|
-
case 'checking':
|
|
375
|
-
this.emit('@connectionstatechange', 'connecting');
|
|
376
|
-
break;
|
|
377
|
-
case 'connected':
|
|
378
|
-
case 'completed':
|
|
379
|
-
this.emit('@connectionstatechange', 'connected');
|
|
380
|
-
break;
|
|
381
|
-
case 'failed':
|
|
382
|
-
this.emit('@connectionstatechange', 'failed');
|
|
383
|
-
break;
|
|
384
|
-
case 'disconnected':
|
|
385
|
-
this.emit('@connectionstatechange', 'disconnected');
|
|
386
|
-
break;
|
|
387
|
-
case 'closed':
|
|
388
|
-
this.emit('@connectionstatechange', 'closed');
|
|
389
|
-
break;
|
|
390
|
-
}
|
|
391
|
-
});
|
|
392
|
-
iceTransport.addEventListener('candidatepairchange', (event) => {
|
|
393
|
-
logger.debug('iceTransport "candidatepairchange" event [pair:%o]', event.pair);
|
|
394
|
-
});
|
|
395
|
-
this._iceTransport = iceTransport;
|
|
396
|
-
}
|
|
397
|
-
setDtlsTransport() {
|
|
398
|
-
const dtlsTransport = new RTCDtlsTransport(this._iceTransport);
|
|
399
|
-
// NOTE: Not yet implemented by Edge.
|
|
400
|
-
dtlsTransport.addEventListener('statechange', () => {
|
|
401
|
-
logger.debug('dtlsTransport "statechange" event [state:%s]', dtlsTransport.state);
|
|
402
|
-
});
|
|
403
|
-
// NOTE: Not standard, but implemented by Edge.
|
|
404
|
-
dtlsTransport.addEventListener('dtlsstatechange', () => {
|
|
405
|
-
logger.debug('dtlsTransport "dtlsstatechange" event [state:%s]', dtlsTransport.state);
|
|
406
|
-
if (dtlsTransport.state === 'closed') {
|
|
407
|
-
this.emit('@connectionstatechange', 'closed');
|
|
408
|
-
}
|
|
409
|
-
});
|
|
410
|
-
dtlsTransport.addEventListener('error', (event) => {
|
|
411
|
-
logger.error('dtlsTransport "error" event [event:%o]', event);
|
|
412
|
-
});
|
|
413
|
-
this._dtlsTransport = dtlsTransport;
|
|
414
|
-
}
|
|
415
|
-
async setupTransport({ localDtlsRole }) {
|
|
416
|
-
logger.debug('setupTransport()');
|
|
417
|
-
// Get our local DTLS parameters.
|
|
418
|
-
const dtlsParameters = this._dtlsTransport.getLocalParameters();
|
|
419
|
-
dtlsParameters.role = localDtlsRole;
|
|
420
|
-
// Need to tell the remote transport about our parameters.
|
|
421
|
-
await new Promise((resolve, reject) => {
|
|
422
|
-
this.safeEmit('@connect', { dtlsParameters }, resolve, reject);
|
|
423
|
-
});
|
|
424
|
-
// Start the RTCIceTransport.
|
|
425
|
-
this._iceTransport.start(this._iceGatherer, this._remoteIceParameters, 'controlling');
|
|
426
|
-
// Add remote ICE candidates.
|
|
427
|
-
for (const candidate of this._remoteIceCandidates) {
|
|
428
|
-
this._iceTransport.addRemoteCandidate(candidate);
|
|
429
|
-
}
|
|
430
|
-
// Also signal a 'complete' candidate as per spec.
|
|
431
|
-
// NOTE: It should be {complete: true} but Edge prefers {}.
|
|
432
|
-
// NOTE: If we don't signal end of candidates, the Edge RTCIceTransport
|
|
433
|
-
// won't enter the 'completed' state.
|
|
434
|
-
this._iceTransport.addRemoteCandidate({});
|
|
435
|
-
// NOTE: Edge does not like SHA less than 256.
|
|
436
|
-
this._remoteDtlsParameters.fingerprints = this._remoteDtlsParameters.fingerprints
|
|
437
|
-
.filter((fingerprint) => {
|
|
438
|
-
return (fingerprint.algorithm === 'sha-256' ||
|
|
439
|
-
fingerprint.algorithm === 'sha-384' ||
|
|
440
|
-
fingerprint.algorithm === 'sha-512');
|
|
441
|
-
});
|
|
442
|
-
// Start the RTCDtlsTransport.
|
|
443
|
-
this._dtlsTransport.start(this._remoteDtlsParameters);
|
|
444
|
-
this._transportReady = true;
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
exports.Edge11 = Edge11;
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { HandlerInterface, HandlerRunOptions, HandlerSendOptions, HandlerSendResult, HandlerReceiveOptions, HandlerReceiveResult, HandlerSendDataChannelOptions, HandlerSendDataChannelResult, HandlerReceiveDataChannelOptions, HandlerReceiveDataChannelResult } from './HandlerInterface';
|
|
2
|
-
import { IceParameters, DtlsParameters, ConnectionState } from '../Transport';
|
|
3
|
-
import { RtpCapabilities } from '../RtpParameters';
|
|
4
|
-
import { SctpCapabilities } from '../SctpParameters';
|
|
5
|
-
export type FakeParameters = {
|
|
6
|
-
generateNativeRtpCapabilities: () => RtpCapabilities;
|
|
7
|
-
generateNativeSctpCapabilities: () => SctpCapabilities;
|
|
8
|
-
generateLocalDtlsParameters: () => DtlsParameters;
|
|
9
|
-
};
|
|
10
|
-
export declare class FakeHandler extends HandlerInterface {
|
|
11
|
-
private fakeParameters;
|
|
12
|
-
private _rtpParametersByKind?;
|
|
13
|
-
private _cname;
|
|
14
|
-
private _transportReady;
|
|
15
|
-
private _nextLocalId;
|
|
16
|
-
private _tracks;
|
|
17
|
-
private _nextSctpStreamId;
|
|
18
|
-
/**
|
|
19
|
-
* Creates a factory function.
|
|
20
|
-
*/
|
|
21
|
-
static createFactory(fakeParameters: FakeParameters): () => FakeHandler;
|
|
22
|
-
constructor(fakeParameters: any);
|
|
23
|
-
get name(): string;
|
|
24
|
-
close(): void;
|
|
25
|
-
setConnectionState(connectionState: ConnectionState): void;
|
|
26
|
-
getNativeRtpCapabilities(): Promise<RtpCapabilities>;
|
|
27
|
-
getNativeSctpCapabilities(): Promise<SctpCapabilities>;
|
|
28
|
-
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, proprietaryConstraints, extendedRtpCapabilities }: HandlerRunOptions): void;
|
|
29
|
-
updateIceServers(iceServers: RTCIceServer[]): Promise<void>;
|
|
30
|
-
restartIce(iceParameters: IceParameters): Promise<void>;
|
|
31
|
-
getTransportStats(): Promise<RTCStatsReport>;
|
|
32
|
-
send({ track, encodings, codecOptions, codec }: HandlerSendOptions): Promise<HandlerSendResult>;
|
|
33
|
-
stopSending(localId: string): Promise<void>;
|
|
34
|
-
pauseSending(localId: string): Promise<void>;
|
|
35
|
-
resumeSending(localId: string): Promise<void>;
|
|
36
|
-
replaceTrack(localId: string, track: MediaStreamTrack | null): Promise<void>;
|
|
37
|
-
setMaxSpatialLayer(localId: string, spatialLayer: number): Promise<void>;
|
|
38
|
-
setRtpEncodingParameters(localId: string, params: any): Promise<void>;
|
|
39
|
-
getSenderStats(localId: string): Promise<RTCStatsReport>;
|
|
40
|
-
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
41
|
-
receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
|
|
42
|
-
stopReceiving(localIds: string[]): Promise<void>;
|
|
43
|
-
pauseReceiving(localIds: string[]): Promise<void>;
|
|
44
|
-
resumeReceiving(localIds: string[]): Promise<void>;
|
|
45
|
-
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
46
|
-
receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
47
|
-
private setupTransport;
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=FakeHandler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FakeHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/FakeHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,aAAa,EACb,cAAc,EAEd,eAAe,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAyDrD,MAAM,MAAM,cAAc,GAC1B;IACC,6BAA6B,EAAE,MAAM,eAAe,CAAC;IACrD,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;IACvD,2BAA2B,EAAE,MAAM,cAAc,CAAC;CAClD,CAAC;AAEF,qBAAa,WAAY,SAAQ,gBAAgB;IAGhD,OAAO,CAAC,cAAc,CAAM;IAE5B,OAAO,CAAC,oBAAoB,CAAC,CAAmC;IAEhE,OAAO,CAAC,MAAM,CAA2C;IAEzD,OAAO,CAAC,eAAe,CAAS;IAEhC,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,OAAO,CAAmD;IAElE,OAAO,CAAC,iBAAiB,CAAK;IAE9B;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,cAAc,SAEvC,WAAW;gBAGX,cAAc,EAAE,GAAG;IAO/B,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,KAAK,IAAI,IAAI;IAMb,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAKpD,wBAAwB,IAAI,OAAO,CAAC,eAAe,CAAC;IAOpD,yBAAyB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAO5D,GAAG,CACF,EAEC,SAAS,EACT,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EAEvB,EAAE,iBAAiB,GAClB,IAAI;IAcD,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAK5C,IAAI,CAET,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,kBAAkB,GAC3D,OAAO,CAAC,iBAAiB,CAAC;IAgDvB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa3C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7C,YAAY,CACjB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAC7C,OAAO,CAAC,IAAI,CAAC;IAgBV,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxE,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKxD,eAAe,CACpB,EACC,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,KAAK,EACL,QAAQ,EACR,EAAE,6BAA6B,GAC9B,OAAO,CAAC,4BAA4B,CAAC;IA+BlC,OAAO,CACZ,WAAW,EAAE,qBAAqB,EAAE,GACjC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA0B7B,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhD,cAAc,CAEnB,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7B,eAAe,CAEpB,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7B,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAK1D,kBAAkB,CACvB,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,gCAAgC,GACzE,OAAO,CAAC,+BAA+B,CAAC;YAuB7B,cAAc;CA+B5B"}
|