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