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 2019/03/03 14:59:41 UTC

[openmeetings] branch master updated: [OPENMEETINGS-1352] sharing seems to work as expected

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 14a34da  [OPENMEETINGS-1352] sharing seems to work as expected
14a34da is described below

commit 14a34da8b6ee4791c88667fb3c70f665b40a521f
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Sun Mar 3 21:59:26 2019 +0700

    [OPENMEETINGS-1352] sharing seems to work as expected
---
 .../java/org/apache/openmeetings/core/remote/KRoom.java |   8 +++++++-
 .../org/apache/openmeetings/core/remote/KStream.java    |  11 +++++++----
 .../openmeetings/core/remote/StreamProcessor.java       |  12 ++++++++++++
 .../org/apache/openmeetings/db/entity/basic/Client.java |   3 ++-
 .../org/apache/openmeetings/web/pages/BasePage.html     |   2 +-
 .../apache/openmeetings/web/room/raw-video-manager.js   |   3 ---
 openmeetings-web/src/main/webapp/public/favicon.ico     | Bin 11294 -> 0 bytes
 openmeetings-web/src/main/webapp/public/favicon.png     | Bin 0 -> 8342 bytes
 8 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
index 1a4925d..8fb1121 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
@@ -45,6 +45,7 @@ import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.manager.IClientManager;
 import org.apache.openmeetings.db.util.ws.RoomMessage;
+import org.apache.openmeetings.db.util.ws.TextRoomMessage;
 import org.apache.openmeetings.util.CalendarPatterns;
 import org.kurento.client.Continuation;
 import org.kurento.client.MediaPipeline;
@@ -237,7 +238,7 @@ public class KRoom {
 			sd = c.addStream(StreamType.SCREEN, a);
 			sd.setWidth(msg.getInt("width")).setHeight(msg.getInt("height"));
 			cm.update(c);
-			log.debug("User {}: has started broadcast", sd.getUid());
+			log.debug("User {}: has started sharing", sd.getUid());
 			h.sendClient(sd.getSid(), newKurentoMsg()
 					.put("id", "broadcast")
 					.put("stream", sd.toJson()
@@ -249,6 +250,11 @@ public class KRoom {
 			sd.addActivity(a);
 			cm.update(c);
 			h.sendShareUpdated(sd);
+			WebSocketHelper.sendRoom(new TextRoomMessage(c.getRoomId(), c, RoomMessage.Type.rightUpdated, c.getUid()));
+			WebSocketHelper.sendRoomOthers(roomId, c.getUid(), newKurentoMsg()
+					.put("id", "newStream")
+					.put(PARAM_ICE, processor.getHandler().getTurnServers())
+					.put("stream", sd.toJson()));
 		}
 	}
 
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java
index de77ad7..54a19d9 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java
@@ -79,6 +79,7 @@ public class KStream extends AbstractStream {
 		}
 		final boolean hasAudio = sd.hasActivity(Activity.AUDIO);
 		final boolean hasVideo = sd.hasActivity(Activity.VIDEO);
+		final boolean hasScreen = sd.hasActivity(Activity.SCREEN);
 		if ((sdpOffer.indexOf("m=audio") > -1 && !hasAudio)
 				|| (sdpOffer.indexOf("m=video") > -1 && !hasVideo && StreamType.SCREEN != streamType))
 		{
@@ -132,10 +133,12 @@ public class KStream extends AbstractStream {
 		}
 		Client c = sd.getClient();
 		WebSocketHelper.sendRoom(new TextRoomMessage(c.getRoomId(), c, RoomMessage.Type.rightUpdated, c.getUid()));
-		WebSocketHelper.sendRoomOthers(room.getRoomId(), c.getUid(), newKurentoMsg()
-				.put("id", "newStream")
-				.put(PARAM_ICE, processor.getHandler().getTurnServers())
-				.put("stream", sd.toJson()));
+		if (hasAudio || hasVideo || hasScreen) {
+			WebSocketHelper.sendRoomOthers(room.getRoomId(), c.getUid(), newKurentoMsg()
+					.put("id", "newStream")
+					.put(PARAM_ICE, processor.getHandler().getTurnServers())
+					.put("stream", sd.toJson()));
+		}
 		return this;
 	}
 
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
index 4190583..0e57ef2 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
@@ -119,6 +119,11 @@ public class StreamProcessor implements IStreamProcessor {
 			case "addListener":
 				sender = getByUid(msg.getString("sender"));
 				if (sender != null) {
+					Client sendClient = cm.getBySid(sender.getSid());
+					sd = sendClient.getStream(sender.getUid());
+					if (StreamType.SCREEN == sd.getType() && sd.hasActivity(Activity.RECORD) && !sd.hasActivity(Activity.SCREEN)) {
+						break;
+					}
 					sender.addListener(this, c.getSid(), c.getUid(), msg.getString("sdpOffer"));
 				}
 				break;
@@ -307,6 +312,10 @@ public class StreamProcessor implements IStreamProcessor {
 			KStream sender = getByUid(uid);
 			sender.pauseSharing();
 			kHandler.sendShareUpdated(sd);
+			WebSocketHelper.sendRoomOthers(c.getRoomId(), c.getUid(), newKurentoMsg()
+					.put("id", "broadcastStopped")
+					.put("uid", sd.getUid())
+				);
 		} else {
 			stopSharing(c, uid);
 		}
@@ -333,6 +342,9 @@ public class StreamProcessor implements IStreamProcessor {
 				cm.update(c);
 				checkStreams(c.getRoomId());
 				WebSocketHelper.sendRoom(new TextRoomMessage(c.getRoomId(), c, RoomMessage.Type.rightUpdated, c.getUid()));
+				kHandler.sendShareUpdated(sd
+						.removeActivity(Activity.SCREEN)
+						.removeActivity(Activity.RECORD));
 			}
 		}
 		return sd;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
index 82cee59..718966b 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
@@ -521,8 +521,9 @@ public class Client implements IDataProviderEntity, IWsClient {
 			sactivities.add(a);
 		}
 
-		public void removeActivity(Activity a) {
+		public StreamDesc removeActivity(Activity a) {
 			sactivities.remove(a);
+			return this;
 		}
 
 		public Client getClient() {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.html
index bd8a915..e4d8c22 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.html
@@ -21,7 +21,7 @@
 <html xmlns:wicket="http://wicket.apache.org" wicket:id="html">
 <head>
 	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
-	<link rel="shortcut icon" href="public/favicon.ico" type="image/x-icon"/>
+	<link rel="shortcut icon" href="public/favicon.png" type="image/png"/>
 	<style type="text/css">
 		.sk-chasing-dots {
 			margin: 20% auto;
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 1e5294d..110e273 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
@@ -163,9 +163,6 @@ var VideoManager = (function() {
 			return;
 		}
 		streams.forEach(function(sd) {
-			if (VideoUtil.isRecording(sd)) {
-				return;
-			}
 			const m = {stream: sd, iceServers: iceServers};
 			if (VideoUtil.isSharing(sd)) {
 				_highlight(share
diff --git a/openmeetings-web/src/main/webapp/public/favicon.ico b/openmeetings-web/src/main/webapp/public/favicon.ico
deleted file mode 100644
index 5323e87..0000000
Binary files a/openmeetings-web/src/main/webapp/public/favicon.ico and /dev/null differ
diff --git a/openmeetings-web/src/main/webapp/public/favicon.png b/openmeetings-web/src/main/webapp/public/favicon.png
new file mode 100644
index 0000000..0c7ddf7
Binary files /dev/null and b/openmeetings-web/src/main/webapp/public/favicon.png differ