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 2013/10/03 18:31:54 UTC
svn commit: r1528921 [2/2] - in /openmeetings:
branches/2.x/src/org/apache/openmeetings/data/flvrecord/listener/
branches/2.x/src/org/apache/openmeetings/data/flvrecord/listener/async/
branches/2.x/src/org/apache/openmeetings/remote/ trunk/singlewebapp...
Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamAudioWriter.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamAudioWriter.java?rev=1528921&r1=1528920&r2=1528921&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamAudioWriter.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamAudioWriter.java Thu Oct 3 16:31:53 2013
@@ -18,11 +18,12 @@
*/
package org.apache.openmeetings.data.flvrecord.listener.async;
+import static org.apache.openmeetings.OpenmeetingsVariables.webAppRootKey;
+
import java.io.IOException;
import java.util.Date;
import org.apache.mina.core.buffer.IoBuffer;
-import org.apache.openmeetings.OpenmeetingsVariables;
import org.apache.openmeetings.db.dao.record.FlvRecordingMetaDataDao;
import org.apache.openmeetings.db.dao.record.FlvRecordingMetaDeltaDao;
import org.apache.openmeetings.db.entity.record.FlvRecordingMetaData;
@@ -31,61 +32,56 @@ import org.red5.io.ITag;
import org.red5.io.flv.impl.Tag;
import org.red5.logging.Red5LoggerFactory;
import org.red5.server.api.scope.IScope;
+import org.red5.server.net.rtmp.event.VideoData.FrameType;
import org.slf4j.Logger;
public class StreamAudioWriter extends BaseStreamWriter {
-
- private static final Logger log = Red5LoggerFactory.getLogger(
- StreamAudioWriter.class, OpenmeetingsVariables.webAppRootKey);
+ private static final Logger log = Red5LoggerFactory.getLogger(StreamAudioWriter.class, webAppRootKey);
private int duration = 0;
private int startTimeStamp = -1;
- private long initialDelta = 0;
-
private Integer lastTimeStamp = -1;
private Date lastcurrentTime = null;
private int lastStreamPacketTimeStamp = -1;
private long byteCount = 0;
-
+
// Autowire is not possible
- protected final FlvRecordingMetaDeltaDao flvRecordingMetaDeltaDao;
- protected final FlvRecordingMetaDataDao flvRecordingMetaDataDao;
+ protected final FlvRecordingMetaDeltaDao metaDeltaDao;
+ protected final FlvRecordingMetaDataDao metaDataDao;
private boolean isInterview = false;
-
- public StreamAudioWriter(String streamName, IScope scope,
- Long flvRecordingMetaDataId, boolean isScreenData,
- boolean isInterview,
- FlvRecordingMetaDeltaDao flvRecordingMetaDeltaDao,
- FlvRecordingMetaDataDao flvRecordingMetaDataDao) {
+
+ public StreamAudioWriter(String streamName, IScope scope, Long flvRecordingMetaDataId, boolean isScreenData,
+ boolean isInterview, FlvRecordingMetaDataDao metaDataDao, FlvRecordingMetaDeltaDao metaDeltaDao) {
super(streamName, scope, flvRecordingMetaDataId, isScreenData);
-
- this.flvRecordingMetaDeltaDao = flvRecordingMetaDeltaDao;
- this.flvRecordingMetaDataDao = flvRecordingMetaDataDao;
- this.isInterview = isInterview;
-
- FlvRecordingMetaData flvRecordingMetaData = flvRecordingMetaDataDao.
- getFlvRecordingMetaDataById(flvRecordingMetaDataId);
- flvRecordingMetaData.setStreamReaderThreadComplete(false);
- flvRecordingMetaDataDao.updateFlvRecordingMetaData(flvRecordingMetaData);
-
+
+ this.metaDeltaDao = metaDeltaDao;
+ this.metaDataDao = metaDataDao;
+ this.isInterview = isInterview;
+
+ FlvRecordingMetaData metaData = metaDataDao.get(flvRecordingMetaDataId);
+ metaData.setStreamReaderThreadComplete(false);
+ metaDataDao.update(metaData);
+
}
@Override
public void packetReceived(CachedEvent streampacket) {
try {
-
// We only care about audio at this moment
- if (this.isInterview || streampacket.getDataType() == 8) {
-
+ if (isInterview || streampacket.getDataType() == 8) {
if (streampacket.getTimestamp() <= 0) {
log.warn("Negative TimeStamp");
return;
}
+ if (isInterview && startTimeStamp == -1 && FrameType.KEYFRAME != streampacket.getFrameType()) {
+ // skip until keyframe
+ return;
+ }
IoBuffer data = streampacket.getData().asReadOnlyBuffer();
@@ -93,120 +89,91 @@ public class StreamAudioWriter extends B
return;
}
- this.byteCount += data.limit();
-
+ byteCount += data.limit();
+
lastcurrentTime = streampacket.getCurrentTime();
int timeStamp = streampacket.getTimestamp();
Date virtualTime = streampacket.getCurrentTime();
+ // TODO seems like this copy/pasted block need to be refactored
if (startTimeStamp == -1) {
+ // Calculate the delta between the initial start and the first audio-packet data
+
+ initialDelta = virtualTime.getTime() - startedSessionTimeDate.getTime();
- // Calculate the delta between the initial start and the
- // first audio-packet data
+ FlvRecordingMetaDelta metaDelta = new FlvRecordingMetaDelta();
- this.initialDelta = virtualTime.getTime()
- - this.startedSessionTimeDate.getTime();
+ metaDelta.setDeltaTime(initialDelta);
+ metaDelta.setFlvRecordingMetaDataId(flvRecordingMetaDataId);
+ metaDelta.setTimeStamp(0);
+ metaDelta.setDebugStatus("INIT AUDIO");
+ metaDelta.setIsStartPadding(true);
+ metaDelta.setIsEndPadding(false);
+ metaDelta.setDataLengthPacket(data.limit());
+ metaDelta.setReceivedAudioDataLength(byteCount);
+ metaDelta.setStartTime(startedSessionTimeDate);
+ metaDelta.setPacketTimeStamp(streampacket.getTimestamp());
- FlvRecordingMetaDelta flvRecordingMetaDelta = new FlvRecordingMetaDelta();
+ Long deltaTimeStamp = virtualTime.getTime() - startedSessionTimeDate.getTime();
- flvRecordingMetaDelta.setDeltaTime(this.initialDelta);
- flvRecordingMetaDelta
- .setFlvRecordingMetaDataId(this.flvRecordingMetaDataId);
- flvRecordingMetaDelta.setTimeStamp(0);
- flvRecordingMetaDelta.setDebugStatus("INIT AUDIO");
- flvRecordingMetaDelta.setIsStartPadding(true);
- flvRecordingMetaDelta.setIsEndPadding(false);
- flvRecordingMetaDelta.setDataLengthPacket(data.limit());
- flvRecordingMetaDelta
- .setReceivedAudioDataLength(this.byteCount);
- flvRecordingMetaDelta
- .setStartTime(this.startedSessionTimeDate);
- flvRecordingMetaDelta.setPacketTimeStamp(streampacket
- .getTimestamp());
-
- Long deltaTimeStamp = virtualTime.getTime()
- - this.startedSessionTimeDate.getTime();
-
- // this.duration = Math.max(this.duration, 0 +
- // this.writer.getOffset());
- flvRecordingMetaDelta.setDuration(0);
+ metaDelta.setDuration(0);
Long missingTime = deltaTimeStamp - 0;
- flvRecordingMetaDelta.setMissingTime(missingTime);
+ metaDelta.setMissingTime(missingTime);
- flvRecordingMetaDelta.setCurrentTime(virtualTime);
- flvRecordingMetaDelta.setDeltaTimeStamp(deltaTimeStamp);
- flvRecordingMetaDelta.setStartTimeStamp(startTimeStamp);
+ metaDelta.setCurrentTime(virtualTime);
+ metaDelta.setDeltaTimeStamp(deltaTimeStamp);
+ metaDelta.setStartTimeStamp(startTimeStamp);
- flvRecordingMetaDeltaDao
- .addFlvRecordingMetaDelta(flvRecordingMetaDelta);
+ metaDeltaDao.addFlvRecordingMetaDelta(metaDelta);
// That will be not bigger then long value
- this.startTimeStamp = (streampacket.getTimestamp());
-
- // We have to set that to bypass the initial delta
- // lastTimeStamp = startTimeStamp;
+ startTimeStamp = streampacket.getTimestamp();
}
-
+ lastStreamPacketTimeStamp = streampacket.getTimestamp();
- this.lastStreamPacketTimeStamp = streampacket.getTimestamp();
+ timeStamp -= startTimeStamp;
- timeStamp -= this.startTimeStamp;
-
- long deltaTime = 0;
- if (lastTimeStamp == -1) {
- deltaTime = 0; // Offset at the beginning is calculated
- // above
- } else {
- deltaTime = timeStamp - lastTimeStamp;
- }
+ // Offset at the beginning is calculated above
+ long deltaTime = lastTimeStamp == -1 ? 0 : timeStamp - lastTimeStamp;
- Long preLastTimeStamp = Long
- .parseLong(lastTimeStamp.toString());
+ Long preLastTimeStamp = Long.parseLong(lastTimeStamp.toString());
lastTimeStamp = timeStamp;
if (deltaTime > 75) {
- FlvRecordingMetaDelta flvRecordingMetaDelta = new FlvRecordingMetaDelta();
+ FlvRecordingMetaDelta metaDelta = new FlvRecordingMetaDelta();
- flvRecordingMetaDelta.setDeltaTime(deltaTime);
- flvRecordingMetaDelta
- .setFlvRecordingMetaDataId(this.flvRecordingMetaDataId);
- flvRecordingMetaDelta.setTimeStamp(timeStamp);
- flvRecordingMetaDelta.setDebugStatus("RUN AUDIO");
- flvRecordingMetaDelta.setIsStartPadding(false);
- flvRecordingMetaDelta.setLastTimeStamp(preLastTimeStamp);
- flvRecordingMetaDelta.setIsEndPadding(false);
- flvRecordingMetaDelta.setDataLengthPacket(data.limit());
- flvRecordingMetaDelta
- .setReceivedAudioDataLength(this.byteCount);
- flvRecordingMetaDelta
- .setStartTime(this.startedSessionTimeDate);
- flvRecordingMetaDelta.setPacketTimeStamp(streampacket
- .getTimestamp());
+ metaDelta.setDeltaTime(deltaTime);
+ metaDelta.setFlvRecordingMetaDataId(flvRecordingMetaDataId);
+ metaDelta.setTimeStamp(timeStamp);
+ metaDelta.setDebugStatus("RUN AUDIO");
+ metaDelta.setIsStartPadding(false);
+ metaDelta.setLastTimeStamp(preLastTimeStamp);
+ metaDelta.setIsEndPadding(false);
+ metaDelta.setDataLengthPacket(data.limit());
+ metaDelta.setReceivedAudioDataLength(byteCount);
+ metaDelta.setStartTime(startedSessionTimeDate);
+ metaDelta.setPacketTimeStamp(streampacket.getTimestamp());
Date current_date = new Date();
- Long deltaTimeStamp = current_date.getTime()
- - this.startedSessionTimeDate.getTime();
+ Long deltaTimeStamp = current_date.getTime() - startedSessionTimeDate.getTime();
- this.duration = Math.max(this.duration, timeStamp
- + this.writer.getOffset());
- flvRecordingMetaDelta.setDuration(this.duration);
+ duration = Math.max(duration, timeStamp + writer.getOffset());
+ metaDelta.setDuration(duration);
Long missingTime = deltaTimeStamp - timeStamp;
- flvRecordingMetaDelta.setMissingTime(missingTime);
+ metaDelta.setMissingTime(missingTime);
- flvRecordingMetaDelta.setCurrentTime(current_date);
- flvRecordingMetaDelta.setDeltaTimeStamp(deltaTimeStamp);
- flvRecordingMetaDelta.setStartTimeStamp(startTimeStamp);
-
- flvRecordingMetaDeltaDao
- .addFlvRecordingMetaDelta(flvRecordingMetaDelta);
+ metaDelta.setCurrentTime(current_date);
+ metaDelta.setDeltaTimeStamp(deltaTimeStamp);
+ metaDelta.setStartTimeStamp(startTimeStamp);
+ metaDeltaDao.addFlvRecordingMetaDelta(metaDelta);
}
ITag tag = new Tag();
@@ -239,12 +206,13 @@ public class StreamAudioWriter extends B
try {
// We do not add any End Padding or count the gaps for the
// Screen Data, cause there is no!
-
+
Date virtualTime = lastcurrentTime;
log.debug("virtualTime: " + virtualTime);
log.debug("startedSessionTimeDate: " + startedSessionTimeDate);
-
- long deltaRecordingTime = virtualTime == null ? 0 : virtualTime.getTime() - startedSessionTimeDate.getTime();
+
+ long deltaRecordingTime = virtualTime == null ? 0 : virtualTime.getTime()
+ - startedSessionTimeDate.getTime();
log.debug("lastTimeStamp :closeStream: " + lastTimeStamp);
log.debug("lastStreamPacketTimeStamp :closeStream: " + lastStreamPacketTimeStamp);
@@ -254,28 +222,25 @@ public class StreamAudioWriter extends B
log.debug("deltaTimePaddingEnd :: " + deltaTimePaddingEnd);
- FlvRecordingMetaDelta flvRecordingMetaDelta = new FlvRecordingMetaDelta();
+ FlvRecordingMetaDelta metaDelta = new FlvRecordingMetaDelta();
+
+ metaDelta.setDeltaTime(deltaTimePaddingEnd);
+ metaDelta.setFlvRecordingMetaDataId(flvRecordingMetaDataId);
+ metaDelta.setTimeStamp(lastTimeStamp);
+ metaDelta.setDebugStatus("END AUDIO");
+ metaDelta.setIsStartPadding(false);
+ metaDelta.setIsEndPadding(true);
+ metaDelta.setDataLengthPacket(null);
+ metaDelta.setReceivedAudioDataLength(byteCount);
+ metaDelta.setStartTime(startedSessionTimeDate);
+ metaDelta.setCurrentTime(new Date());
+
+ metaDeltaDao.addFlvRecordingMetaDelta(metaDelta);
- flvRecordingMetaDelta.setDeltaTime(deltaTimePaddingEnd);
- flvRecordingMetaDelta
- .setFlvRecordingMetaDataId(flvRecordingMetaDataId);
- flvRecordingMetaDelta.setTimeStamp(lastTimeStamp);
- flvRecordingMetaDelta.setDebugStatus("END AUDIO");
- flvRecordingMetaDelta.setIsStartPadding(false);
- flvRecordingMetaDelta.setIsEndPadding(true);
- flvRecordingMetaDelta.setDataLengthPacket(null);
- flvRecordingMetaDelta
- .setReceivedAudioDataLength(byteCount);
- flvRecordingMetaDelta.setStartTime(startedSessionTimeDate);
- flvRecordingMetaDelta.setCurrentTime(new Date());
-
- flvRecordingMetaDeltaDao
- .addFlvRecordingMetaDelta(flvRecordingMetaDelta);
-
- //Write the complete Bit to the meta data, the converter task will wait for this bit!
- FlvRecordingMetaData flvRecordingMetaData = flvRecordingMetaDataDao.getFlvRecordingMetaDataById(flvRecordingMetaDataId);
+ // Write the complete Bit to the meta data, the converter task will wait for this bit!
+ FlvRecordingMetaData flvRecordingMetaData = metaDataDao.get(flvRecordingMetaDataId);
flvRecordingMetaData.setStreamReaderThreadComplete(true);
- flvRecordingMetaDataDao.updateFlvRecordingMetaData(flvRecordingMetaData);
+ metaDataDao.update(flvRecordingMetaData);
} catch (Exception err) {
log.error("[closeStream]", err);
Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamVideoWriter.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamVideoWriter.java?rev=1528921&r1=1528920&r2=1528921&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamVideoWriter.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamVideoWriter.java Thu Oct 3 16:31:53 2013
@@ -18,11 +18,12 @@
*/
package org.apache.openmeetings.data.flvrecord.listener.async;
+import static org.apache.openmeetings.OpenmeetingsVariables.webAppRootKey;
+
import java.io.IOException;
import java.util.Date;
import org.apache.mina.core.buffer.IoBuffer;
-import org.apache.openmeetings.OpenmeetingsVariables;
import org.apache.openmeetings.db.dao.record.FlvRecordingMetaDataDao;
import org.apache.openmeetings.db.entity.record.FlvRecordingMetaData;
import org.red5.io.ITag;
@@ -32,60 +33,38 @@ import org.red5.server.api.scope.IScope;
import org.slf4j.Logger;
public class StreamVideoWriter extends BaseStreamWriter {
-
- private int startTimeStamp = -1;
-
+ private static final Logger log = Red5LoggerFactory.getLogger(StreamVideoWriter.class, webAppRootKey);
private Date startedSessionScreenTimeDate = null;
- private long initialDelta = 0;
-
- private final FlvRecordingMetaDataDao flvRecordingMetaDataDao;
-
- private static final Logger log = Red5LoggerFactory.getLogger(
- StreamVideoWriter.class, OpenmeetingsVariables.webAppRootKey);
-
- public StreamVideoWriter(String streamName, IScope scope,
- Long flvRecordingMetaDataId, boolean isScreenData,
- boolean isInterview,
- FlvRecordingMetaDataDao flvRecordingMetaDataDao) {
-
+ private final FlvRecordingMetaDataDao metaDataDao;
+
+ public StreamVideoWriter(String streamName, IScope scope, Long flvRecordingMetaDataId, boolean isScreenData,
+ boolean isInterview, FlvRecordingMetaDataDao metaDataDao) {
+
super(streamName, scope, flvRecordingMetaDataId, isScreenData);
-
- this.flvRecordingMetaDataDao = flvRecordingMetaDataDao;
-
- FlvRecordingMetaData flvRecordingMetaData = flvRecordingMetaDataDao.
- getFlvRecordingMetaDataById(flvRecordingMetaDataId);
- flvRecordingMetaData.setStreamReaderThreadComplete(false);
- flvRecordingMetaDataDao.updateFlvRecordingMetaData(flvRecordingMetaData);
+
+ this.metaDataDao = metaDataDao;
+
+ FlvRecordingMetaData metaData = metaDataDao.get(flvRecordingMetaDataId);
+ metaData.setStreamReaderThreadComplete(false);
+ metaDataDao.update(metaData);
}
-
+
@Override
public void packetReceived(CachedEvent streampacket) {
try {
-
- // We only are concerned about video at this moment
- // if (streampacket.getDataType() == 9) {
-
int timeStamp = streampacket.getTimestamp();
Date virtualTime = streampacket.getCurrentTime();
- if (this.startedSessionScreenTimeDate == null) {
-
- this.startedSessionScreenTimeDate = virtualTime;
+ if (startedSessionScreenTimeDate == null) {
+ startedSessionScreenTimeDate = virtualTime;
- // Calculate the delta between the initial start and the first
- // packet data
-
- this.initialDelta = this.startedSessionScreenTimeDate.getTime()
- - this.startedSessionTimeDate.getTime();
-
- // This is important for the Interview Post Processing to get
- // the time between starting the stream and the actual Access to
- // the
- // webcam by the Flash Security Dialog
- flvRecordingMetaDataDao.updateFlvRecordingMetaDataInitialGap(
- flvRecordingMetaDataId, this.initialDelta);
+ // Calculate the delta between the initial start and the first packet data
+ initialDelta = startedSessionScreenTimeDate.getTime() - startedSessionTimeDate.getTime();
+ // This is important for the Interview Post Processing to get the time between starting the stream and
+ // the actual Access to the webcam by the Flash Security Dialog
+ metaDataDao.updateFlvRecordingMetaDataInitialGap(flvRecordingMetaDataId, initialDelta);
}
if (streampacket.getTimestamp() <= 0) {
@@ -109,21 +88,11 @@ public class StreamVideoWriter extends B
ITag tag = new Tag();
tag.setDataType(streampacket.getDataType());
- // log.debug("data.limit() :: "+data.limit());
tag.setBodySize(data.limit());
tag.setTimestamp(timeStamp);
tag.setBody(data);
-// if (this.isInterview) {
-// if (timeStamp <= 500) {
-// // We will cut the first 0.5 seconds
-// // The First seconds seem to break the Recording Video often
-// return;
-// }
-// }
-
writer.writeTag(tag);
-
} catch (IOException e) {
log.error("[packetReceived]", e);
} catch (Exception e) {
@@ -134,29 +103,19 @@ public class StreamVideoWriter extends B
@Override
public void closeStream() {
try {
-
writer.close();
- // Add Delta in the beginning, this Delta is the Gap between the
- // device chosen and when the User hits the button in the Flash
- // Security Warning
- FlvRecordingMetaData flvRecordingMetaData = flvRecordingMetaDataDao
- .getFlvRecordingMetaDataById(this.flvRecordingMetaDataId);
-
- flvRecordingMetaData.setRecordStart(new Date(
- flvRecordingMetaData.getRecordStart().getTime()
- + this.initialDelta));
-
- flvRecordingMetaData.setStreamReaderThreadComplete(true);
-
- flvRecordingMetaDataDao
- .updateFlvRecordingMetaData(flvRecordingMetaData);
-
-
+ // Add Delta in the beginning, this Delta is the Gap between the device chosen and when the User hits the
+ // button in the Flash Security Warning
+ FlvRecordingMetaData metaData = metaDataDao.get(flvRecordingMetaDataId);
+ metaData.setRecordStart(new Date(metaData.getRecordStart().getTime() + initialDelta));
+
+ metaData.setStreamReaderThreadComplete(true);
+
+ metaDataDao.update(metaData);
} catch (Exception err) {
log.error("[closeStream]", err);
}
}
-
}
Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java?rev=1528921&r1=1528920&r2=1528921&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java Thu Oct 3 16:31:53 2013
@@ -18,6 +18,8 @@
*/
package org.apache.openmeetings.db.dao.record;
+import static org.apache.openmeetings.OpenmeetingsVariables.webAppRootKey;
+
import java.util.Date;
import java.util.List;
@@ -26,7 +28,6 @@ import javax.persistence.NoResultExcepti
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
-import org.apache.openmeetings.OpenmeetingsVariables;
import org.apache.openmeetings.db.entity.record.FlvRecording;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
@@ -34,32 +35,30 @@ import org.springframework.transaction.a
/**
* @author sebastianwagner
- *
+ *
*/
@Transactional
public class FlvRecordingDao {
- private static final Logger log = Red5LoggerFactory.getLogger(FlvRecordingDao.class,
- OpenmeetingsVariables.webAppRootKey);
+ private static final Logger log = Red5LoggerFactory.getLogger(FlvRecordingDao.class, webAppRootKey);
@PersistenceContext
private EntityManager em;
-
- public FlvRecording getFlvRecordingById(Long flvRecordingId) {
- try {
-
- String hql = "SELECT c FROM FlvRecording c " +
- "WHERE c.flvRecordingId = :flvRecordingId";
-
+
+ public FlvRecording get(Long flvRecordingId) {
+ try {
+
+ String hql = "SELECT c FROM FlvRecording c WHERE c.flvRecordingId = :flvRecordingId";
+
TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class);
query.setParameter("flvRecordingId", flvRecordingId);
-
+
FlvRecording flvRecording = null;
try {
flvRecording = query.getSingleResult();
- } catch (NoResultException ex) {
- }
+ } catch (NoResultException ex) {
+ }
return flvRecording;
} catch (Exception ex2) {
- log.error("[getFlvRecordingById]: ",ex2);
+ log.error("[getFlvRecordingById]: ", ex2);
}
return null;
}
@@ -68,267 +67,251 @@ public class FlvRecordingDao {
try {
TypedQuery<FlvRecording> query = em.createNamedQuery("getRecordingByHash", FlvRecording.class);
query.setParameter("fileHash", hash);
-
+
try {
return query.getSingleResult();
- } catch (NoResultException ex) {
- //noop
- }
+ } catch (NoResultException ex) {
+ // noop
+ }
} catch (Exception ex2) {
- log.error("[getRecordingByHash]: ",ex2);
+ log.error("[getRecordingByHash]: ", ex2);
}
return null;
}
public List<FlvRecording> getFlvRecordings() {
- try {
-
- String hql = "SELECT c FROM FlvRecording c " +
- "WHERE c.deleted <> :deleted ";
-
+ try {
+
+ String hql = "SELECT c FROM FlvRecording c WHERE c.deleted <> :deleted ";
+
TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class);
query.setParameter("deleted", true);
-
+
List<FlvRecording> flvRecordings = query.getResultList();
-
+
return flvRecordings;
} catch (Exception ex2) {
- log.error("[getFlvRecordings]: ",ex2);
+ log.error("[getFlvRecordings]: ", ex2);
}
return null;
}
-
-
+
public List<FlvRecording> getFlvRecordingByExternalUserId(String externalUserId) {
- try {
-
- log.debug("getFlvRecordingByExternalUserId :externalUserId: "+externalUserId);
-
- String hql = "SELECT c FROM FlvRecording c, Room r, User u " +
- "WHERE c.room_id = r.rooms_id " +
- "AND c.insertedBy = u.user_id " +
- "AND u.externalUserId LIKE :externalUserId " +
- "AND c.deleted <> :deleted ";
-
+ try {
+
+ log.debug("getFlvRecordingByExternalUserId :externalUserId: " + externalUserId);
+
+ String hql = "SELECT c FROM FlvRecording c, Room r, User u WHERE c.room_id = r.rooms_id "
+ + "AND c.insertedBy = u.user_id AND u.externalUserId LIKE :externalUserId "
+ + "AND c.deleted <> :deleted ";
+
TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class);
query.setParameter("externalUserId", externalUserId);
query.setParameter("deleted", true);
-
+
List<FlvRecording> flvRecordingList = query.getResultList();
-
- log.debug("getFlvRecordingByExternalRoomType :: "+flvRecordingList.size());
-
+
+ log.debug("getFlvRecordingByExternalRoomType :: " + flvRecordingList.size());
+
return flvRecordingList;
} catch (Exception ex2) {
- log.error("[getFlvRecordingByExternalRoomType]: ",ex2);
+ log.error("[getFlvRecordingByExternalRoomType]: ", ex2);
}
return null;
}
-
+
public List<FlvRecording> getFlvRecordingByExternalRoomTypeAndCreator(String externalRoomType, Long insertedBy) {
- try {
-
- log.debug("getFlvRecordingByExternalRoomType :externalRoomType: "+externalRoomType);
-
- String hql = "SELECT c FROM FlvRecording c, Room r " +
- "WHERE c.room_id = r.rooms_id " +
- "AND r.externalRoomType LIKE :externalRoomType " +
- "AND c.insertedBy LIKE :insertedBy " +
- "AND c.deleted <> :deleted ";
-
+ try {
+
+ log.debug("getFlvRecordingByExternalRoomType :externalRoomType: " + externalRoomType);
+
+ String hql = "SELECT c FROM FlvRecording c, Room r WHERE c.room_id = r.rooms_id "
+ + "AND r.externalRoomType LIKE :externalRoomType AND c.insertedBy LIKE :insertedBy "
+ + "AND c.deleted <> :deleted ";
+
TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class);
query.setParameter("externalRoomType", externalRoomType);
query.setParameter("insertedBy", insertedBy);
query.setParameter("deleted", true);
-
+
List<FlvRecording> flvRecordingList = query.getResultList();
-
- log.debug("getFlvRecordingByExternalRoomType :: "+flvRecordingList.size());
-
+
+ log.debug("getFlvRecordingByExternalRoomType :: " + flvRecordingList.size());
+
return flvRecordingList;
} catch (Exception ex2) {
- log.error("[getFlvRecordingByExternalRoomType]: ",ex2);
+ log.error("[getFlvRecordingByExternalRoomType]: ", ex2);
}
return null;
}
-
+
public List<FlvRecording> getAllFlvRecordings() {
- try {
+ try {
String hql = "SELECT c FROM FlvRecording c LEFT JOIN FETCH c.flvRecordingMetaData";
-
+
TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class);
-
+
return query.getResultList();
} catch (Exception ex2) {
- log.error("[getFlvRecordings]: ",ex2);
+ log.error("[getFlvRecordings]: ", ex2);
}
return null;
}
-
+
public List<FlvRecording> getFlvRecordingByExternalRoomType(String externalRoomType) {
- try {
-
- log.debug("getFlvRecordingByExternalRoomType :externalRoomType: "+externalRoomType);
-
- String hql = "SELECT c FROM FlvRecording c, Room r " +
- "WHERE c.room_id = r.rooms_id " +
- "AND r.externalRoomType LIKE :externalRoomType " +
- "AND c.deleted <> :deleted ";
-
+ try {
+
+ log.debug("getFlvRecordingByExternalRoomType :externalRoomType: " + externalRoomType);
+
+ String hql = "SELECT c FROM FlvRecording c, Room r " + "WHERE c.room_id = r.rooms_id "
+ + "AND r.externalRoomType LIKE :externalRoomType " + "AND c.deleted <> :deleted ";
+
TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class);
query.setParameter("externalRoomType", externalRoomType);
query.setParameter("deleted", true);
-
+
List<FlvRecording> flvRecordingList = query.getResultList();
-
- log.debug("getFlvRecordingByExternalRoomType :: "+flvRecordingList.size());
-
+
+ log.debug("getFlvRecordingByExternalRoomType :: " + flvRecordingList.size());
+
return flvRecordingList;
} catch (Exception ex2) {
- log.error("[getFlvRecordingByExternalRoomType]: ",ex2);
+ log.error("[getFlvRecordingByExternalRoomType]: ", ex2);
}
return null;
}
-
+
public List<FlvRecording> getFlvRecordingsPublic() {
try {
-
- String hql = "SELECT c FROM FlvRecording c " +
- "WHERE c.deleted <> :deleted " +
- "AND (c.ownerId IS NULL OR c.ownerId = 0) " +
- "AND (c.parentFileExplorerItemId IS NULL OR c.parentFileExplorerItemId = 0) " +
- "ORDER BY c.isFolder DESC, c.fileName ";
-
+
+ String hql = "SELECT c FROM FlvRecording c " + "WHERE c.deleted <> :deleted "
+ + "AND (c.ownerId IS NULL OR c.ownerId = 0) "
+ + "AND (c.parentFileExplorerItemId IS NULL OR c.parentFileExplorerItemId = 0) "
+ + "ORDER BY c.isFolder DESC, c.fileName ";
+
TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class);
query.setParameter("deleted", true);
-
+
List<FlvRecording> flvRecordingList = query.getResultList();
return flvRecordingList;
} catch (Exception ex2) {
- log.error("[getFlvRecordingsPublic]: ",ex2);
+ log.error("[getFlvRecordingsPublic]: ", ex2);
}
return null;
}
-
+
public List<FlvRecording> getFlvRecordingRootByPublic(Long organization_id) {
try {
-
- String hql = "SELECT c FROM FlvRecording c " +
- "WHERE c.deleted <> :deleted " +
- "AND c.ownerId IS NULL " +
- "AND c.organization_id = :organization_id " +
- "AND (c.parentFileExplorerItemId IS NULL OR c.parentFileExplorerItemId = 0) " +
- "ORDER BY c.isFolder DESC, c.fileName ";
-
+
+ String hql = "SELECT c FROM FlvRecording c " + "WHERE c.deleted <> :deleted " + "AND c.ownerId IS NULL "
+ + "AND c.organization_id = :organization_id "
+ + "AND (c.parentFileExplorerItemId IS NULL OR c.parentFileExplorerItemId = 0) "
+ + "ORDER BY c.isFolder DESC, c.fileName ";
+
TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class);
query.setParameter("organization_id", organization_id);
query.setParameter("deleted", true);
-
+
List<FlvRecording> flvRecordingList = query.getResultList();
-
+
return flvRecordingList;
} catch (Exception ex2) {
- log.error("[getFlvRecordingRootByPublic]: ",ex2);
+ log.error("[getFlvRecordingRootByPublic]: ", ex2);
}
return null;
}
-
+
public List<FlvRecording> getFlvRecordingRootByOwner(Long ownerId) {
try {
-
- String hql = "SELECT c FROM FlvRecording c " +
- "WHERE c.deleted <> :deleted " +
- "AND c.ownerId = :ownerId " +
- "AND (c.parentFileExplorerItemId IS NULL OR c.parentFileExplorerItemId = 0) " +
- "ORDER BY c.isFolder DESC, c.fileName ";
-
+
+ String hql = "SELECT c FROM FlvRecording c " + "WHERE c.deleted <> :deleted " + "AND c.ownerId = :ownerId "
+ + "AND (c.parentFileExplorerItemId IS NULL OR c.parentFileExplorerItemId = 0) "
+ + "ORDER BY c.isFolder DESC, c.fileName ";
+
TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class);
query.setParameter("deleted", true);
- query.setParameter("ownerId",ownerId);
-
+ query.setParameter("ownerId", ownerId);
+
List<FlvRecording> flvRecordingList = query.getResultList();
-
+
return flvRecordingList;
} catch (Exception ex2) {
- log.error("[getFlvRecordingByOwner]: ",ex2);
+ log.error("[getFlvRecordingByOwner]: ", ex2);
}
return null;
}
-
+
public List<FlvRecording> getFlvRecordingByOwner(Long ownerId, Long parentFileExplorerItemId) {
try {
-
- String hql = "SELECT c FROM FlvRecording c " +
- "WHERE c.deleted <> :deleted " +
- "AND c.ownerId = :ownerId " +
- "AND (c.parentFileExplorerItemId IS NULL OR c.parentFileExplorerItemId = :parentFileExplorerItemId)" +
- "ORDER BY c.isFolder DESC, c.fileName ";
-
+
+ String hql = "SELECT c FROM FlvRecording c "
+ + "WHERE c.deleted <> :deleted "
+ + "AND c.ownerId = :ownerId "
+ + "AND (c.parentFileExplorerItemId IS NULL OR c.parentFileExplorerItemId = :parentFileExplorerItemId)"
+ + "ORDER BY c.isFolder DESC, c.fileName ";
+
TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class);
query.setParameter("deleted", true);
- query.setParameter("ownerId",ownerId);
+ query.setParameter("ownerId", ownerId);
query.setParameter("parentFileExplorerItemId", parentFileExplorerItemId);
-
+
List<FlvRecording> flvRecordingList = query.getResultList();
-
+
return flvRecordingList;
} catch (Exception ex2) {
- log.error("[getFlvRecordingByOwner]: ",ex2);
+ log.error("[getFlvRecordingByOwner]: ", ex2);
}
return null;
}
-
+
public List<FlvRecording> getFlvRecordingByRoomId(Long room_id) {
try {
-
- String hql = "SELECT c FROM FlvRecording c " +
- "WHERE c.deleted <> :deleted " +
- "AND c.room_id = :room_id " +
- "ORDER BY c.isFolder DESC, c.fileName ";
-
+
+ String hql = "SELECT c FROM FlvRecording c " + "WHERE c.deleted <> :deleted " + "AND c.room_id = :room_id "
+ + "ORDER BY c.isFolder DESC, c.fileName ";
+
TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class);
query.setParameter("deleted", true);
- query.setParameter("room_id",room_id);
-
+ query.setParameter("room_id", room_id);
+
List<FlvRecording> flvRecordingList = query.getResultList();
-
+
return flvRecordingList;
} catch (Exception ex2) {
- log.error("[getFlvRecordingByOwner]: ",ex2);
+ log.error("[getFlvRecordingByOwner]: ", ex2);
}
return null;
}
public List<FlvRecording> getFlvRecordingByParent(Long parentFileExplorerItemId) {
try {
-
- String hql = "SELECT c FROM FlvRecording c " +
- "WHERE c.deleted <> :deleted " +
- "AND c.parentFileExplorerItemId = :parentFileExplorerItemId " +
- "ORDER BY c.isFolder DESC, c.fileName ";
-
+
+ String hql = "SELECT c FROM FlvRecording c " + "WHERE c.deleted <> :deleted "
+ + "AND c.parentFileExplorerItemId = :parentFileExplorerItemId "
+ + "ORDER BY c.isFolder DESC, c.fileName ";
+
TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class);
query.setParameter("deleted", true);
query.setParameter("parentFileExplorerItemId", parentFileExplorerItemId);
-
+
List<FlvRecording> flvRecordingList = query.getResultList();
-
+
return flvRecordingList;
} catch (Exception ex2) {
- log.error("[getFlvRecordingByParent]: ",ex2);
+ log.error("[getFlvRecordingByParent]: ", ex2);
}
return null;
}
-
- public Long addFlvFolderRecording(String fileHash, String fileName, Long fileSize, Long user_id,
- Long room_id, Date recordStart, Date recordEnd, Long ownerId, String comment,
- Long parentFileExplorerItemId, Long organization_id) {
- try {
-
+
+ public Long addFlvFolderRecording(String fileHash, String fileName, Long fileSize, Long user_id, Long room_id,
+ Date recordStart, Date recordEnd, Long ownerId, String comment, Long parentFileExplorerItemId,
+ Long organization_id) {
+ try {
+
FlvRecording flvRecording = new FlvRecording();
-
+
flvRecording.setParentFileExplorerItemId(parentFileExplorerItemId);
-
+
flvRecording.setDeleted(false);
flvRecording.setFileHash(fileHash);
flvRecording.setFileName(fileName);
@@ -341,30 +324,30 @@ public class FlvRecordingDao {
flvRecording.setIsRecording(true);
flvRecording.setComment(comment);
flvRecording.setOrganization_id(organization_id);
-
+
flvRecording.setRoom_id(room_id);
flvRecording.setRecordStart(recordStart);
flvRecording.setRecordEnd(recordEnd);
-
+
flvRecording.setOwnerId(ownerId);
-
+
flvRecording = em.merge(flvRecording);
Long flvRecordingId = flvRecording.getFlvRecordingId();
-
+
return flvRecordingId;
} catch (Exception ex2) {
- log.error("[addFlvRecording]: ",ex2);
+ log.error("[addFlvRecording]: ", ex2);
}
return null;
}
-
- public Long addFlvRecording(String fileHash, String fileName, Long fileSize, Long user_id,
- Long room_id, Date recordStart, Date recordEnd, Long ownerId, String comment,
- String recorderStreamId, Integer width, Integer height, Boolean isInterview) {
- try {
-
+
+ public Long addFlvRecording(String fileHash, String fileName, Long fileSize, Long user_id, Long room_id,
+ Date recordStart, Date recordEnd, Long ownerId, String comment, String recorderStreamId, Integer width,
+ Integer height, Boolean isInterview) {
+ try {
+
FlvRecording flvRecording = new FlvRecording();
-
+
flvRecording.setDeleted(false);
flvRecording.setFileHash(fileHash);
flvRecording.setFileName(fileName);
@@ -377,130 +360,130 @@ public class FlvRecordingDao {
flvRecording.setIsRecording(true);
flvRecording.setComment(comment);
flvRecording.setIsInterview(isInterview);
-
+
flvRecording.setRoom_id(room_id);
flvRecording.setRecordStart(recordStart);
flvRecording.setRecordEnd(recordEnd);
-
+
flvRecording.setWidth(width);
flvRecording.setHeight(height);
-
+
flvRecording.setOwnerId(ownerId);
-
+
flvRecording = em.merge(flvRecording);
Long flvRecordingId = flvRecording.getFlvRecordingId();
-
+
return flvRecordingId;
} catch (Exception ex2) {
- log.error("[addFlvRecording]: ",ex2);
+ log.error("[addFlvRecording]: ", ex2);
}
return null;
}
-
+
public Long addFlvRecordingObj(FlvRecording flvRecording) {
- try {
-
+ try {
+
flvRecording = em.merge(flvRecording);
Long flvRecordingId = flvRecording.getFlvRecordingId();
-
+
return flvRecordingId;
} catch (Exception ex2) {
- log.error("[addFlvRecording]: ",ex2);
+ log.error("[addFlvRecording]: ", ex2);
}
return null;
}
-
+
public void updateFlvRecordingOrganization(Long flvRecordingId, Long organization_id) {
try {
-
- FlvRecording fId = this.getFlvRecordingById(flvRecordingId);
-
+
+ FlvRecording fId = get(flvRecordingId);
+
fId.setOrganization_id(organization_id);
-
+
if (fId.getFlvRecordingId() == 0) {
em.persist(fId);
- } else {
- if (!em.contains(fId)) {
- em.merge(fId);
- }
+ } else {
+ if (!em.contains(fId)) {
+ em.merge(fId);
+ }
}
-
+
} catch (Exception ex2) {
- log.error("[deleteFileExplorerItem]: ",ex2);
+ log.error("[deleteFileExplorerItem]: ", ex2);
}
}
-
+
public void updateFlvRecordingEndTime(Long flvRecordingId, Date recordEnd, Long organization_id) {
try {
-
- FlvRecording fId = this.getFlvRecordingById(flvRecordingId);
-
+
+ FlvRecording fId = get(flvRecordingId);
+
fId.setProgressPostProcessing(0);
fId.setRecordEnd(recordEnd);
fId.setOrganization_id(organization_id);
-
+
if (fId.getFlvRecordingId() == 0) {
em.persist(fId);
- } else {
- if (!em.contains(fId)) {
- em.merge(fId);
- }
+ } else {
+ if (!em.contains(fId)) {
+ em.merge(fId);
+ }
}
-
+
} catch (Exception ex2) {
- log.error("[deleteFileExplorerItem]: ",ex2);
+ log.error("[deleteFileExplorerItem]: ", ex2);
}
}
-
+
public void updateFlvRecordingProgress(Long flvRecordingId, Integer progress) {
try {
-
- FlvRecording fId = this.getFlvRecordingById(flvRecordingId);
-
+
+ FlvRecording fId = get(flvRecordingId);
+
fId.setProgressPostProcessing(progress);
-
+
if (fId.getFlvRecordingId() == 0) {
em.persist(fId);
- } else {
- if (!em.contains(fId)) {
- em.merge(fId);
- }
+ } else {
+ if (!em.contains(fId)) {
+ em.merge(fId);
+ }
}
-
+
} catch (Exception ex2) {
- log.error("[deleteFileExplorerItem]: ",ex2);
+ log.error("[deleteFileExplorerItem]: ", ex2);
}
}
-
+
/**
* @param fileExplorerItemId
*/
public boolean deleteFlvRecording(Long flvRecordingId) {
try {
-
- FlvRecording fId = this.getFlvRecordingById(flvRecordingId);
-
+
+ FlvRecording fId = get(flvRecordingId);
+
if (fId == null) {
return false;
}
-
+
fId.setDeleted(true);
fId.setUpdated(new Date());
-
+
if (fId.getFlvRecordingId() == 0) {
em.persist(fId);
- } else {
- if (!em.contains(fId)) {
- em.merge(fId);
- }
+ } else {
+ if (!em.contains(fId)) {
+ em.merge(fId);
+ }
}
-
+
return true;
-
+
} catch (Exception ex2) {
- log.error("[deleteFileExplorerItem]: ",ex2);
+ log.error("[deleteFileExplorerItem]: ", ex2);
}
-
+
return false;
}
@@ -510,38 +493,38 @@ public class FlvRecordingDao {
*/
public void updateFileOrFolderName(Long flvRecordingId, String fileName) {
try {
-
- FlvRecording fId = this.getFlvRecordingById(flvRecordingId);
-
+
+ FlvRecording fId = get(flvRecordingId);
+
fId.setFileName(fileName);
fId.setUpdated(new Date());
-
+
if (fId.getFlvRecordingId() == 0) {
em.persist(fId);
- } else {
- if (!em.contains(fId)) {
- em.merge(fId);
- }
+ } else {
+ if (!em.contains(fId)) {
+ em.merge(fId);
+ }
}
-
+
} catch (Exception ex2) {
- log.error("[updateFileOrFolderName]: ",ex2);
+ log.error("[updateFileOrFolderName]: ", ex2);
}
}
-
+
public void updateFlvRecording(FlvRecording fId) {
try {
-
+
if (fId.getFlvRecordingId() == 0) {
em.persist(fId);
- } else {
- if (!em.contains(fId)) {
- em.merge(fId);
- }
+ } else {
+ if (!em.contains(fId)) {
+ em.merge(fId);
+ }
}
-
+
} catch (Exception ex2) {
- log.error("[updateFileOrFolderName]: ",ex2);
+ log.error("[updateFileOrFolderName]: ", ex2);
}
}
@@ -550,38 +533,37 @@ public class FlvRecordingDao {
* @param newParentFileExplorerItemId
* @param isOwner
*/
- public void moveFile(Long flvRecordingId, Long parentFileExplorerItemId,
- Boolean isOwner, Long ownerId) {
+ public void moveFile(Long flvRecordingId, Long parentFileExplorerItemId, Boolean isOwner, Long ownerId) {
try {
-
- FlvRecording fId = this.getFlvRecordingById(flvRecordingId);
-
+
+ FlvRecording fId = get(flvRecordingId);
+
fId.setParentFileExplorerItemId(parentFileExplorerItemId);
-
+
if (parentFileExplorerItemId == 0) {
if (isOwner) {
- //move to personal Folder
+ // move to personal Folder
fId.setOwnerId(ownerId);
} else {
- //move to public room folder
+ // move to public room folder
fId.setOwnerId(null);
}
} else {
fId.setOwnerId(null);
}
-
+
fId.setUpdated(new Date());
-
+
if (fId.getFlvRecordingId() == 0) {
em.persist(fId);
- } else {
- if (!em.contains(fId)) {
- em.merge(fId);
- }
+ } else {
+ if (!em.contains(fId)) {
+ em.merge(fId);
+ }
}
} catch (Exception ex2) {
- log.error("[moveFile]: ",ex2);
+ log.error("[moveFile]: ", ex2);
}
}
-
+
}
Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDataDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDataDao.java?rev=1528921&r1=1528920&r2=1528921&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDataDao.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDataDao.java Thu Oct 3 16:31:53 2013
@@ -18,6 +18,8 @@
*/
package org.apache.openmeetings.db.dao.record;
+import static org.apache.openmeetings.OpenmeetingsVariables.webAppRootKey;
+
import java.util.Date;
import java.util.List;
@@ -26,7 +28,6 @@ import javax.persistence.NoResultExcepti
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
-import org.apache.openmeetings.OpenmeetingsVariables;
import org.apache.openmeetings.db.entity.record.FlvRecordingMetaData;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
@@ -35,15 +36,14 @@ import org.springframework.transaction.a
@Transactional
public class FlvRecordingMetaDataDao {
-
private static final Logger log = Red5LoggerFactory.getLogger(FlvRecordingMetaDataDao.class,
- OpenmeetingsVariables.webAppRootKey);
+ webAppRootKey);
@PersistenceContext
private EntityManager em;
@Autowired
private FlvRecordingDao flvRecordingDao;
- public FlvRecordingMetaData getFlvRecordingMetaDataById(Long flvRecordingMetaDataId) {
+ public FlvRecordingMetaData get(Long flvRecordingMetaDataId) {
try {
String hql = "SELECT c FROM FlvRecordingMetaData c " +
@@ -142,7 +142,7 @@ public class FlvRecordingMetaDataDao {
flvRecordingMetaData.setDeleted(false);
- flvRecordingMetaData.setFlvRecording(flvRecordingDao.getFlvRecordingById(flvRecordingId));
+ flvRecordingMetaData.setFlvRecording(flvRecordingDao.get(flvRecordingId));
flvRecordingMetaData.setFreeTextUserName(freeTextUserName);
flvRecordingMetaData.setInserted(new Date());
@@ -185,14 +185,14 @@ public class FlvRecordingMetaDataDao {
Date recordEnd) {
try {
- FlvRecordingMetaData flvRecordingMetaData = this.getFlvRecordingMetaDataById(flvRecordingMetaDataId);
+ FlvRecordingMetaData flvRecordingMetaData = get(flvRecordingMetaDataId);
flvRecordingMetaData.setRecordEnd(recordEnd);
log.debug("updateFlvRecordingMetaDataEndDate :: Start Date :"+flvRecordingMetaData.getRecordStart());
log.debug("updateFlvRecordingMetaDataEndDate :: End Date :"+flvRecordingMetaData.getRecordEnd());
- this.updateFlvRecordingMetaData(flvRecordingMetaData);
+ this.update(flvRecordingMetaData);
return flvRecordingMetaDataId;
@@ -206,11 +206,11 @@ public class FlvRecordingMetaDataDao {
long initalGap) {
try {
- FlvRecordingMetaData flvRecordingMetaData = this.getFlvRecordingMetaDataById(flvRecordingMetaDataId);
+ FlvRecordingMetaData flvRecordingMetaData = get(flvRecordingMetaDataId);
flvRecordingMetaData.setInitialGapSeconds(Long.valueOf(initalGap).intValue());
- this.updateFlvRecordingMetaData(flvRecordingMetaData);
+ this.update(flvRecordingMetaData);
return flvRecordingMetaDataId;
@@ -220,7 +220,7 @@ public class FlvRecordingMetaDataDao {
return null;
}
- public Long updateFlvRecordingMetaData(FlvRecordingMetaData flvRecordingMetaData) {
+ public Long update(FlvRecordingMetaData flvRecordingMetaData) {
try {
if (flvRecordingMetaData.getFlvRecordingMetaDataId() == 0) {
Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java?rev=1528921&r1=1528920&r2=1528921&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java Thu Oct 3 16:31:53 2013
@@ -18,18 +18,17 @@
*/
package org.apache.openmeetings.remote;
+import static org.apache.openmeetings.OpenmeetingsVariables.webAppRootKey;
+
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
-import org.apache.openmeetings.OpenmeetingsVariables;
import org.apache.openmeetings.data.basic.AuthLevelUtil;
import org.apache.openmeetings.data.flvrecord.converter.FlvInterviewConverterTask;
import org.apache.openmeetings.data.flvrecord.converter.FlvInterviewReConverterTask;
import org.apache.openmeetings.data.flvrecord.converter.FlvRecorderConverterTask;
-import org.apache.openmeetings.data.flvrecord.listener.BaseStreamListener;
-import org.apache.openmeetings.data.flvrecord.listener.StreamAudioListener;
-import org.apache.openmeetings.data.flvrecord.listener.StreamVideoListener;
+import org.apache.openmeetings.data.flvrecord.listener.StreamListener;
import org.apache.openmeetings.data.user.UserManager;
import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
import org.apache.openmeetings.db.dao.record.FlvRecordingLogDao;
@@ -57,19 +56,14 @@ import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
public class FLVRecorderService implements IPendingServiceCallback {
+ private static final Logger log = Red5LoggerFactory.getLogger(FLVRecorderService.class, webAppRootKey);
- private static final Logger log = Red5LoggerFactory.getLogger(
- FLVRecorderService.class, OpenmeetingsVariables.webAppRootKey);
-
/**
- * Stores a reference to all available listeners
- * we need that reference, as the internal references stored
- * with the red5 stream object might be gone when the user
- * closes the browser.
- * But each listener has an asynchronous component that needs to be closed
- * no matter how the user leaves the application!
+ * Stores a reference to all available listeners we need that reference, as the internal references stored with the
+ * red5 stream object might be gone when the user closes the browser. But each listener has an asynchronous
+ * component that needs to be closed no matter how the user leaves the application!
*/
- private static final Map<Long,BaseStreamListener> streamListeners = new HashMap<Long,BaseStreamListener>();
+ private static final Map<Long, StreamListener> streamListeners = new HashMap<Long, StreamListener>();
// Spring Beans
@Autowired
@@ -101,7 +95,7 @@ public class FLVRecorderService implemen
@Autowired
private FlvRecordingMetaDeltaDao flvRecordingMetaDeltaDao;
@Autowired
- private FlvRecordingMetaDataDao flvRecordingMetaDataDaoImpl = null;
+ private FlvRecordingMetaDataDao flvRecordingMetaDataDaoImpl;
public void resultReceived(IPendingServiceCall arg0) {
}
@@ -126,59 +120,47 @@ public class FLVRecorderService implemen
return null;
} catch (Exception err) {
- err.printStackTrace();
log.error("[checkForRecording]", err);
}
return null;
}
-
- private static String generateFileName(Long flvRecording_id, String streamid)
- throws Exception {
- String dateString = CalendarPatterns
- .getTimeForStreamId(new java.util.Date());
- return "rec_" + flvRecording_id + "_stream_" + streamid + "_"
- + dateString;
+
+ private static String generateFileName(Long flvRecording_id, String streamid) throws Exception {
+ String dateString = CalendarPatterns.getTimeForStreamId(new java.util.Date());
+ return "rec_" + flvRecording_id + "_stream_" + streamid + "_" + dateString;
}
- public String recordMeetingStream(String roomRecordingName, String comment,
- Boolean isInterview) {
+ public String recordMeetingStream(String roomRecordingName, String comment, Boolean isInterview) {
try {
-
+
log.debug(":: recordMeetingStream ::");
IConnection current = Red5.getConnectionLocal();
- Client currentClient = this.sessionManager
- .getClientByStreamId(current.getClient().getId(), null);
+ Client currentClient = sessionManager.getClientByStreamId(current.getClient().getId(), null);
Long room_id = currentClient.getRoom_id();
Date now = new Date();
// Receive flvRecordingId
- Long flvRecordingId = this.flvRecordingDaoImpl.addFlvRecording("",
- roomRecordingName, null, currentClient.getUser_id(),
- room_id, now, null, currentClient.getUser_id(), comment,
- currentClient.getStreamid(), currentClient.getVWidth(),
- currentClient.getVHeight(), isInterview);
+ Long flvRecordingId = flvRecordingDaoImpl.addFlvRecording("", roomRecordingName, null,
+ currentClient.getUser_id(), room_id, now, null, currentClient.getUser_id(), comment,
+ currentClient.getStreamid(), currentClient.getVWidth(), currentClient.getVHeight(), isInterview);
// Update Client and set Flag
currentClient.setIsRecording(true);
currentClient.setFlvRecordingId(flvRecordingId);
- this.sessionManager.updateClientByStreamId(current.getClient()
- .getId(), currentClient, false, null);
+ sessionManager.updateClientByStreamId(current.getClient().getId(), currentClient, false, null);
// get all stream and start recording them
for (IConnection conn : current.getScope().getClientConnections()) {
if (conn != null) {
if (conn instanceof IServiceCapableConnection) {
- Client rcl = this.sessionManager
- .getClientByStreamId(conn.getClient()
- .getId(), null);
+ Client rcl = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
// Send every user a notification that the recording did start
if (!rcl.getIsAVClient()) {
- ((IServiceCapableConnection) conn).invoke(
- "startedRecording",
+ ((IServiceCapableConnection) conn).invoke("startedRecording",
new Object[] { currentClient }, this);
}
@@ -186,36 +168,23 @@ public class FLVRecorderService implemen
// of Meta Data
if (rcl.getIsScreenClient()) {
- if (rcl.getFlvRecordingId() != null
- && rcl.isScreenPublishStarted()) {
+ if (rcl.getFlvRecordingId() != null && rcl.isScreenPublishStarted()) {
+
+ String streamName_Screen = generateFileName(flvRecordingId, rcl.getStreamPublishName()
+ .toString());
- String streamName_Screen = generateFileName(
- flvRecordingId, rcl
- .getStreamPublishName()
- .toString());
-
- Long flvRecordingMetaDataId = this.flvRecordingMetaDataDao
- .addFlvRecordingMetaData(
- flvRecordingId,
- rcl.getFirstname() + " "
- + rcl.getLastname(),
- now, false, false, true,
- streamName_Screen,
- rcl.getInterviewPodId());
+ Long flvRecordingMetaDataId = flvRecordingMetaDataDao.addFlvRecordingMetaData(
+ flvRecordingId, rcl.getFirstname() + " " + rcl.getLastname(), now, false,
+ false, true, streamName_Screen, rcl.getInterviewPodId());
// Start FLV Recording
- recordShow(conn,
- rcl.getStreamPublishName(),
- streamName_Screen,
- flvRecordingMetaDataId, true,
- isInterview);
+ recordShow(conn, rcl.getStreamPublishName(), streamName_Screen, flvRecordingMetaDataId,
+ true, isInterview);
// Add Meta Data
rcl.setFlvRecordingMetaDataId(flvRecordingMetaDataId);
- this.sessionManager
- .updateClientByStreamId(
- rcl.getStreamid(), rcl, false, null);
+ sessionManager.updateClientByStreamId(rcl.getStreamid(), rcl, false, null);
}
@@ -223,15 +192,12 @@ public class FLVRecorderService implemen
// if the user does publish av, a, v
// But we only record av or a, video only is not
// interesting
- (rcl.getIsAVClient() &&
- (rcl.getAvsettings().equals("av")
- || rcl.getAvsettings().equals("a")
- || rcl.getAvsettings().equals("v"))) {
-
- String streamName = generateFileName(
- flvRecordingId,
- String.valueOf(rcl.getBroadCastID())
- .toString());
+ (rcl.getIsAVClient()
+ && (rcl.getAvsettings().equals("av") || rcl.getAvsettings().equals("a") || rcl
+ .getAvsettings().equals("v"))) {
+
+ String streamName = generateFileName(flvRecordingId, String.valueOf(rcl.getBroadCastID())
+ .toString());
// Add Meta Data
boolean isAudioOnly = false;
@@ -244,26 +210,17 @@ public class FLVRecorderService implemen
isVideoOnly = true;
}
- Long flvRecordingMetaDataId = this.flvRecordingMetaDataDao
- .addFlvRecordingMetaData(
- flvRecordingId,
- rcl.getFirstname() + " "
- + rcl.getLastname(),
- now, isAudioOnly, isVideoOnly,
- false, streamName,
- rcl.getInterviewPodId());
+ Long flvRecordingMetaDataId = flvRecordingMetaDataDao.addFlvRecordingMetaData(
+ flvRecordingId, rcl.getFirstname() + " " + rcl.getLastname(), now, isAudioOnly,
+ isVideoOnly, false, streamName, rcl.getInterviewPodId());
rcl.setFlvRecordingMetaDataId(flvRecordingMetaDataId);
- this.sessionManager.updateClientByStreamId(
- rcl.getStreamid(), rcl, false, null);
+ sessionManager.updateClientByStreamId(rcl.getStreamid(), rcl, false, null);
// Start FLV recording
- recordShow(conn,
- String.valueOf(rcl.getBroadCastID())
- .toString(), streamName,
- flvRecordingMetaDataId, false,
- isInterview);
+ recordShow(conn, String.valueOf(rcl.getBroadCastID()).toString(), streamName,
+ flvRecordingMetaDataId, false, isInterview);
}
@@ -288,52 +245,37 @@ public class FLVRecorderService implemen
* @param flvRecordingMetaDataId
* @throws Exception
*/
- private synchronized void recordShow(IConnection conn, String broadcastid,
- String streamName, Long flvRecordingMetaDataId,
- boolean isScreenData, Boolean isInterview) throws Exception {
+ private synchronized void recordShow(IConnection conn, String broadcastid, String streamName,
+ Long flvRecordingMetaDataId, boolean isScreenData, Boolean isInterview) throws Exception {
try {
log.debug("Recording show for: " + conn.getScope().getContextPath());
- log.debug("Name of CLient and Stream to be recorded: "
- + broadcastid);
+ log.debug("Name of CLient and Stream to be recorded: " + broadcastid);
// log.debug("Application.getInstance()"+Application.getInstance());
log.debug("Scope " + conn);
log.debug("Scope " + conn.getScope());
// Get a reference to the current broadcast stream.
- ClientBroadcastStream stream = (ClientBroadcastStream) scopeApplicationAdapter
- .getBroadcastStream(conn.getScope(), broadcastid);
+ ClientBroadcastStream stream = (ClientBroadcastStream) scopeApplicationAdapter.getBroadcastStream(
+ conn.getScope(), broadcastid);
if (stream == null) {
log.debug("Unable to get stream: " + streamName);
return;
}
// Save the stream to disk.
- if (isScreenData) {
-
- StreamVideoListener streamScreenListener = new StreamVideoListener(streamName,
- conn.getScope(), flvRecordingMetaDataId, isScreenData,
- isInterview, flvRecordingMetaDataDao);
-
- streamListeners.put(flvRecordingMetaDataId, streamScreenListener);
-
- stream.addStreamListener(streamScreenListener);
- } else {
-
- log.debug("### stream " + stream);
- log.debug("### streamName " + streamName);
- log.debug("### conn.getScope() " + conn.getScope());
- log.debug("### flvRecordingMetaDataId "
- + flvRecordingMetaDataId);
- log.debug("### isScreenData " + isScreenData);
- log.debug("### isInterview " + isInterview);
+ log.debug("### stream " + stream);
+ log.debug("### streamName " + streamName);
+ log.debug("### conn.getScope() " + conn.getScope());
+ log.debug("### flvRecordingMetaDataId " + flvRecordingMetaDataId);
+ log.debug("### isScreenData " + isScreenData);
+ log.debug("### isInterview " + isInterview);
+
+ StreamListener streamAudioListener = new StreamListener(!isScreenData, streamName, conn.getScope(),
+ flvRecordingMetaDataId, isScreenData, isInterview, flvRecordingMetaDataDao,
+ flvRecordingMetaDeltaDao);
- StreamAudioListener streamAudioListener = new StreamAudioListener(streamName,
- conn.getScope(), flvRecordingMetaDataId, isScreenData,
- isInterview, flvRecordingMetaDeltaDao, flvRecordingMetaDataDao);
+ streamListeners.put(flvRecordingMetaDataId, streamAudioListener);
- streamListeners.put(flvRecordingMetaDataId, streamAudioListener);
-
- stream.addStreamListener(streamAudioListener);
- }
+ stream.addStreamListener(streamAudioListener);
// Just for Debug Purpose
// stream.saveAs(streamName+"_DEBUG", false);
} catch (Exception e) {
@@ -346,84 +288,77 @@ public class FLVRecorderService implemen
*
* @param conn
*/
- public synchronized void stopRecordingShow(IConnection conn, String broadcastId,
- Long flvRecordingMetaDataId) {
+ public synchronized void stopRecordingShow(IConnection conn, String broadcastId, Long flvRecordingMetaDataId) {
try {
-
+
if (flvRecordingMetaDataId == null) {
- //this should be fixed, can be useful for debugging, after all this is an error
- //but we don't want the application to completely stop the process
+ // this should be fixed, can be useful for debugging, after all this is an error
+ // but we don't want the application to completely stop the process
log.error("flvRecordingMetaDataId is null");
}
log.debug("** stopRecordingShow: " + conn);
- log.debug("### Stop recording show for broadcastId: " + broadcastId
- + " || " + conn.getScope().getContextPath());
+ log.debug("### Stop recording show for broadcastId: " + broadcastId + " || "
+ + conn.getScope().getContextPath());
+
+ Object streamToClose = scopeApplicationAdapter.getBroadcastStream(conn.getScope(), broadcastId);
- Object streamToClose = scopeApplicationAdapter.getBroadcastStream(
- conn.getScope(), broadcastId);
+ StreamListener listenerAdapter = streamListeners.get(flvRecordingMetaDataId);
- BaseStreamListener listenerAdapter = streamListeners.get(flvRecordingMetaDataId);
-
log.debug("Stream Closing :: " + flvRecordingMetaDataId);
-
+
ClientBroadcastStream stream = (ClientBroadcastStream) streamToClose;
- //the stream can be null if the user just closes the browser
- //without canceling the recording before leaving
+ // the stream can be null if the user just closes the browser
+ // without canceling the recording before leaving
if (stream != null) {
- //Iterate through all stream listeners and stop the appropriate
+ // Iterate through all stream listeners and stop the appropriate
if (stream.getStreamListeners() != null) {
-
- for (IStreamListener iStreamListener : stream
- .getStreamListeners()) {
+
+ for (IStreamListener iStreamListener : stream.getStreamListeners()) {
stream.removeStreamListener(iStreamListener);
}
}
}
-
+
if (listenerAdapter == null) {
-
+
log.debug("Stream Not Found :: " + flvRecordingMetaDataId);
- log.debug("Available Streams :: "+streamListeners.size());
-
+ log.debug("Available Streams :: " + streamListeners.size());
+
for (Long entryKey : streamListeners.keySet()) {
- log.debug("Stored flvRecordingMetaDataId in Map: "+ entryKey);
+ log.debug("Stored flvRecordingMetaDataId in Map: " + entryKey);
}
-
- //Manually call finish on the stream so that there is no endless loop waiting
- //in the FlvRecorderConverter waiting for the stream to finish
- //this would normally happen in the Listener
- FlvRecordingMetaData flvRecordingMetaData = flvRecordingMetaDataDaoImpl.
- getFlvRecordingMetaDataById(flvRecordingMetaDataId);
+
+ // Manually call finish on the stream so that there is no endless loop waiting
+ // in the FlvRecorderConverter waiting for the stream to finish
+ // this would normally happen in the Listener
+ FlvRecordingMetaData flvRecordingMetaData = flvRecordingMetaDataDaoImpl.get(flvRecordingMetaDataId);
flvRecordingMetaData.setStreamReaderThreadComplete(true);
- flvRecordingMetaDataDaoImpl.updateFlvRecordingMetaData(flvRecordingMetaData);
-
- throw new IllegalStateException("Could not find Listener to stop! flvRecordingMetaDataId "+flvRecordingMetaDataId);
+ flvRecordingMetaDataDaoImpl.update(flvRecordingMetaData);
+
+ throw new IllegalStateException("Could not find Listener to stop! flvRecordingMetaDataId "
+ + flvRecordingMetaDataId);
}
-
+
listenerAdapter.closeStream();
streamListeners.remove(flvRecordingMetaDataId);
-
} catch (Exception err) {
log.error("[stopRecordingShow]", err);
}
}
- public Long stopRecordAndSave(IScope scope, Client currentClient,
- Long storedFlvRecordingId) {
+ public Long stopRecordAndSave(IScope scope, Client currentClient, Long storedFlvRecordingId) {
try {
- log.debug("stopRecordAndSave " + currentClient.getUsername() + ","
- + currentClient.getUserip());
+ log.debug("stopRecordAndSave " + currentClient.getUsername() + "," + currentClient.getUserip());
// get all stream and stop recording them
for (IConnection conn : scope.getClientConnections()) {
if (conn != null) {
if (conn instanceof IServiceCapableConnection) {
- Client rcl = sessionManager.getClientByStreamId(
- conn.getClient().getId(), null);
+ Client rcl = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
// FIXME: Check if this function is really in use at
// the moment
@@ -437,36 +372,26 @@ public class FLVRecorderService implemen
if (rcl.getIsScreenClient()) {
- if (rcl.getFlvRecordingId() != null
- && rcl.isScreenPublishStarted()) {
+ if (rcl.getFlvRecordingId() != null && rcl.isScreenPublishStarted()) {
// Stop FLV Recording
- stopRecordingShow(conn,
- rcl.getStreamPublishName(),
- rcl.getFlvRecordingMetaDataId());
+ stopRecordingShow(conn, rcl.getStreamPublishName(), rcl.getFlvRecordingMetaDataId());
// Update Meta Data
- this.flvRecordingMetaDataDao
- .updateFlvRecordingMetaDataEndDate(
- rcl.getFlvRecordingMetaDataId(),
- new Date());
+ flvRecordingMetaDataDao.updateFlvRecordingMetaDataEndDate(
+ rcl.getFlvRecordingMetaDataId(), new Date());
}
} else if (rcl.getIsAVClient()
- && (rcl.getAvsettings().equals("av")
- || rcl.getAvsettings().equals("a")
- || rcl.getAvsettings().equals("v"))) {
-
- stopRecordingShow(conn,
- String.valueOf(rcl.getBroadCastID())
- .toString(),
+ && (rcl.getAvsettings().equals("av") || rcl.getAvsettings().equals("a") || rcl
+ .getAvsettings().equals("v"))) {
+
+ stopRecordingShow(conn, String.valueOf(rcl.getBroadCastID()).toString(),
rcl.getFlvRecordingMetaDataId());
// Update Meta Data
- this.flvRecordingMetaDataDao
- .updateFlvRecordingMetaDataEndDate(
- rcl.getFlvRecordingMetaDataId(),
- new Date());
+ flvRecordingMetaDataDao.updateFlvRecordingMetaDataEndDate(rcl.getFlvRecordingMetaDataId(),
+ new Date());
}
@@ -485,33 +410,26 @@ public class FLVRecorderService implemen
if (flvRecordingId != null) {
- this.flvRecordingDaoImpl.updateFlvRecordingEndTime(
- flvRecordingId, new Date(),
+ flvRecordingDaoImpl.updateFlvRecordingEndTime(flvRecordingId, new Date(),
currentClient.getOrganization_id());
// Reset values
currentClient.setFlvRecordingId(null);
currentClient.setIsRecording(false);
- this.sessionManager.updateClientByStreamId(
- currentClient.getStreamid(), currentClient, false, null);
+ sessionManager.updateClientByStreamId(currentClient.getStreamid(), currentClient, false, null);
- log.debug("this.flvRecorderConverterTask ",
- this.flvRecorderConverterTask);
+ log.debug("flvRecorderConverterTask ", flvRecorderConverterTask);
- FlvRecording flvRecording = this.flvRecordingDaoImpl
- .getFlvRecordingById(flvRecordingId);
+ FlvRecording flvRecording = flvRecordingDaoImpl.get(flvRecordingId);
- if (flvRecording.getIsInterview() == null
- || !flvRecording.getIsInterview()) {
+ if (flvRecording.getIsInterview() == null || !flvRecording.getIsInterview()) {
- this.flvRecorderConverterTask
- .startConversionThread(flvRecordingId);
+ flvRecorderConverterTask.startConversionThread(flvRecordingId);
} else {
- this.flvInterviewConverterTask
- .startConversionThread(flvRecordingId);
+ flvInterviewConverterTask.startConversionThread(flvRecordingId);
}
@@ -531,8 +449,7 @@ public class FLVRecorderService implemen
log.debug("getCurrentRoomClient -2- " + streamid);
- Client currentClient = this.sessionManager
- .getClientByStreamId(streamid, null);
+ Client currentClient = sessionManager.getClientByStreamId(streamid, null);
log.debug("getCurrentRoomClient -#########################- "
+ currentClient.getRoom_id());
@@ -560,36 +477,29 @@ public class FLVRecorderService implemen
if (rcl.getIsScreenClient()) {
- if (rcl.getFlvRecordingId() != null
- && rcl.isScreenPublishStarted()) {
+ if (rcl.getFlvRecordingId() != null && rcl.isScreenPublishStarted()) {
// Stop FLV Recording
// FIXME: Is there really a need to stop it manually if the
// user just
// stops the stream?
- stopRecordingShow(conn, rcl.getStreamPublishName(),
- rcl.getFlvRecordingMetaDataId());
+ stopRecordingShow(conn, rcl.getStreamPublishName(), rcl.getFlvRecordingMetaDataId());
// Update Meta Data
- this.flvRecordingMetaDataDao
- .updateFlvRecordingMetaDataEndDate(
- rcl.getFlvRecordingMetaDataId(), new Date());
+ flvRecordingMetaDataDao.updateFlvRecordingMetaDataEndDate(rcl.getFlvRecordingMetaDataId(),
+ new Date());
}
- } else if (rcl.getIsAVClient() &&
- (rcl.getAvsettings().equals("a")
- || rcl.getAvsettings().equals("v")
- || rcl.getAvsettings().equals("av"))) {
+ } else if (rcl.getIsAVClient()
+ && (rcl.getAvsettings().equals("a") || rcl.getAvsettings().equals("v") || rcl.getAvsettings()
+ .equals("av"))) {
// FIXME: Is there really a need to stop it manually if the user
// just stops the stream?
- stopRecordingShow(conn, String.valueOf(rcl.getBroadCastID()),
- rcl.getFlvRecordingMetaDataId());
+ stopRecordingShow(conn, String.valueOf(rcl.getBroadCastID()), rcl.getFlvRecordingMetaDataId());
// Update Meta Data
- this.flvRecordingMetaDataDao
- .updateFlvRecordingMetaDataEndDate(
- rcl.getFlvRecordingMetaDataId(), new Date());
+ flvRecordingMetaDataDao.updateFlvRecordingMetaDataEndDate(rcl.getFlvRecordingMetaDataId(), new Date());
}
} catch (Exception err) {
@@ -597,58 +507,44 @@ public class FLVRecorderService implemen
}
}
- public void addRecordingByStreamId(IConnection conn, String streamId,
- Client rcl, Long flvRecordingId) {
+ public void addRecordingByStreamId(IConnection conn, String streamId, Client rcl, Long flvRecordingId) {
try {
- FlvRecording flvRecording = this.flvRecordingDaoImpl
- .getFlvRecordingById(flvRecordingId);
+ FlvRecording flvRecording = flvRecordingDaoImpl.get(flvRecordingId);
Date now = new Date();
// If its the recording client we need another type of Meta Data
if (rcl.getIsScreenClient()) {
- if (rcl.getFlvRecordingId() != null
- && rcl.isScreenPublishStarted()) {
+ if (rcl.getFlvRecordingId() != null && rcl.isScreenPublishStarted()) {
- String streamName_Screen = generateFileName(flvRecordingId,
- rcl.getStreamPublishName().toString());
+ String streamName_Screen = generateFileName(flvRecordingId, rcl.getStreamPublishName().toString());
- log.debug("############## ADD SCREEN OF SHARER :: "
- + rcl.getStreamPublishName());
+ log.debug("############## ADD SCREEN OF SHARER :: " + rcl.getStreamPublishName());
- Long flvRecordingMetaDataId = this.flvRecordingMetaDataDao
- .addFlvRecordingMetaData(
- flvRecordingId,
- rcl.getFirstname() + " "
- + rcl.getLastname(), now, false,
- false, true, streamName_Screen,
- rcl.getInterviewPodId());
+ Long flvRecordingMetaDataId = flvRecordingMetaDataDao.addFlvRecordingMetaData(flvRecordingId,
+ rcl.getFirstname() + " " + rcl.getLastname(), now, false, false, true, streamName_Screen,
+ rcl.getInterviewPodId());
// Start FLV Recording
- recordShow(conn, rcl.getStreamPublishName(),
- streamName_Screen, flvRecordingMetaDataId, true,
+ recordShow(conn, rcl.getStreamPublishName(), streamName_Screen, flvRecordingMetaDataId, true,
flvRecording.getIsInterview());
// Add Meta Data
rcl.setFlvRecordingMetaDataId(flvRecordingMetaDataId);
- this.sessionManager.updateClientByStreamId(
- rcl.getStreamid(), rcl, false, null);
+ sessionManager.updateClientByStreamId(rcl.getStreamid(), rcl, false, null);
}
- } else if
- // if the user does publish av, a, v
- // But we only record av or a, video only is not interesting
- (rcl.getIsAVClient() &&
- (rcl.getAvsettings().equals("av")
- || rcl.getAvsettings().equals("a")
- || rcl.getAvsettings().equals("v"))) {
+ } else if (rcl.getIsAVClient()
+ && (rcl.getAvsettings().equals("av") || rcl.getAvsettings().equals("a") || rcl.getAvsettings()
+ .equals("v"))) {
+ // if the user does publish av, a, v
+ // But we only record av or a, video only is not interesting
- String streamName = generateFileName(flvRecordingId, String
- .valueOf(rcl.getBroadCastID()).toString());
+ String streamName = generateFileName(flvRecordingId, String.valueOf(rcl.getBroadCastID()).toString());
// Add Meta Data
boolean isAudioOnly = false;
@@ -660,21 +556,17 @@ public class FLVRecorderService implemen
isVideoOnly = true;
}
- Long flvRecordingMetaDataId = this.flvRecordingMetaDataDao
- .addFlvRecordingMetaData(flvRecordingId,
- rcl.getFirstname() + " " + rcl.getLastname(),
- now, isAudioOnly, isVideoOnly, false,
- streamName, rcl.getInterviewPodId());
+ Long flvRecordingMetaDataId = flvRecordingMetaDataDao.addFlvRecordingMetaData(flvRecordingId,
+ rcl.getFirstname() + " " + rcl.getLastname(), now, isAudioOnly, isVideoOnly, false, streamName,
+ rcl.getInterviewPodId());
// Start FLV recording
- recordShow(conn, String.valueOf(rcl.getBroadCastID())
- .toString(), streamName, flvRecordingMetaDataId, false,
- flvRecording.getIsInterview());
+ recordShow(conn, String.valueOf(rcl.getBroadCastID()).toString(), streamName, flvRecordingMetaDataId,
+ false, flvRecording.getIsInterview());
rcl.setFlvRecordingMetaDataId(flvRecordingMetaDataId);
- this.sessionManager.updateClientByStreamId(
- rcl.getStreamid(), rcl, false, null);
+ sessionManager.updateClientByStreamId(rcl.getStreamid(), rcl, false, null);
}
@@ -683,9 +575,8 @@ public class FLVRecorderService implemen
}
}
- public Long restartConversion(String SID, Long flvRecordingId,
- Integer leftSideLoud, Integer rightSideLoud, Integer leftSideTime,
- Integer rightSideTime) {
+ public Long restartConversion(String SID, Long flvRecordingId, Integer leftSideLoud, Integer rightSideLoud,
+ Integer leftSideTime, Integer rightSideTime) {
try {
Long users_id = sessiondataDao.checkSession(SID);
Long user_level = userManager.getUserLevelByID(users_id);
@@ -693,22 +584,19 @@ public class FLVRecorderService implemen
log.debug("updateFileOrFolderName " + flvRecordingId);
- FlvRecording flvRecording = this.flvRecordingDaoImpl
- .getFlvRecordingById(flvRecordingId);
+ FlvRecording flvRecording = flvRecordingDaoImpl.get(flvRecordingId);
flvRecording.setPreviewImage(null);
flvRecording.setProgressPostProcessing(0);
- this.flvRecordingDaoImpl.updateFlvRecording(flvRecording);
+ flvRecordingDaoImpl.updateFlvRecording(flvRecording);
- if (flvRecording.getIsInterview() == null
- || !flvRecording.getIsInterview()) {
+ if (flvRecording.getIsInterview() == null || !flvRecording.getIsInterview()) {
flvRecorderConverterTask.startConversionThread(flvRecordingId);
} else {
- flvInterviewReConverterTask.startConversionThread(
- flvRecordingId, leftSideLoud, rightSideLoud,
- leftSideTime, rightSideTime);
+ flvInterviewReConverterTask.startConversionThread(flvRecordingId, leftSideLoud, rightSideLoud,
+ leftSideTime, rightSideTime);
}
}
} catch (Exception err) {
Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java?rev=1528921&r1=1528920&r2=1528921&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java Thu Oct 3 16:31:53 2013
@@ -169,7 +169,7 @@ public abstract class RecordingResourceR
PageParameters params = attributes.getParameters();
StringValue id = params.get("id");
if (WebSession.get().isSignedIn() && !id.isEmpty()) {
- FlvRecording r = getBean(FlvRecordingDao.class).getFlvRecordingById(id.toLongObject());
+ FlvRecording r = getBean(FlvRecordingDao.class).get(id.toLongObject());
if (r.getOwnerId() == null || getUserId() == r.getOwnerId()) {
return r;
}