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;