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;