From af531e9f8036bf920d46ed5cbf3d9b3b1b47c804 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Cervi=C3=B1o?= Date: Thu, 26 Apr 2018 14:05:47 +0200 Subject: [PATCH] Uses new promise-based API to fix simulcast in Firefox --- .../erizoClient/src/webrtc-stacks/FirefoxStack.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/erizo_controller/erizoClient/src/webrtc-stacks/FirefoxStack.js b/erizo_controller/erizoClient/src/webrtc-stacks/FirefoxStack.js index df579dc9a0..f42137d5f6 100644 --- a/erizo_controller/erizoClient/src/webrtc-stacks/FirefoxStack.js +++ b/erizo_controller/erizoClient/src/webrtc-stacks/FirefoxStack.js @@ -23,18 +23,20 @@ const FirefoxStack = (specInput) => { for (let layer = totalLayers - 1; layer >= totalLayers - numSpatialLayers; layer -= 1) { parameters.encodings.push(possibleLayers[layer]); } - sender.setParameters(parameters); + return sender.setParameters(parameters); }; const enableSimulcast = () => { if (!that.simulcast) { - return; + return []; } + const promises = []; that.peerConnection.getSenders().forEach((sender) => { if (sender.track.kind === 'video') { - getSimulcastParameters(sender); + promises.push(getSimulcastParameters(sender)); } }); + return promises; }; that.enableSimulcast = sdp => sdp; @@ -42,10 +44,13 @@ const FirefoxStack = (specInput) => { const baseCreateOffer = that.createOffer; that.createOffer = (isSubscribe, forceOfferToReceive = false, streamId = '') => { + let promises = []; if (isSubscribe !== true) { - enableSimulcast(); + promises = enableSimulcast(); } - baseCreateOffer(isSubscribe, forceOfferToReceive, streamId); + Promise.all(promises).then(() => { + baseCreateOffer(isSubscribe, forceOfferToReceive, streamId); + }); }; return that;