This is an automated email from the ASF dual-hosted git repository. solomax pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/master by this push: new cb5abf3 [OPENMEETINGS-2395] video clean-up is improved cb5abf3 is described below commit cb5abf3253559247bb9c3e88157dd210bb6e5383 Author: Maxim Solodovnik <solomax...@gmail.com> AuthorDate: Sat Jun 13 14:36:03 2020 +0700 [OPENMEETINGS-2395] video clean-up is improved --- .../org/apache/openmeetings/web/room/raw-video.js | 33 +++++++++++++--------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js index 129928d..e5f6988 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js @@ -71,6 +71,9 @@ var Video = (function() { } navigator.mediaDevices.getUserMedia(cnts) .then(function(stream) { + if (msg.instanceUid !== v.data('instance-uid')) { + return; + } let _stream = stream; const data = {}; if (stream.getAudioTracks().length !== 0) { @@ -151,10 +154,10 @@ var Video = (function() { data.rtcPeer = new kurentoUtils.WebRtcPeer.WebRtcPeerSendonly( VideoUtil.addIceServers(options, msg) , function (error) { + if (true === this.cleaned) { + return; + } if (error) { - if (true === this.cleaned) { - return; - } return OmUtil.error(error); } if (data.analyser) { @@ -162,10 +165,10 @@ var Video = (function() { level.meter(data.analyser, lm, _micActivity, OmUtil.error); } this.generateOffer(function(error, offerSdp) { + if (true === this.cleaned) { + return; + } if (error) { - if (true === this.cleaned) { - return; - } return OmUtil.error('Sender sdp offer error ' + error); } OmUtil.log('Invoking Sender SDP offer callback function'); @@ -201,17 +204,17 @@ var Video = (function() { data.rtcPeer = new kurentoUtils.WebRtcPeer.WebRtcPeerRecvonly( options , function(error) { + if (true === this.cleaned) { + return; + } if (error) { - if (true === this.cleaned) { - return; - } return OmUtil.error(error); } this.generateOffer(function(error, offerSdp) { + if (true === this.cleaned) { + return; + } if (error) { - if (true === this.cleaned) { - return; - } return OmUtil.error('Receiver sdp offer error ' + error); } OmUtil.log('Invoking Receiver SDP offer callback function'); @@ -238,7 +241,7 @@ var Video = (function() { t.removeClass('mic-on'); } } - function _initContainer(_id, name, opts) { + function _initContainer(_id, name, opts, instanceUid) { let contSel = '#user' + sd.cuid; const _hasVideo = VideoUtil.hasVideo(sd) size = {width: _hasVideo ? sd.width : 120, height: _hasVideo ? sd.height : 90}; @@ -258,6 +261,7 @@ var Video = (function() { .attr('title', name) .attr('data-client-uid', sd.cuid) .attr('data-client-type', sd.type) + .attr('data-instance-uid', instanceUid) .data(self)); v = $('#' + _id); vc = v.find('.video'); @@ -322,6 +326,7 @@ var Video = (function() { } function _init(msg) { sd = msg.stream; + msg.instanceUid = uuidv4(); if (!vol) { vol = Volume(); } @@ -335,7 +340,7 @@ var Video = (function() { , _h = sd.height , opts = Room.getOptions(); sd.self = sd.cuid === opts.uid; - const contSel = _initContainer(_id, name, opts); + const contSel = _initContainer(_id, name, opts, msg.instanceUid); footer = v.find('.footer'); if (!opts.showMicStatus) { footer.hide();