Revision: 2822
Author: seba.wagner
Date: Thu Jan 21 07:19:17 2010
Log: Update Issue 1097

Fixes TRIM time for late/partial users, Debug why some FLVs are missing in the Post-Process (No Audio Packet was ever send)
http://code.google.com/p/openmeetings/source/detail?r=2822

Added:
 /trunk/singlewebapp/conf/debug.txt
Modified:
/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverter.java /trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamAudioListener.java /trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/flvrecord/FlvRecordingMetaDelta.hbm.xml /trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/flvrecord/FlvRecordingMetaDelta.java /trunk/singlewebapp/src/app/org/openmeetings/app/remote/FLVRecorderService.java

=======================================
--- /dev/null
+++ /trunk/singlewebapp/conf/debug.txt  Thu Jan 21 07:19:17 2010
@@ -0,0 +1,6 @@
+process-generateFFMPEG<br/>error-FFmpeg version UNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al. configuration: --prefix=/sw --mandir=/sw/share/man --enable-shared --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-x11grab --enable-liba52 --enable-libamr-nb --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --disable-mmx --disable-iwmmxt --disable-altivec libavutil version: 49.6.0 libavcodec version: 51.49.0 libavformat version: 52.2.0 built on Feb 14 2009 13:01:06, gcc: 4.0.1 (Apple Inc. build 5465)
+
+/Users/sebastianwagner/Documents/workspaces/workspace_openmeetings/ROOT/dist/red5/./webapps/openmeetings/streams/5/rec_1_stream_18_21_01_2010_15_46_05.flv: no such file or directory<br/>
+
+
+command-[ffmpeg, -i, /Users/sebastianwagner/Documents/workspaces/workspace_openmeetings/ROOT/dist/red5/./webapps/openmeetings/streams/5/rec_1_stream_18_21_01_2010_15_46_05.flv, /Users/sebastianwagner/Documents/workspaces/workspace_openmeetings/ROOT/dist/red5/./webapps/openmeetings/streams/5/rec_1_stream_18_21_01_2010_15_46_05_WAVE.wav]<br/>exitValue-1<br/>
=======================================
--- /trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverter.java Tue Jan 19 11:54:27 2010 +++ /trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverter.java Thu Jan 21 07:19:17 2010
@@ -320,11 +320,10 @@
Float startPadding = Float.parseFloat(deltaTimeStartMilliSeconds.toString()) / 1000;

                                        // Calculate delta at ending
-                                       Long deltaTimeEndMilliSeconds = 
flvRecording.getRecordEnd()
-                                                       .getTime()
-                                                       - 
flvRecordingMetaData.getRecordEnd().getTime();
-                                       Float endPadding = Float
-                                                       
.parseFloat(deltaTimeEndMilliSeconds.toString()) / 1000;
+                                       Long deltaTimeEndMilliSeconds = 
flvRecording.getRecordEnd().getTime()
+                                                                               
                                        - 
