Browse Source

Added support for SDP workarounds which are required when renegotiation is on.

pull/206/head
Simon Eisenmann 10 years ago
parent
commit
a157cea813
  1. 4
      static/js/mediastream/peercall.js
  2. 16
      static/js/mediastream/utils.js

4
static/js/mediastream/peercall.js

@ -171,6 +171,8 @@ define(['jquery', 'underscore', 'mediastream/utils', 'mediastream/peerconnection @@ -171,6 +171,8 @@ define(['jquery', 'underscore', 'mediastream/utils', 'mediastream/peerconnection
sessionDescription.sdp = utils.maybePreferVideoReceiveCodec(sessionDescription.sdp, params);
sessionDescription.sdp = utils.maybeSetAudioReceiveBitRate(sessionDescription.sdp, params);
sessionDescription.sdp = utils.maybeSetVideoReceiveBitRate(sessionDescription.sdp, params);
// Apply workarounds.
sessionDescription.sdp = utils.fixLocal(sessionDescription.sdp, params);
};
@ -183,6 +185,8 @@ define(['jquery', 'underscore', 'mediastream/utils', 'mediastream/peerconnection @@ -183,6 +185,8 @@ define(['jquery', 'underscore', 'mediastream/utils', 'mediastream/peerconnection
sessionDescription.sdp = utils.maybeSetAudioSendBitRate(sessionDescription.sdp, params);
sessionDescription.sdp = utils.maybeSetVideoSendBitRate(sessionDescription.sdp, params);
sessionDescription.sdp = utils.maybeSetVideoSendInitialBitRate(sessionDescription.sdp, params);
// Apply workarounds.
sessionDescription.sdp = utils.fixRemote(sessionDescription.sdp, params);
};

16
static/js/mediastream/utils.js

@ -425,7 +425,21 @@ define([], function() { @@ -425,7 +425,21 @@ define([], function() {
maybePreferAudioSendCodec: maybePreferAudioSendCodec,
maybePreferAudioReceiveCodec: maybePreferAudioReceiveCodec,
maybePreferVideoSendCodec: maybePreferVideoSendCodec,
maybePreferVideoReceiveCodec: maybePreferVideoReceiveCodec
maybePreferVideoReceiveCodec: maybePreferVideoReceiveCodec,
fixLocal: function(sdp) {
if (window.webrtcDetectedBrowser === "chrome") {
// Remove all rtx support from locally generated sdp. Chrome
// does create this sometimes wrong.
// TODO(longsleep): Limit to Chrome version, once it is fixed upstream.
// See https://code.google.com/p/webrtc/issues/detail?id=3962
sdp = sdp.replace(/a=rtpmap:\d+ rtx\/\d+\r\n/i, "");
sdp = sdp.replace(/a=fmtp:\d+ apt=\d+\r\n/i, "");
}
return sdp;
},
fixRemote: function(sdp) {
return sdp;
}
}
});

Loading…
Cancel
Save