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 2017/10/22 15:54:44 UTC
openmeetings git commit: [OPENMEETINGS-1724] screen sharing app is
updated to unpublish stream
Repository: openmeetings
Updated Branches:
refs/heads/master be71e177a -> 715c25127
[OPENMEETINGS-1724] screen sharing app is updated to unpublish stream
Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/715c2512
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/715c2512
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/715c2512
Branch: refs/heads/master
Commit: 715c251272c6a2dda9de6d323b741ccb39074d25
Parents: be71e17
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Sun Oct 22 22:54:34 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Sun Oct 22 22:54:34 2017 +0700
----------------------------------------------------------------------
.../openmeetings/screenshare/CaptureScreen.java | 4 ++++
.../org/apache/openmeetings/screenshare/Core.java | 16 ++++++++++------
.../openmeetings/screenshare/IScreenShare.java | 1 +
3 files changed, 15 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/715c2512/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/CaptureScreen.java
----------------------------------------------------------------------
diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/CaptureScreen.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/CaptureScreen.java
index a8cd2c7..0a56289 100644
--- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/CaptureScreen.java
+++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/CaptureScreen.java
@@ -207,6 +207,10 @@ public class CaptureScreen extends Thread {
core.sendCursorStatus();
}
+ public boolean isStarted() throws SchedulerException {
+ return active && _scheduler != null && _scheduler.isStarted() && !_scheduler.isShutdown();
+ }
+
public void setSendCursor(boolean sendCursor) {
try {
Scheduler s = getScheduler();
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/715c2512/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java
----------------------------------------------------------------------
diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java
index 88c6ba8..3358092 100644
--- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java
+++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java
@@ -535,18 +535,22 @@ public class Core implements IPendingServiceCallback, INetStreamEventHandler {
}
} else if ("createStream".equals(method)) {
if (startRecording || startSharing) {
+ CaptureScreen capture = getCapture();
if (o != null && o instanceof Number) {
- getCapture().setStreamId((Number)o);
+ if (capture.getStreamId() != null) {
+ instance.unpublish(capture.getStreamId());
+ }
+ capture.setStreamId((Number)o);
}
final String broadcastId = UUID.randomUUID().toString();
- log.debug("createPublishStream result stream id: {}; name: {}", getCapture().getStreamId(), broadcastId);
- instance.publish(getCapture().getStreamId(), broadcastId, "live", this);
+ log.debug("createPublishStream result stream id: {}; name: {}", capture.getStreamId(), broadcastId);
+ instance.publish(capture.getStreamId(), broadcastId, "live", this);
log.debug("setup capture thread spinnerWidth = {}; spinnerHeight = {};", dim.getSpinnerWidth(), dim.getSpinnerHeight());
- if (!getCapture().isAlive()) {
- getCapture().setSendCursor(startSharing);
- getCapture().start();
+ if (!capture.isStarted()) {
+ capture.setSendCursor(startSharing);
+ capture.start();
}
}
} else if ("screenSharerAction".equals(method)) {
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/715c2512/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/IScreenShare.java
----------------------------------------------------------------------
diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/IScreenShare.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/IScreenShare.java
index 760d5e9..2dedc04 100644
--- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/IScreenShare.java
+++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/IScreenShare.java
@@ -35,5 +35,6 @@ public interface IScreenShare extends ClientExceptionHandler {
void disconnect();
void createStream(IPendingServiceCallback callback);
void publish(Number streamId, String name, String mode, INetStreamEventHandler handler);
+ void unpublish(Number streamId);
void publishStreamData(Number streamId, IMessage message);
}