mediasoup-client 3.9.1 → 3.9.3
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/Consumer.d.ts +2 -2
- package/lib/Consumer.d.ts.map +1 -1
- package/lib/Consumer.js +20 -4
- package/lib/DataConsumer.d.ts +2 -2
- package/lib/DataConsumer.d.ts.map +1 -1
- package/lib/DataConsumer.js +14 -4
- package/lib/DataProducer.d.ts +2 -2
- package/lib/DataProducer.d.ts.map +1 -1
- package/lib/DataProducer.js +12 -4
- package/lib/Device.d.ts +5 -5
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +22 -41
- package/lib/Logger.d.ts +0 -1
- package/lib/Logger.d.ts.map +1 -1
- package/lib/Logger.js +4 -4
- package/lib/Producer.d.ts +2 -2
- package/lib/Producer.d.ts.map +1 -1
- package/lib/Producer.js +28 -4
- package/lib/Transport.d.ts +8 -8
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +60 -78
- package/lib/enhancedEvents.d.ts +1 -1
- package/lib/enhancedEvents.d.ts.map +1 -1
- package/lib/handlers/Chrome111.d.ts +4 -4
- package/lib/handlers/Chrome111.d.ts.map +1 -1
- package/lib/handlers/Chrome111.js +37 -52
- package/lib/handlers/Chrome55.d.ts +4 -4
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +39 -53
- package/lib/handlers/Chrome67.d.ts +4 -4
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +39 -53
- package/lib/handlers/Chrome70.d.ts +4 -4
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +34 -48
- package/lib/handlers/Chrome74.d.ts +4 -4
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +37 -52
- package/lib/handlers/Edge11.d.ts +4 -4
- package/lib/handlers/Edge11.d.ts.map +1 -1
- package/lib/handlers/Edge11.js +27 -44
- package/lib/handlers/FakeHandler.d.ts +4 -4
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +25 -48
- package/lib/handlers/Firefox120.d.ts +4 -4
- package/lib/handlers/Firefox120.d.ts.map +1 -1
- package/lib/handlers/Firefox120.js +33 -51
- package/lib/handlers/Firefox60.d.ts +4 -4
- package/lib/handlers/Firefox60.d.ts.map +1 -1
- package/lib/handlers/Firefox60.js +33 -51
- package/lib/handlers/HandlerInterface.d.ts +5 -5
- package/lib/handlers/HandlerInterface.d.ts.map +1 -1
- package/lib/handlers/ReactNative.d.ts +4 -4
- package/lib/handlers/ReactNative.d.ts.map +1 -1
- package/lib/handlers/ReactNative.js +39 -53
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts +4 -4
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts.map +1 -1
- package/lib/handlers/ReactNativeUnifiedPlan.js +37 -52
- package/lib/handlers/Safari11.d.ts +4 -4
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +39 -53
- package/lib/handlers/Safari12.d.ts +4 -4
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +37 -51
- package/lib/handlers/ortc/edgeUtils.d.ts +1 -1
- package/lib/handlers/ortc/edgeUtils.d.ts.map +1 -1
- package/lib/handlers/ortc/edgeUtils.js +2 -35
- package/lib/handlers/ortc/utils.d.ts +1 -1
- package/lib/handlers/ortc/utils.d.ts.map +1 -1
- package/lib/handlers/sdp/MediaSection.d.ts +5 -6
- package/lib/handlers/sdp/MediaSection.d.ts.map +1 -1
- package/lib/handlers/sdp/MediaSection.js +10 -39
- package/lib/handlers/sdp/RemoteSdp.d.ts +9 -6
- package/lib/handlers/sdp/RemoteSdp.d.ts.map +1 -1
- package/lib/handlers/sdp/RemoteSdp.js +29 -40
- package/lib/handlers/sdp/commonUtils.d.ts +2 -2
- package/lib/handlers/sdp/commonUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/commonUtils.js +11 -44
- package/lib/handlers/sdp/plainRtpUtils.d.ts +1 -1
- package/lib/handlers/sdp/plainRtpUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/plainRtpUtils.js +4 -4
- package/lib/handlers/sdp/planBUtils.d.ts +1 -1
- package/lib/handlers/sdp/planBUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/planBUtils.js +6 -6
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts +1 -1
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/unifiedPlanUtils.js +4 -4
- package/lib/index.d.ts +11 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +22 -44
- package/lib/ortc.d.ts +2 -2
- package/lib/ortc.d.ts.map +1 -1
- package/lib/ortc.js +6 -39
- package/lib/test/fakeParameters.d.ts +1 -1
- package/lib/test/fakeParameters.d.ts.map +1 -1
- package/lib/test/fakeParameters.js +1 -34
- package/lib/test/test.js +20 -53
- package/lib/test/uaTestCases.d.ts +1 -1
- package/lib/test/uaTestCases.d.ts.map +1 -1
- package/npm-scripts.mjs +34 -28
- package/package.json +32 -34
package/lib/handlers/Safari12.js
CHANGED
|
@@ -1,46 +1,13 @@
|
|
|
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
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
3
|
exports.Safari12 = void 0;
|
|
37
|
-
const sdpTransform =
|
|
4
|
+
const sdpTransform = require("sdp-transform");
|
|
38
5
|
const Logger_1 = require("../Logger");
|
|
39
|
-
const utils =
|
|
40
|
-
const ortc =
|
|
41
|
-
const sdpCommonUtils =
|
|
42
|
-
const sdpUnifiedPlanUtils =
|
|
43
|
-
const ortcUtils =
|
|
6
|
+
const utils = require("../utils");
|
|
7
|
+
const ortc = require("../ortc");
|
|
8
|
+
const sdpCommonUtils = require("./sdp/commonUtils");
|
|
9
|
+
const sdpUnifiedPlanUtils = require("./sdp/unifiedPlanUtils");
|
|
10
|
+
const ortcUtils = require("./ortc/utils");
|
|
44
11
|
const errors_1 = require("../errors");
|
|
45
12
|
const HandlerInterface_1 = require("./HandlerInterface");
|
|
46
13
|
const RemoteSdp_1 = require("./sdp/RemoteSdp");
|
|
@@ -49,6 +16,32 @@ const logger = new Logger_1.Logger('Safari12');
|
|
|
49
16
|
const NAME = 'Safari12';
|
|
50
17
|
const SCTP_NUM_STREAMS = { OS: 1024, MIS: 1024 };
|
|
51
18
|
class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
19
|
+
// Closed flag.
|
|
20
|
+
_closed = false;
|
|
21
|
+
// Handler direction.
|
|
22
|
+
_direction;
|
|
23
|
+
// Remote SDP handler.
|
|
24
|
+
_remoteSdp;
|
|
25
|
+
// Generic sending RTP parameters for audio and video.
|
|
26
|
+
_sendingRtpParametersByKind;
|
|
27
|
+
// Generic sending RTP parameters for audio and video suitable for the SDP
|
|
28
|
+
// remote answer.
|
|
29
|
+
_sendingRemoteRtpParametersByKind;
|
|
30
|
+
// Initial server side DTLS role. If not 'auto', it will force the opposite
|
|
31
|
+
// value in client side.
|
|
32
|
+
_forcedLocalDtlsRole;
|
|
33
|
+
// RTCPeerConnection instance.
|
|
34
|
+
_pc;
|
|
35
|
+
// Map of RTCTransceivers indexed by MID.
|
|
36
|
+
_mapMidTransceiver = new Map();
|
|
37
|
+
// Local stream for sending.
|
|
38
|
+
_sendStream = new MediaStream();
|
|
39
|
+
// Whether a DataChannel m=application section has been created.
|
|
40
|
+
_hasDataChannelMediaSection = false;
|
|
41
|
+
// Sending DataChannel id value counter. Incremented for each new DataChannel.
|
|
42
|
+
_nextSendSctpStreamId = 0;
|
|
43
|
+
// Got transport local and remote parameters.
|
|
44
|
+
_transportReady = false;
|
|
52
45
|
/**
|
|
53
46
|
* Creates a factory function.
|
|
54
47
|
*/
|
|
@@ -57,18 +50,6 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
57
50
|
}
|
|
58
51
|
constructor() {
|
|
59
52
|
super();
|
|
60
|
-
// Closed flag.
|
|
61
|
-
this._closed = false;
|
|
62
|
-
// Map of RTCTransceivers indexed by MID.
|
|
63
|
-
this._mapMidTransceiver = new Map();
|
|
64
|
-
// Local stream for sending.
|
|
65
|
-
this._sendStream = new MediaStream();
|
|
66
|
-
// Whether a DataChannel m=application section has been created.
|
|
67
|
-
this._hasDataChannelMediaSection = false;
|
|
68
|
-
// Sending DataChannel id value counter. Incremented for each new DataChannel.
|
|
69
|
-
this._nextSendSctpStreamId = 0;
|
|
70
|
-
// Got transport local and remote parameters.
|
|
71
|
-
this._transportReady = false;
|
|
72
53
|
}
|
|
73
54
|
get name() {
|
|
74
55
|
return NAME;
|
|
@@ -251,6 +232,11 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
251
232
|
}
|
|
252
233
|
let offer = await this._pc.createOffer();
|
|
253
234
|
let localSdpObject = sdpTransform.parse(offer.sdp);
|
|
235
|
+
// @ts-expect-error --- sdpTransform.SessionDescription type doesn't
|
|
236
|
+
// define extmapAllowMixed field.
|
|
237
|
+
if (localSdpObject.extmapAllowMixed) {
|
|
238
|
+
this._remoteSdp.setSessionExtmapAllowMixed();
|
|
239
|
+
}
|
|
254
240
|
let offerMediaObject;
|
|
255
241
|
if (!this._transportReady) {
|
|
256
242
|
await this.setupTransport({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RtpCapabilities, RtpParameters } from '../../RtpParameters';
|
|
1
|
+
import type { RtpCapabilities, RtpParameters } from '../../RtpParameters';
|
|
2
2
|
/**
|
|
3
3
|
* Normalize ORTC based Edge's RTCRtpReceiver.getCapabilities() to produce a full
|
|
4
4
|
* compliant ORTC RTCRtpCapabilities.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edgeUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/ortc/edgeUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"edgeUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/ortc/edgeUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE1E;;;GAGG;AACH,wBAAgB,eAAe,IAAI,eAAe,CAuCjD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,aAAa,EAAE,aAAa,GAC1B,aAAa,CA+Bf"}
|
|
@@ -1,41 +1,8 @@
|
|
|
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
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
3
|
exports.getCapabilities = getCapabilities;
|
|
37
4
|
exports.mangleRtpParameters = mangleRtpParameters;
|
|
38
|
-
const utils =
|
|
5
|
+
const utils = require("../../utils");
|
|
39
6
|
/**
|
|
40
7
|
* Normalize ORTC based Edge's RTCRtpReceiver.getCapabilities() to produce a full
|
|
41
8
|
* compliant ORTC RTCRtpCapabilities.
|
|
@@ -96,7 +63,7 @@ function mangleRtpParameters(rtpParameters) {
|
|
|
96
63
|
codec.name = codec.mimeType.split('/')[1];
|
|
97
64
|
}
|
|
98
65
|
// Remove mimeType.
|
|
99
|
-
// @ts-expect-error ---
|
|
66
|
+
// @ts-expect-error --- Removing mandatory field.
|
|
100
67
|
delete codec.mimeType;
|
|
101
68
|
}
|
|
102
69
|
return params;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/handlers/ortc/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/handlers/ortc/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI,CAc5E"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { IceParameters, IceCandidate, DtlsParameters, DtlsRole, PlainRtpParameters } from '../../Transport';
|
|
2
|
-
import { ProducerCodecOptions } from '../../Producer';
|
|
3
|
-
import { MediaKind, RtpParameters } from '../../RtpParameters';
|
|
4
|
-
import { SctpParameters } from '../../SctpParameters';
|
|
1
|
+
import type { IceParameters, IceCandidate, DtlsParameters, DtlsRole, PlainRtpParameters } from '../../Transport';
|
|
2
|
+
import type { ProducerCodecOptions } from '../../Producer';
|
|
3
|
+
import type { MediaKind, RtpParameters } from '../../RtpParameters';
|
|
4
|
+
import type { SctpParameters } from '../../SctpParameters';
|
|
5
5
|
export declare abstract class MediaSection {
|
|
6
6
|
protected readonly _mediaObject: any;
|
|
7
7
|
protected readonly _planB: boolean;
|
|
@@ -22,7 +22,7 @@ export declare abstract class MediaSection {
|
|
|
22
22
|
close(): void;
|
|
23
23
|
}
|
|
24
24
|
export declare class AnswerMediaSection extends MediaSection {
|
|
25
|
-
constructor({ iceParameters, iceCandidates, dtlsParameters, sctpParameters, plainRtpParameters, planB, offerMediaObject, offerRtpParameters, answerRtpParameters, codecOptions,
|
|
25
|
+
constructor({ iceParameters, iceCandidates, dtlsParameters, sctpParameters, plainRtpParameters, planB, offerMediaObject, offerRtpParameters, answerRtpParameters, codecOptions, }: {
|
|
26
26
|
iceParameters?: IceParameters;
|
|
27
27
|
iceCandidates?: IceCandidate[];
|
|
28
28
|
dtlsParameters?: DtlsParameters;
|
|
@@ -33,7 +33,6 @@ export declare class AnswerMediaSection extends MediaSection {
|
|
|
33
33
|
offerRtpParameters?: RtpParameters;
|
|
34
34
|
answerRtpParameters?: RtpParameters;
|
|
35
35
|
codecOptions?: ProducerCodecOptions;
|
|
36
|
-
extmapAllowMixed?: boolean;
|
|
37
36
|
});
|
|
38
37
|
setDtlsRole(role: DtlsRole): void;
|
|
39
38
|
resume(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaSection.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/MediaSection.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"MediaSection.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/MediaSection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +1,13 @@
|
|
|
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
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
3
|
exports.OfferMediaSection = exports.AnswerMediaSection = exports.MediaSection = void 0;
|
|
37
|
-
const sdpTransform =
|
|
38
|
-
const utils =
|
|
4
|
+
const sdpTransform = require("sdp-transform");
|
|
5
|
+
const utils = require("../../utils");
|
|
39
6
|
class MediaSection {
|
|
7
|
+
// SDP media object.
|
|
8
|
+
_mediaObject;
|
|
9
|
+
// Whether this is Plan-B SDP.
|
|
10
|
+
_planB;
|
|
40
11
|
constructor({ iceParameters, iceCandidates, dtlsParameters, planB = false, }) {
|
|
41
12
|
this._mediaObject = {};
|
|
42
13
|
this._planB = planB;
|
|
@@ -103,7 +74,7 @@ class MediaSection {
|
|
|
103
74
|
}
|
|
104
75
|
exports.MediaSection = MediaSection;
|
|
105
76
|
class AnswerMediaSection extends MediaSection {
|
|
106
|
-
constructor({ iceParameters, iceCandidates, dtlsParameters, sctpParameters, plainRtpParameters, planB = false, offerMediaObject, offerRtpParameters, answerRtpParameters, codecOptions,
|
|
77
|
+
constructor({ iceParameters, iceCandidates, dtlsParameters, sctpParameters, plainRtpParameters, planB = false, offerMediaObject, offerRtpParameters, answerRtpParameters, codecOptions, }) {
|
|
107
78
|
super({ iceParameters, iceCandidates, dtlsParameters, planB });
|
|
108
79
|
this._mediaObject.mid = String(offerMediaObject.mid);
|
|
109
80
|
this._mediaObject.type = offerMediaObject.type;
|
|
@@ -231,9 +202,9 @@ class AnswerMediaSection extends MediaSection {
|
|
|
231
202
|
value: ext.id,
|
|
232
203
|
});
|
|
233
204
|
}
|
|
234
|
-
// Allow both 1 byte and 2 bytes length header extensions
|
|
235
|
-
|
|
236
|
-
|
|
205
|
+
// Allow both 1 byte and 2 bytes length header extensions since
|
|
206
|
+
// mediasoup can receive both at any time.
|
|
207
|
+
if (offerMediaObject.extmapAllowMixed === 'extmap-allow-mixed') {
|
|
237
208
|
this._mediaObject.extmapAllowMixed = 'extmap-allow-mixed';
|
|
238
209
|
}
|
|
239
210
|
// Simulcast.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { MediaSection } from './MediaSection';
|
|
2
|
-
import { IceParameters, IceCandidate, DtlsParameters, DtlsRole, PlainRtpParameters } from '../../Transport';
|
|
3
|
-
import { ProducerCodecOptions } from '../../Producer';
|
|
4
|
-
import { MediaKind, RtpParameters } from '../../RtpParameters';
|
|
5
|
-
import { SctpParameters } from '../../SctpParameters';
|
|
2
|
+
import type { IceParameters, IceCandidate, DtlsParameters, DtlsRole, PlainRtpParameters } from '../../Transport';
|
|
3
|
+
import type { ProducerCodecOptions } from '../../Producer';
|
|
4
|
+
import type { MediaKind, RtpParameters } from '../../RtpParameters';
|
|
5
|
+
import type { SctpParameters } from '../../SctpParameters';
|
|
6
6
|
export declare class RemoteSdp {
|
|
7
7
|
private _iceParameters?;
|
|
8
8
|
private readonly _iceCandidates?;
|
|
@@ -24,17 +24,20 @@ export declare class RemoteSdp {
|
|
|
24
24
|
});
|
|
25
25
|
updateIceParameters(iceParameters: IceParameters): void;
|
|
26
26
|
updateDtlsRole(role: DtlsRole): void;
|
|
27
|
+
/**
|
|
28
|
+
* Set session level a=extmap-allow-mixed attibute.
|
|
29
|
+
*/
|
|
30
|
+
setSessionExtmapAllowMixed(): void;
|
|
27
31
|
getNextMediaSectionIdx(): {
|
|
28
32
|
idx: number;
|
|
29
33
|
reuseMid?: string;
|
|
30
34
|
};
|
|
31
|
-
send({ offerMediaObject, reuseMid, offerRtpParameters, answerRtpParameters, codecOptions,
|
|
35
|
+
send({ offerMediaObject, reuseMid, offerRtpParameters, answerRtpParameters, codecOptions, }: {
|
|
32
36
|
offerMediaObject: any;
|
|
33
37
|
reuseMid?: string;
|
|
34
38
|
offerRtpParameters: RtpParameters;
|
|
35
39
|
answerRtpParameters: RtpParameters;
|
|
36
40
|
codecOptions?: ProducerCodecOptions;
|
|
37
|
-
extmapAllowMixed?: boolean;
|
|
38
41
|
}): void;
|
|
39
42
|
receive({ mid, kind, offerRtpParameters, streamId, trackId, }: {
|
|
40
43
|
mid: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteSdp.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/RemoteSdp.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,YAAY,EAGZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"RemoteSdp.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/RemoteSdp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,49 +1,32 @@
|
|
|
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
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
3
|
exports.RemoteSdp = void 0;
|
|
37
|
-
const sdpTransform =
|
|
4
|
+
const sdpTransform = require("sdp-transform");
|
|
38
5
|
const Logger_1 = require("../../Logger");
|
|
39
6
|
const MediaSection_1 = require("./MediaSection");
|
|
40
7
|
const logger = new Logger_1.Logger('RemoteSdp');
|
|
41
8
|
class RemoteSdp {
|
|
9
|
+
// Remote ICE parameters.
|
|
10
|
+
_iceParameters;
|
|
11
|
+
// Remote ICE candidates.
|
|
12
|
+
_iceCandidates;
|
|
13
|
+
// Remote DTLS parameters.
|
|
14
|
+
_dtlsParameters;
|
|
15
|
+
// Remote SCTP parameters.
|
|
16
|
+
_sctpParameters;
|
|
17
|
+
// Parameters for plain RTP (no SRTP nor DTLS no BUNDLE).
|
|
18
|
+
_plainRtpParameters;
|
|
19
|
+
// Whether this is Plan-B SDP.
|
|
20
|
+
_planB;
|
|
21
|
+
// MediaSection instances with same order as in the SDP.
|
|
22
|
+
_mediaSections = [];
|
|
23
|
+
// MediaSection indices indexed by MID.
|
|
24
|
+
_midToIndex = new Map();
|
|
25
|
+
// First MID.
|
|
26
|
+
_firstMid;
|
|
27
|
+
// SDP object.
|
|
28
|
+
_sdpObject;
|
|
42
29
|
constructor({ iceParameters, iceCandidates, dtlsParameters, sctpParameters, plainRtpParameters, planB = false, }) {
|
|
43
|
-
// MediaSection instances with same order as in the SDP.
|
|
44
|
-
this._mediaSections = [];
|
|
45
|
-
// MediaSection indices indexed by MID.
|
|
46
|
-
this._midToIndex = new Map();
|
|
47
30
|
this._iceParameters = iceParameters;
|
|
48
31
|
this._iceCandidates = iceCandidates;
|
|
49
32
|
this._dtlsParameters = dtlsParameters;
|
|
@@ -100,6 +83,13 @@ class RemoteSdp {
|
|
|
100
83
|
mediaSection.setDtlsRole(role);
|
|
101
84
|
}
|
|
102
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Set session level a=extmap-allow-mixed attibute.
|
|
88
|
+
*/
|
|
89
|
+
setSessionExtmapAllowMixed() {
|
|
90
|
+
logger.debug('setSessionExtmapAllowMixed()');
|
|
91
|
+
this._sdpObject.extmapAllowMixed = 'extmap-allow-mixed';
|
|
92
|
+
}
|
|
103
93
|
getNextMediaSectionIdx() {
|
|
104
94
|
// If a closed media section is found, return its index.
|
|
105
95
|
for (let idx = 0; idx < this._mediaSections.length; ++idx) {
|
|
@@ -111,7 +101,7 @@ class RemoteSdp {
|
|
|
111
101
|
// If no closed media section is found, return next one.
|
|
112
102
|
return { idx: this._mediaSections.length };
|
|
113
103
|
}
|
|
114
|
-
send({ offerMediaObject, reuseMid, offerRtpParameters, answerRtpParameters, codecOptions,
|
|
104
|
+
send({ offerMediaObject, reuseMid, offerRtpParameters, answerRtpParameters, codecOptions, }) {
|
|
115
105
|
const mediaSection = new MediaSection_1.AnswerMediaSection({
|
|
116
106
|
iceParameters: this._iceParameters,
|
|
117
107
|
iceCandidates: this._iceCandidates,
|
|
@@ -122,7 +112,6 @@ class RemoteSdp {
|
|
|
122
112
|
offerRtpParameters,
|
|
123
113
|
answerRtpParameters,
|
|
124
114
|
codecOptions,
|
|
125
|
-
extmapAllowMixed,
|
|
126
115
|
});
|
|
127
116
|
// Unified-Plan with closed media section replacement.
|
|
128
117
|
if (reuseMid) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DtlsParameters } from '../../Transport';
|
|
2
|
-
import { RtpCapabilities, RtpParameters } from '../../RtpParameters';
|
|
1
|
+
import type { DtlsParameters } from '../../Transport';
|
|
2
|
+
import type { RtpCapabilities, RtpParameters } from '../../RtpParameters';
|
|
3
3
|
/**
|
|
4
4
|
* This function must be called with an SDP with 1 m=audio and 1 m=video
|
|
5
5
|
* sections.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commonUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/commonUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAY,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"commonUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/commonUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAY,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EACX,eAAe,EAGf,aAAa,EAEb,MAAM,qBAAqB,CAAC;AAE7B;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EACtC,SAAS,GACT,EAAE;IACF,SAAS,EAAE,GAAG,CAAC;CACf,GAAG,eAAe,CA8HlB;AAED,wBAAgB,qBAAqB,CAAC,EACrC,SAAS,GACT,EAAE;IACF,SAAS,EAAE,GAAG,CAAC;CACf,GAAG,cAAc,CAsDjB;AAED,wBAAgB,QAAQ,CAAC,EACxB,gBAAgB,GAChB,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;CACtB,GAAG,MAAM,CAUT;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EACpC,kBAAkB,EAClB,iBAAiB,GACjB,EAAE;IACF,kBAAkB,EAAE,aAAa,CAAC;IAClC,iBAAiB,EAAE,GAAG,CAAC;CACvB,GAAG,IAAI,CAsDP"}
|
|
@@ -1,43 +1,10 @@
|
|
|
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
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
3
|
exports.extractRtpCapabilities = extractRtpCapabilities;
|
|
37
4
|
exports.extractDtlsParameters = extractDtlsParameters;
|
|
38
5
|
exports.getCname = getCname;
|
|
39
6
|
exports.applyCodecParameters = applyCodecParameters;
|
|
40
|
-
const sdpTransform =
|
|
7
|
+
const sdpTransform = require("sdp-transform");
|
|
41
8
|
/**
|
|
42
9
|
* This function must be called with an SDP with 1 m=audio and 1 m=video
|
|
43
10
|
* sections.
|
|
@@ -85,7 +52,7 @@ function extractRtpCapabilities({ sdpObject, }) {
|
|
|
85
52
|
codecsMap.set(codec.preferredPayloadType, codec);
|
|
86
53
|
}
|
|
87
54
|
// Get codec parameters.
|
|
88
|
-
for (const fmtp of m.fmtp
|
|
55
|
+
for (const fmtp of m.fmtp ?? []) {
|
|
89
56
|
const parameters = sdpTransform.parseParams(fmtp.config);
|
|
90
57
|
const codec = codecsMap.get(fmtp.payload);
|
|
91
58
|
if (!codec) {
|
|
@@ -98,7 +65,7 @@ function extractRtpCapabilities({ sdpObject, }) {
|
|
|
98
65
|
codec.parameters = parameters;
|
|
99
66
|
}
|
|
100
67
|
// Get RTCP feedback for each codec.
|
|
101
|
-
for (const fb of m.rtcpFb
|
|
68
|
+
for (const fb of m.rtcpFb ?? []) {
|
|
102
69
|
const feedback = {
|
|
103
70
|
type: fb.type,
|
|
104
71
|
parameter: fb.subtype,
|
|
@@ -126,7 +93,7 @@ function extractRtpCapabilities({ sdpObject, }) {
|
|
|
126
93
|
}
|
|
127
94
|
}
|
|
128
95
|
// Get RTP header extensions.
|
|
129
|
-
for (const ext of m.ext
|
|
96
|
+
for (const ext of m.ext ?? []) {
|
|
130
97
|
// Ignore encrypted extensions (not yet supported in mediasoup).
|
|
131
98
|
if (ext['encrypt-uri']) {
|
|
132
99
|
continue;
|
|
@@ -149,10 +116,10 @@ function extractDtlsParameters({ sdpObject, }) {
|
|
|
149
116
|
let setup = sdpObject.setup;
|
|
150
117
|
let fingerprint = sdpObject.fingerprint;
|
|
151
118
|
if (!setup || !fingerprint) {
|
|
152
|
-
const mediaObject = (sdpObject.media
|
|
119
|
+
const mediaObject = (sdpObject.media ?? []).find((m) => m.port !== 0);
|
|
153
120
|
if (mediaObject) {
|
|
154
|
-
setup
|
|
155
|
-
fingerprint
|
|
121
|
+
setup ??= mediaObject.setup;
|
|
122
|
+
fingerprint ??= mediaObject.fingerprint;
|
|
156
123
|
}
|
|
157
124
|
}
|
|
158
125
|
if (!setup) {
|
|
@@ -188,7 +155,7 @@ function extractDtlsParameters({ sdpObject, }) {
|
|
|
188
155
|
return dtlsParameters;
|
|
189
156
|
}
|
|
190
157
|
function getCname({ offerMediaObject, }) {
|
|
191
|
-
const ssrcCnameLine = (offerMediaObject.ssrcs
|
|
158
|
+
const ssrcCnameLine = (offerMediaObject.ssrcs ?? []).find((line) => line.attribute === 'cname');
|
|
192
159
|
if (!ssrcCnameLine) {
|
|
193
160
|
return '';
|
|
194
161
|
}
|
|
@@ -205,12 +172,12 @@ function applyCodecParameters({ offerRtpParameters, answerMediaObject, }) {
|
|
|
205
172
|
if (mimeType !== 'audio/opus') {
|
|
206
173
|
continue;
|
|
207
174
|
}
|
|
208
|
-
const rtp = (answerMediaObject.rtp
|
|
175
|
+
const rtp = (answerMediaObject.rtp ?? []).find((r) => r.payload === codec.payloadType);
|
|
209
176
|
if (!rtp) {
|
|
210
177
|
continue;
|
|
211
178
|
}
|
|
212
179
|
// Just in case.
|
|
213
|
-
answerMediaObject.fmtp = answerMediaObject.fmtp
|
|
180
|
+
answerMediaObject.fmtp = answerMediaObject.fmtp ?? [];
|
|
214
181
|
let fmtp = answerMediaObject.fmtp.find((f) => f.payload === codec.payloadType);
|
|
215
182
|
if (!fmtp) {
|
|
216
183
|
fmtp = { payload: codec.payloadType, config: '' };
|
|
@@ -221,7 +188,7 @@ function applyCodecParameters({ offerRtpParameters, answerMediaObject, }) {
|
|
|
221
188
|
case 'audio/opus': {
|
|
222
189
|
const spropStereo = codec.parameters['sprop-stereo'];
|
|
223
190
|
if (spropStereo !== undefined) {
|
|
224
|
-
parameters
|
|
191
|
+
parameters['stereo'] = Number(spropStereo) ? 1 : 0;
|
|
225
192
|
}
|
|
226
193
|
break;
|
|
227
194
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plainRtpUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/plainRtpUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"plainRtpUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/plainRtpUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,wBAAgB,yBAAyB,CAAC,EACzC,SAAS,EACT,IAAI,GACJ,EAAE;IACF,SAAS,EAAE,GAAG,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;CAChB,GAAG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACb,CAcA;AAED,wBAAgB,eAAe,CAAC,EAC/B,SAAS,EACT,IAAI,GACJ,EAAE;IACF,SAAS,EAAE,GAAG,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;CAChB,GAAG,qBAAqB,EAAE,CAe1B"}
|
|
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.extractPlainRtpParameters = extractPlainRtpParameters;
|
|
4
4
|
exports.getRtpEncodings = getRtpEncodings;
|
|
5
5
|
function extractPlainRtpParameters({ sdpObject, kind, }) {
|
|
6
|
-
const mediaObject = (sdpObject.media
|
|
6
|
+
const mediaObject = (sdpObject.media ?? []).find((m) => m.type === kind);
|
|
7
7
|
if (!mediaObject) {
|
|
8
8
|
throw new Error(`m=${kind} section not found`);
|
|
9
9
|
}
|
|
10
|
-
const connectionObject = mediaObject.connection
|
|
10
|
+
const connectionObject = mediaObject.connection ?? sdpObject.connection;
|
|
11
11
|
return {
|
|
12
12
|
ip: connectionObject.ip,
|
|
13
13
|
ipVersion: connectionObject.version,
|
|
@@ -15,11 +15,11 @@ function extractPlainRtpParameters({ sdpObject, kind, }) {
|
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
function getRtpEncodings({ sdpObject, kind, }) {
|
|
18
|
-
const mediaObject = (sdpObject.media
|
|
18
|
+
const mediaObject = (sdpObject.media ?? []).find((m) => m.type === kind);
|
|
19
19
|
if (!mediaObject) {
|
|
20
20
|
throw new Error(`m=${kind} section not found`);
|
|
21
21
|
}
|
|
22
|
-
const ssrcCnameLine = (mediaObject.ssrcs
|
|
22
|
+
const ssrcCnameLine = (mediaObject.ssrcs ?? [])[0];
|
|
23
23
|
const ssrc = ssrcCnameLine ? ssrcCnameLine.id : null;
|
|
24
24
|
if (ssrc) {
|
|
25
25
|
return [{ ssrc }];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planBUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/planBUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"planBUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/planBUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,wBAAgB,eAAe,CAAC,EAC/B,gBAAgB,EAChB,KAAK,GACL,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;CACxB,GAAG,qBAAqB,EAAE,CAyE1B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAClC,gBAAgB,EAChB,KAAK,EACL,UAAU,GACV,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAmHP"}
|