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: