You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2020/09/10 01:44:19 UTC

[openmeetings] branch master updated: [OPENMEETINGS-2424] another attempt to perform clean-up

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 446b93a  [OPENMEETINGS-2424] another attempt to perform clean-up
446b93a is described below

commit 446b93a1d74826c9e54626ceaf3c75ee013c3301
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Thu Sep 10 08:44:02 2020 +0700

    [OPENMEETINGS-2424] another attempt to perform clean-up
---
 .../openmeetings/web/room/raw-video-manager.js     | 42 ++-----------------
 .../org/apache/openmeetings/web/room/raw-video.js  | 49 ++++++++++++++++++++--
 2 files changed, 49 insertions(+), 42 deletions(-)

diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-manager.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-manager.js
index e488e40..6398246 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-manager.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-manager.js
@@ -5,30 +5,8 @@ var VideoManager = (function() {
 
 	function _onVideoResponse(m) {
 		const w = $('#' + VideoUtil.getVid(m.uid))
-			, v = w.data()
-			, peer = v && v.getPeer();
-
-		if (peer && false === peer.cleaned && peer.peerConnection.signalingState !== 'stable') {
-			peer.processAnswer(m.sdpAnswer, function (error) {
-				if (true === peer.cleaned || peer.peerConnection.signalingState === 'stable') {
-					return;
-				}
-				if (error) {
-					return OmUtil.error(error);
-				}
-				const vidEls = w.find('audio, video')
-					, vidEl = vidEls.length === 1 ? vidEls[0] : null;
-				if (vidEl && vidEl.paused) {
-					vidEl.play().catch(function (err) {
-						if ('NotAllowedError' === err.name) {
-							VideoUtil.askPermission(function () {
-								vidEl.play();
-							});
-						}
-					});
-				}
-			});
-		}
+			, v = w.data();
+		v.processSdpAnswer(m.sdpAnswer);
 	}
 	function _onBroadcast(msg) {
 		const sd = msg.stream
@@ -82,20 +60,8 @@ var VideoManager = (function() {
 			case 'iceCandidate':
 				{
 					const w = $('#' + VideoUtil.getVid(m.uid))
-						, v = w.data()
-						, peer = v && v.getPeer();
-
-					if (peer && false === peer.cleaned) {
-						peer.addIceCandidate(m.candidate, function (error) {
-							if (true === this.cleaned) {
-								return;
-							}
-							if (error) {
-								OmUtil.error('Error adding candidate: ' + error);
-								return;
-							}
-						});
-					}
+						, v = w.data();
+					v.processIceCandidate(m.candidate);
 				}
 				break;
 			case 'newStream':
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 5cf51f3..63421df 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
@@ -561,6 +561,44 @@ var Video = (function() {
 			}
 		});
 	}
+	function _processSdpAnswer(answer) {
+		const state = states.length > 0 ? states[0] : null;
+		if (!state || state.disposed || !state.data.rtcPeer || state.data.rtcPeer.cleaned || state.data.rtcPeer.peerConnection.signalingState === 'stable') {
+			return;
+		}
+		state.data.rtcPeer.processAnswer(answer, function (error) {
+			if (true === this.cleaned || this.peerConnection.signalingState === 'stable') {
+				return;
+			}
+			if (error) {
+				return OmUtil.error(error);
+			}
+			if (state.video && state.video.paused) {
+				state.video.play().catch(function (err) {
+					if ('NotAllowedError' === err.name) {
+						VideoUtil.askPermission(function () {
+							state.video.play();
+						});
+					}
+				});
+			}
+		});
+	}
+	function _processIceCandidate(candidate) {
+		const state = states.length > 0 ? states[0] : null;
+		if (!state || state.disposed || !state.data.rtcPeer || state.data.rtcPeer.cleaned || state.data.rtcPeer.peerConnection.signalingState === 'stable') {
+			return;
+		}
+		state.data.rtcPeer.addIceCandidate(candidate, function (error) {
+			if (true === this.cleaned) {
+				return;
+			}
+			if (error) {
+				OmUtil.error('Error adding candidate: ' + error);
+				return;
+			}
+		});
+	}
 
 	self.update = _update;
 	self.refresh = _refresh;
@@ -573,9 +611,8 @@ var Video = (function() {
 	self.init = _init;
 	self.stream = function() { return sd; };
 	self.setRights = _setRights;
-	self.getPeer = function() {
-		return states.length > 0 ? states[0].data.rtcPeer : null;
-	};
+	self.processSdpAnswer = _processSdpAnswer;
+	self.processIceCandidate = _processIceCandidate;
 	self.onIceCandidate = function(candidate) {
 		const opts = Room.getOptions();
 		OmUtil.log('Local candidate ' + JSON.stringify(candidate));
@@ -588,7 +625,11 @@ var Video = (function() {
 	};
 	self.reattachStream = _reattachStream;
 	self.video = function() {
-		return states.length > 0 ? states[0].video : null;
+		const state = states.length > 0 ? states[0] : null;
+		if (!state || state.disposed) {
+			return null;
+		}
+		return state.video;
 	};
 	self.handleMicStatus = _handleMicStatus;
 	return self;