sdp
Advanced tools
Comparing version 1.1.3 to 1.2.0
{ | ||
"name": "sdp", | ||
"version": "1.1.3", | ||
"version": "1.2.0", | ||
"description": "SDP parsing and serialization utilities", | ||
@@ -5,0 +5,0 @@ "main": "sdp.js", |
26
sdp.js
@@ -435,2 +435,24 @@ /* eslint-env node */ | ||
// parses either a=msid: or a=ssrc:... msid lines an returns | ||
// the id of the MediaStream and MediaStreamTrack. | ||
SDPUtils.parseMsid = function(mediaSection) { | ||
var parts; | ||
var spec = SDPUtils.matchPrefix(mediaSection, 'a=msid:'); | ||
if (spec.length === 1) { | ||
parts = spec[0].substr(7).split(' '); | ||
return {stream: parts[0], track: parts[1]}; | ||
} | ||
var planB = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:') | ||
.map(function(line) { | ||
return SDPUtils.parseSsrcMedia(line); | ||
}) | ||
.filter(function(parts) { | ||
return parts.attribute === 'msid'; | ||
}); | ||
if (planB.length > 0) { | ||
parts = planB[0].value.split(' '); | ||
return {stream: parts[0], track: parts[1]}; | ||
} | ||
}; | ||
SDPUtils.writeSessionBoilerplate = function() { | ||
@@ -468,7 +490,9 @@ // FIXME: sess-id should be an NTP timestamp. | ||
// FIXME: for RTX there might be multiple SSRCs. Not implemented in Edge yet. | ||
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 + | ||
@@ -475,0 +499,0 @@ ' ' + msid; |
@@ -186,5 +186,16 @@ /* jshint node: true */ | ||
'a=rtcp-fb:100 nack\r\n'; | ||
console.log(SDPUtils.writeRtcpFb(codec)); | ||
t.ok(SDPUtils.writeRtcpFb(codec) === expected, 'wrote rtcp-fb'); | ||
t.end(); | ||
}); | ||
test('parseMsid', function(t) { | ||
var spec = 'a=msid:sid tid\r\n'; | ||
var planB = 'a=ssrc:1 cname:V\r\n' + | ||
'a=ssrc:1 msid:sid tid\r\n'; | ||
t.ok(SDPUtils.parseMsid(spec).stream === 'sid', 'parsed spec stream id'); | ||
t.ok(SDPUtils.parseMsid(spec).track === 'tid', 'parsed track stream id'); | ||
t.ok(SDPUtils.parseMsid(planB).stream === 'sid', 'parsed plan B stream id'); | ||
t.ok(SDPUtils.parseMsid(planB).track === 'tid', 'parsed plan B track id'); | ||
t.end(); | ||
}); |
25945
669