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
-~----------~----~----~----~------~----~------~--~---

Reply via email to