Author: solomax
Date: Sun Sep 18 12:01:46 2016
New Revision: 1761322

URL: http://svn.apache.org/viewvc?rev=1761322&view=rev
Log:
[OPENMEETINGS-1457] room foles and recordings seems to work as expected

Removed:
    
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
Modified:
    
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
    
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
    
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java
    
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
    
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java
    
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
    
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
    
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java
    
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/flexibleConferenceRoom/roomSidebar/baseRoomSidebar.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/baseDrawObject.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/whiteboardVideoPlayer.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/StoredFile.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
    
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java
    
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/StoredFile.java
    
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
    
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java?rev=1761322&r1=1761321&r2=1761322&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
 Sun Sep 18 12:01:46 2016
@@ -18,8 +18,8 @@
  */
 package org.apache.openmeetings.core.converter;
 
-import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
 import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_JPG;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.File;
@@ -29,7 +29,6 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
-import org.apache.openmeetings.db.dao.file.FileItemLogDao;
 import org.apache.openmeetings.db.entity.file.FileExplorerItem;
 import org.apache.openmeetings.db.entity.file.FileItem.Type;
 import org.apache.openmeetings.util.process.ConverterProcessResult;
@@ -45,8 +44,6 @@ public class FlvExplorerConverter extend
        // Spring loaded Beans
        @Autowired
        private FileExplorerItemDao fileDao;
-       @Autowired
-       private FileItemLogDao fileLogDao;
        
        private static class FlvDimension {
                public FlvDimension(int width, int height) {
@@ -58,43 +55,43 @@ public class FlvExplorerConverter extend
        }
 
        public List<ConverterProcessResult> convertToMP4(FileExplorerItem f, 
String ext) {
-               List<ConverterProcessResult> returnLog = new 
ArrayList<ConverterProcessResult>();
+               List<ConverterProcessResult> logs = new 
ArrayList<ConverterProcessResult>();
                try {
                        File mp4 = f.getFile(EXTENSION_MP4);
 
                        f.setType(Type.Video);
+                       ConverterProcessResult res;
+                       if (EXTENSION_MP4.equals(ext)) {
+                               String[] args = new String[] { 
getPathToFFMPEG(), "-i", f.getFile(ext).getCanonicalPath() };
+                               res = ProcessHelper.executeScript("Info ID :: " 
+ f.getId(), args);
+                               res.setExitCode(0); //normal code is 1, ffmpeg 
requires output file
+                       } else {
+                               String[] args = new String[] { 
getPathToFFMPEG(), "-y", "-i", f.getFile(ext).getCanonicalPath(),
+                                               "-c:a", "aac", "-c:v", "h264", 
mp4.getCanonicalPath() };
+                               res = ProcessHelper.executeScript("uploadFLV ID 
:: " + f.getId(), args);
 
-                       String[] argv_fullFLV = new String[] { 
getPathToFFMPEG(), "-y", "-i", f.getFile(ext).getCanonicalPath(),
-                                       "-c:a", "aac", "-c:v", "h264", 
mp4.getCanonicalPath() };
-
-                       ConverterProcessResult returnMapConvertFLV = 
ProcessHelper.executeScript("uploadFLV ID :: " + f.getId(), argv_fullFLV);
-                       
+                       }
+                       logs.add(res);
                        //Parse the width height from the FFMPEG output
-                       FlvDimension flvDimension = 
getFlvDimension(returnMapConvertFLV.getError());
-                       int flvWidth = flvDimension.width;
-                       int flvHeight = flvDimension.height;
-                       
-                       f.setFlvWidth(flvWidth);
-                       f.setFlvHeight(flvHeight);
-
-                       returnLog.add(returnMapConvertFLV);
-
+                       FlvDimension dim = getFlvDimension(res.getError());
+                       f.setFlvWidth(dim.width);
+                       f.setFlvHeight(dim.height);
                        File jpeg = f.getFile(EXTENSION_JPG);
 
                        String[] argv_previewFLV = new String[] { 
getPathToFFMPEG(), "-y", "-i",
                                        mp4.getCanonicalPath(), "-codec:v", 
"mjpeg", "-vframes", "1", "-an",
-                                       "-f", "rawvideo", "-s", flvWidth + "x" 
+ flvHeight,
+                                       "-f", "rawvideo", "-s", dim.width + "x" 
+ dim.height,
                                        jpeg.getCanonicalPath() };
 
-                       
returnLog.add(ProcessHelper.executeScript("previewUpload ID :: " + f.getId(), 
argv_previewFLV));
+                       logs.add(ProcessHelper.executeScript("previewUpload ID 
:: " + f.getId(), argv_previewFLV));
 
                        fileDao.update(f);
                } catch (Exception err) {
                        log.error("[convertToFLV]", err);
-                       returnLog.add(new 
ConverterProcessResult("convertToMP4", err.getMessage(), err));
+                       logs.add(new ConverterProcessResult("convertToMP4", 
err.getMessage(), err));
                }
 
-               return returnLog;
+               return logs;
        }
        
        private static FlvDimension getFlvDimension(String txt) throws 
Exception {

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java?rev=1761322&r1=1761321&r2=1761322&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
 Sun Sep 18 12:01:46 2016
@@ -29,6 +29,7 @@ import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.UUID;
 
 import org.apache.openmeetings.db.dao.file.FileItemLogDao;
 import org.apache.openmeetings.db.dao.record.RecordingDao;
@@ -38,6 +39,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.util.process.ConverterProcessResult;
 import org.apache.openmeetings.util.process.ProcessHelper;
+import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -63,9 +65,9 @@ public class InterviewConverter extends
 
        private String[] mergeAudioToWaves(List<File> waveFiles, File wav,
                        List<RecordingMetaData> metaDataList, ReConverterParams 
rcv) throws IOException {
-               String[] argv_full_sox = new String[waveFiles.size() + 5];
-               argv_full_sox[0] = this.getPathToSoX();
-               argv_full_sox[1] = "-m";
+               String[] cmdSox = new String[waveFiles.size() + 5];
+               cmdSox[0] = this.getPathToSoX();
+               cmdSox[1] = "-m";
 
                int counter = 2;
                for (File _wav : waveFiles) {
@@ -74,22 +76,22 @@ public class InterviewConverter extends
 
                                if 
(hashFileFullNameStored.equals(_wav.getName())) {
                                        if (metaData.getInteriewPodId() == 1) {
-                                               argv_full_sox[counter] = "-v " 
+ rcv.leftSideLoud;
+                                               cmdSox[counter] = "-v " + 
rcv.leftSideLoud;
                                                counter++;
                                        }
                                        if (metaData.getInteriewPodId() == 2) {
-                                               argv_full_sox[counter] = "-v " 
+ rcv.rightSideLoud;
+                                               cmdSox[counter] = "-v " + 
rcv.rightSideLoud;
                                                counter++;
                                        }
                                }
                        }
-                       argv_full_sox[counter] = _wav.getCanonicalPath();
+                       cmdSox[counter] = _wav.getCanonicalPath();
                        counter++;
                }
 
-               argv_full_sox[counter] = wav.getCanonicalPath();
+               cmdSox[counter] = wav.getCanonicalPath();
 
-               return argv_full_sox;
+               return cmdSox;
        }
 
        @Override
@@ -102,15 +104,18 @@ public class InterviewConverter extends
                try {
                        r = recordingDao.get(id);
                        log.debug("recording " + r.getId());
+                       if (Strings.isEmpty(r.getHash())) {
+                               r.setHash(UUID.randomUUID().toString());
+                       }
                        r.setStatus(Recording.Status.CONVERTING);
                        r = recordingDao.update(r);
 
-                       List<ConverterProcessResult> returnLog = new 
ArrayList<>();
+                       List<ConverterProcessResult> logs = new ArrayList<>();
                        List<File> waveFiles = new ArrayList<>();
                        File streamFolder = getStreamFolder(r);
                        List<RecordingMetaData> metaDataList = 
metaDataDao.getAudioMetaDataByRecording(r.getId());
        
-                       stripAudioFirstPass(r, returnLog, waveFiles, 
streamFolder, metaDataList);
+                       stripAudioFirstPass(r, logs, waveFiles, streamFolder, 
metaDataList);
                
                        // Merge Wave to Full Length
                        File streamFolderGeneral = getStreamsHibernateDir();
@@ -128,7 +133,7 @@ public class InterviewConverter extends
                                        argv_full_sox = 
mergeAudioToWaves(waveFiles, wav);
                                }
 
-                               
returnLog.add(ProcessHelper.executeScript("mergeAudioToWaves", argv_full_sox));
+                               
logs.add(ProcessHelper.executeScript("mergeAudioToWaves", argv_full_sox));
                        } else {
                                // create default Audio to merge it.
                                // strip to content length
@@ -137,9 +142,9 @@ public class InterviewConverter extends
                                // Calculate delta at beginning
                                double deltaPadding = 
diffSeconds(r.getRecordEnd(), r.getRecordStart());
 
-                               String[] argv_full_sox = new String[] { 
getPathToSoX(), outputWav.getCanonicalPath(), wav.getCanonicalPath(), "pad", 
"0", "" + deltaPadding };
+                               String[] cmdSox = new String[] { 
getPathToSoX(), outputWav.getCanonicalPath(), wav.getCanonicalPath(), "pad", 
"0", "" + deltaPadding };
 
-                               
returnLog.add(ProcessHelper.executeScript("generateSampleAudio", 
argv_full_sox));
+                               
logs.add(ProcessHelper.executeScript("generateSampleAudio", cmdSox));
                        }
                        // Default Image for empty interview video pods
                        final File defaultInterviewImageFile = new 
File(streamFolderGeneral, "default_interview_image.png");
@@ -172,7 +177,7 @@ public class InterviewConverter extends
                                                        , "-f", "null"
                                                        , "file.null"};
                                        ConverterProcessResult res = 
ProcessHelper.executeScript("checkFlvPod_" + pod , args);
-                                       returnLog.add(res);
+                                       logs.add(res);
                                        if (res.isOk()) {
                                                //TODO need to remove smallest 
gap
                                                long diff = 
diff(meta.getRecordStart(), meta.getRecording().getRecordStart());
@@ -188,7 +193,7 @@ public class InterviewConverter extends
                                                                        , "-t", 
formatMillis(diff) //
                                                                        , 
"-pix_fmt", "yuv420p" //
                                                                        , podPB 
};
-                                                       
returnLog.add(ProcessHelper.executeScript("blankFlvPod_" + pod , argsPodB));
+                                                       
logs.add(ProcessHelper.executeScript("blankFlvPod_" + pod , argsPodB));
                                                        
                                                        //ffmpeg -y -i out.flv 
-i rec_15_stream_4_2014_07_15_20_41_03.flv -filter_complex 
'[0:0]setsar=1/1[sarfix];[1:0]scale=320:260,setsar=1/1[scale];[sarfix] [scale] 
concat=n=2:v=1:a=0 [v]' -map '[v]'  output1.flv
                                                        File podF = new 
File(streamFolder, OmFileHelper.getName(meta.getStreamName() + "_pod_" + pod, 
EXTENSION_FLV));
@@ -199,7 +204,7 @@ public class InterviewConverter extends
                                                                        , 
"-filter_complex", 
String.format("[0:0]setsar=1/1[sarfix];[1:0]scale=%1$d:%2$d,setsar=1/1[scale];[sarfix]
 [scale] concat=n=2:v=1:a=0 [v]", flvWidth, flvHeight) //
                                                                        , 
"-map", "[v]" //
                                                                        , podP 
};
-                                                       
returnLog.add(ProcessHelper.executeScript("shiftedFlvPod_" + pod , argsPod));
+                                                       
logs.add(ProcessHelper.executeScript("shiftedFlvPod_" + pod , argsPod));
        
                                                        pods[pod - 1] = podP;
                                                } else {
@@ -213,7 +218,8 @@ public class InterviewConverter extends
                                ConverterProcessResult res = new 
ConverterProcessResult();
                                res.setProcess("CheckFlvFilesExists");
                                res.setError("No valid pods found");
-                               returnLog.add(res);
+                               res.setExitCode(-1);
+                               logs.add(res);
                                return;
                        }
                        boolean shortest = false;
@@ -255,7 +261,7 @@ public class InterviewConverter extends
                        File flv = r.getFile(EXTENSION_FLV);
                        args.add(flv.getCanonicalPath());
                        // TODO additional flag to 'quiet' output should be 
added
-                       
returnLog.add(ProcessHelper.executeScript("generateFullBySequenceFLV", 
args.toArray(new String[]{})));
+                       
logs.add(ProcessHelper.executeScript("generateFullBySequenceFLV", 
args.toArray(new String[]{})));
 
                        r.setFlvWidth(2 * flvWidth);
                        r.setFlvHeight(flvHeight);
@@ -276,21 +282,21 @@ public class InterviewConverter extends
                                        "-s", (2 * flvWidth) + "x" + flvHeight, 
//
                                        jpg.getCanonicalPath() };
 
