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/08/07 17:22:52 UTC

openmeetings git commit: [OPENMEETINGS-1643] hardcoded flash settings are moved to the config

Repository: openmeetings
Updated Branches:
  refs/heads/master 0e757bca0 -> b4ed57b98


[OPENMEETINGS-1643] hardcoded flash settings are moved to the config


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/b4ed57b9
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/b4ed57b9
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/b4ed57b9

Branch: refs/heads/master
Commit: b4ed57b985d48f1794c71745531d61e54bf851bb
Parents: 0e757bc
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Tue Aug 8 00:22:44 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Tue Aug 8 00:22:44 2017 +0700

----------------------------------------------------------------------
 .../core/remote/ScopeApplicationAdapter.java    | 20 +++++++++++++++++---
 .../openmeetings/db/entity/basic/Client.java    | 10 +++++-----
 openmeetings-flash/src/main/flex/main.mxml      | 14 +++++++++++---
 .../installation/ImportInitvalues.java          |  9 ++++++++-
 .../util/OpenmeetingsVariables.java             |  4 ++++
 .../apache/openmeetings/web/room/RoomPanel.java |  2 +-
 6 files changed, 46 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b4ed57b9/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
index f7f35b6..54c8b9c 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
@@ -19,9 +19,14 @@
 package org.apache.openmeetings.core.remote;
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EXT_PROCESS_TTL;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_CAM_QUALITY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_ECHO_PATH;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_MIC_RATE;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_SECURE;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_SECURE_PROXY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_VIDEO_BANDWIDTH;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_VIDEO_CODEC;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_VIDEO_FPS;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_HEADER_CSP;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_HEADER_XFRAME;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.EXT_PROCESS_TTL;
@@ -58,6 +63,7 @@ import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.room.StreamClient;
 import org.apache.openmeetings.util.CalendarPatterns;
 import org.apache.openmeetings.util.InitializationContainer;
+import org.apache.openmeetings.util.NullStringer;
 import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.apache.openmeetings.util.Version;
@@ -94,6 +100,10 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 	public static final String FLASH_SSL_PORT = "rtmpsPort";
 	public static final String FLASH_VIDEO_CODEC = "videoCodec";
 	public static final String FLASH_FPS = "fps";
+	public static final String FLASH_BANDWIDTH = "bandwidth";
+	public static final String FLASH_QUALITY = "quality";
+	public static final String FLASH_ECHO_PATH = "echoPath";
+	public static final String FLASH_MIC_RATE = "micRate";
 	private JSONObject flashSettings;
 
 	@Autowired
@@ -142,7 +152,11 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 					.put(FLASH_PORT, props.getProperty("rtmp.port"))
 					.put(FLASH_SSL_PORT, props.getProperty("rtmps.port"))
 					.put(FLASH_VIDEO_CODEC, cfgDao.getConfValue(CONFIG_FLASH_VIDEO_CODEC, String.class, "h263"))
-					.put(FLASH_FPS, cfgDao.getConfValue(OpenmeetingsVariables.CONFIG_FLASH_VIDEO_FPS, Integer.class, "30"))
+					.put(FLASH_FPS, cfgDao.getConfValue(CONFIG_FLASH_VIDEO_FPS, Integer.class, "30"))
+					.put(FLASH_BANDWIDTH, cfgDao.getConfValue(CONFIG_FLASH_VIDEO_BANDWIDTH, Integer.class, "0"))
+					.put(FLASH_QUALITY, cfgDao.getConfValue(CONFIG_FLASH_CAM_QUALITY, Integer.class, "90"))
+					.put(FLASH_ECHO_PATH, cfgDao.getConfValue(CONFIG_FLASH_ECHO_PATH, Integer.class, "128"))
+					.put(FLASH_MIC_RATE, cfgDao.getConfValue(CONFIG_FLASH_MIC_RATE, Integer.class, "22"))
 					;
 
 			for (String scopeName : scope.getScopeNames()) {
@@ -539,9 +553,9 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 					.put("ownerSid", c.getOwnerSid())
 					.put("uid", c.getUid())
 					.put("screenShare", c.isSharing())
-					.put("streamId", c.getId())
+					.put("streamId", current.getClient().getId())
 					.put("streamName", streamName);
-			WebSocketHelper.sendRoom(new TextRoomMessage(c.getRoomId(), c.getUserId(), RoomMessage.Type.newStream, obj.toString()));
+			WebSocketHelper.sendRoom(new TextRoomMessage(c.getRoomId(), c.getUserId(), RoomMessage.Type.newStream, obj.toString(new NullStringer())));
 		} catch (Exception err) {
 			_log.error("[streamPublishStart]", err);
 		}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b4ed57b9/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
