Преглед на файлове

Changes the order in which SSRCs from the bridge and those from other

participants are added. This causes the not-rendered "mixed" SSRC from the
bridge to appear first in session-initiate, and thus to appear first in
participants' remote description.
j8
Boris Grozev преди 10 години
родител
ревизия
d976bfaa30
променени са 1 файла, в които са добавени 20 реда и са изтрити 19 реда
  1. 20
    19
      libs/colibri/colibri.focus.js

+ 20
- 19
libs/colibri/colibri.focus.js Целия файл

@@ -677,7 +677,7 @@ ColibriFocus.prototype.initiate = function (peer, isInitiator) {
677 677
     }
678 678
     sdp.removeSessionLines('a=msid-semantic:'); // FIXME: not mapped over jingle anyway...
679 679
     for (var i = 0; i < sdp.media.length; i++) {
680
-        if (!config.useRtcpMux){
680
+        if (!config.useRtcpMux) {
681 681
             sdp.removeMediaLines(i, 'a=rtcp-mux');
682 682
         }
683 683
         sdp.removeMediaLines(i, 'a=ssrc:');
@@ -689,25 +689,7 @@ ColibriFocus.prototype.initiate = function (peer, isInitiator) {
689 689
         sdp.removeMediaLines(i, 'a=ice-pwd:');
690 690
         sdp.removeMediaLines(i, 'a=fingerprint:');
691 691
         sdp.removeMediaLines(i, 'a=setup:');
692
-
693
-        if (1) { //i > 0) { // not for audio FIXME: does not work as intended
694
-            // re-add all remote a=ssrcs _and_ a=ssrc-group
695
-            for (var jid in this.remotessrc) {
696
-                if (jid == peer || !this.remotessrc[jid][i])
697
-                    continue;
698
-                sdp.media[i] += this.remotessrc[jid][i];
699
-            }
700
-
701
-            // add local a=ssrc-group: lines
702
-            lines = SDPUtil.find_lines(localSDP.media[i], 'a=ssrc-group:');
703
-            if (lines.length != 0)
704
-                sdp.media[i] += lines.join('\r\n') + '\r\n';
705
-
706
-            // and local a=ssrc: lines
707
-            sdp.media[i] += SDPUtil.find_lines(localSDP.media[i], 'a=ssrc:').join('\r\n') + '\r\n';
708
-        }
709 692
     }
710
-    sdp.raw = sdp.session + sdp.media.join('');
711 693
 
712 694
     // add stuff we got from the bridge
713 695
     for (var j = 0; j < sdp.media.length; j++) {
@@ -756,6 +738,25 @@ ColibriFocus.prototype.initiate = function (peer, isInitiator) {
756 738
             }
757 739
         }
758 740
     }
741
+
742
+    for (var i = 0; i < sdp.media.length; i++) {
743
+        // re-add all remote a=ssrcs _and_ a=ssrc-group
744
+        for (var jid in this.remotessrc) {
745
+            if (jid == peer || !this.remotessrc[jid][i])
746
+                continue;
747
+            sdp.media[i] += this.remotessrc[jid][i];
748
+        }
749
+
750
+        // add local a=ssrc-group: lines
751
+        lines = SDPUtil.find_lines(localSDP.media[i], 'a=ssrc-group:');
752
+        if (lines.length != 0)
753
+            sdp.media[i] += lines.join('\r\n') + '\r\n';
754
+
755
+        // and local a=ssrc: lines
756
+        sdp.media[i] += SDPUtil.find_lines(localSDP.media[i], 'a=ssrc:').join('\r\n') + '\r\n';
757
+    }
758
+    sdp.raw = sdp.session + sdp.media.join('');
759
+
759 760
     // make a new colibri session and configure it
760 761
     // FIXME: is it correct to use this.connection.jid when used in a MUC?
761 762
     var sess = new ColibriSession(this.connection.jid,

Loading…
Отказ
Запис