ソースを参照

ref(JingleSessionPC): tear down remote streams state

Reset the state of remote MediaStreams in order to fix sequence number
synchronization problem. When a conference is moved to another bridge or
if channels are re-allocated the bridge looses the most recent sequence
number seen by the client which makes Chrome drop all video packets
until the JVB catches up with the sequence numbers (if at all).
dev1
paweldomas 7年前
コミット
2080e812a9
1個のファイルの変更13行の追加0行の削除
  1. 13
    0
      modules/xmpp/JingleSessionPC.js

+ 13
- 0
modules/xmpp/JingleSessionPC.js ファイルの表示

@@ -988,6 +988,19 @@ export default class JingleSessionPC extends JingleSession {
988 988
             .find('>content[name=\'data\']')
989 989
             .attr('senders', 'rejected');
990 990
 
991
+        // Remove all remote sources in order to reset the client's state
992
+        // for the remote MediaStreams. When a conference is moved to
993
+        // another bridge it will start streaming with a sequence number
994
+        // that is not in sync with the most recently seen by the client.
995
+        // The symptoms include frozen or black video and lots of "failed to
996
+        // unprotect SRTP packets" in Chrome logs.
997
+        jingleOfferElem
998
+            .find('>content>description>source')
999
+            .remove();
1000
+        jingleOfferElem
1001
+            .find('>content>description>ssrc-group')
1002
+            .remove();
1003
+
991 1004
         // First set an offer with a rejected 'data' section
992 1005
         this.setOfferAnswerCycle(
993 1006
             jingleOfferElem,

読み込み中…
キャンセル
保存