Преглед изворни кода

Implements workaround for the issues in firefox nightly.

j8
hristoterezov пре 11 година
родитељ
комит
96824e60ab
2 измењених фајлова са 19 додато и 3 уклоњено
  1. 17
    2
      libs/strophe/strophe.jingle.adapter.js
  2. 2
    1
      libs/strophe/strophe.jingle.session.js

+ 17
- 2
libs/strophe/strophe.jingle.adapter.js Прегледај датотеку

@@ -520,9 +520,24 @@ function setupRTC() {
520 520
             RTCIceCandidate = mozRTCIceCandidate;
521 521
             RTC.getLocalSSRC = function (session, callback) {
522 522
                 session.peerconnection.getStats(function (s) {
523
+                        var keys = Object.keys(s);
524
+                        var audio = null;
525
+                        var video = null;
526
+                        for(var i = 0; i < keys.length; i++)
527
+                        {
528
+                            if(keys[i].indexOf("outbound_rtp_audio") != -1)
529
+                            {
530
+                                audio = s[keys[i]].ssrc;
531
+                            }
532
+
533
+                            if(keys[i].indexOf("outbound_rtp_video") != -1)
534
+                            {
535
+                                video = s[keys[i]].ssrc;
536
+                            }
537
+                        }
523 538
                         session.localStreamsSSRC = {
524
-                            "audio": s['outbound_rtp_audio_0'].ssrc,
525
-                            "video": s['outbound_rtp_video_1'].ssrc
539
+                            "audio": audio,//for stable 0
540
+                            "video": video// for stable 1
526 541
                         };
527 542
                         callback(session.localStreamsSSRC);
528 543
                     },

+ 2
- 1
libs/strophe/strophe.jingle.session.js Прегледај датотеку

@@ -296,11 +296,12 @@ JingleSession.prototype.sendIceCandidates = function (candidates) {
296 296
             sid: this.sid});
297 297
     for (var mid = 0; mid < this.localSDP.media.length; mid++) {
298 298
         var cands = candidates.filter(function (el) { return el.sdpMLineIndex == mid; });
299
+        var mline = SDPUtil.parse_mline(this.localSDP.media[mid].split('\r\n')[0]);
299 300
         if (cands.length > 0) {
300 301
             var ice = SDPUtil.iceparams(this.localSDP.media[mid], this.localSDP.session);
301 302
             ice.xmlns = 'urn:xmpp:jingle:transports:ice-udp:1';
302 303
             cand.c('content', {creator: this.initiator == this.me ? 'initiator' : 'responder',
303
-                name: cands[0].sdpMid
304
+                name: (cands[0].sdpMid? cands[0].sdpMid : mline.media)
304 305
             }).c('transport', ice);
305 306
             for (var i = 0; i < cands.length; i++) {
306 307
                 cand.c('candidate', SDPUtil.candidateToJingle(cands[i].candidate)).up();

Loading…
Откажи
Сачувај