Socket
Socket
Sign inDemoInstall

sdp

Package Overview
Dependencies
0
Maintainers
2
Versions
47
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.12.0 to 3.0.0

.nyc_output/5fcbc816-295e-41b8-9166-5e0a51aade26.json

2

.nyc_output/processinfo/index.json

@@ -1,1 +0,1 @@

{"processes":{"987304f6-c747-496b-a588-c3a3acec9b3c":{"parent":null,"children":["d2946562-4d8d-4611-a0c2-7de213f7152d"]},"d2946562-4d8d-4611-a0c2-7de213f7152d":{"parent":"987304f6-c747-496b-a588-c3a3acec9b3c","children":[]}},"files":{"/media/fippo/houseparty/webrtc/sdp/sdp.js":["d2946562-4d8d-4611-a0c2-7de213f7152d"]},"externalIds":{}}
{"processes":{"5fcbc816-295e-41b8-9166-5e0a51aade26":{"parent":null,"children":[]}},"files":{"/media/fippo/houseparty/webrtc/sdp/sdp.js":["5fcbc816-295e-41b8-9166-5e0a51aade26"]},"externalIds":{}}
{
"name": "sdp",
"version": "2.12.0",
"version": "3.0.0",
"description": "SDP parsing and serialization utilities",
"main": "sdp.js",
"main": "dist/sdp.js",
"module": "sdp.js",
"repository": {

@@ -11,3 +12,5 @@ "type": "git",

"scripts": {
"build": "babel sdp.js --presets babel-preset-env --out-dir dist",
"coverage": "nyc report --reporter=text-lcov > coverage.lcov && codecov",
"prepare": "npm run build",
"test": "eslint sdp.js test/sdp.js && nyc --reporter html mocha test/sdp.js"

@@ -22,6 +25,9 @@ },

"devDependencies": {
"babel-cli": "^6.26.0",
"babel-core": "^6.26.3",
"babel-preset-env": "^1.7.0",
"chai": "^4.0.0",
"codecov": "^3.0.4",
"codecov": "^3.6.5",
"eslint": "^6.0.1",
"mocha": "^5.2.0",
"mocha": "^7.1.2",
"nyc": "^14.1.1",

@@ -28,0 +34,0 @@ "sinon": "^2.3.2",

@@ -5,3 +5,3 @@ /* eslint-env node */

// SDP helpers.
var SDPUtils = {};
const SDPUtils = {};

@@ -19,12 +19,9 @@ // Generate an alphanumeric identifier for cname or mids.

SDPUtils.splitLines = function(blob) {
return blob.trim().split('\n').map(function(line) {
return line.trim();
});
return blob.trim().split('\n').map(line => line.trim());
};
// Splits SDP into sessionpart and mediasections. Ensures CRLF.
SDPUtils.splitSections = function(blob) {
var parts = blob.split('\nm=');
return parts.map(function(part, index) {
return (index > 0 ? 'm=' + part : part).trim() + '\r\n';
});
const parts = blob.split('\nm=');
return parts.map((part, index) => (index > 0 ?
'm=' + part : part).trim() + '\r\n');
};

@@ -34,3 +31,3 @@

SDPUtils.getDescription = function(blob) {
var sections = SDPUtils.splitSections(blob);
const sections = SDPUtils.splitSections(blob);
return sections && sections[0];

@@ -41,3 +38,3 @@ };

SDPUtils.getMediaSections = function(blob) {
var sections = SDPUtils.splitSections(blob);
const sections = SDPUtils.splitSections(blob);
sections.shift();

@@ -49,5 +46,3 @@ return sections;

SDPUtils.matchPrefix = function(blob, prefix) {
return SDPUtils.splitLines(blob).filter(function(line) {
return line.indexOf(prefix) === 0;
});
return SDPUtils.splitLines(blob).filter(line => line.indexOf(prefix) === 0);
};

@@ -59,3 +54,3 @@

SDPUtils.parseCandidate = function(line) {
var parts;
let parts;
// Parse both variants.

@@ -68,5 +63,5 @@ if (line.indexOf('a=candidate:') === 0) {

var candidate = {
const candidate = {
foundation: parts[0],
component: parseInt(parts[1], 10),
component: {1: 'rtp', 2: 'rtcp'}[parts[1]],
protocol: parts[2].toLowerCase(),

@@ -78,6 +73,6 @@ priority: parseInt(parts[3], 10),

// skip parts[6] == 'typ'
type: parts[7]
type: parts[7],
};
for (var i = 8; i < parts.length; i += 2) {
for (let i = 8; i < parts.length; i += 2) {
switch (parts[i]) {

@@ -94,3 +89,3 @@ case 'raddr':

case 'ufrag':
candidate.ufrag = parts[i + 1]; // for backward compability.
candidate.ufrag = parts[i + 1]; // for backward compatibility.
candidate.usernameFragment = parts[i + 1];

@@ -108,5 +103,13 @@ break;

SDPUtils.writeCandidate = function(candidate) {
var sdp = [];
const sdp = [];
sdp.push(candidate.foundation);
sdp.push(candidate.component);
const component = candidate.component;
if (component === 'rtp') {
sdp.push(1);
} else if (component === 'rtcp') {
sdp.push(2);
} else {
sdp.push(component);
}
sdp.push(candidate.protocol.toUpperCase());

@@ -117,3 +120,3 @@ sdp.push(candidate.priority);

var type = candidate.type;
const type = candidate.type;
sdp.push('typ');

@@ -148,5 +151,5 @@ sdp.push(type);

SDPUtils.parseRtpMap = function(line) {
var parts = line.substr(9).split(' ');
var parsed = {
payloadType: parseInt(parts.shift(), 10) // was: id
let parts = line.substr(9).split(' ');
const parsed = {
payloadType: parseInt(parts.shift(), 10), // was: id
};

@@ -167,7 +170,7 @@

SDPUtils.writeRtpMap = function(codec) {
var pt = codec.payloadType;
let pt = codec.payloadType;
if (codec.preferredPayloadType !== undefined) {
pt = codec.preferredPayloadType;
}
var channels = codec.channels || codec.numChannels || 1;
const channels = codec.channels || codec.numChannels || 1;
return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +

@@ -181,7 +184,7 @@ (channels !== 1 ? '/' + channels : '') + '\r\n';

SDPUtils.parseExtmap = function(line) {
var parts = line.substr(9).split(' ');
const parts = line.substr(9).split(' ');
return {
id: parseInt(parts[0], 10),
direction: parts[0].indexOf('/') > 0 ? parts[0].split('/')[1] : 'sendrecv',
uri: parts[1]
uri: parts[1],
};

@@ -204,6 +207,6 @@ };

SDPUtils.parseFmtp = function(line) {
var parsed = {};
var kv;
var parts = line.substr(line.indexOf(' ') + 1).split(';');
for (var j = 0; j < parts.length; j++) {
const parsed = {};
let kv;
const parts = line.substr(line.indexOf(' ') + 1).split(';');
for (let j = 0; j < parts.length; j++) {
kv = parts[j].trim().split('=');

@@ -217,4 +220,4 @@ parsed[kv[0].trim()] = kv[1];

SDPUtils.writeFmtp = function(codec) {
var line = '';
var pt = codec.payloadType;
let line = '';
let pt = codec.payloadType;
if (codec.preferredPayloadType !== undefined) {

@@ -224,4 +227,4 @@ pt = codec.preferredPayloadType;

if (codec.parameters && Object.keys(codec.parameters).length) {
var params = [];
Object.keys(codec.parameters).forEach(function(param) {
const params = [];
Object.keys(codec.parameters).forEach(param => {
if (codec.parameters[param]) {

@@ -241,6 +244,6 @@ params.push(param + '=' + codec.parameters[param]);

SDPUtils.parseRtcpFb = function(line) {
var parts = line.substr(line.indexOf(' ') + 1).split(' ');
const parts = line.substr(line.indexOf(' ') + 1).split(' ');
return {
type: parts.shift(),
parameter: parts.join(' ')
parameter: parts.join(' '),
};

@@ -250,4 +253,4 @@ };

SDPUtils.writeRtcpFb = function(codec) {
var lines = '';
var pt = codec.payloadType;
let lines = '';
let pt = codec.payloadType;
if (codec.preferredPayloadType !== undefined) {

@@ -258,3 +261,3 @@ pt = codec.preferredPayloadType;

// FIXME: special handling for trr-int?
codec.rtcpFeedback.forEach(function(fb) {
codec.rtcpFeedback.forEach(fb => {
lines += 'a=rtcp-fb:' + pt + ' ' + fb.type +

@@ -271,7 +274,7 @@ (fb.parameter && fb.parameter.length ? ' ' + fb.parameter : '') +

SDPUtils.parseSsrcMedia = function(line) {
var sp = line.indexOf(' ');
var parts = {
ssrc: parseInt(line.substr(7, sp - 7), 10)
const sp = line.indexOf(' ');
const parts = {
ssrc: parseInt(line.substr(7, sp - 7), 10),
};
var colon = line.indexOf(':', sp);
const colon = line.indexOf(':', sp);
if (colon > -1) {

@@ -287,8 +290,6 @@ parts.attribute = line.substr(sp + 1, colon - sp - 1);

SDPUtils.parseSsrcGroup = function(line) {
var parts = line.substr(13).split(' ');
const parts = line.substr(13).split(' ');
return {
semantics: parts.shift(),
ssrcs: parts.map(function(ssrc) {
return parseInt(ssrc, 10);
})
ssrcs: parts.map(ssrc => parseInt(ssrc, 10)),
};

@@ -300,3 +301,3 @@ };

SDPUtils.getMid = function(mediaSection) {
var mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:')[0];
const mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:')[0];
if (mid) {

@@ -308,6 +309,6 @@ return mid.substr(6);

SDPUtils.parseFingerprint = function(line) {
var parts = line.substr(14).split(' ');
const parts = line.substr(14).split(' ');
return {
algorithm: parts[0].toLowerCase(), // algorithm is case-sensitive in Edge.
value: parts[1]
value: parts[1],
};

@@ -320,3 +321,3 @@ };

SDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {
var lines = SDPUtils.matchPrefix(mediaSection + sessionpart,
const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,
'a=fingerprint:');

@@ -327,3 +328,3 @@ // Note: a=setup line is ignored since we use the 'auto' role.

role: 'auto',
fingerprints: lines.map(SDPUtils.parseFingerprint)
fingerprints: lines.map(SDPUtils.parseFingerprint),
};

@@ -334,4 +335,4 @@ };

SDPUtils.writeDtlsParameters = function(params, setupType) {
var sdp = 'a=setup:' + setupType + '\r\n';
params.fingerprints.forEach(function(fp) {
let sdp = 'a=setup:' + setupType + '\r\n';
params.fingerprints.forEach(fp => {
sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\r\n';

@@ -345,3 +346,3 @@ });

SDPUtils.parseCryptoLine = function(line) {
var parts = line.substr(9).split(' ');
const parts = line.substr(9).split(' ');
return {

@@ -371,3 +372,3 @@ tag: parseInt(parts[0], 10),

}
var parts = keyParams.substr(7).split('|');
const parts = keyParams.substr(7).split('|');
return {

@@ -391,5 +392,5 @@ keyMethod: 'inline',

// Extracts all SDES paramters.
// Extracts all SDES parameters.
SDPUtils.getCryptoParameters = function(mediaSection, sessionpart) {
var lines = SDPUtils.matchPrefix(mediaSection + sessionpart,
const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,
'a=crypto:');

@@ -403,5 +404,5 @@ return lines.map(SDPUtils.parseCryptoLine);

SDPUtils.getIceParameters = function(mediaSection, sessionpart) {
var ufrag = SDPUtils.matchPrefix(mediaSection + sessionpart,
const ufrag = SDPUtils.matchPrefix(mediaSection + sessionpart,
'a=ice-ufrag:')[0];
var pwd = SDPUtils.matchPrefix(mediaSection + sessionpart,
const pwd = SDPUtils.matchPrefix(mediaSection + sessionpart,
'a=ice-pwd:')[0];

@@ -419,4 +420,8 @@ if (!(ufrag && pwd)) {

SDPUtils.writeIceParameters = function(params) {
return 'a=ice-ufrag:' + params.usernameFragment + '\r\n' +
let sdp = 'a=ice-ufrag:' + params.usernameFragment + '\r\n' +
'a=ice-pwd:' + params.password + '\r\n';
if (params.iceLite) {
sdp += 'a=ice-lite\r\n';
}
return sdp;
};

@@ -426,17 +431,17 @@

SDPUtils.parseRtpParameters = function(mediaSection) {
var description = {
const description = {
codecs: [],
headerExtensions: [],
fecMechanisms: [],
rtcp: []
rtcp: [],
};
var lines = SDPUtils.splitLines(mediaSection);
var mline = lines[0].split(' ');
for (var i = 3; i < mline.length; i++) { // find all codecs from mline[3..]
var pt = mline[i];
var rtpmapline = SDPUtils.matchPrefix(
const lines = SDPUtils.splitLines(mediaSection);
const mline = lines[0].split(' ');
for (let i = 3; i < mline.length; i++) { // find all codecs from mline[3..]
const pt = mline[i];
const rtpmapline = SDPUtils.matchPrefix(
mediaSection, 'a=rtpmap:' + pt + ' ')[0];
if (rtpmapline) {
var codec = SDPUtils.parseRtpMap(rtpmapline);
var fmtps = SDPUtils.matchPrefix(
const codec = SDPUtils.parseRtpMap(rtpmapline);
const fmtps = SDPUtils.matchPrefix(
mediaSection, 'a=fmtp:' + pt + ' ');

@@ -460,3 +465,3 @@ // Only the first a=fmtp:<pt> is considered.

}
SDPUtils.matchPrefix(mediaSection, 'a=extmap:').forEach(function(line) {
SDPUtils.matchPrefix(mediaSection, 'a=extmap:').forEach(line => {
description.headerExtensions.push(SDPUtils.parseExtmap(line));

@@ -471,3 +476,3 @@ });

SDPUtils.writeRtpDescription = function(kind, caps) {
var sdp = '';
let sdp = '';

@@ -478,3 +483,3 @@ // Build the mline.

sdp += ' UDP/TLS/RTP/SAVPF ';
sdp += caps.codecs.map(function(codec) {
sdp += caps.codecs.map(codec => {
if (codec.preferredPayloadType !== undefined) {

@@ -490,3 +495,3 @@ return codec.preferredPayloadType;

// Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.
caps.codecs.forEach(function(codec) {
caps.codecs.forEach(codec => {
sdp += SDPUtils.writeRtpMap(codec);

@@ -496,4 +501,4 @@ sdp += SDPUtils.writeFmtp(codec);

});
var maxptime = 0;
caps.codecs.forEach(function(codec) {
let maxptime = 0;
caps.codecs.forEach(codec => {
if (codec.maxptime > maxptime) {

@@ -506,6 +511,5 @@ maxptime = codec.maxptime;

}
sdp += 'a=rtcp-mux\r\n';
if (caps.headerExtensions) {
caps.headerExtensions.forEach(function(extension) {
caps.headerExtensions.forEach(extension => {
sdp += SDPUtils.writeExtmap(extension);

@@ -521,24 +525,18 @@ });

SDPUtils.parseRtpEncodingParameters = function(mediaSection) {
var encodingParameters = [];
var description = SDPUtils.parseRtpParameters(mediaSection);
var hasRed = description.fecMechanisms.indexOf('RED') !== -1;
var hasUlpfec = description.fecMechanisms.indexOf('ULPFEC') !== -1;
const encodingParameters = [];
const description = SDPUtils.parseRtpParameters(mediaSection);
const hasRed = description.fecMechanisms.indexOf('RED') !== -1;
const hasUlpfec = description.fecMechanisms.indexOf('ULPFEC') !== -1;
// filter a=ssrc:... cname:, ignore PlanB-msid
var ssrcs = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
.map(function(line) {
return SDPUtils.parseSsrcMedia(line);
})
.filter(function(parts) {
return parts.attribute === 'cname';
});
var primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;
var secondarySsrc;
const ssrcs = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
.map(line => SDPUtils.parseSsrcMedia(line))
.filter(parts => parts.attribute === 'cname');
const primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;
let secondarySsrc;
var flows = SDPUtils.matchPrefix(mediaSection, 'a=ssrc-group:FID')
.map(function(line) {
var parts = line.substr(17).split(' ');
return parts.map(function(part) {
return parseInt(part, 10);
});
const flows = SDPUtils.matchPrefix(mediaSection, 'a=ssrc-group:FID')
.map(line => {
const parts = line.substr(17).split(' ');
return parts.map(part => parseInt(part, 10));
});

@@ -549,7 +547,7 @@ if (flows.length > 0 && flows[0].length > 1 && flows[0][0] === primarySsrc) {

description.codecs.forEach(function(codec) {
description.codecs.forEach(codec => {
if (codec.name.toUpperCase() === 'RTX' && codec.parameters.apt) {
var encParam = {
let encParam = {
ssrc: primarySsrc,
codecPayloadType: parseInt(codec.parameters.apt, 10)
codecPayloadType: parseInt(codec.parameters.apt, 10),
};

@@ -564,3 +562,3 @@ if (primarySsrc && secondarySsrc) {

ssrc: primarySsrc,
mechanism: hasUlpfec ? 'red+ulpfec' : 'red'
mechanism: hasUlpfec ? 'red+ulpfec' : 'red',
};

@@ -573,3 +571,3 @@ encodingParameters.push(encParam);

encodingParameters.push({
ssrc: primarySsrc
ssrc: primarySsrc,
});

@@ -579,3 +577,3 @@ }

// we support both b=AS and b=TIAS but interpret AS as TIAS.
var bandwidth = SDPUtils.matchPrefix(mediaSection, 'b=');
let bandwidth = SDPUtils.matchPrefix(mediaSection, 'b=');
if (bandwidth.length) {

@@ -591,3 +589,3 @@ if (bandwidth[0].indexOf('b=TIAS:') === 0) {

}
encodingParameters.forEach(function(params) {
encodingParameters.forEach(params => {
params.maxBitrate = bandwidth;

@@ -601,13 +599,9 @@ });

SDPUtils.parseRtcpParameters = function(mediaSection) {
var rtcpParameters = {};
const rtcpParameters = {};
// Gets the first SSRC. Note tha with RTX there might be multiple
// Gets the first SSRC. Note that with RTX there might be multiple
// SSRCs.
var remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
.map(function(line) {
return SDPUtils.parseSsrcMedia(line);
})
.filter(function(obj) {
return obj.attribute === 'cname';
})[0];
const remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
.map(line => SDPUtils.parseSsrcMedia(line))
.filter(obj => obj.attribute === 'cname')[0];
if (remoteSsrc) {

@@ -620,3 +614,3 @@ rtcpParameters.cname = remoteSsrc.value;

// compound is !reducedSize
var rsize = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-rsize');
const rsize = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-rsize');
rtcpParameters.reducedSize = rsize.length > 0;

@@ -627,3 +621,3 @@ rtcpParameters.compound = rsize.length === 0;

// Note that Edge does not support unmuxed RTCP.
var mux = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-mux');
const mux = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-mux');
rtcpParameters.mux = mux.length > 0;

@@ -634,7 +628,23 @@

SDPUtils.writeRtcpParameters = function(rtcpParameters) {
let sdp = '';
if (rtcpParameters.reducedSize) {
sdp += 'a=rtcp-rsize\r\n';
}
if (rtcpParameters.mux) {
sdp += 'a=rtcp-mux\r\n';
}
if (rtcpParameters.ssrc !== undefined && rtcpParameters.cname) {
sdp += 'a=ssrc:' + rtcpParameters.ssrc +
' cname:' + rtcpParameters.cname + '\r\n';
}
return sdp;
};
// parses either a=msid: or a=ssrc:... msid lines and returns
// the id of the MediaStream and MediaStreamTrack.
SDPUtils.parseMsid = function(mediaSection) {
var parts;
var spec = SDPUtils.matchPrefix(mediaSection, 'a=msid:');
let parts;
const spec = SDPUtils.matchPrefix(mediaSection, 'a=msid:');
if (spec.length === 1) {

@@ -644,9 +654,5 @@ parts = spec[0].substr(7).split(' ');

}
var planB = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
.map(function(line) {
return SDPUtils.parseSsrcMedia(line);
})
.filter(function(msidParts) {
return msidParts.attribute === 'msid';
});
const planB = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
.map(line => SDPUtils.parseSsrcMedia(line))
.filter(msidParts => msidParts.attribute === 'msid');
if (planB.length > 0) {

@@ -662,5 +668,5 @@ parts = planB[0].value.split(' ');

SDPUtils.parseSctpDescription = function(mediaSection) {
var mline = SDPUtils.parseMLine(mediaSection);
var maxSizeLine = SDPUtils.matchPrefix(mediaSection, 'a=max-message-size:');
var maxMessageSize;
const mline = SDPUtils.parseMLine(mediaSection);
const maxSizeLine = SDPUtils.matchPrefix(mediaSection, 'a=max-message-size:');
let maxMessageSize;
if (maxSizeLine.length > 0) {

@@ -672,3 +678,3 @@ maxMessageSize = parseInt(maxSizeLine[0].substr(19), 10);

}
var sctpPort = SDPUtils.matchPrefix(mediaSection, 'a=sctp-port:');
const sctpPort = SDPUtils.matchPrefix(mediaSection, 'a=sctp-port:');
if (sctpPort.length > 0) {

@@ -678,8 +684,8 @@ return {

protocol: mline.fmt,
maxMessageSize: maxMessageSize
maxMessageSize,
};
}
var sctpMapLines = SDPUtils.matchPrefix(mediaSection, 'a=sctpmap:');
const sctpMapLines = SDPUtils.matchPrefix(mediaSection, 'a=sctpmap:');
if (sctpMapLines.length > 0) {
var parts = SDPUtils.matchPrefix(mediaSection, 'a=sctpmap:')[0]
const parts = sctpMapLines[0]
.substr(10)

@@ -690,3 +696,3 @@ .split(' ');

protocol: parts[1],
maxMessageSize: maxMessageSize
maxMessageSize,
};

@@ -702,3 +708,3 @@ }

SDPUtils.writeSctpDescription = function(media, sctp) {
var output = [];
let output = [];
if (media.protocol !== 'DTLS/SCTP') {

@@ -708,3 +714,3 @@ output = [

'c=IN IP4 0.0.0.0\r\n',
'a=sctp-port:' + sctp.port + '\r\n'
'a=sctp-port:' + sctp.port + '\r\n',
];

@@ -715,3 +721,3 @@ } else {

'c=IN IP4 0.0.0.0\r\n',
'a=sctpmap:' + sctp.port + ' ' + sctp.protocol + ' 65535\r\n'
'a=sctpmap:' + sctp.port + ' ' + sctp.protocol + ' 65535\r\n',
];

@@ -733,3 +739,3 @@ }

// Write boilder plate for start of SDP
// Write boiler plate for start of SDP
// sessId argument is optional - if not supplied it will

@@ -740,4 +746,4 @@ // be generated randomly

SDPUtils.writeSessionBoilerplate = function(sessId, sessVer, sessUser) {
var sessionId;
var version = sessVer !== undefined ? sessVer : 2;
let sessionId;
const version = sessVer !== undefined ? sessVer : 2;
if (sessId) {

@@ -748,3 +754,3 @@ sessionId = sessId;

}
var user = sessUser || 'thisisadapterortc';
const user = sessUser || 'thisisadapterortc';
// FIXME: sess-id should be an NTP timestamp.

@@ -758,61 +764,7 @@ return 'v=0\r\n' +

SDPUtils.writeMediaSection = function(transceiver, caps, type, stream) {
var sdp = SDPUtils.writeRtpDescription(transceiver.kind, caps);
// Map ICE parameters (ufrag, pwd) to SDP.
sdp += SDPUtils.writeIceParameters(
transceiver.iceGatherer.getLocalParameters());
// Map DTLS parameters to SDP.
sdp += SDPUtils.writeDtlsParameters(
transceiver.dtlsTransport.getLocalParameters(),
type === 'offer' ? 'actpass' : 'active');
sdp += 'a=mid:' + transceiver.mid + '\r\n';
if (transceiver.direction) {
sdp += 'a=' + transceiver.direction + '\r\n';
} else if (transceiver.rtpSender && transceiver.rtpReceiver) {
sdp += 'a=sendrecv\r\n';
} else if (transceiver.rtpSender) {
sdp += 'a=sendonly\r\n';
} else if (transceiver.rtpReceiver) {
sdp += 'a=recvonly\r\n';
} else {
sdp += 'a=inactive\r\n';
}
if (transceiver.rtpSender) {
// spec.
var msid = 'msid:' + stream.id + ' ' +
transceiver.rtpSender.track.id + '\r\n';
sdp += 'a=' + msid;
// for Chrome.
sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +
' ' + msid;
if (transceiver.sendEncodingParameters[0].rtx) {
sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].rtx.ssrc +
' ' + msid;
sdp += 'a=ssrc-group:FID ' +
transceiver.sendEncodingParameters[0].ssrc + ' ' +
transceiver.sendEncodingParameters[0].rtx.ssrc +
'\r\n';
}
}
// FIXME: this should be written by writeRtpDescription.
sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +
' cname:' + SDPUtils.localCName + '\r\n';
if (transceiver.rtpSender && transceiver.sendEncodingParameters[0].rtx) {
sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].rtx.ssrc +
' cname:' + SDPUtils.localCName + '\r\n';
}
return sdp;
};
// Gets the direction from the mediaSection or the sessionpart.
SDPUtils.getDirection = function(mediaSection, sessionpart) {
// Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.
var lines = SDPUtils.splitLines(mediaSection);
for (var i = 0; i < lines.length; i++) {
const lines = SDPUtils.splitLines(mediaSection);
for (let i = 0; i < lines.length; i++) {
switch (lines[i]) {

@@ -835,4 +787,4 @@ case 'a=sendrecv':

SDPUtils.getKind = function(mediaSection) {
var lines = SDPUtils.splitLines(mediaSection);
var mline = lines[0].split(' ');
const lines = SDPUtils.splitLines(mediaSection);
const mline = lines[0].split(' ');
return mline[0].substr(2);

@@ -846,4 +798,4 @@ };

SDPUtils.parseMLine = function(mediaSection) {
var lines = SDPUtils.splitLines(mediaSection);
var parts = lines[0].substr(2).split(' ');
const lines = SDPUtils.splitLines(mediaSection);
const parts = lines[0].substr(2).split(' ');
return {

@@ -853,3 +805,3 @@ kind: parts[0],

protocol: parts[2],
fmt: parts.slice(3).join(' ')
fmt: parts.slice(3).join(' '),
};

@@ -859,4 +811,4 @@ };

SDPUtils.parseOLine = function(mediaSection) {
var line = SDPUtils.matchPrefix(mediaSection, 'o=')[0];
var parts = line.substr(2).split(' ');
const line = SDPUtils.matchPrefix(mediaSection, 'o=')[0];
const parts = line.substr(2).split(' ');
return {

@@ -868,3 +820,3 @@ username: parts[0],

addressType: parts[4],
address: parts[5]
address: parts[5],
};

@@ -878,4 +830,4 @@ };

}
var lines = SDPUtils.splitLines(blob);
for (var i = 0; i < lines.length; i++) {
const lines = SDPUtils.splitLines(blob);
for (let i = 0; i < lines.length; i++) {
if (lines[i].length < 2 || lines[i].charAt(1) !== '=') {

@@ -882,0 +834,0 @@ return false;

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡ïļ by Socket Inc