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();

Reply via email to