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 2015/01/18 20:31:56 UTC
svn commit: r1652838 - in /openmeetings:
branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/
trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/
Author: solomax
Date: Sun Jan 18 19:31:55 2015
New Revision: 1652838
URL: http://svn.apache.org/r1652838
Log:
Screen-sharing over RTMPT is fixed
Modified:
openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/CaptureScreen.java
openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/IScreenShare.java
openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPClientPublish.java
openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java
openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java
openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java
openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CaptureScreen.java
openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/IScreenShare.java
openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPClientPublish.java
openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java
openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java
openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java
Modified: openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/CaptureScreen.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/CaptureScreen.java?rev=1652838&r1=1652837&r2=1652838&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/CaptureScreen.java (original)
+++ openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/CaptureScreen.java Sun Jan 18 19:31:55 2015
@@ -33,6 +33,7 @@ import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
+import org.red5.server.api.Red5;
import org.red5.server.net.rtmp.event.VideoData;
import org.red5.server.stream.message.RTMPMessage;
import org.slf4j.Logger;
@@ -136,6 +137,9 @@ final class CaptureScreen extends Thread
if (sendCursor) {
cursorScheduler.scheduleWithFixedDelay(new Runnable() {
public void run() {
+ if (Red5.getConnectionLocal() == null) {
+ Red5.setConnectionLocal(client.getConnection());
+ }
core.sendCursorStatus();
}
}, 0, timeBetweenFrames * NANO_MULTIPLIER, TimeUnit.NANOSECONDS);
@@ -164,6 +168,9 @@ final class CaptureScreen extends Thread
private void pushVideo(VideoData data, int ts) throws IOException {
if (startPublish) {
+ if (Red5.getConnectionLocal() == null) {
+ Red5.setConnectionLocal(client.getConnection());
+ }
RTMPMessage rtmpMsg = RTMPMessage.build(data, ts);
client.publishStreamData(streamId, rtmpMsg);
}
Modified: openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/IScreenShare.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/IScreenShare.java?rev=1652838&r1=1652837&r2=1652838&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/IScreenShare.java (original)
+++ openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/IScreenShare.java Sun Jan 18 19:31:55 2015
@@ -18,12 +18,13 @@
*/
package org.apache.openmeetings.screen.webstart;
+import org.red5.client.net.rtmp.ClientExceptionHandler;
import org.red5.client.net.rtmp.INetStreamEventHandler;
import org.red5.server.api.service.IPendingServiceCallback;
import org.red5.server.messaging.IMessage;
import org.red5.server.net.rtmp.RTMPConnection;
-public interface IScreenShare {
+public interface IScreenShare extends ClientExceptionHandler {
RTMPConnection getConnection();
void invoke(String method, Object[] params, IPendingServiceCallback callback);
void connect(String server, int port, String application, IPendingServiceCallback connectCallback);
Modified: openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPClientPublish.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPClientPublish.java?rev=1652838&r1=1652837&r2=1652838&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPClientPublish.java (original)
+++ openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPClientPublish.java Sun Jan 18 19:31:55 2015
@@ -18,7 +18,6 @@
*/
package org.apache.openmeetings.screen.webstart;
-import org.red5.client.net.rtmp.ClientExceptionHandler;
import org.red5.client.net.rtmp.INetStreamEventHandler;
import org.red5.client.net.rtmp.RTMPClient;
import org.red5.server.api.service.IPendingServiceCall;
@@ -31,7 +30,7 @@ import org.red5.server.net.rtmp.message.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-class RTMPClientPublish extends RTMPClient implements IPendingServiceCallback, INetStreamEventHandler, ClientExceptionHandler, IScreenShare {
+class RTMPClientPublish extends RTMPClient implements IPendingServiceCallback, INetStreamEventHandler, IScreenShare {
private static final Logger logger = LoggerFactory.getLogger(RTMPClientPublish.class);
private final CaptureScreen publishScreen;
private String id;
Modified: openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java?rev=1652838&r1=1652837&r2=1652838&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java (original)
+++ openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java Sun Jan 18 19:31:55 2015
@@ -18,7 +18,6 @@
*/
package org.apache.openmeetings.screen.webstart;
-import org.red5.client.net.rtmp.ClientExceptionHandler;
import org.red5.client.net.rtmps.RTMPSClient;
import org.red5.server.api.service.IPendingServiceCallback;
import org.red5.server.net.ICommand;
@@ -28,7 +27,7 @@ import org.red5.server.net.rtmp.message.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class RTMPSScreenShare extends RTMPSClient implements ClientExceptionHandler, IScreenShare {
+public class RTMPSScreenShare extends RTMPSClient implements IScreenShare {
private static final Logger logger = LoggerFactory.getLogger(RTMPSScreenShare.class);
private CoreScreenShare core = null;
Modified: openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java?rev=1652838&r1=1652837&r2=1652838&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java (original)
+++ openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java Sun Jan 18 19:31:55 2015
@@ -18,7 +18,6 @@
*/
package org.apache.openmeetings.screen.webstart;
-import org.red5.client.net.rtmp.ClientExceptionHandler;
import org.red5.client.net.rtmp.RTMPClient;
import org.red5.server.net.ICommand;
import org.red5.server.net.rtmp.Channel;
@@ -27,7 +26,7 @@ import org.red5.server.net.rtmp.message.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class RTMPScreenShare extends RTMPClient implements ClientExceptionHandler, IScreenShare {
+public class RTMPScreenShare extends RTMPClient implements IScreenShare {
private static final Logger logger = LoggerFactory.getLogger(RTMPScreenShare.class);
private CoreScreenShare core = null;
Modified: openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java?rev=1652838&r1=1652837&r2=1652838&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java (original)
+++ openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java Sun Jan 18 19:31:55 2015
@@ -18,7 +18,6 @@
*/
package org.apache.openmeetings.screen.webstart;
-import org.red5.client.net.rtmp.ClientExceptionHandler;
import org.red5.client.net.rtmpt.RTMPTClient;
import org.red5.server.net.ICommand;
import org.red5.server.net.rtmp.Channel;
@@ -27,7 +26,7 @@ import org.red5.server.net.rtmp.message.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class RTMPTScreenShare extends RTMPTClient implements ClientExceptionHandler, IScreenShare {
+public class RTMPTScreenShare extends RTMPTClient implements IScreenShare {
private static final Logger logger = LoggerFactory.getLogger(RTMPTScreenShare.class);
private CoreScreenShare core = null;
Modified: openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CaptureScreen.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CaptureScreen.java?rev=1652838&r1=1652837&r2=1652838&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CaptureScreen.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CaptureScreen.java Sun Jan 18 19:31:55 2015
@@ -33,6 +33,7 @@ import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
+import org.red5.server.api.Red5;
import org.red5.server.net.rtmp.event.VideoData;
import org.red5.server.stream.message.RTMPMessage;
import org.slf4j.Logger;
@@ -136,6 +137,9 @@ final class CaptureScreen extends Thread
if (sendCursor) {
cursorScheduler.scheduleWithFixedDelay(new Runnable() {
public void run() {
+ if (Red5.getConnectionLocal() == null) {
+ Red5.setConnectionLocal(client.getConnection());
+ }
core.sendCursorStatus();
}
}, 0, timeBetweenFrames * NANO_MULTIPLIER, TimeUnit.NANOSECONDS);
@@ -164,6 +168,9 @@ final class CaptureScreen extends Thread
private void pushVideo(VideoData data, int ts) throws IOException {
if (startPublish) {
+ if (Red5.getConnectionLocal() == null) {
+ Red5.setConnectionLocal(client.getConnection());
+ }
RTMPMessage rtmpMsg = RTMPMessage.build(data, ts);
client.publishStreamData(streamId, rtmpMsg);
}
Modified: openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/IScreenShare.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/IScreenShare.java?rev=1652838&r1=1652837&r2=1652838&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/IScreenShare.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/IScreenShare.java Sun Jan 18 19:31:55 2015
@@ -18,12 +18,13 @@
*/
package org.apache.openmeetings.screen.webstart;
+import org.red5.client.net.rtmp.ClientExceptionHandler;
import org.red5.client.net.rtmp.INetStreamEventHandler;
import org.red5.server.api.service.IPendingServiceCallback;
import org.red5.server.messaging.IMessage;
import org.red5.server.net.rtmp.RTMPConnection;
-public interface IScreenShare {
+public interface IScreenShare extends ClientExceptionHandler {
RTMPConnection getConnection();
void invoke(String method, Object[] params, IPendingServiceCallback callback);
void connect(String server, int port, String application, IPendingServiceCallback connectCallback);
Modified: openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPClientPublish.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPClientPublish.java?rev=1652838&r1=1652837&r2=1652838&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPClientPublish.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPClientPublish.java Sun Jan 18 19:31:55 2015
@@ -18,7 +18,6 @@
*/
package org.apache.openmeetings.screen.webstart;
-import org.red5.client.net.rtmp.ClientExceptionHandler;
import org.red5.client.net.rtmp.INetStreamEventHandler;
import org.red5.client.net.rtmp.RTMPClient;
import org.red5.server.api.service.IPendingServiceCall;
@@ -31,7 +30,7 @@ import org.red5.server.net.rtmp.message.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-class RTMPClientPublish extends RTMPClient implements IPendingServiceCallback, INetStreamEventHandler, ClientExceptionHandler, IScreenShare {
+class RTMPClientPublish extends RTMPClient implements IPendingServiceCallback, INetStreamEventHandler, IScreenShare {
private static final Logger logger = LoggerFactory.getLogger(RTMPClientPublish.class);
private final CaptureScreen publishScreen;
private String id;
Modified: openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java?rev=1652838&r1=1652837&r2=1652838&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java Sun Jan 18 19:31:55 2015
@@ -18,7 +18,6 @@
*/
package org.apache.openmeetings.screen.webstart;
-import org.red5.client.net.rtmp.ClientExceptionHandler;
import org.red5.client.net.rtmps.RTMPSClient;
import org.red5.server.api.service.IPendingServiceCallback;
import org.red5.server.net.ICommand;
@@ -28,7 +27,7 @@ import org.red5.server.net.rtmp.message.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class RTMPSScreenShare extends RTMPSClient implements ClientExceptionHandler, IScreenShare {
+public class RTMPSScreenShare extends RTMPSClient implements IScreenShare {
private static final Logger logger = LoggerFactory.getLogger(RTMPSScreenShare.class);
private CoreScreenShare core = null;
Modified: openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java?rev=1652838&r1=1652837&r2=1652838&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java Sun Jan 18 19:31:55 2015
@@ -18,7 +18,6 @@
*/
package org.apache.openmeetings.screen.webstart;
-import org.red5.client.net.rtmp.ClientExceptionHandler;
import org.red5.client.net.rtmp.RTMPClient;
import org.red5.server.net.ICommand;
import org.red5.server.net.rtmp.Channel;
@@ -27,7 +26,7 @@ import org.red5.server.net.rtmp.message.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class RTMPScreenShare extends RTMPClient implements ClientExceptionHandler, IScreenShare {
+public class RTMPScreenShare extends RTMPClient implements IScreenShare {
private static final Logger logger = LoggerFactory.getLogger(RTMPScreenShare.class);
private CoreScreenShare core = null;
Modified: openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java?rev=1652838&r1=1652837&r2=1652838&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java Sun Jan 18 19:31:55 2015
@@ -18,7 +18,6 @@
*/
package org.apache.openmeetings.screen.webstart;
-import org.red5.client.net.rtmp.ClientExceptionHandler;
import org.red5.client.net.rtmpt.RTMPTClient;
import org.red5.server.net.ICommand;
import org.red5.server.net.rtmp.Channel;
@@ -27,7 +26,7 @@ import org.red5.server.net.rtmp.message.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class RTMPTScreenShare extends RTMPTClient implements ClientExceptionHandler, IScreenShare {
+public class RTMPTScreenShare extends RTMPTClient implements IScreenShare {
private static final Logger logger = LoggerFactory.getLogger(RTMPTScreenShare.class);
private CoreScreenShare core = null;