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/16 06:03:31 UTC

[openmeetings] branch master updated: [OPENMEETINGS-2035] attempt to fix recording

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 d9ed884  [OPENMEETINGS-2035] attempt to fix recording
d9ed884 is described below

commit d9ed884e92e6dab53f1ef05d85fbfa472e3f1ac4
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Sat Mar 16 13:03:14 2019 +0700

    [OPENMEETINGS-2035] attempt to fix recording
---
 .../main/java/org/apache/openmeetings/core/remote/KRoom.java   |  9 ++++-----
 .../main/java/org/apache/openmeetings/core/remote/KStream.java | 10 +++++++---
 .../org/apache/openmeetings/core/remote/StreamProcessor.java   |  2 +-
 .../java/org/apache/openmeetings/web/room/wb/raw-wb-board.js   |  4 ++--
 4 files changed, 14 insertions(+), 11 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 62912b0..b86f488 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
@@ -34,7 +34,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.dao.record.RecordingChunkDao;
-import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.basic.Client.Activity;
 import org.apache.openmeetings.db.entity.basic.Client.StreamDesc;
@@ -142,7 +141,7 @@ public class KRoom {
 		return new JSONObject(recordingUser.toString());
 	}
 
-	public void startRecording(IClientManager cm, Client c, RecordingDao recDao) {
+	public void startRecording(StreamProcessor processor, Client c) {
 		if (recordingStarted.compareAndSet(false, true)) {
 			log.debug("##REC:: recording in room {} is starting ::", roomId);
 			Room r = c.getRoom();
@@ -174,15 +173,15 @@ public class KRoom {
 			Optional<StreamDesc> osd = c.getScreenStream();
 			if (osd.isPresent()) {
 				osd.get().addActivity(Activity.RECORD);
-				cm.update(c);
+				processor.getClientManager().update(c);
 				rec.setWidth(osd.get().getWidth());
 				rec.setHeight(osd.get().getWidth());
 			}
-			rec = recDao.update(rec);
+			rec = processor.getRecordingDao().update(rec);
 			// Receive recordingId
 			recordingId = rec.getId();
 			for (final KStream stream : streams.values()) {
-				stream.startRecord();
+				stream.startRecord(processor);
 			}
 
 			// Send notification to all users that the recording has been started
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 aa3466f..9ab38fc 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
@@ -125,7 +125,7 @@ public class KStream extends AbstractStream {
 		processor.addStream(this);
 		addListener(processor, sd.getSid(), sd.getUid(), sdpOffer);
 		if (room.isRecording()) {
-			startRecord();
+			startRecord(processor);
 		}
 		Client c = sd.getClient();
 		WebSocketHelper.sendRoom(new TextRoomMessage(c.getRoomId(), c, RoomMessage.Type.rightUpdated, c.getUid()));
@@ -208,8 +208,12 @@ public class KStream extends AbstractStream {
 		return endpoint;
 	}
 
-	public void startRecord() {
-		final String chunkUid = String.format("rec_%s_%s", room.getRecordingId(), randomUUID());
+	public void startRecord(StreamProcessor processor) {
+		log.debug("startRecord outMedia OK ? ", outgoingMedia != null);
+		if (outgoingMedia == null) {
+			release(processor, true);
+		}
+		final String chunkUid = "rec_" + room.getRecordingId() + "_" + randomUUID();
 		recorder = createRecorderEndpoint(room.getPipeline(), getRecUri(getRecordingChunk(room.getRoomId(), chunkUid)), profile);
 		recorder.addTag("outUid", uid);
 		recorder.addTag("uid", uid);
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 f1ea84d..c75d3cf 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
@@ -404,7 +404,7 @@ public class StreamProcessor implements IStreamProcessor {
 		if (!kHandler.isConnected() || !hasRightsToRecord(c)) {
 			return;
 		}
-		kHandler.getRoom(c.getRoomId()).startRecording(cm, c, recDao);
+		kHandler.getRoom(c.getRoomId()).startRecording(this, c);
 	}
 
 	public void stopRecording(Client c) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-board.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-board.js
index b84a89c..2495f5b 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-board.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-board.js
@@ -706,11 +706,11 @@ var Wb = function() {
 	function _setSize() {
 		switch (zoomMode) {
 			case 'fullFit':
-				zoom = Math.min((area.width() - 10) / width, (area.height() - bar.height() - 10) / height);
+				zoom = Math.min((area.width() - 30) / width, (area.height() - bar.height() - 30) / height);
 				z.find('.zoom').val(zoomMode);
 				break;
 			case 'pageWidth':
-				zoom = (area.width() - 10) / width;
+				zoom = (area.width() - 30) / width;
 				z.find('.zoom').val(zoomMode);
 				break;
 			default: