Author: seba.wagner
Date: Mon Dec 29 02:56:38 2008
New Revision: 1740
Modified:
trunk/webapp/filetest.keystore
trunk/webapp/src/app/org/openmeetings/app/data/record/WhiteboardConvertionJobManager.java
trunk/webapp/src/app/org/openmeetings/app/data/record/dao/ChatvaluesEventDaoImpl.java
trunk/webapp/src/app/org/openmeetings/app/data/record/dao/RecordingConversionJobDaoImpl.java
trunk/webapp/src/app/org/openmeetings/app/data/record/dao/RoomRecordingDaoImpl.java
trunk/webapp/src/app/org/openmeetings/app/data/record/dao/RoomStreamDaoImpl.java
trunk/webapp/src/app/org/openmeetings/app/documents/GenerateSWF.java
trunk/webapp/src/app/org/openmeetings/app/hibernate/beans/recording/Recording.java
trunk/webapp/src/app/org/openmeetings/app/hibernate/beans/recording/RoomRecording.java
trunk/webapp/src/app/org/openmeetings/app/remote/StreamService.java
Log:
Fixes:
Switch to fps = 30 in resulting Whiteboard.swf
Ading ConversionJob-Object into Recording Object
Modified: trunk/webapp/filetest.keystore
==============================================================================
Binary files. No diff available.
Modified:
trunk/webapp/src/app/org/openmeetings/app/data/record/WhiteboardConvertionJobManager.java
==============================================================================
---
trunk/webapp/src/app/org/openmeetings/app/data/record/WhiteboardConvertionJobManager.java
(original)
+++
trunk/webapp/src/app/org/openmeetings/app/data/record/WhiteboardConvertionJobManager.java
Mon Dec 29 02:56:38 2008
@@ -16,11 +16,13 @@
import org.apache.commons.logging.LogFactory;
import org.openmeetings.app.data.record.dao.RecordingConversionJobDaoImpl;
import org.openmeetings.app.data.record.dao.RecordingDaoImpl;
+import org.openmeetings.app.data.record.dao.RoomRecordingDaoImpl;
import org.openmeetings.app.data.record.dao.WhiteBoardEventDaoImpl;
import org.openmeetings.app.documents.GenerateImage;
import org.openmeetings.app.documents.GenerateSWF;
import org.openmeetings.app.hibernate.beans.recording.Recording;
import
org.openmeetings.app.hibernate.beans.recording.RecordingConversionJob;
+import org.openmeetings.app.hibernate.beans.recording.RoomRecording;
import org.openmeetings.app.hibernate.beans.recording.WhiteBoardEvent;
import org.openmeetings.app.remote.Application;
import org.openmeetings.app.remote.StreamService;
Modified:
trunk/webapp/src/app/org/openmeetings/app/data/record/dao/ChatvaluesEventDaoImpl.java
==============================================================================
---
trunk/webapp/src/app/org/openmeetings/app/data/record/dao/ChatvaluesEventDaoImpl.java
(original)
+++
trunk/webapp/src/app/org/openmeetings/app/data/record/dao/ChatvaluesEventDaoImpl.java
Mon Dec 29 02:56:38 2008
@@ -1,11 +1,15 @@
package org.openmeetings.app.data.record.dao;
+import java.util.List;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.HibernateException;
+import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.openmeetings.app.hibernate.beans.recording.ChatvaluesEvent;
+import
org.openmeetings.app.hibernate.beans.recording.RecordingConversionJob;
import org.openmeetings.app.hibernate.utils.HibernateUtil;
public class ChatvaluesEventDaoImpl {
@@ -24,6 +28,32 @@
return instance;
}
+
+ public List<ChatvaluesEvent> getChatvaluesEventByRoomRecordingId(Long
roomrecordingId) {
+ try {
+
+ String hql = "select c from ChatvaluesEvent as c " +
+ "where
c.roomRecording.roomrecordingId = :roomrecordingId";
+
+ Object idf = HibernateUtil.createSession();
+ Session session = HibernateUtil.getSession();
+ Transaction tx = session.beginTransaction();
+ Query query = session.createQuery(hql);
+ query.setLong("roomrecordingId", roomrecordingId);
+ List<ChatvaluesEvent> ll = query.list();
+ tx.commit();
+ HibernateUtil.closeSession(idf);
+
+ return ll;
+
+ } catch (HibernateException ex) {
+ log.error("[getChatvaluesEventByRoomRecordingId]: " ,
ex);
+ } catch (Exception ex2) {
+ log.error("[getChatvaluesEventByRoomRecordingId]: " ,
ex2);
+ }
+ return null;
+ }
+
public Long addChatvaluesEvent(ChatvaluesEvent chatvaluesEvent) {
try {
Modified:
trunk/webapp/src/app/org/openmeetings/app/data/record/dao/RecordingConversionJobDaoImpl.java
==============================================================================
---
trunk/webapp/src/app/org/openmeetings/app/data/record/dao/RecordingConversionJobDaoImpl.java
(original)
+++
trunk/webapp/src/app/org/openmeetings/app/data/record/dao/RecordingConversionJobDaoImpl.java
Mon Dec 29 02:56:38 2008
@@ -53,6 +53,31 @@
return null;
}
+ public RecordingConversionJob
getRecordingConversionJobsByRecording(long
recording_id) {
+ try {
+
+ String hql = "select c from RecordingConversionJob as c
" +
+ "where c.recording.recording_id
= :recording_id ";
+
+ Object idf = HibernateUtil.createSession();
+ Session session = HibernateUtil.getSession();
+ Transaction tx = session.beginTransaction();
+ Query query = session.createQuery(hql);
+ query.setLong("recording_id", recording_id);
+ RecordingConversionJob recordingConversionJob =
(RecordingConversionJob) query.uniqueResult();
+ tx.commit();
+ HibernateUtil.closeSession(idf);
+
+ return recordingConversionJob;
+
+ } catch (HibernateException ex) {
+ log.error("[getRecordingConversionJobsByRecording]: " ,
ex);
+ } catch (Exception ex2) {
+ log.error("[getRecordingConversionJobsByRecording]: " ,
ex2);
+ }
+ return null;
+ }
+
/**
* get all Conversion Jobs where END Time is not set for
* the SVG Conversion
Modified:
trunk/webapp/src/app/org/openmeetings/app/data/record/dao/RoomRecordingDaoImpl.java
==============================================================================
---
trunk/webapp/src/app/org/openmeetings/app/data/record/dao/RoomRecordingDaoImpl.java
(original)
+++
trunk/webapp/src/app/org/openmeetings/app/data/record/dao/RoomRecordingDaoImpl.java
Mon Dec 29 02:56:38 2008
@@ -97,4 +97,23 @@
return null;
}
+ public Long updateRoomRecording(RoomRecording roomRecording) {
+ try {
+
+ Object idf = HibernateUtil.createSession();
+ Session session = HibernateUtil.getSession();
+ Transaction tx = session.beginTransaction();
+ session.update(roomRecording);
+
+ tx.commit();
+ HibernateUtil.closeSession(idf);
+
+ } catch (HibernateException ex) {
+ log.error("[updateRoomRecording]: " , ex);
+ } catch (Exception ex2) {
+ log.error("[updateRoomRecording]: " , ex2);
+ }
+ return null;
+ }
+
}
Modified:
trunk/webapp/src/app/org/openmeetings/app/data/record/dao/RoomStreamDaoImpl.java
==============================================================================
---
trunk/webapp/src/app/org/openmeetings/app/data/record/dao/RoomStreamDaoImpl.java
(original)
+++
trunk/webapp/src/app/org/openmeetings/app/data/record/dao/RoomStreamDaoImpl.java
Mon Dec 29 02:56:38 2008
@@ -1,10 +1,17 @@
package org.openmeetings.app.data.record.dao;
+import java.util.Date;
+import java.util.List;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.HibernateException;
+import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
+import org.openmeetings.app.hibernate.beans.recording.ChatvaluesEvent;
+import org.openmeetings.app.hibernate.beans.recording.RoomClient;
+import org.openmeetings.app.hibernate.beans.recording.RoomRecording;
import org.openmeetings.app.hibernate.beans.recording.RoomStream;
import org.openmeetings.app.hibernate.utils.HibernateUtil;
@@ -23,6 +30,31 @@
}
return instance;
+ }
+
+ public List<RoomStream> getRoomStreamsByRoomRecordingId(Long
roomrecordingId) {
+ try {
+
+ String hql = "select c from RoomStream as c " +
+ "where
c.roomRecording.roomrecordingId = :roomrecordingId";
+
+ Object idf = HibernateUtil.createSession();
+ Session session = HibernateUtil.getSession();
+ Transaction tx = session.beginTransaction();
+ Query query = session.createQuery(hql);
+ query.setLong("roomrecordingId", roomrecordingId);
+ List<RoomStream> ll = query.list();
+ tx.commit();
+ HibernateUtil.closeSession(idf);
+
+ return ll;
+
+ } catch (HibernateException ex) {
+ log.error("[getRoomStreamsByRoomRecordingId]: " , ex);
+ } catch (Exception ex2) {
+ log.error("[getRoomStreamsByRoomRecordingId]: " , ex2);
+ }
+ return null;
}
public Long addRoomStream(RoomStream roomStream) {
Modified:
trunk/webapp/src/app/org/openmeetings/app/documents/GenerateSWF.java
==============================================================================
--- trunk/webapp/src/app/org/openmeetings/app/documents/GenerateSWF.java
(original)
+++ trunk/webapp/src/app/org/openmeetings/app/documents/GenerateSWF.java
Mon Dec 29 02:56:38 2008
@@ -112,6 +112,14 @@
}
}
+ /**
+ * This Function generate a SWF but 3 times faster then the input fps
+ * as the resulting SWF has to have a FPS of 30
+ * @param images
+ * @param outputfile
+ * @param fps
+ * @return
+ */
public HashMap<String,Object> generateSWFByImages(List<String> images,
String outputfile, int fps) {
HashMap<String,Object> returnMap = new HashMap<String,Object>();
returnMap.put("process", "generateSWFByImages");
@@ -151,11 +159,14 @@
//Create the Content of the Converter Script (.bat or
.sh File)
String fileContent = pathToSWFTools + "png2swf"
+ " -o " + "\"" + outputfile + "\""
- + " -r " + fps
+ + " -r " + (fps*3)
+ " -z ";
for (Iterator<String> iter =
images.iterator();iter.hasNext();) {
- fileContent += " " + "\"" + iter.next() +"\"";
+ String fileName = iter.next();
+ fileContent += " " + "\"" + fileName +"\"";
+ fileContent += " " + "\"" + fileName +"\"";
+ fileContent += " " + "\"" + fileName +"\"";
}
fileContent += Application.lineSeperator + "exit";
Modified:
trunk/webapp/src/app/org/openmeetings/app/hibernate/beans/recording/Recording.java
==============================================================================
---
trunk/webapp/src/app/org/openmeetings/app/hibernate/beans/recording/Recording.java
(original)
+++
trunk/webapp/src/app/org/openmeetings/app/hibernate/beans/recording/Recording.java
Mon Dec 29 02:56:38 2008
@@ -32,6 +32,9 @@
private Boolean whiteBoardConverted;
+ //set through Logic not through Hibernate
+ private RecordingConversionJob recordingConversionJob;
+
/**
* @hibernate.property
* column="comment"
@@ -195,5 +198,15 @@
public void setWhiteBoardConverted(Boolean whiteBoardConverted) {
this.whiteBoardConverted = whiteBoardConverted;
}
+
+
+ public RecordingConversionJob getRecordingConversionJob() {
+ return recordingConversionJob;
+ }
+ public void setRecordingConversionJob(
+ RecordingConversionJob recordingConversionJob) {
+ this.recordingConversionJob = recordingConversionJob;
+ }
+
}
Modified:
trunk/webapp/src/app/org/openmeetings/app/hibernate/beans/recording/RoomRecording.java
==============================================================================
---
trunk/webapp/src/app/org/openmeetings/app/hibernate/beans/recording/RoomRecording.java
(original)
+++
trunk/webapp/src/app/org/openmeetings/app/hibernate/beans/recording/RoomRecording.java
Mon Dec 29 02:56:38 2008
@@ -228,4 +228,5 @@
this.recordname = recordname;
}
+
}
Modified:
trunk/webapp/src/app/org/openmeetings/app/remote/StreamService.java
==============================================================================
--- trunk/webapp/src/app/org/openmeetings/app/remote/StreamService.java
(original)
+++ trunk/webapp/src/app/org/openmeetings/app/remote/StreamService.java Mon
Dec 29 02:56:38 2008
@@ -45,6 +45,7 @@
import org.openmeetings.app.hibernate.beans.recording.WhiteBoardEvent;
import org.openmeetings.app.data.record.dao.ChatvaluesEventDaoImpl;
import org.openmeetings.app.data.record.dao.RecordingClientDaoImpl;
+import org.openmeetings.app.data.record.dao.RecordingConversionJobDaoImpl;
import org.openmeetings.app.data.record.dao.RecordingDaoImpl;
import org.openmeetings.app.data.record.dao.RoomRecordingDaoImpl;
import org.openmeetings.app.data.record.dao.RoomStreamDaoImpl;
@@ -514,51 +515,28 @@
public Recording getRecordingById(String SID, Long recording_id) {
try {
+
Long users_id =
Sessionmanagement.getInstance().checkSession(SID);
Long user_level =
Usermanagement.getInstance().getUserLevelByID(users_id);
if
(AuthLevelmanagement.getInstance().checkUserLevel(user_level)){
Recording rec =
RecordingDaoImpl.getInstance().getRecordingById(recording_id);
-
-
- IScope scope =
Red5.getConnectionLocal().getScope().getParent();
- String current_dir =
scope.getResource("upload/").getFile().getAbsolutePath();
- //System.out.println(current_dir +
File.separatorChar +
this.folderForRecordings);
- File f = new File(current_dir +
File.separatorChar +
folderForRecordings);
- if (!f.exists()){
- f.mkdir();
- }
- String fileName = f.getAbsolutePath() +
File.separatorChar +
fileNameXML+recording_id+".xml";
- //System.out.println("fileName"+fileName);
- BufferedReader reader = new BufferedReader(new
FileReader(fileName));
- String xmlString = "";
- while (reader.ready()) {
- xmlString += reader.readLine();
- }
-
- XStream xStream = new XStream(new XppDriver());
- xStream.setMode(XStream.NO_REFERENCES);
- RoomRecording roomRecording =
(RoomRecording)xStream.fromXML(xmlString);
-
- for (Iterator<ChatvaluesEvent> iter =
roomRecording.getChatvalues().iterator();iter.hasNext();) {
- ChatvaluesEvent chatvaluesEvent = iter.next();
- XStream xStream_chat = new XStream(new
XppDriver());
- xStream_chat.setMode(XStream.NO_REFERENCES);
-
chatvaluesEvent.setActionObj(xStream_chat.fromXML(chatvaluesEvent.getAction()));
- }
-
- for (Iterator<WhiteBoardEvent> iter =
roomRecording.getWhiteboard().iterator();iter.hasNext();) {
- WhiteBoardEvent whiteBoardEvent = iter.next();
- XStream xStream_chat = new XStream(new
XppDriver());
- xStream_chat.setMode(XStream.NO_REFERENCES);
-
whiteBoardEvent.setActionObj(xStream_chat.fromXML(whiteBoardEvent.getAction()));
- }
-
- rec.setRoomRecording(roomRecording);
-
+ rec.getRoomRecording().setChatvalues(
+
ChatvaluesEventDaoImpl.getInstance().getChatvaluesEventByRoomRecordingId(
+
rec.getRoomRecording().getRoomrecordingId()));
+
+ rec.getRoomRecording().setRoomStreams(
+
RoomStreamDaoImpl.getInstance().getRoomStreamsByRoomRecordingId(
+
rec.getRoomRecording().getRoomrecordingId()));
+
+ //Set Conversion Job Record
+
rec.setRecordingConversionJob(RecordingConversionJobDaoImpl.getInstance().
+
getRecordingConversionJobsByRecording(rec.getRecording_id()));
+
return rec;
}
+
} catch (Exception err) {
log.error("[getRecordingById]",err);
}
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"OpenMeetings developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/openmeetings-dev?hl=en
-~----------~----~----~----~------~----~------~--~---