Explorar el Código

Merge pull request #70 from jitsi/ssrc_remove

Simplify source-remove notifications.
master
George Politis hace 9 años
padre
commit
4285128d3e
Se han modificado 1 ficheros con 13 adiciones y 7 borrados
  1. 13
    7
      modules/xmpp/JingleSessionPC.js

+ 13
- 7
modules/xmpp/JingleSessionPC.js Ver fichero

@@ -783,6 +783,7 @@ JingleSessionPC.prototype.removeSource = function (elem) {
783 783
                 lines += 'a=ssrc-group:' + semantics + ' ' + ssrcs.join(' ') + '\r\n';
784 784
             }
785 785
         });
786
+        var ssrcs = [];
786 787
         var tmp = $(content).find('source[xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"]'); // can handle both >source and >description>source
787 788
         tmp.each(function () {
788 789
             var ssrc = $(this).attr('ssrc');
@@ -791,18 +792,23 @@ JingleSessionPC.prototype.removeSource = function (elem) {
791 792
                 logger.error("Got remove stream request for my own ssrc: "+ssrc);
792 793
                 return;
793 794
             }
794
-            $(this).find('>parameter').each(function () {
795
-                lines += 'a=ssrc:' + ssrc + ' ' + $(this).attr('name');
796
-                if ($(this).attr('value') && $(this).attr('value').length)
797
-                    lines += ':' + $(this).attr('value');
798
-                lines += '\r\n';
799
-            });
795
+            ssrcs.push(ssrc);
800 796
         });
801 797
         sdp.media.forEach(function(media, idx) {
802 798
             if (!SDPUtil.find_line(media, 'a=mid:' + name))
803 799
                 return;
804
-            sdp.media[idx] += lines;
805 800
             if (!self.removessrc[idx]) self.removessrc[idx] = '';
801
+            ssrcs.forEach(function(ssrc) {
802
+                var ssrcLines = SDPUtil.find_lines(media, 'a=ssrc:' + ssrc);
803
+                if (ssrcLines.length)
804
+                    self.removessrc[idx] += ssrcLines.join("\r\n")+"\r\n";
805
+                // Clear any pending 'source-add' for this SSRC 
806
+                if (self.addssrc[idx]) {
807
+                    self.addssrc[idx]
808
+                        = self.addssrc[idx].replace(
809
+                            new RegExp('^a=ssrc:'+ssrc+' .*\r\n', 'gm'), '');
810
+                }
811
+            });
806 812
             self.removessrc[idx] += lines;
807 813
         });
808 814
         sdp.raw = sdp.session + sdp.media.join('');

Loading…
Cancelar
Guardar