----------------------------------------------------------------------
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 e42a467..e1bca80 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
@@ -60,19 +60,19 @@ public class Client implements IClient {
 	}
 	public static class Stream implements Serializable {
 		private static final long serialVersionUID = 1L;
-		private final Long streamId;
+		private final String streamId;
 		private final String uid;
 		private final String broadcastId;
 		private final boolean sharing;
 
-		public Stream(String uid, Long streamId, String broadcastId, boolean sharing) {
+		public Stream(String uid, String streamId, String broadcastId, boolean sharing) {
 			this.streamId = streamId;
 			this.broadcastId = broadcastId;
 			this.uid = uid;
 			this.sharing= sharing;
 		}
 
-		public Long getStreamId() {
+		public String getStreamId() {
 			return streamId;
 		}
 
@@ -295,7 +295,7 @@ public class Client implements IClient {
 		return this;
 	}
 
-	public void addStream(String uid, Long streamId, String broadcastId, boolean sharing) {
+	public void addStream(String uid, String streamId, String broadcastId, boolean sharing) {
 		streams.add(new Stream(uid, streamId, broadcastId, sharing));
 	}
 
@@ -303,7 +303,7 @@ public class Client implements IClient {
 		if (broadcastId == null) {
 			return;
 		}
-		streams.remove(new Stream(null, 1L, broadcastId, false));
+		streams.remove(new Stream(null, null, broadcastId, false));
 	}
 
 	public List<Stream> getStreams() {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b4ed57b9/openmeetings-flash/src/main/flex/main.mxml
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/flex/main.mxml b/openmeetings-flash/src/main/flex/main.mxml
index 429bdb2..1a0478c 100644
--- a/openmeetings-flash/src/main/flex/main.mxml
+++ b/openmeetings-flash/src/main/flex/main.mxml
@@ -39,7 +39,7 @@
 		private var quality:int = 100;
 		private var echoPath:int = 256;
 		private var echoSuppression:Boolean = true;
-		private var microphoneRateBest:int = 22;//5, 8, 11, 22, and 44
+		private var micRate:int = 22;//5, 8, 11, 22, and 44
 		private var selectedMic:int = -1;
 		private var selectedCam:int = -1;
 		private var video:OmVideo;
@@ -67,6 +67,14 @@
 			interview = 'true' == params.interview;
 			var _fps:int = parseInt(params.fps);
 			FPS = (isNaN(_fps) || _fps < 1 ? 30 : _fps);
+			var _bandwidth:int = parseInt(params.bandwidth);
+			bandwidth = (isNaN(_bandwidth) || _bandwidth < 1 ? 0 : _bandwidth);
+			var _quality:int = parseInt(params.quality);
+			quality = (isNaN(_quality) || _quality < 1 ? 90 : _quality);
+			var _echoPath:int = parseInt(params.echoPath);
+			echoPath = (isNaN(_echoPath) || _echoPath < 1 ? 128 : _echoPath);
+			var _micRate:int = parseInt(params.micRate);
+			micRate = (isNaN(_micRate) || _micRate < 1 ? 22 : _micRate);
 			video = new OmVideo(videoDisplay, params);
 			switch (params.mode) {
 				case 'settings':
@@ -157,8 +165,8 @@
 					_micro.codec = SoundCodec.NELLYMOSER;
 					_micro.framesPerPacket = 1;
 					_micro.setSilenceLevel(0, 2000);
-					debug("canvas.microphoneRateBest: " + microphoneRateBest);
-					_micro.rate = microphoneRateBest;
+					debug("canvas.micRate: " + micRate);
+					_micro.rate = micRate;
 					_micro.gain = 50;
 					// this has no effect if enhanced microphone is obtained
 					//Microphone setUseEchoSupression(bool)

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b4ed57b9/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
----------------------------------------------------------------------
diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
index ce08026..c5ac7d9 100644
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
@@ -33,8 +33,12 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DOCUMENT_DPI;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DOCUMENT_QUALITY;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EXT_PROCESS_TTL;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_CAM_QUALITY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_ECHO_PATH;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_MIC_RATE;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_SECURE;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_SECURE_PROXY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_VIDEO_BANDWIDTH;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_VIDEO_CODEC;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_VIDEO_FPS;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FRONTEND_REGISTER_KEY;
@@ -360,7 +364,10 @@ public class ImportInitvalues {
 		cfgDao.add(CONFIG_FLASH_SECURE_PROXY, "none", null, "The setting for the NetConnection default settings is 'none'\n set to value 'best' if you are trying to use rtmp over native SSL");
 		cfgDao.add(CONFIG_FLASH_VIDEO_CODEC, "h263", null, "Camera codecType, possible values: 'h263', 'h264'");
 		cfgDao.add(CONFIG_FLASH_VIDEO_FPS, "30", null, "Camera FPS, should be positive number in range (0, 60]");
-
+		cfgDao.add(CONFIG_FLASH_VIDEO_BANDWIDTH, "0", null, "An integer that specifies the maximum amount of bandwidth that the current outgoing video feed can use, in bytes per second. To specify that Flash video can use as much bandwidth as needed to maintain the value of frameQuality, pass 0 for bandwidth.");
+		cfgDao.add(CONFIG_FLASH_CAM_QUALITY, "90", null, "An integer that specifies the required level of picture quality, as determined by the amount of compression being applied to each video frame. Acceptable values range from 1 (lowest quality, maximum compression) to 100 (highest quality, no compression). To specify that picture quality can vary as needed to avoid exceeding bandwidth, pass 0 for quality.");
+		cfgDao.add(CONFIG_FLASH_MIC_RATE, "22", null, "The rate at which the microphone should capture sound, in kHz. Acceptable values are 5, 8, 11, 22, and 44. The default value is 22 kHz if your sound capture device supports this value.");
+		cfgDao.add(CONFIG_FLASH_ECHO_PATH, "128", null, "Specifies the echo path length (in milliseconds). A longer echo path means better echo cancellation but also introduces longer delays and requires more processing power. The default value is 128; the only other possible value is 256. To disable AEC please specify 0.");
 		cfgDao.add(CONFIG_HEADER_XFRAME, HEADER_XFRAME_SAMEORIGIN, null, "Value for 'X-Frame-Options' header (default: DENY), more info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options");
 		cfgDao.add(CONFIG_HEADER_CSP, HEADER_CSP_SELF, null, "Value for 'Content-Security-Policy' header (default: default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval';), have to be modified to enable Google analytics site: https://content-security-policy.com/");
 		cfgDao.add(CONFIG_EXT_PROCESS_TTL, "" + EXT_PROCESS_TTL, null, String.format("Time to live in minutes for external processes such as conversion via ffmpeg (default %s minutes)", EXT_PROCESS_TTL));

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b4ed57b9/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
----------------------------------------------------------------------
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
index 10dda21..8120902 100644
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
@@ -55,6 +55,10 @@ public class OpenmeetingsVariables {
 	public static final String CONFIG_FLASH_SECURE_PROXY = "flash.secure.proxy";
 	public static final String CONFIG_FLASH_VIDEO_CODEC = "flash.video.codec";
 	public static final String CONFIG_FLASH_VIDEO_FPS = "flash.video.fps";
+	public static final String CONFIG_FLASH_VIDEO_BANDWIDTH = "flash.video.bandwidth";
+	public static final String CONFIG_FLASH_CAM_QUALITY = "flash.cam.quality";
+	public static final String CONFIG_FLASH_MIC_RATE = "flash.mic.rate";
+	public static final String CONFIG_FLASH_ECHO_PATH = "flash.echoPath";
 	public static final String CONFIG_HEADER_XFRAME = "header.x.frame.options";
 	public static final String CONFIG_EXT_PROCESS_TTL = "external.process.ttl";
 	public static final String HEADER_XFRAME_SAMEORIGIN = "SAMEORIGIN";

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b4ed57b9/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
index dcf22b3..c34b54e 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
@@ -417,7 +417,7 @@ public class RoomPanel extends BasePanel {
 						}
 						boolean self = getClient().getUid().equals(uid);
 						String broadcastId = obj.getString("streamName");
-						Long streamId = obj.getLong("streamId");
+						String streamId = obj.getString("streamId");
 						if (!self) {
 							JSONObject jo = RoomHelper.videoJson(c, self, getClient().getSid(), getBean(ISessionManager.class), uid);
 							handler.appendJavaScript(String.format("VideoManager.play(%s);", jo));