From 29c38aa1079ba25ee912f132aadd05313b5443c1 Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Fri, 9 Nov 2018 23:25:50 +0100 Subject: [PATCH] Improve MCU support --- .../talk/controllers/CallController.java | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/controllers/CallController.java b/app/src/main/java/com/nextcloud/talk/controllers/CallController.java index f5e9aaf37..07de98553 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/CallController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/CallController.java @@ -1189,8 +1189,6 @@ public class CallController extends BaseController { }); - } else { - alwaysGetPeerConnectionWrapperForSessionId(webSocketClient.getSessionId(), true); } } @@ -1484,7 +1482,9 @@ public class CallController extends BaseController { } for (MagicPeerConnectionWrapper magicPeerConnectionWrapper : magicPeerConnectionWrapperList) { - oldSesssions.add(magicPeerConnectionWrapper.getSessionId()); + if (!magicPeerConnectionWrapper.isMCUPublisher()) { + oldSesssions.add(magicPeerConnectionWrapper.getSessionId()); + } } // Calculate sessions that left the call @@ -1501,15 +1501,10 @@ public class CallController extends BaseController { getPeersForCall(); } - for (String sessionId : newSessions) { - if (hasExternalSignalingServer && webSocketClient.hasMCU()) { - if (!sessionId.equals(webSocketClient.getSessionId())) { - alwaysGetPeerConnectionWrapperForSessionId(sessionId, false); + hasMCU = hasExternalSignalingServer && webSocketClient != null && webSocketClient.hasMCU(); - } - } else { - alwaysGetPeerConnectionWrapperForSessionId(sessionId, false); - } + for (String sessionId : newSessions) { + alwaysGetPeerConnectionWrapperForSessionId(sessionId, hasMCU && sessionId.equals(webSocketClient.getSessionId())); } for (String sessionId : oldSesssions) { @@ -1559,8 +1554,6 @@ public class CallController extends BaseController { if ((magicPeerConnectionWrapper = getPeerConnectionWrapperForSessionId(sessionId)) != null) { return magicPeerConnectionWrapper; } else { - hasMCU = externalSignalingServer != null && webSocketClient != null && webSocketClient.hasMCU(); - if (hasMCU && publisher) { magicPeerConnectionWrapper = new MagicPeerConnectionWrapper(peerConnectionFactory, iceServers, sdpConstraintsForMCU, sessionId, callSession, localMediaStream, true, true);