flvRecordingMetaData.getRecordEnd().getTime();
+
+ Float endPadding = Float.parseFloat(deltaTimeEndMilliSeconds.toString()) / 1000;

                                        String[] argv_sox = new String[] { 
this.getPathToSoX(),
                                                        outputGapFullWav, outputFullWav, 
"pad",
@@ -339,7 +338,7 @@
                                        log.debug("padString :: "+padString);
                                        log.debug("END addAudioToWaves 
################# ");

-                                       
returnLog.add(GenerateSWF.executeScript("generateWave",argv_sox));
+ returnLog.add(GenerateSWF.executeScript("addStartEndToAudio",argv_sox));

                                        //Fix for Audio Length - Invalid Audio 
Length in Recorded Files
                                        //Audio must match 100% the the Video
@@ -360,7 +359,7 @@

                                        log.debug("audioLength "+audioLength);

- double audioShouldLength = (Math.round( (flvRecordingMetaData.getRecordEnd().getTime() - flvRecordingMetaData.getRecordStart().getTime()) / 1000))-2; + double audioShouldLength = (Math.round( (flvRecording.getRecordEnd().getTime() - flvRecording.getRecordStart().getTime()) / 1000))-2;

                                        log.debug("audioShouldLength 
"+audioShouldLength);

=======================================
--- /trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamAudioListener.java Sun Jan 17 07:43:00 2010 +++ /trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamAudioListener.java Thu Jan 21 07:19:17 2010
@@ -25,7 +25,7 @@

        private int startTimeStamp = -1;

-       private int lastTimeStamp = -1;
+       private Integer lastTimeStamp = -1;

        private int lastStreamPacketTimeStamp = -1;

@@ -243,6 +243,8 @@
                                } else {
                                        deltaTime = timeStamp - lastTimeStamp;
                                }
+
+                               Long preLastTimeStamp = 
Long.parseLong(lastTimeStamp.toString());

                                lastTimeStamp = timeStamp;

@@ -255,6 +257,7 @@
                                        
flvRecordingMetaDelta.setTimeStamp(timeStamp);
                                        flvRecordingMetaDelta.setDebugStatus("RUN 
AUDIO");
                                        
flvRecordingMetaDelta.setIsStartPadding(false);
+                                       
flvRecordingMetaDelta.setLastTimeStamp(preLastTimeStamp);
                                        
flvRecordingMetaDelta.setOffset(this.offset);
                                        
flvRecordingMetaDelta.setIsEndPadding(false);
                                        
flvRecordingMetaDelta.setDataLengthPacket(data.limit());
=======================================
--- /trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/flvrecord/FlvRecordingMetaDelta.hbm.xml Sun Jan 17 07:43:00 2010 +++ /trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/flvrecord/FlvRecordingMetaDelta.hbm.xml Thu Jan 21 07:19:17 2010
@@ -9,6 +9,7 @@
<property name="flvRecordingMetaDataId" type="long" column="flvrecording_metadata_id"/>
     <property name="timeStamp" type="int" column="time_stamp"/>
     <property name="deltaTime" type="long" column="delta_time"/>
+    <property name="lastTimeStamp" type="long" column="last_time_stamp"/>
     <property name="deltaTimeStamp" type="long" column="delta_time_stamp"/>
<property name="packetTimeStamp" type="int" column="packet_time_stamp"/>
     <property name="offset" type="long" column="offset"/>
=======================================
--- /trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/flvrecord/FlvRecordingMetaDelta.java Sun Jan 17 07:43:00 2010 +++ /trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/flvrecord/FlvRecordingMetaDelta.java Thu Jan 21 07:19:17 2010
@@ -14,6 +14,7 @@
        private Long flvRecordingMetaDataId;
        private Integer timeStamp;
        private Long deltaTime;
+       private Long lastTimeStamp;
        private Date startTime;
        private Date currentTime;
        private Long deltaTimeStamp;
@@ -79,6 +80,18 @@
        public void setDeltaTime(Long deltaTime) {
                this.deltaTime = deltaTime;
        }
+
+       /**
+     * @hibernate.property
+     *  column="last_time_stamp"
+     *  type="long"
+     */
+       public Long getLastTimeStamp() {
+               return lastTimeStamp;
+       }
+       public void setLastTimeStamp(Long lastTimeStamp) {
+               this.lastTimeStamp = lastTimeStamp;
+       }

        /**
      * @hibernate.property
@@ -270,5 +283,6 @@
        public void setReceivedAudioDataLength(Long receivedAudioDataLength) {
                this.receivedAudioDataLength = receivedAudioDataLength;
        }
+

 }
=======================================
--- /trunk/singlewebapp/src/app/org/openmeetings/app/remote/FLVRecorderService.java Mon Jan 18 11:06:41 2010 +++ /trunk/singlewebapp/src/app/org/openmeetings/app/remote/FLVRecorderService.java Thu Jan 21 07:19:17 2010
@@ -131,9 +131,9 @@
                return null;
        }

-       private static String generateFileName(String streamid) throws 
Exception{
+ private static String generateFileName(Long flvRecording_id, String streamid) throws Exception{ String dateString = CalendarPatterns.getTimeForStreamId(new java.util.Date());
-               return streamid+"_"+dateString;
+               return 
"rec_"+flvRecording_id+"_stream_"+streamid+"_"+dateString;

        }

@@ -178,7 +178,7 @@

if (rcl.getFlvRecordingId() != null && rcl.getScreenPublishStarted() != null && rcl.getScreenPublishStarted()) {

- String streamName_Screen = generateFileName(rcl.getStreamPublishName().toString()); + String streamName_Screen = generateFileName(flvRecordingId, rcl.getStreamPublishName().toString());

Long flvRecordingMetaDataId = this.flvRecordingMetaDataDaoImpl.addFlvRecordingMetaData(flvRecordingId,
                                                                                          
                                                              rcl.getFirstname()+" 
"+rcl.getLastname(), now,
@@ -201,7 +201,7 @@
                                                                        
rcl.getAvsettings().equals("a") ||
                                                                        
rcl.getAvsettings().equals("v")){

- String streamName = generateFileName(String.valueOf(rcl.getBroadCastID()).toString()); + String streamName = generateFileName(flvRecordingId, String.valueOf(rcl.getBroadCastID()).toString());

                                                                //Add Meta Data
                                                                boolean 
isAudioOnly = false;
@@ -292,7 +292,7 @@
stream.addStreamListener(new StreamAudioListener(streamName, conn.getScope(), flvRecordingMetaDataId, isScreenData));
                        }
                        //Just for Debug Purpose
-                       //stream.saveAs(streamName+"_DEBUG", false);
+                       stream.saveAs(streamName+"_DEBUG", false);
                } catch (Exception e) {
                        log.error("Error while saving stream: " + streamName, 
e);
                }
@@ -366,7 +366,7 @@
                        }

                        // Just for Debugging
-                       //stream.stopRecording();
+                       stream.stopRecording();

                } catch (Exception err) {
                        log.error("[stopRecordingShow]",err);
@@ -488,7 +488,7 @@

if (rcl.getFlvRecordingId() != null && rcl.getScreenPublishStarted() != null && rcl.getScreenPublishStarted()) {

- String streamName_Screen = generateFileName(rcl.getStreamPublishName().toString()); + String streamName_Screen = generateFileName(flvRecordingId, rcl.getStreamPublishName().toString());

log.debug("############## ADD SCREEN OF SHARER :: "+rcl.getStreamPublishName());

@@ -513,7 +513,7 @@
                                        rcl.getAvsettings().equals("a") ||
                                        rcl.getAvsettings().equals("v")){

- String streamName = generateFileName(String.valueOf(rcl.getBroadCastID()).toString()); + String streamName = generateFileName(flvRecordingId, String.valueOf(rcl.getBroadCastID()).toString());

                                //Add Meta Data
                                boolean isAudioOnly = false;
-- 
You received this message because you are subscribed to the Google Groups 
"OpenMeetings developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/openmeetings-dev?hl=en.


Reply via email to