We are moving to a new platform to serve you better! Stay tuned and watch out for our email on your inbox! [close]
Start a new topic
Solved

Chrome M50–Plugin connection failure with SkylinkJS 0.6.11 and below [hotfix included]

If you are using SkylinkJS v0.6.12+, SkylinkJS will manage this issue automatically. This issue affects only SkylinkJS v0.6.11 and lower


The issue :

Chrome 50 was released today and adds supports for VP9 (video codec).

While the plugin removes the VP9's codec candidate in its answer-sdp, it fails to remove its retransmit lines (rtx). This causes Chrome to reject the answer-sdp.

Workaround [OLD] [See updated workaround below]:

A new plugin fixing this issue should be released shortly. In the mean time, you can use the following JS code as a hot fix to remove the retransmit candidate specifically for VP9:

 if (['chrome', 'opera'].indexOf(window.webrtcDetectedBrowser) > -1) {

  // Chrome set 101 as VP9 codec ID

  sessionDescription.sdp = sessionDescription.sdp.replace(/a=rtpmap:\d+ rtx\/\d+\r\na=fmtp:\d+ apt=101\r\n/g, '');

}

For example :

pc1.createOffer(function(sessionDescription) {

  if (['chrome', 'opera'].indexOf(window.webrtcDetectedBrowser) > -1) {

  // Chrome set 101 as VP9 codec ID

  sessionDescription.sdp = sessionDescription.sdp.replace(/a=rtpmap:\d+ rtx\/\d+\r\na=fmtp:\d+ apt=101\r\n/g, '');

  }

  pc1.setLocalDescription(sessionDescription, onSetSessionDescriptionSuccess, onSetSessionDescriptionError);

  send(sessionDescription);

}, onCreateSessionDescriptionError, offerOptions); 


[UPDATE] 3 October 2016


As H264 support was introduced in Chrome 52 [see here], the recommended workaround with older versions of the plugin is as follows:

    

 if (['chrome', 'opera'].indexOf(window.webrtcDetectedBrowser) > -1) {
  // Chrome set 101 as VP9 codec ID
  sessionDescription.sdp = sessionDescription.sdp.replace(/a=rtpmap:\d+ rtx\/\d+\r\na=fmtp:\d+ apt=101\r\n/g, '');
  // Chrome set 107 as H264 codec ID
  sessionDescription.sdp = sessionDescription.sdp.replace(/a=rtpmap:\d+ rtx\/\d+\r\na=fmtp:\d+ apt=107\r\n/g, '');
}

   

pc1.createOffer(function(sessionDescription) {
  if (['chrome', 'opera'].indexOf(window.webrtcDetectedBrowser) > -1) {
  // Chrome set 101 as VP9 codec ID
  sessionDescription.sdp = sessionDescription.sdp.replace(/a=rtpmap:\d+ rtx\/\d+\r\na=fmtp:\d+ apt=101\r\n/g, '');
  // Chrome set 107 as H264 codec ID
  sessionDescription.sdp = sessionDescription.sdp.replace(/a=rtpmap:\d+ rtx\/\d+\r\na=fmtp:\d+ apt=107\r\n/g, '');
  }
  pc1.setLocalDescription(sessionDescription, onSetSessionDescriptionSuccess, onSetSessionDescriptionError);
  send(sessionDescription);
}, onCreateSessionDescriptionError, offerOptions); 


See here for additional information on removal of payload ID for 107.

1 Comment

This issue is resolved with the 0.8.870 version of the plugin


Release notes : http://support.temasys.com.sg/discussions/topics/12000002667


Login or Signup to post a comment