-                       
returnLog.add(ProcessHelper.executeScript("generateFullFLV", argv_previewFLV));
+                       logs.add(ProcessHelper.executeScript("generateFullFLV", 
argv_previewFLV));
 
                        File avi = r.getFile(EXTENSION_AVI);
                        deleteFileIfExists(avi);
 
                        String[] argv_alternateDownload = new String[] { 
getPathToFFMPEG(), "-y", "-i", flv.getCanonicalPath(), avi.getCanonicalPath() };
 
-                       
returnLog.add(ProcessHelper.executeScript("alternateDownload", 
argv_alternateDownload));
+                       
logs.add(ProcessHelper.executeScript("alternateDownload", 
argv_alternateDownload));
 
                        updateDuration(r);
-                       convertToMp4(r, returnLog);
+                       convertToMp4(r, logs);
                        r.setStatus(Recording.Status.PROCESSED);
 
                        logDao.delete(r);
-                       for (ConverterProcessResult returnMap : returnLog) {
+                       for (ConverterProcessResult returnMap : logs) {
                                logDao.add("generateFFMPEG", r, returnMap);
                        }
 

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java?rev=1761322&r1=1761321&r2=1761322&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java
 Sun Sep 18 12:01:46 2016
@@ -26,6 +26,7 @@ import static org.apache.openmeetings.ut
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.UUID;
 
 import org.apache.openmeetings.db.dao.file.FileItemLogDao;
 import org.apache.openmeetings.db.dao.record.RecordingDao;
@@ -36,6 +37,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.util.process.ConverterProcessResult;
 import org.apache.openmeetings.util.process.ProcessHelper;
+import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -54,10 +56,10 @@ public class RecordingConverter extends
        private String FFMPEG_MAP_PARAM = ":";
 
        @Override
-       public void startConversion(Long recordingId) {
-               Recording recording = recordingDao.get(recordingId);
-               if (recording == null) {
-                       log.warn("Conversion is NOT started. Recording with ID 
{} is not found", recordingId);
+       public void startConversion(Long id) {
+               Recording r = recordingDao.get(id);
+               if (r == null) {
+                       log.warn("Conversion is NOT started. Recording with ID 
{} is not found", id);
                        return;
                }
                try {
@@ -65,28 +67,31 @@ public class RecordingConverter extends
                                FFMPEG_MAP_PARAM = ".";
                        }
 
-                       String finalNamePrefix = recordingFileName + 
recordingId;
-                       log.debug("recording " + recording.getId());
+                       String finalNamePrefix = recordingFileName + id;
+                       log.debug("recording " + r.getId());
 
-                       List<ConverterProcessResult> returnLog = new 
ArrayList<>();
+                       List<ConverterProcessResult> logs = new ArrayList<>();
                        List<File> waveFiles = new ArrayList<>();
-                       File streamFolder = getStreamFolder(recording);
+                       File streamFolder = getStreamFolder(r);
                        
-                       RecordingMetaData screenMetaData = 
metaDataDao.getScreenMetaDataByRecording(recording.getId());
+                       RecordingMetaData screenMetaData = 
metaDataDao.getScreenMetaDataByRecording(r.getId());
 
                        if (screenMetaData == null) {
-                               throw new Exception("screenMetaData is Null 
recordingId " + recording.getId());
+                               throw new Exception("screenMetaData is Null 
recordingId " + r.getId());
                        }
 
                        if (screenMetaData.getStreamStatus() == Status.NONE) {
                                throw new Exception("Stream has not been 
started, error in recording");
                        }
-                       recording.setStatus(Recording.Status.CONVERTING);
-                       recording = recordingDao.update(recording);
+                       if (Strings.isEmpty(r.getHash())) {
+                               r.setHash(UUID.randomUUID().toString());
+                       }
+                       r.setStatus(Recording.Status.CONVERTING);
+                       r = recordingDao.update(r);
 
                        screenMetaData = 
waitForTheStream(screenMetaData.getId());
 
-                       stripAudioFirstPass(recording, returnLog, waveFiles, 
streamFolder);
+                       stripAudioFirstPass(r, logs, waveFiles, streamFolder);
 
                        // Merge Wave to Full Length
                        File wav = new File(streamFolder, 
screenMetaData.getStreamName() + "_FINAL_WAVE.wav");
@@ -96,17 +101,17 @@ public class RecordingConverter extends
                        } else if (waveFiles.size() > 0) {
                                String[] argv_full_sox = 
mergeAudioToWaves(waveFiles, wav);
 
-                               
returnLog.add(ProcessHelper.executeScript("mergeAudioToWaves", argv_full_sox));
+                               
logs.add(ProcessHelper.executeScript("mergeAudioToWaves", argv_full_sox));
                        } else {
                                // create default Audio to merge it. strip to 
content length
-                               String outputWav = new 
File(getStreamsHibernateDir(), "one_second.wav").getCanonicalPath();
+                               String oneSecWav = new 
File(getStreamsHibernateDir(), "one_second.wav").getCanonicalPath();
 
                                // Calculate delta at beginning
-                               double deltaPadding = 
diffSeconds(recording.getRecordEnd(), recording.getRecordStart());
+                               double duration = diffSeconds(r.getRecordEnd(), 
r.getRecordStart());
 
-                               String[] argv_full_sox = new String[] { 
getPathToSoX(), outputWav, wav.getCanonicalPath(), "pad", "0", "" + 
deltaPadding };
+                               String[] cmd = new String[] { getPathToSoX(), 
oneSecWav, wav.getCanonicalPath(), "pad", "0", "" + duration };
 
-                               
returnLog.add(ProcessHelper.executeScript("generateSampleAudio", 
argv_full_sox));
+                               
logs.add(ProcessHelper.executeScript("generateSampleAudio", cmd));
                        }
                        screenMetaData.setFullWavAudioData(wav.getName());
                        metaDataDao.update(screenMetaData);
@@ -115,15 +120,15 @@ public class RecordingConverter extends
 
                        String inputScreenFullFlv = new File(streamFolder, 
OmFileHelper.getName(screenMetaData.getStreamName(), 
EXTENSION_FLV)).getCanonicalPath();
 
-                       File flv = recording.getFile(EXTENSION_FLV);
+                       File flv = r.getFile(EXTENSION_FLV);
 
                        // ffmpeg -vcodec flv -qscale 9.5 -r 25 -ar 22050 -ab 
32k -s 320x240
                        // -i 
65318fb5c54b1bc1b1bca077b493a914_28_12_2009_23_38_17_FINAL_WAVE.wav
                        // -i 
65318fb5c54b1bc1b1bca077b493a914_28_12_2009_23_38_17.flv
                        // final1.flv
 
-                       int flvWidth = recording.getWidth();
-                       int flvHeight = recording.getHeight();
+                       int flvWidth = r.getWidth();
+                       int flvHeight = r.getHeight();
 
                        log.debug("flvWidth -1- " + flvWidth);
                        log.debug("flvHeight -1- " + flvHeight);
@@ -134,11 +139,11 @@ public class RecordingConverter extends
                        log.debug("flvWidth -2- " + flvWidth);
                        log.debug("flvHeight -2- " + flvHeight);
 
-                       recording.setFlvWidth(flvWidth);
-                       recording.setFlvHeight(flvHeight);
+                       r.setFlvWidth(flvWidth);
+                       r.setFlvHeight(flvHeight);
 
-                       String[] argv_fullFLV = new String[] { 
getPathToFFMPEG(), "-y",//
-                                       "-itsoffset", 
formatMillis(diff(screenMetaData.getRecordStart(), recording.getRecordStart())),
+                       String[] cmdFlv = new String[] { getPathToFFMPEG(), 
"-y",//
+                                       "-itsoffset", 
formatMillis(diff(screenMetaData.getRecordStart(), r.getRecordStart())),
                                        "-i", inputScreenFullFlv, "-i", 
wav.getCanonicalPath(), "-ar", "22050", //
                                        "-acodec", "libmp3lame", //
                                        "-ab", "32k", //
@@ -148,41 +153,39 @@ public class RecordingConverter extends
                                        "-map", "1" + FFMPEG_MAP_PARAM + "0", //
                                        flv.getCanonicalPath() };
 
-                       
returnLog.add(ProcessHelper.executeScript("generateFullFLV", argv_fullFLV));
-
-                       recording.setHash(flv.getName());
+                       logs.add(ProcessHelper.executeScript("generateFullFLV", 
cmdFlv));
 
                        // Extract first Image for preview purpose
                        // ffmpeg -i movie.flv -vcodec mjpeg -vframes 1 -an -f 
rawvideo -s
                        // 320x240 movie.jpg
 
-                       File outPutJpeg = new File(getStreamsHibernateDir(), 
finalNamePrefix + ".jpg");
+                       File jpg = new File(getStreamsHibernateDir(), 
finalNamePrefix + ".jpg");
 
-                       String[] argv_previewFLV = new String[] { //
+                       String[] cmdJpg = new String[] { //
                                        getPathToFFMPEG(), "-y",//
                                        "-i", flv.getCanonicalPath(), //
                                        "-vcodec", "mjpeg", //
                                        "-vframes", "1", "-an", //
                                        "-f", "rawvideo", //
                                        "-s", flvWidth + "x" + flvHeight, //
-                                       outPutJpeg.getCanonicalPath() };
+                                       jpg.getCanonicalPath() };
 
-                       
returnLog.add(ProcessHelper.executeScript("previewFullFLV", argv_previewFLV));
+                       logs.add(ProcessHelper.executeScript("previewFullFLV", 
cmdJpg));
 
-                       File alternateDownload = new 
File(getStreamsHibernateDir(), finalNamePrefix + ".avi");
+                       File avi = new File(getStreamsHibernateDir(), 
finalNamePrefix + ".avi");
 
-                       String[] argv_alternateDownload = new String[] { 
getPathToFFMPEG(), "-y", "-i", flv.getCanonicalPath(), "-vcodec",
-                                       "copy", 
alternateDownload.getCanonicalPath() };
+                       String[] cmdAvi = new String[] { getPathToFFMPEG(), 
"-y", "-i", flv.getCanonicalPath(), "-vcodec",
+                                       "copy", avi.getCanonicalPath() };
 
-                       
returnLog.add(ProcessHelper.executeScript("alternateDownload", 
argv_alternateDownload));
+                       
logs.add(ProcessHelper.executeScript("alternateDownload", cmdAvi));
 
-                       updateDuration(recording);
-                       convertToMp4(recording, returnLog);
-                       recording.setStatus(Recording.Status.PROCESSED);
+                       updateDuration(r);
+                       convertToMp4(r, logs);
+                       r.setStatus(Recording.Status.PROCESSED);
 
-                       logDao.delete(recording);
-                       for (ConverterProcessResult returnMap : returnLog) {
-                               logDao.add("generateFFMPEG", recording, 
returnMap);
+                       logDao.delete(r);
+                       for (ConverterProcessResult returnMap : logs) {
+                               logDao.add("generateFFMPEG", r, returnMap);
                        }
 
                        // Delete Wave Files
@@ -194,8 +197,8 @@ public class RecordingConverter extends
 
                } catch (Exception err) {
                        log.error("[startConversion]", err);
-                       recording.setStatus(Recording.Status.ERROR);
+                       r.setStatus(Recording.Status.ERROR);
                }
-               recordingDao.update(recording);
+               recordingDao.update(r);
        }
 }

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java?rev=1761322&r1=1761321&r2=1761322&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
 Sun Sep 18 12:01:46 2016
@@ -19,11 +19,17 @@
 package org.apache.openmeetings.core.data.file;
 
 import static org.apache.openmeetings.util.OmFileHelper.thumbImagePrefix;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_JPG;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.File;
 import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 import java.util.UUID;
 
 import org.apache.commons.transaction.util.FileHelper;

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java?rev=1761322&r1=1761321&r2=1761322&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java
 Sun Sep 18 12:01:46 2016
@@ -19,7 +19,6 @@
 package org.apache.openmeetings.core.remote;
 
 import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
-import static org.apache.openmeetings.util.OmFileHelper.WB_VIDEO_FILE_PREFIX;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.File;
@@ -228,7 +227,7 @@ public class ConferenceLibrary implement
 
                                        File targetFolder = 
OmFileHelper.getStreamsSubDir(roomId);
 
-                                       File target = new File(targetFolder, 
OmFileHelper.getName(WB_VIDEO_FILE_PREFIX + fileId, EXTENSION_MP4));
+                                       File target = new File(targetFolder, 
mp4.getName());
                                        if (mp4.exists() && !target.exists()) {
                                                FileHelper.copy(mp4, target);
                                        }

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1761322&r1=1761321&r2=1761322&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
 Sun Sep 18 12:01:46 2016
@@ -1394,7 +1394,7 @@ public class ScopeApplicationAdapter ext
                                type // 0
                                , url // urlname
                                , "--dummy--" // baseurl
-                               , fi.getHash() // fileName //3
+                               , fi.getName() // fileName //3
                                , "--dummy--" // moduleName //4
                                , "--dummy--" // parentPath //5
                                , "--dummy--" // room //6
@@ -1433,7 +1433,7 @@ public class ScopeApplicationAdapter ext
                                , size.x // 4: 416
                                , size.y // 5: 240
                                , 0 // 6: 1 // z-index 
-                               , null // 7: null //TODO 
+                               , fi.getHash() // 7: null //TODO 
                                , 0 // 8: 0 //TODO // counter
                                , 0 // 9: 0 //TODO // x
                                , 0 // 10: 0 //TODO // y

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java?rev=1761322&r1=1761321&r2=1761322&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
 Sun Sep 18 12:01:46 2016
@@ -222,7 +222,7 @@ public class RoomDao implements IDataPro
        }
 
        public Room getUserRoom(Long ownerId, Room.Type type, String name) {
-               log.debug("getRoomByOwnerAndTypeId : " + ownerId + " || " + 
type);
+               log.debug("getUserRoom : " + ownerId + " || " + type);
                Room room = null;
                List<Room> ll = em.createNamedQuery("getRoomByOwnerAndTypeId", 
Room.class).setParameter("ownerId", ownerId).setParameter("type", 
type).getResultList();
                if (ll.size() > 0) {

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java?rev=1761322&r1=1761321&r2=1761322&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java
 Sun Sep 18 12:01:46 2016
@@ -22,6 +22,9 @@ import static org.apache.openmeetings.ut
 import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
 import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_SWF;
 import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_WML;
+import static org.apache.openmeetings.util.OmFileHelper.getStreamsHibernateDir;
+import static org.apache.openmeetings.util.OmFileHelper.getUploadFilesDir;
+import static org.apache.openmeetings.util.OmFileHelper.getUploadWmlDir;
 
 import java.io.File;
 import java.util.Date;
@@ -35,7 +38,6 @@ import javax.persistence.Transient;
 import javax.xml.bind.annotation.XmlType;
 
 import org.apache.openmeetings.db.entity.IDataProviderEntity;
-import org.apache.openmeetings.util.OmFileHelper;
 import org.simpleframework.xml.Element;
 
 @MappedSuperclass
@@ -218,15 +220,17 @@ public abstract class FileItem implement
        public final File getFile(String ext) {
                File f = null;
                if (getHash() != null) {
-                       File d = new File(OmFileHelper.getUploadFilesDir(), 
getHash());
+                       File d = new File(getUploadFilesDir(), getHash());
                        switch (getType()) {
                                case WmlFile:
-                                       f = new 
File(OmFileHelper.getUploadWmlDir(), String.format("%s.%s", getHash(), ext == 
null ? EXTENSION_WML : ext));
+                                       f = new File(getUploadWmlDir(), 
String.format("%s.%s", getHash(), ext == null ? EXTENSION_WML : ext));
                                        break;
                                case Image:
                                        f = new File(d, String.format("%s.%s", 
getHash(), ext == null ? EXTENSION_JPG : ext));
                                        break;
                                case Recording:
+                                       f = new File(getStreamsHibernateDir(), 
String.format("%s.%s", getHash(), ext == null ? EXTENSION_MP4 : ext));
+                                       break;
                                case Video:
                                        f = new File(d, String.format("%s.%s", 
getHash(), ext == null ? EXTENSION_MP4 : ext));
                                        break;

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java?rev=1761322&r1=1761321&r2=1761322&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java
 Sun Sep 18 12:01:46 2016
@@ -41,7 +41,7 @@ import org.apache.openmeetings.db.entity
 @Entity
 @NamedQueries({
                @NamedQuery(name = "getFileLogsByFile", query = "SELECT fl FROM 
FileItemLog fl WHERE fl.fileId = :fileId AND fl.fileType = :type"),
-               @NamedQuery(name = "countErrorFileLogsByFile", query = "SELECT 
COUNT(fl) FROM FileItemLog fl WHERE fl.fileId = :fileId AND fl.fileType = :type 
AND fl.exitCode <> '0'"),
+               @NamedQuery(name = "countErrorFileLogsByFile", query = "SELECT 
COUNT(fl) FROM FileItemLog fl WHERE fl.fileId = :fileId AND fl.fileType = :type 
AND fl.exitCode <> 0"),
                @NamedQuery(name = "deleteErrorFileLogsByFile", query = "DELETE 
FROM FileItemLog fl WHERE fl.fileId = :fileId AND fl.fileType = :type") })
 @Table(name = "file_log")
 public class FileItemLog implements IDataProviderEntity {

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/flexibleConferenceRoom/roomSidebar/baseRoomSidebar.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/flexibleConferenceRoom/roomSidebar/baseRoomSidebar.lzx?rev=1761322&r1=1761321&r2=1761322&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/flexibleConferenceRoom/roomSidebar/baseRoomSidebar.lzx
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/flexibleConferenceRoom/roomSidebar/baseRoomSidebar.lzx
 Sun Sep 18 12:01:46 2016
@@ -44,7 +44,7 @@
        <method name="setRoomModerators">
        <![CDATA[
                var moders = canvas.currentRoomObj.moderators;
-               if ($debug) Debug.write("getRoomModeratorsByRoomId: ", moders);
+               if ($debug) Debug.write("setRoomModerators: ", moders);
                canvas.becomeSuperModerator = false;
                
                this.setRoomValues.applyDefaultModeration = 
canvas.becomemoderator;

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/baseDrawObject.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/baseDrawObject.lzx?rev=1761322&r1=1761321&r2=1761322&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/baseDrawObject.lzx
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/baseDrawObject.lzx
 Sun Sep 18 12:01:46 2016
@@ -1,51 +1,42 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-         http://www.apache.org/licenses/LICENSE-2.0
-                 
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
-  
--->
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more 
contributor 
+       license agreements. See the NOTICE file distributed with this work for 
additional 
+       information regarding copyright ownership. The ASF licenses this file 
to 
+       you under the Apache License, Version 2.0 (the "License"); you may not 
use 
+       this file except in compliance with the License. You may obtain a copy 
of 
+       the License at http://www.apache.org/licenses/LICENSE-2.0 Unless 
required 
+       by applicable law or agreed to in writing, software distributed under 
the 
+       License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
CONDITIONS 
+       OF ANY KIND, either express or implied. See the License for the 
specific 
+       language governing permissions and limitations under the License. -->
 <library>
 
-<class name="baseDrawObject" extends="baseDrawPointer">
-       <!-- it uses some of the attribute's defined in baseDrawImage -->
-       <attribute name="newSlideNumber" value="1" type="number" />
-       <attribute name="fullFit" value="true" type="boolean" />
-
-       <!-- 
-               Invoked by the Library directly
-               Loads a SWFPresenation to the whiteBoard
-        -->
-       <method name="loadSWFPresentationSynced" 
args="url,fileName,moduleName,parentPath,room,domain,slideNumber,standardFileName">
-               var now = new Date();
-               //This invokes a Method which is in the remoteWhiteboard.lzx
-               this.startNewObjectSyncProcess.isStarting = true;
-               this.startNewObjectSyncProcess.uniqueObjectSyncName = fileName 
+ now.getTime();
-               this.startNewObjectSyncProcess.doCall();
-               //if ($debug) 
Debug.write("loadSWFPresentationSynced",url,fileName,moduleName,parentPath,room,domain,slideNumber,standardFileName);
-               
this.addPresentationToLayer(this,url,'swfpresentationobject'+this.getCounter(),
+       <class name="baseDrawObject" extends="baseDrawPointer">
+               <!-- it uses some of the attribute's defined in baseDrawImage 
-->
+               <attribute name="newSlideNumber" value="1" type="number" />
+               <attribute name="fullFit" value="true" type="boolean" />
+
+               <!-- Invoked by the Library directly Loads a SWFPresenation to 
the whiteBoard -->
+               <method name="loadSWFPresentationSynced"
+                       
args="url,fileName,moduleName,parentPath,room,domain,slideNumber,standardFileName">
+                       var now = new Date();
+                       //This invokes a Method which is in the 
remoteWhiteboard.lzx
+                       this.startNewObjectSyncProcess.isStarting = true;
+                       this.startNewObjectSyncProcess.uniqueObjectSyncName = 
fileName +
+                       now.getTime();
+                       this.startNewObjectSyncProcess.doCall();
+                       //if ($debug)
+                       
Debug.write("loadSWFPresentationSynced",url,fileName,moduleName,parentPath,room,domain,slideNumber,standardFileName);
+                       
this.addPresentationToLayer(this,url,'swfpresentationobject'+this.getCounter(),
                        0,0,0,0,
                        true,
                        
url,fileName,moduleName,parentPath,room,domain,slideNumber,
                        100,0,0,0,0,
                        this.startNewObjectSyncProcess.uniqueObjectSyncName,
                        standardFileName,this.fullFit);
-       </method>
-       
-       <method name="setCurrentScaleByFullFit" args="scaleFactor">
+               </method>
+
+               <method name="setCurrentScaleByFullFit" args="scaleFactor">
        <![CDATA[
                var tScale = Math.round(scaleFactor*100);
                
@@ -61,9 +52,9 @@
                
                parent.parent.zoombox.setCurrentScaleByFullFit(tScale);
        ]]>
-       </method>
-       
-       <method name="doUpdateFullFit" args="fullFit,zoom">
+               </method>
+
+               <method name="doUpdateFullFit" args="fullFit,zoom">
        <![CDATA[
                if (canvas.ismoderator) {
                        if ($debug) Debug.write("doUpdateFullFit 
",fullFit,zoom);
@@ -80,9 +71,9 @@
                        this.onsharedMessage('whiteboardObj',actionObject);
                }       
        ]]>
-       </method>
-       
-       <method name="doUpdateZoom" args="fullFit,zoom">
+               </method>
+
+               <method name="doUpdateZoom" args="fullFit,zoom">
        <![CDATA[
                if ($debug) Debug.write("doUpdateZoom ",this.fullFit,zoom);
                
@@ -100,9 +91,9 @@
                        this.onsharedMessage('whiteboardObj',actionObject);     
                }
        ]]>
-       </method>
-       
-       <method name="doUpdateFullFitAndZoomRemote" args="actionObject">
+               </method>
+
+               <method name="doUpdateFullFitAndZoomRemote" args="actionObject">
        <![CDATA[
                
parent.parent.zoombox.setWhiteboardValues(actionObject[1],actionObject[2]);
                if ($debug) Debug.write("doUpdateFullFitAndZoomRemote 
",actionObject[1],actionObject[2]);
@@ -115,9 +106,9 @@
                        this.onupdateScale.sendEvent(null);
                }
        ]]>
-       </method>
-       
-       <method name="doFullFit" args="v">
+               </method>
+
+               <method name="doFullFit" args="v">
        <![CDATA[
                if ($debug) Debug.write("Do Full Fit ? doFullFit: ", v, 
this.ObjectByName);
        
@@ -131,9 +122,10 @@
                        }
                }
        ]]>
-       </method>
-       
-       <method name="checkSWFPresentation" 
args="url,fileName,moduleName,parentPath,room,domain,slideNumber">
+               </method>
+
+               <method name="checkSWFPresentation"
+                       
args="url,fileName,moduleName,parentPath,room,domain,slideNumber">
        <![CDATA[
                for (var i=0;i<this.baseactionobjectList.length;i++){
                        if (fileName==this.baseactionobjectList[i][3]){
@@ -148,14 +140,12 @@
                } 
                return false;
        ]]>
-       </method>
-       
-       <!--
-               alterModus => this is added by the mod not remotely
-               
-               adds the SWF-Object to the Layer
-        -->
-       <method name="addPresentationToLayer" 
args="obj,urlName,nameing,posx,posy,width,height,alterModus,baseurl,fileName,moduleName,parentPath,room,domain,slideNumber,currentzoom,innerwidth,innerheight,innerx,innery,uniqueObjectSyncName,standardFileName,fullFit">
+               </method>
+
+               <!-- alterModus => this is added by the mod not remotely adds 
the SWF-Object 
+                       to the Layer -->
+               <method name="addPresentationToLayer"
+                       
args="obj,urlName,nameing,posx,posy,width,height,alterModus,baseurl,fileName,moduleName,parentPath,room,domain,slideNumber,currentzoom,innerwidth,innerheight,innerx,innery,uniqueObjectSyncName,standardFileName,fullFit">
        <![CDATA[
                if ($debug) Debug.write("addPresentationToLayer", 
standardFileName);
                
@@ -177,151 +167,143 @@
                this.addItemToDocumentToolBar();
                this.doUpdateDocumentToolBar();
        ]]>
-       </method>
-       
-       <method name="addSWFToLayerHistory" 
args="actionObject,refObj,isWmlLoader">
-               this.isWmlLoaderImage = isWmlLoader;
-               this.baseactionobjectList.push(actionObject);   
-               
this.addPresentationToLayer(refObj,actionObject[1],actionObject[actionObject.length-1],
+               </method>
+
+               <method name="addSWFToLayerHistory" 
args="actionObject,refObj,isWmlLoader">
+                       this.isWmlLoaderImage = isWmlLoader;
+                       this.baseactionobjectList.push(actionObject);
+                       
this.addPresentationToLayer(refObj,actionObject[1],actionObject[actionObject.length-1],
                        
actionObject[actionObject.length-5],actionObject[actionObject.length-4],actionObject[actionObject.length-3],
                        
actionObject[actionObject.length-2],false,actionObject[2],actionObject[3],actionObject[4],actionObject[5],
                        actionObject[6],actionObject[7],
                        
actionObject[8],actionObject[16],actionObject[11],actionObject[12],actionObject[9],actionObject[10],
                        actionObject[17],actionObject[18],actionObject[19]);
-       </method>
-       
-       <!-- 
-               Invoked by the remote Host, see sendWatchObject in baseDraw.lzx
-        -->
-       <method name="addSWFToLayerHistorySynced" args="actionObject,refObj">
-               this.baseactionobjectList.push(actionObject);   
-               this.startNewObjectSyncProcess.isStarting = false;
-               this.startNewObjectSyncProcess.uniqueObjectSyncName = 
actionObject[17];
-               this.startNewObjectSyncProcess.doCall();                
-               
this.addPresentationToLayer(refObj,actionObject[1],actionObject[actionObject.length-1],
-                       
actionObject[actionObject.length-5],actionObject[actionObject.length-4],
-                       
actionObject[actionObject.length-3],actionObject[actionObject.length-2],
-                       false,
-                       
actionObject[2],actionObject[3],actionObject[4],actionObject[5],actionObject[6],
-                       
actionObject[7],actionObject[8],actionObject[16],actionObject[11],actionObject[12],
-                       
actionObject[9],actionObject[10],actionObject[17],actionObject[18],actionObject[19]);
-       </method>
-       
-       <!--- 
-               invoke by the initial Loading process in remoteWhiteboard.lzx, 
-               does not invoke any Update Handler
-               once this object is loaded, it will throw an Update event of 
kind
-               addSWFToLayerHistoryToLocalLoaded
-        -->
-       <method name="addSWFToLayerHistoryToLocal" args="actionObject,refObj">
-               this.baseactionobjectList.push(actionObject);   
-               
this.addPresentationToLayer(refObj,actionObject[1],actionObject[actionObject.length-1],
-                       
actionObject[actionObject.length-5],actionObject[actionObject.length-4],
-                       
actionObject[actionObject.length-3],actionObject[actionObject.length-2],
-                       false,
-                       
actionObject[2],actionObject[3],actionObject[4],actionObject[5],actionObject[6],
-                       
actionObject[7],actionObject[8],actionObject[16],actionObject[11],actionObject[12],
-                       
actionObject[9],actionObject[10],actionObject[17],actionObject[18],actionObject[19]);
-       </method>
-       
-       <method name="registerNewSWF" 
args="urlname,posx,posy,width,height,baseurl,fileName,moduleName,parentPath,room,domain,slideNumber,innerx,innery,innerwidth,innerheight,zoomlevel,currentzoom,initwidth,initheight,uniquObjectSyncName,doUpdateMessage,standardFileName,fullFit,zIndex">
-               var actionObject = new Array();
-               actionObject.push('swf');//0
-               actionObject.push(urlname);//1
-               actionObject.push(baseurl);//2
-               actionObject.push(fileName);//3
-               actionObject.push(moduleName);//4
-               actionObject.push(parentPath);//5
-               actionObject.push(room);//6
-               actionObject.push(domain);//7
-               actionObject.push(slideNumber);//8
-               actionObject.push(innerx);//9
-               actionObject.push(innery);//10
-               actionObject.push(innerwidth);//11
-               actionObject.push(innerheight);//12
-               actionObject.push(zoomlevel);//13
-               actionObject.push(initwidth);//14
-               actionObject.push(initheight);//15
-               actionObject.push(currentzoom);//16
-               actionObject.push(uniquObjectSyncName);//17
-               actionObject.push(standardFileName);//18
-               actionObject.push(fullFit);//19
-               actionObject.push(zIndex);//-8
-               actionObject.push(null);//-7
-               actionObject.push(this.counter);//-6
-               actionObject.push(posx);//-5
-               actionObject.push(posy);//-4
-               actionObject.push(width);//-3
-               actionObject.push(height);//-2
-               actionObject.push(this.currentlayer.name);//-1
-               this.baseactionobjectList.push(actionObject);
-               this.checkStepLayers();
-               if (doUpdateMessage) this.onsharedMessage('draw',actionObject); 
-       </method>       
-       
-       <!--
-               Invoked by the swfResource, if the alterModus = true,
-               throws an Update-Event to all connected Clients
-        -->
-       <method name="storeTempValsAndLoadSyncListSWF" args="objRef">
-               this.syncImageRefObj = objRef;
-               this.doRegisterNewSwf(true);
-               this.sendCompletedObjectSyncEvent.uniqueObjectSyncName = 
this.syncImageRefObj.uniqueObjectSyncName;
-               this.sendCompletedObjectSyncEvent.doCall();
-       </method>       
-       
-       <!--
-               Invoked by the swfResource, if the alterModus = false,
-               throws NO Update-Event to all connected Clients
-        -->
-       <method name="sendLoadNotificationSWF" args="objRef" >
-               this.syncImageRefObj = objRef;
-               this.doRegisterNewSwf(false);
-               this.sendCompletedObjectSyncEvent.uniqueObjectSyncName = 
this.syncImageRefObj.uniqueObjectSyncName;
-               this.sendCompletedObjectSyncEvent.doCall();
-       </method>
-       
-       <!-- 
-               TODO: Check Recording
-       -->
-       <method name="storeTempValsAndLoadSyncListSWFRecording" args="objRef">
-               this.syncImageRefObj = objRef;
-               //This invokes a Method which is in the remoteWhiteboard.lzx
-               this.sendCompletedObjectSyncEvent.uniqueObjectSyncName = 
this.syncImageRefObj.uniqueObjectSyncName;
-               this.sendCompletedObjectSyncEvent.doCall();
-       </method>       
-       
-       <method name="doRegisterNewSwf" args="doUpdateMessage">
-               //now send notifications to connected clients
-               this.setAttribute('drawmodus','hand');
-               
-               
this.registerNewSWF(this.syncImageRefObj.baseurl,this.syncImageRefObj.x,
-                               
this.syncImageRefObj.y,this.syncImageRefObj._swfView.width,
-                               
this.syncImageRefObj._swfView.height,this.syncImageRefObj.baseurl,
-                               
this.syncImageRefObj.fileName,this.syncImageRefObj.moduleName,
-                               
this.syncImageRefObj.parentPath,this.syncImageRefObj.room,
-                               
this.syncImageRefObj.domain,this.syncImageRefObj.slideNumber,
-                               
this.syncImageRefObj._swfView.x,this.syncImageRefObj._swfView.y,
-                               
this.syncImageRefObj._swfView.width,this.syncImageRefObj._swfView.height,
-                               
this.syncImageRefObj.zoomlevel,this.syncImageRefObj.currentzoomFactor,
-                               
this.syncImageRefObj.initwidth,this.syncImageRefObj.initheight,
-                               
this.syncImageRefObj.uniqueObjectSyncName,doUpdateMessage,
-                               this.syncImageRefObj.standardFileName,
-                               this.syncImageRefObj.fullFit,
-                               this.getZIndex());
-               
-               //set modus to hand so users can directly select that image
-               this.setModus('swf');
-       </method>
-       
-       <method name="sendSyncNotificationSWF">
-               this.imageLoadingCompleteMessage = new Array();
-               this.imageLoadingCompleteMessage[0] = "whiteboard";
-               this.imageLoadingCompleteMessage[1] = "swfsynccomplete";
-               this.sendMessageWithClientSWF.doCall();
-       </method>       
+               </method>
+
+               <!-- Invoked by the remote Host, see sendWatchObject in 
baseDraw.lzx -->
+               <method name="addSWFToLayerHistorySynced" 
args="actionObject,refObj">
+                       this.baseactionobjectList.push(actionObject);
+                       this.startNewObjectSyncProcess.isStarting = false;
+                       this.startNewObjectSyncProcess.uniqueObjectSyncName =
+                       actionObject[17];
+                       this.startNewObjectSyncProcess.doCall();
+                       
this.addPresentationToLayer(refObj,actionObject[1],actionObject[actionObject.length-1],
+                       
actionObject[actionObject.length-5],actionObject[actionObject.length-4],
+                       
actionObject[actionObject.length-3],actionObject[actionObject.length-2],
+                       false,
+                       
actionObject[2],actionObject[3],actionObject[4],actionObject[5],actionObject[6],
+                       
actionObject[7],actionObject[8],actionObject[16],actionObject[11],actionObject[12],
+                       
actionObject[9],actionObject[10],actionObject[17],actionObject[18],actionObject[19]);
+               </method>
+
+               <!--- invoke by the initial Loading process in 
remoteWhiteboard.lzx, does 
+                       not invoke any Update Handler once this object is 
loaded, it will throw an 
+                       Update event of kind addSWFToLayerHistoryToLocalLoaded 
-->
+               <method name="addSWFToLayerHistoryToLocal" 
args="actionObject,refObj">
+                       this.baseactionobjectList.push(actionObject);
+                       
this.addPresentationToLayer(refObj,actionObject[1],actionObject[actionObject.length-1],
+                       
actionObject[actionObject.length-5],actionObject[actionObject.length-4],
+                       
actionObject[actionObject.length-3],actionObject[actionObject.length-2],
+                       false,
+                       
actionObject[2],actionObject[3],actionObject[4],actionObject[5],actionObject[6],
+                       
actionObject[7],actionObject[8],actionObject[16],actionObject[11],actionObject[12],
+                       
actionObject[9],actionObject[10],actionObject[17],actionObject[18],actionObject[19]);
+               </method>
+
+               <method name="registerNewSWF"
+                       
args="urlname,posx,posy,width,height,baseurl,fileName,moduleName,parentPath,room,domain,slideNumber,innerx,innery,innerwidth,innerheight,zoomlevel,currentzoom,initwidth,initheight,uniquObjectSyncName,doUpdateMessage,standardFileName,fullFit,zIndex">
+                       var actionObject = new Array();
+                       actionObject.push('swf');//0
+                       actionObject.push(urlname);//1
+                       actionObject.push(baseurl);//2
+                       actionObject.push(fileName);//3
+                       actionObject.push(moduleName);//4
+                       actionObject.push(parentPath);//5
+                       actionObject.push(room);//6
+                       actionObject.push(domain);//7
+                       actionObject.push(slideNumber);//8
+                       actionObject.push(innerx);//9
+                       actionObject.push(innery);//10
+                       actionObject.push(innerwidth);//11
+                       actionObject.push(innerheight);//12
+                       actionObject.push(zoomlevel);//13
+                       actionObject.push(initwidth);//14
+                       actionObject.push(initheight);//15
+                       actionObject.push(currentzoom);//16
+                       actionObject.push(uniquObjectSyncName);//17
+                       actionObject.push(standardFileName);//18
+                       actionObject.push(fullFit);//19
+                       actionObject.push(zIndex);//-8
+                       actionObject.push(null);//-7
+                       actionObject.push(this.counter);//-6
+                       actionObject.push(posx);//-5
+                       actionObject.push(posy);//-4
+                       actionObject.push(width);//-3
+                       actionObject.push(height);//-2
+                       actionObject.push(this.currentlayer.name);//-1
+                       this.baseactionobjectList.push(actionObject);
+                       this.checkStepLayers();
+                       if (doUpdateMessage) 
this.onsharedMessage('draw',actionObject);
+               </method>
+
+               <!-- Invoked by the swfResource, if the alterModus = true, 
throws an Update-Event 
+                       to all connected Clients -->
+               <method name="storeTempValsAndLoadSyncListSWF" args="objRef">
+                       this.syncImageRefObj = objRef;
+                       this.doRegisterNewSwf(true);
+                       this.sendCompletedObjectSyncEvent.uniqueObjectSyncName 
= this.syncImageRefObj.uniqueObjectSyncName;
+                       this.sendCompletedObjectSyncEvent.doCall();
+               </method>
+
+               <!-- Invoked by the swfResource, if the alterModus = false, 
throws NO Update-Event 
+                       to all connected Clients -->
+               <method name="sendLoadNotificationSWF" args="objRef">
+                       this.syncImageRefObj = objRef;
+                       this.doRegisterNewSwf(false);
+                       this.sendCompletedObjectSyncEvent.uniqueObjectSyncName 
= this.syncImageRefObj.uniqueObjectSyncName;
+                       this.sendCompletedObjectSyncEvent.doCall();
+               </method>
+
+               <!-- TODO: Check Recording -->
+               <method name="storeTempValsAndLoadSyncListSWFRecording" 
args="objRef">
+                       this.syncImageRefObj = objRef;
+                       //This invokes a Method which is in the 
remoteWhiteboard.lzx
+                       this.sendCompletedObjectSyncEvent.uniqueObjectSyncName =
+                       this.syncImageRefObj.uniqueObjectSyncName;
+                       this.sendCompletedObjectSyncEvent.doCall();
+               </method>
+
+               <method name="doRegisterNewSwf" args="doUpdateMessage">
+                       //now send notifications to connected clients
+                       this.setAttribute('drawmodus','hand');
+
+                       
this.registerNewSWF(this.syncImageRefObj.baseurl,this.syncImageRefObj.x,
+                       
this.syncImageRefObj.y,this.syncImageRefObj._swfView.width,
+                       
this.syncImageRefObj._swfView.height,this.syncImageRefObj.baseurl,
+                       
this.syncImageRefObj.fileName,this.syncImageRefObj.moduleName,
+                       
this.syncImageRefObj.parentPath,this.syncImageRefObj.room,
+                       
this.syncImageRefObj.domain,this.syncImageRefObj.slideNumber,
+                       
this.syncImageRefObj._swfView.x,this.syncImageRefObj._swfView.y,
+                       
this.syncImageRefObj._swfView.width,this.syncImageRefObj._swfView.height,
+                       
this.syncImageRefObj.zoomlevel,this.syncImageRefObj.currentzoomFactor,
+                       
this.syncImageRefObj.initwidth,this.syncImageRefObj.initheight,
+                       
this.syncImageRefObj.uniqueObjectSyncName,doUpdateMessage,
+                       this.syncImageRefObj.standardFileName,
+                       this.syncImageRefObj.fullFit,
+                       this.getZIndex());
+
+                       //set modus to hand so users can directly select that 
image
+                       this.setModus('swf');
+               </method>
 
-       <method name="doDocumentAction" args="action">
+               <method name="sendSyncNotificationSWF">
+                       this.imageLoadingCompleteMessage = new Array();
+                       this.imageLoadingCompleteMessage[0] = "whiteboard";
+                       this.imageLoadingCompleteMessage[1] = "swfsynccomplete";
+                       this.sendMessageWithClientSWF.doCall();
+               </method>
+
+               <method name="doDocumentAction" args="action">
        <![CDATA[
                if ($debug) Debug.info("doDocumentAction :1: 
sendCurrentSWFObject ",action);
                if (this.ObjectByName.typeOfObject=="swf") {
@@ -378,50 +360,51 @@
                        this.sendCurrentSWFObject(this.ObjectByName);
                }
        ]]>
-       </method>
-       
-       <method name="addItemToDocumentToolBar">
-               this.getDocumentToolBar().addCurrentObject(this.currentlayer);
-       </method>
-       
-       <method name="setCurrentDocumentByToolBar" args="itemRefName">
-               if (this.boundingIsActive){
-                       if (this.boundingref.objRef.name != itemRefName) {
-                               
this.boundingref._innerDrag.onmouseup.sendEvent();
+               </method>
+
+               <method name="addItemToDocumentToolBar">
+                       
this.getDocumentToolBar().addCurrentObject(this.currentlayer);
+               </method>
+
+               <method name="setCurrentDocumentByToolBar" args="itemRefName">
+                       if (this.boundingIsActive){
+                       if (this.boundingref.objRef.name !=
+                       itemRefName) {
+                       this.boundingref._innerDrag.onmouseup.sendEvent();
                        }
-               }
-               this.setCurrentDocument(null);
-       </method>
-       
-       <method name="setCurrentDocument" args="itemRefName">
-               var t = this.getObjectByName(itemRefName);
-               if (t==null) {
+                       }
+                       this.setCurrentDocument(null);
+               </method>
+
+               <method name="setCurrentDocument" args="itemRefName">
+                       var t = this.getObjectByName(itemRefName);
+                       if (t==null) {
                        return;
-               }
-               this.ObjectByName = t;
-               this.doUpdateDocumentToolBar();
-               
-               if ($debug) Debug.write("setCurrentDocument 
",itemRefName,this.ObjectByName);
-       </method>
-       
-       <method name="sendItemToFront" args="itemRefName">
-               var actionObject = new Array();
-               actionObject[0] = 'item';
-               actionObject[1] = itemRefName;
-               this.onsharedMessage('sendItemToFront',actionObject);
-       </method>       
-       
-       <method name="bringItemToFrontByName" args="itemRefName">
-               this.ObjectByName = this.getObjectByName(itemRefName);
-               this.ObjectByName.bringToFront();
-       </method>
-       
-       <method name="doUpdateDocumentToolBarByParticipant" args="itemObjName">
-               this.ObjectByName = this.getObjectByName(itemObjName);
-               this.doUpdateDocumentToolBar();
-       </method>
-       
-       <method name="doUpdateDocumentToolBar">
+                       }
+                       this.ObjectByName = t;
+                       this.doUpdateDocumentToolBar();
+
+                       if ($debug) 
Debug.write("setCurrentDocument",itemRefName,this.ObjectByName);
+               </method>
+
+               <method name="sendItemToFront" args="itemRefName">
+                       var actionObject = new Array();
+                       actionObject[0] = 'item';
+                       actionObject[1] = itemRefName;
+                       this.onsharedMessage('sendItemToFront',actionObject);
+               </method>
+
+               <method name="bringItemToFrontByName" args="itemRefName">
+                       this.ObjectByName = this.getObjectByName(itemRefName);
+                       this.ObjectByName.bringToFront();
+               </method>
+
+               <method name="doUpdateDocumentToolBarByParticipant" 
args="itemObjName">
+                       this.ObjectByName = this.getObjectByName(itemObjName);
+                       this.doUpdateDocumentToolBar();
+               </method>
+
+               <method name="doUpdateDocumentToolBar">
        <![CDATA[
                var docToolbar = this.getDocumentToolBar();
                
@@ -441,17 +424,17 @@
                
                docToolbar.parent.parent.ignoreUpdates = false;
        ]]>
-       </method>
-       
-       <method name="doDeleteFromDocumentsBar" args="itemRefName">
-               this.getDocumentToolBar().removeDocument(itemRefName);
-       </method>
-       
-       <method name="clearDocumentsBar">
-               this.getDocumentToolBar().clearDocumentsBar();
-       </method>
-       
-       <method name="sendCurrentSWFObject" args="objRef">
+               </method>
+
+               <method name="doDeleteFromDocumentsBar" args="itemRefName">
+                       this.getDocumentToolBar().removeDocument(itemRefName);
+               </method>
+
+               <method name="clearDocumentsBar">
+                       this.getDocumentToolBar().clearDocumentsBar();
+               </method>
+
+               <method name="sendCurrentSWFObject" args="objRef">
        <![CDATA[
                if ($debug) Debug.write("sendCurrentSWFObject :: 
",objRef,objRef.name);
                var objName = objRef.name;
@@ -480,9 +463,9 @@
                        }
                }       
        ]]>
-       </method>
-       
-       <method name="remoteObjectUpdate" args="lastactionObject">
+               </method>
+
+               <method name="remoteObjectUpdate" args="lastactionObject">
        <![CDATA[
                var obj = 
this.getObjectByName(lastactionObject[lastactionObject.length-1]);
                
@@ -517,9 +500,9 @@
                        this.updateObjectsToSlideNumber(lastactionObject);
                }
        ]]>
-       </method>
-       
-       <method name="remoteUpdateBaseObjectList" args="actionObject">
+               </method>
+
+               <method name="remoteUpdateBaseObjectList" args="actionObject">
        <![CDATA[
                ////Debug.write("remoteUpdateBaseObjectList : ",actionObject);
                for (var eg=0;eg<this.baseactionobjectList.length;eg++){
@@ -529,9 +512,9 @@
                        }
                }       
        ]]>
-       </method>
-       
-       <method name="playVideoSynced" 
args="fileId,fileName,flv_width,flv_height">
+               </method>
+
+               <method name="playVideoSynced" 
args="fileId,fileName,flv_width,flv_height">
        <![CDATA[
                if ($debug) Debug.write("playVideoSynced : ", 
fileId,fileName,flv_width,flv_height);
        
@@ -546,9 +529,9 @@
                                                                        });
                this.layers.push(this.currentlayer);  
        ]]>
-       </method>
-       
-       <method name="sendNewVideoRemote" args="refObj">
+               </method>
+
+               <method name="sendNewVideoRemote" args="refObj">
        <![CDATA[
                if ($debug) Debug.write("sendNewVideoRemote : 
",refObj.fileId,refObj.title);
        
@@ -559,29 +542,30 @@
                                                                                
        refObj.flv_height,
                                                                                
        this.getZIndex());
        ]]>
-       </method>
-       
-       <method name="flvregisterFinal" 
args="newName,x,y,width,height,fileId,fileName,isPlaying,flv_width,flv_height,zIndex">
-               var actionObject = new Array();
-               actionObject[0] = 'flv';
-               actionObject[1] = fileId;
-               actionObject[2] = fileName;
-               actionObject[3] = isPlaying;
-               actionObject[4] = flv_width; 
-               actionObject[5] = flv_height;   
-               actionObject[6] = zIndex;//-8
-               actionObject[7] = null;//-7
-               actionObject[8] = this.counter;//-6
-               actionObject[9] = x;//-5
-               actionObject[10] = y;//-4
-               actionObject[11] = width;//-3
-               actionObject[12] = height;//-2
-               actionObject[13] = newName;//-1
-               this.baseactionobjectList.push(actionObject);      
-               this.onsharedMessage('draw',actionObject);
-       </method>        
-       
-       <method name="drawFlvToHistory" args="lastActionObject,parentView">
+               </method>
+
+               <method name="flvregisterFinal"
+                       
args="newName,x,y,width,height,fileId,fileName,isPlaying,flv_width,flv_height,zIndex">
+                       var actionObject = new Array();
+                       actionObject[0] = 'flv';
+                       actionObject[1] = fileId;
+                       actionObject[2] = fileName;
+                       actionObject[3] = isPlaying;
+                       actionObject[4] = flv_width;
+                       actionObject[5] = flv_height;
+                       actionObject[6] = zIndex;//-8
+                       actionObject[7] = null;//-7
+                       actionObject[8] = this.counter;//-6
+                       actionObject[9] = x;//-5
+                       actionObject[10] = y;//-4
+                       actionObject[11] = width;//-3
+                       actionObject[12] = height;//-2
+                       actionObject[13] = newName;//-1
+                       this.baseactionobjectList.push(actionObject);
+                       this.onsharedMessage('draw',actionObject);
+               </method>
+
+               <method name="drawFlvToHistory" 
args="lastActionObject,parentView">
        <![CDATA[
                if ($debug) Debug.write("drawFlvToHistory PLAY :: 
",lastActionObject[3]);
        
@@ -590,16 +574,17 @@
                                                                                
fileId:lastActionObject[1],
                                                                                
title:lastActionObject[2],
                                                                                
flv_width:lastActionObject[4],
-                                                                               
flv_height:lastActionObject[5]
+                                                                               
flv_height:lastActionObject[5],
+                                                                               
hash:lastActionObject[7]
                                                                        });
                if (lastActionObject[3]) {
                        this.currentlayer.playRemote();
                }
                this.layers.push(this.currentlayer);  
        ]]>
-       </method>
-       
-       <method name="playFLV" args="refObj,play">
+               </method>
+
+               <method name="playFLV" args="refObj,play">
        <![CDATA[
                for (var eg=0;eg<this.baseactionobjectList.length;eg++){
                        if 
(this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-1]==refObj.name)
 {
@@ -612,18 +597,18 @@
                        }
                }
        ]]>
-       </method>
-       
-       <method name="playFLVRemote" args="actionObject">
-               var tObj = 
this.getObjectByName(actionObject[actionObject.length-1]);
-               
-               if (actionObject[3]) {
+               </method>
+
+               <method name="playFLVRemote" args="actionObject">
+                       var tObj = 
this.getObjectByName(actionObject[actionObject.length-1]);
+
+                       if (actionObject[3]) {
                        tObj.playRemote();
-               }
-               if (!actionObject[3]) {
+                       }
+                       if (!actionObject[3]) {
                        tObj.stopRemote();
-               }
-       </method>
-</class>
+                       }
+               </method>
+       </class>
 
 </library>

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/whiteboardVideoPlayer.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/whiteboardVideoPlayer.lzx?rev=1761322&r1=1761321&r2=1761322&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/whiteboardVideoPlayer.lzx
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/whiteboardVideoPlayer.lzx
 Sun Sep 18 12:01:46 2016
@@ -29,6 +29,7 @@
        <attribute name="deltaInSeconds" value="0" type="number" />
        <attribute name="currentTime" value="0" type="number" />        
        <attribute name="recordingName" value="" type="string" />
+       <attribute name="hash" value="" type="string" />
        <attribute name="isLoaded" value="false" type="boolean" />
        <attribute name="sendInit" value="false" type="boolean" />
        <attribute name="flv_width" value="0" type="number" /> 
@@ -37,7 +38,7 @@
        <handler name="oninit">
                if ($debug) Debug.write("whiteboardVideoPlayer :: 
",this.fileId);
                
-               this.recordingName = "UPLOADFLV_" + this.fileId + ".mp4";
+               this.recordingName = hash + ".mp4";
                calcVideoWidthHeight();
                this.copyFileToCurrentRoom.doCall();
        </handler>

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/StoredFile.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/StoredFile.java?rev=1761322&r1=1761321&r2=1761322&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/StoredFile.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/StoredFile.java
 Sun Sep 18 12:01:46 2016
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.util;
 
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_JPG;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
 import java.io.File;
 import java.io.IOException;
 import java.nio.file.Files;
@@ -43,7 +45,7 @@ public class StoredFile {
 
        private static final Set<String> chartExtensions = new 
HashSet<>(Arrays.asList("xchart"));
 
-       private static final Set<String> asIsExtensions = new 
HashSet<>(Arrays.asList("jpg", "xchart"));
+       private static final Set<String> asIsExtensions = new 
HashSet<>(Arrays.asList(EXTENSION_MP4, EXTENSION_JPG, "xchart"));
 
        private final String name;
        private final String ext;

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml?rev=1761322&r1=1761321&r2=1761322&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
 Sun Sep 18 12:01:46 2016
@@ -83,7 +83,6 @@
        <bean id="openmeetings.FileProcessor" 
class="org.apache.openmeetings.core.data.file.FileProcessor" />
        <bean id="openmeetings.FlvExplorerConverter" 
class="org.apache.openmeetings.core.converter.FlvExplorerConverter" />
        <bean id="errorservice.service" 
class="org.apache.openmeetings.core.remote.ErrorService" />
-       <bean id="conferenceservice.service" 
class="org.apache.openmeetings.core.remote.ConferenceService" />
        <bean id="recordingservice.service" 
class="org.apache.openmeetings.core.remote.RecordingService" />
        <bean id="mobile.service" 
class="org.apache.openmeetings.core.remote.MobileService" />
        <bean id="openmeetings.RecordingConverterTask" 
class="org.apache.openmeetings.core.data.record.converter.RecordingConverterTask"
 />

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java?rev=1761322&r1=1761321&r2=1761322&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
 Sun Sep 18 12:01:46 2016
@@ -41,7 +41,7 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
-import org.apache.openmeetings.core.remote.ConferenceService;
+import org.apache.openmeetings.core.session.SessionManager;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.server.SOAPLoginDao;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
@@ -91,7 +91,7 @@ public class UserWebService implements U
        @Autowired
        private SessiondataDao sessionDao;
        @Autowired
-       private ConferenceService conferenceService;
+       private SessionManager sessionManager;
 
        /* (non-Javadoc)
         * @see 
org.apache.openmeetings.webservice.cluster.UserService#login(java.lang.String, 
java.lang.String)
@@ -347,7 +347,7 @@ public class UserWebService implements U
        public int count(@WebParam(name="sid") @QueryParam("sid") String sid, 
@WebParam(name="roomid") @PathParam("roomid") Long roomId) {
                Sessiondata sd = sessionDao.check(sid);
                if 
(AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) {
-                       return 
conferenceService.getRoomClientsListByRoomId(roomId).size();
+                       return 
sessionManager.getClientListByRoom(roomId).size();
                }
                return -1;
        }

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java?rev=1761322&r1=1761321&r2=1761322&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
 Sun Sep 18 12:01:46 2016
@@ -18,8 +18,8 @@
  */
 package org.apache.openmeetings.core.converter;
 
-import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
 import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_JPG;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.File;
@@ -29,7 +29,6 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
-import org.apache.openmeetings.db.dao.file.FileItemLogDao;
 import org.apache.openmeetings.db.entity.file.FileExplorerItem;
 import org.apache.openmeetings.db.entity.file.FileItem.Type;
 import org.apache.openmeetings.util.process.ConverterProcessResult;
@@ -45,8 +44,6 @@ public class FlvExplorerConverter extend
        // Spring loaded Beans
        @Autowired
        private FileExplorerItemDao fileDao;
-       @Autowired
-       private FileItemLogDao fileLogDao;
        
        private static class FlvDimension {
                public FlvDimension(int width, int height) {
@@ -58,43 +55,43 @@ public class FlvExplorerConverter extend
        }
 
        public List<ConverterProcessResult> convertToMP4(FileExplorerItem f, 
String ext) {
-               List<ConverterProcessResult> returnLog = new 
ArrayList<ConverterProcessResult>();
+               List<ConverterProcessResult> logs = new 
ArrayList<ConverterProcessResult>();
                try {
                        File mp4 = f.getFile(EXTENSION_MP4);
 
                        f.setType(Type.Video);
+                       ConverterProcessResult res;
+                       if (EXTENSION_MP4.equals(ext)) {
+                               String[] args = new String[] { 
getPathToFFMPEG(), "-i", f.getFile(ext).getCanonicalPath() };
+                               res = ProcessHelper.executeScript("Info ID :: " 
+ f.getId(), args);
+                               res.setExitCode(0); //normal code is 1, ffmpeg 
requires output file
+                       } else {
+                               String[] args = new String[] { 
getPathToFFMPEG(), "-y", "-i", f.getFile(ext).getCanonicalPath(),
+                                               "-c:a", "aac", "-c:v", "h264", 
mp4.getCanonicalPath() };
+                               res = ProcessHelper.executeScript("uploadFLV ID 
:: " + f.getId(), args);
 
-                       String[] argv_fullFLV = new String[] { 
getPathToFFMPEG(), "-y", "-i", f.getFile(ext).getCanonicalPath(),
-                                       "-c:a", "aac", "-c:v", "h264", 
mp4.getCanonicalPath() };
-
-                       ConverterProcessResult returnMapConvertFLV = 
ProcessHelper.executeScript("uploadFLV ID :: " + f.getId(), argv_fullFLV);
-                       
+                       }
+                       logs.add(res);
                        //Parse the width height from the FFMPEG output
-                       FlvDimension flvDimension = 
getFlvDimension(returnMapConvertFLV.getError());
-                       int flvWidth = flvDimension.width;
-                       int flvHeight = flvDimension.height;
-                       
-                       f.setFlvWidth(flvWidth);
-                       f.setFlvHeight(flvHeight);
-
-                       returnLog.add(returnMapConvertFLV);
-
+                       FlvDimension dim = getFlvDimension(res.getError());
+                       f.setFlvWidth(dim.width);
+                       f.setFlvHeight(dim.height);
                        File jpeg = f.getFile(EXTENSION_JPG);
 
                        String[] argv_previewFLV = new String[] { 
getPathToFFMPEG(), "-y", "-i",
                                        mp4.getCanonicalPath(), "-codec:v", 
"mjpeg", "-vframes", "1", "-an",
-                                       "-f", "rawvideo", "-s", flvWidth + "x" 
+ flvHeight,
+                                       "-f", "rawvideo", "-s", dim.width + "x" 
+ dim.height,
                                        jpeg.getCanonicalPath() };
 
-                       
returnLog.add(ProcessHelper.executeScript("previewUpload ID :: " + f.getId(), 
argv_previewFLV));
+                       logs.add(ProcessHelper.executeScript("previewUpload ID 
:: " + f.getId(), argv_previewFLV));
 
                        fileDao.update(f);
                } catch (Exception err) {
                        log.error("[convertToFLV]", err);
-                       returnLog.add(new 
ConverterProcessResult("convertToMP4", err.getMessage(), err));
+                       logs.add(new ConverterProcessResult("convertToMP4", 
err.getMessage(), err));
                }
 
-               return returnLog;
+               return logs;
        }
        
        private static FlvDimension getFlvDimension(String txt) throws 
Exception {

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java?rev=1761322&r1=1761321&r2=1761322&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
 Sun Sep 18 12:01:46 2016
@@ -29,6 +29,7 @@ import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.UUID;
 
 import org.apache.openmeetings.db.dao.file.FileItemLogDao;
 import org.apache.openmeetings.db.dao.record.RecordingDao;
@@ -38,6 +39,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.util.process.ConverterProcessResult;
 import org.apache.openmeetings.util.process.ProcessHelper;
+import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -63,9 +65,9 @@ public class InterviewConverter extends
 
        private String[] mergeAudioToWaves(List<File> waveFiles, File wav,
                        List<RecordingMetaData> metaDataList, ReConverterParams 
rcv) throws IOException {
-               String[] argv_full_sox = new String[waveFiles.size() + 5];
-               argv_full_sox[0] = this.getPathToSoX();
-               argv_full_sox[1] = "-m";
+               String[] cmdSox = new String[waveFiles.size() + 5];
+               cmdSox[0] = this.getPathToSoX();
+               cmdSox[1] = "-m";
 
                int counter = 2;
                for (File _wav : waveFiles) {
@@ -74,22 +76,22 @@ public class InterviewConverter extends
 
                                if 
(hashFileFullNameStored.equals(_wav.getName())) {
                                        if (metaData.getInteriewPodId() == 1) {
-                                               argv_full_sox[counter] = "-v " 
+ rcv.leftSideLoud;
+                                               cmdSox[counter] = "-v " + 
rcv.leftSideLoud;
                                                counter++;
                                        }
                                        if (metaData.getInteriewPodId() == 2) {
-                                               argv_full_sox[counter] = "-v " 
+ rcv.rightSideLoud;
+                                               cmdSox[counter] = "-v " + 
rcv.rightSideLoud;
                                                counter++;
                                        }
                                }
                        }
-                       argv_full_sox[counter] = _wav.getCanonicalPath();
+                       cmdSox[counter] = _wav.getCanonicalPath();
                        counter++;
                }
 
-               argv_full_sox[counter] = wav.getCanonicalPath();
+               cmdSox[counter] = wav.getCanonicalPath();
 
-               return argv_full_sox;
+               return cmdSox;
        }
 
        @Override
@@ -102,15 +104,18 @@ public class InterviewConverter extends
                try {
                        r = recordingDao.get(id);
                        log.debug("recording " + r.getId());
+                       if (Strings.isEmpty(r.getHash())) {
+                               r.setHash(UUID.randomUUID().toString());
+                       }
                        r.setStatus(Recording.Status.CONVERTING);
                        r = recordingDao.update(r);
 
-                       List<ConverterProcessResult> returnLog = new 
ArrayList<>();
+                       List<ConverterProcessResult> logs = new ArrayList<>();
                        List<File> waveFiles = new ArrayList<>();
                        File streamFolder = getStreamFolder(r);
                        List<RecordingMetaData> metaDataList = 
metaDataDao.getAudioMetaDataByRecording(r.getId());
        
-                       stripAudioFirstPass(r, returnLog, waveFiles, 
streamFolder, metaDataList);
+                       stripAudioFirstPass(r, logs, waveFiles, streamFolder, 
metaDataList);
                
                        // Merge Wave to Full Length
                        File streamFolderGeneral = getStreamsHibernateDir();
@@ -128,7 +133,7 @@ public class InterviewConverter extends
                                        argv_full_sox = 
mergeAudioToWaves(waveFiles, wav);
                                }
 
-                               
returnLog.add(ProcessHelper.executeScript("mergeAudioToWaves", argv_full_sox));
+                               
logs.add(ProcessHelper.executeScript("mergeAudioToWaves", argv_full_sox));
                        } else {
                                // create default Audio to merge it.
                                // strip to content length
@@ -137,9 +142,9 @@ public class InterviewConverter extends
                                // Calculate delta at beginning
                                double deltaPadding = 
diffSeconds(r.getRecordEnd(), r.getRecordStart());
 
-                               String[] argv_full_sox = new String[] { 
getPathToSoX(), outputWav.getCanonicalPath(), wav.getCanonicalPath(), "pad", 
"0", "" + deltaPadding };
+                               String[] cmdSox = new String[] { 
getPathToSoX(), outputWav.getCanonicalPath(), wav.getCanonicalPath(), "pad", 
"0", "" + deltaPadding };
 
-                               
returnLog.add(ProcessHelper.executeScript("generateSampleAudio", 
argv_full_sox));
+                               
logs.add(ProcessHelper.executeScript("generateSampleAudio", cmdSox));
                        }
                        // Default Image for empty interview video pods
                        final File defaultInterviewImageFile = new 
File(streamFolderGeneral, "default_interview_image.png");
@@ -172,7 +177,7 @@ public class InterviewConverter extends
                                                        , "-f", "null"
                                                        , "file.null"};
                                        ConverterProcessResult res = 
ProcessHelper.executeScript("checkFlvPod_" + pod , args);
-                                       returnLog.add(res);
+                                       logs.add(res);
                                        if (res.isOk()) {
                                                //TODO need to remove smallest 
gap
                                                long diff = 
diff(meta.getRecordStart(), meta.getRecording().getRecordStart());
@@ -188,7 +193,7 @@ public class InterviewConverter extends
                                                                        , "-t", 
formatMillis(diff) //
                                                                        , 
"-pix_fmt", "yuv420p" //
                                                                        , podPB 
};
-                                                       
returnLog.add(ProcessHelper.executeScript("blankFlvPod_" + pod , argsPodB));
+                                                       
logs.add(ProcessHelper.executeScript("blankFlvPod_" + pod , argsPodB));
                                                        
                                                        //ffmpeg -y -i out.flv 
-i rec_15_stream_4_2014_07_15_20_41_03.flv -filter_complex 
'[0:0]setsar=1/1[sarfix];[1:0]scale=320:260,setsar=1/1[scale];[sarfix] [scale] 
concat=n=2:v=1:a=0 [v]' -map '[v]'  output1.flv
                                                        File podF = new 
File(streamFolder, OmFileHelper.getName(meta.getStreamName() + "_pod_" + pod, 
EXTENSION_FLV));
@@ -199,7 +204,7 @@ public class InterviewConverter extends
                                                                        , 
"-filter_complex", 
String.format("[0:0]setsar=1/1[sarfix];[1:0]scale=%1$d:%2$d,setsar=1/1[scale];[sarfix]
 [scale] concat=n=2:v=1:a=0 [v]", flvWidth, flvHeight) //
                                                                        , 
"-map", "[v]" //
                                                                        , podP 
};
-                                                       
returnLog.add(ProcessHelper.executeScript("shiftedFlvPod_" + pod , argsPod));
+                                                       
logs.add(ProcessHelper.executeScript("shiftedFlvPod_" + pod , argsPod));
        
                                                        pods[pod - 1] = podP;
                                                } else {
@@ -213,7 +218,8 @@ public class InterviewConverter extends
                                ConverterProcessResult res = new 
ConverterProcessResult();
                                res.setProcess("CheckFlvFilesExists");
                                res.setError("No valid pods found");
-                               returnLog.add(res);
+                               res.setExitCode(-1);
+                               logs.add(res);
                                return;
                        }
                        boolean shortest = false;
@@ -255,7 +261,7 @@ public class InterviewConverter extends
                        File flv = r.getFile(EXTENSION_FLV);
                        args.add(flv.getCanonicalPath());
                        // TODO additional flag to 'quiet' output should be 
added
-                       
returnLog.add(ProcessHelper.executeScript("generateFullBySequenceFLV", 
args.toArray(new String[]{})));
+                       
logs.add(ProcessHelper.executeScript("generateFullBySequenceFLV", 
args.toArray(new String[]{})));
 
                        r.setFlvWidth(2 * flvWidth);
                        r.setFlvHeight(flvHeight);
@@ -276,21 +282,21 @@ public class InterviewConverter extends
                                        "-s", (2 * flvWidth) + "x" + flvHeight, 
//
                                        jpg.getCanonicalPath() };
 
-                       
returnLog.add(ProcessHelper.executeScript("generateFullFLV", argv_previewFLV));
+                       logs.add(ProcessHelper.executeScript("generateFullFLV", 
argv_previewFLV));
 
                        File avi = r.getFile(EXTENSION_AVI);
                        deleteFileIfExists(avi);
 
                        String[] argv_alternateDownload = new String[] { 
getPathToFFMPEG(), "-y", "-i", flv.getCanonicalPath(), avi.getCanonicalPath() };
 
-                       
returnLog.add(ProcessHelper.executeScript("alternateDownload", 
argv_alternateDownload));
+                       
logs.add(ProcessHelper.executeScript("alternateDownload", 
argv_alternateDownload));
 
                        updateDuration(r);
-                       convertToMp4(r, returnLog);
+                       convertToMp4(r, logs);
                        r.setStatus(Recording.Status.PROCESSED);
 
                        logDao.delete(r);
-                       for (ConverterProcessResult returnMap : returnLog) {
+                       for (ConverterProcessResult returnMap : logs) {
                                logDao.add("generateFFMPEG", r, returnMap);
                        }
 


Reply via email to