Author: sebawagner
Date: Wed Feb 15 16:25:50 2012
New Revision: 1244566

URL: http://svn.apache.org/viewvc?rev=1244566&view=rev
Log:
OPENMEETINGS-54 fix recorder to use new audio/video components and fix 
recording itself to reference correct streams Improve Debug print of 
RoomClient, fix recording to record the stream of the screenclient

Modified:
    
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/persistence/beans/recording/RoomClient.java
    
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/FLVRecorderService.java
    
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java
    
incubator/openmeetings/trunk/singlewebapp/src/red5-screenshare/org/red5/screen/webstart/ScreenShare.java

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/persistence/beans/recording/RoomClient.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/persistence/beans/recording/RoomClient.java?rev=1244566&r1=1244565&r2=1244566&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/persistence/beans/recording/RoomClient.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/persistence/beans/recording/RoomClient.java
 Wed Feb 15 16:25:50 2012
@@ -223,7 +223,7 @@ public class RoomClient implements Seria
        @Column(name="startStreaming")
        boolean startStreaming = false;
        @Column(name="screenPublishStarted")
-       private Boolean screenPublishStarted;
+       private boolean screenPublishStarted = false;
        
        /*
         * Indicates if this User is broadcasting his stream at all
@@ -610,10 +610,10 @@ public class RoomClient implements Seria
                this.flvRecordingMetaDataId = flvRecordingMetaDataId;
        }
 
-       public Boolean getScreenPublishStarted() {
+       public boolean isScreenPublishStarted() {
                return screenPublishStarted;
        }
-       public void setScreenPublishStarted(Boolean screenPublishStarted) {
+       public void setScreenPublishStarted(boolean screenPublishStarted) {
                this.screenPublishStarted = screenPublishStarted;
        }
 
@@ -678,6 +678,23 @@ public class RoomClient implements Seria
        public void setIsAVClient(Boolean isAVClient) {
                this.isAVClient = isAVClient;
        }
+
+       /**
+        * To improve our trace log
+        */
+       @Override
+       public String toString() {
+
+               return super.toString() //
+                               + " StreamId: " + this.getStreamid() //
+                               + " isScreenClient: " + 
this.getIsScreenClient() //
+                               + " flvRecordingId: " + 
this.getFlvRecordingId() //
+                               + " screenPublishStarted: " + 
this.isScreenPublishStarted() //
+                               + " flvRecordingMetaDataId: " + 
this.getFlvRecordingMetaDataId() //
+                               + " isRecording: " + this.getIsRecording() //
+                               ;
+       }
+       
        
        
 }

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/FLVRecorderService.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/FLVRecorderService.java?rev=1244566&r1=1244565&r2=1244566&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/FLVRecorderService.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/FLVRecorderService.java
 Wed Feb 15 16:25:50 2012
@@ -149,6 +149,8 @@ public class FLVRecorderService implemen
        public String recordMeetingStream(String roomRecordingName, String 
comment,
                        Boolean isInterview) {
                try {
+                       
+                       log.debug(":: recordMeetingStream ::");
 
                        IConnection current = Red5.getConnectionLocal();
                        RoomClient currentClient = this.clientListManager
@@ -199,8 +201,7 @@ public class FLVRecorderService implemen
                                                        if 
(rcl.getIsScreenClient()) {
 
                                                                if 
(rcl.getFlvRecordingId() != null
-                                                                               
&& rcl.getScreenPublishStarted() != null
-                                                                               
&& rcl.getScreenPublishStarted()) {
+                                                                               
&& rcl.isScreenPublishStarted()) {
 
                                                                        String 
streamName_Screen = generateFileName(
                                                                                
        flvRecordingId, rcl
@@ -466,8 +467,7 @@ public class FLVRecorderService implemen
                                                        if 
(rcl.getIsScreenClient()) {
 
                                                                if 
(rcl.getFlvRecordingId() != null
-                                                                               
&& rcl.getScreenPublishStarted() != null
-                                                                               
&& rcl.getScreenPublishStarted()) {
+                                                                               
&& rcl.isScreenPublishStarted()) {
 
                                                                        // Stop 
FLV Recording
                                                                        
stopRecordingShow(conn,
@@ -599,8 +599,7 @@ public class FLVRecorderService implemen
                        if (rcl.getIsScreenClient()) {
 
                                if (rcl.getFlvRecordingId() != null
-                                               && 
rcl.getScreenPublishStarted() != null
-                                               && 
rcl.getScreenPublishStarted()) {
+                                               && 
rcl.isScreenPublishStarted()) {
 
                                        // Stop FLV Recording
                                        // FIXME: Is there really a need to 
stop it manually if the
@@ -649,8 +648,7 @@ public class FLVRecorderService implemen
                        if (rcl.getIsScreenClient()) {
 
                                if (rcl.getFlvRecordingId() != null
-                                               && 
rcl.getScreenPublishStarted() != null
-                                               && 
rcl.getScreenPublishStarted()) {
+                                               && 
rcl.isScreenPublishStarted()) {
 
                                        String streamName_Screen = 
generateFileName(flvRecordingId,
                                                        
rcl.getStreamPublishName().toString());

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java?rev=1244566&r1=1244565&r2=1244566&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java
 Wed Feb 15 16:25:50 2012
@@ -374,8 +374,7 @@ public class ScopeApplicationAdapter ext
 
                                // if is already started screen sharing, then 
there is no need
                                // to start it again
-                               if (currentClient.getScreenPublishStarted() != 
null
-                                               && 
currentClient.getScreenPublishStarted()) {
+                               if (currentClient.isScreenPublishStarted()) {
                                        returnMap.put("alreadyPublished", true);
                                }
 
@@ -691,8 +690,6 @@ public class ScopeApplicationAdapter ext
                        // Notify all the clients that the stream had been 
started
                        log.debug("start streamPublishStart broadcast start: "
                                        + stream.getPublishedName() + "CONN " + 
current);
-                       System.out.println("start streamPublishStart broadcast 
start: "
-                                       + stream.getPublishedName() + "CONN " + 
current);
 
                        // In case its a screen sharing we start a new Video 
for that
                        if (currentClient.getIsScreenClient()) {
@@ -709,7 +706,7 @@ public class ScopeApplicationAdapter ext
                                                                                
        currentClient.getPublicSID(), false);
                        }
                        
-                       System.out.println("newStream SEND");
+                       log.debug("newStream SEND");
 
                        // Notify all users of the same Scope
                        // We need to iterate through the streams to catch if 
anybody is recording
@@ -725,36 +722,38 @@ public class ScopeApplicationAdapter ext
                                                                                
        .getId());
                                                        
                                                        if (rcl == null) {
-                                                               
System.out.println("RCL IS NULL newStream SEND");
+                                                               log.debug("RCL 
IS NULL newStream SEND");
                                                                continue;
                                                        }
+                                                       
+                                                       log.debug("check send 
to "+rcl);
+                                                       
                                                        if (rcl.getPublicSID() 
== "") {
-                                                               
System.out.println("publicSID IS NULL newStream SEND");
-                                                               continue;
-                                                       }
-                                                       if (rcl.getIsAVClient() 
== null || rcl.getIsAVClient()) {
-                                                               
System.out.println("RCL getIsAVClient newStream SEND");
-                                                               continue;
-                                                       }
-                                                       if 
(rcl.getIsScreenClient() == null || rcl.getIsScreenClient()) {
-                                                               
System.out.println("RCL getIsScreenClient newStream SEND");
+                                                               
log.debug("publicSID IS NULL newStream SEND");
                                                                continue;
                                                        }
-
                                                        if 
(rcl.getIsRecording()) {
-                                                               
System.out.println("RCL getIsRecording newStream SEND");
+                                                               log.debug("RCL 
getIsRecording newStream SEND");
                                                                
this.flvRecorderService
                                                                                
.addRecordingByStreamId(current,
                                                                                
                streamid, currentClient,
                                                                                
                rcl.getFlvRecordingId());
                                                        }
+                                                       if (rcl.getIsAVClient() 
== null || rcl.getIsAVClient()) {
+                                                               log.debug("RCL 
getIsAVClient newStream SEND");
+                                                               continue;
+                                                       }
+                                                       if 
(rcl.getIsScreenClient() == null || rcl.getIsScreenClient()) {
+                                                               log.debug("RCL 
getIsScreenClient newStream SEND");
+                                                               continue;
+                                                       }
                                                        
                                                        if 
(rcl.getPublicSID().equals(currentClient.getPublicSID())) {
-                                                               
System.out.println("RCL publicSID is equal newStream SEND");
+                                                               log.debug("RCL 
publicSID is equal newStream SEND");
                                                                continue;
                                                        }
                                                        
-                                                       System.out.println("RCL 
SEND is equal newStream SEND "+rcl.getPublicSID()+" || "+rcl.getUserport());
+                                                       log.debug("RCL SEND is 
equal newStream SEND "+rcl.getPublicSID()+" || "+rcl.getUserport());
                                                                
                                                        
IServiceCapableConnection iStream = (IServiceCapableConnection) conn;
                                                        
iStream.invoke("newStream",

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/red5-screenshare/org/red5/screen/webstart/ScreenShare.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/red5-screenshare/org/red5/screen/webstart/ScreenShare.java?rev=1244566&r1=1244565&r2=1244566&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/red5-screenshare/org/red5/screen/webstart/ScreenShare.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/red5-screenshare/org/red5/screen/webstart/ScreenShare.java
 Wed Feb 15 16:25:50 2012
@@ -1079,107 +1079,107 @@ public class ScreenShare extends RTMPCli
         
                 } else if 
(call.getServiceMethodName().equals("setConnectionAsSharingClient")) {
                                 
-                                //logger.debug("call get Method Name 
"+call.getServiceMethodName());
-                                
-                                Object o = call.getResult();
-                                
-                                //logger.debug("Result Map Type 
"+o.getClass().getName());
-                                
-                                Map returnMap = (Map) o;
-                                
-                                //logger.debug("result 
"+returnMap.get("result"));
-                                
-                                //for (Iterator iter = 
returnMap.keySet().iterator();iter.hasNext();) {
-                                //        logger.debug("key "+iter.next());
-                                //}
-                                
-                                if 
(!Boolean.valueOf(returnMap.get("alreadyPublished").toString()).booleanValue()) 
{
-                                        
-                                        //logger.debug("Stream not yet started 
- do it ");
-                                        
-                                        createStream( this );
-                                        
-                                } else {
-                                        
-                                        if (this.capture != null) {
-                                                this.capture.resetBuffer();
-                                        }
-                                        
-                                        //logger.debug("The Stream was already 
started ");
-                                }
-                                
-                                if (returnMap.get("modus") != null) {
-                                        if 
(returnMap.get("modus").toString().equals("startStreaming")) {
-                                                
this.startButton.setEnabled(false);
-                                                
this.stopButton.setEnabled(true);
-                                        } else if 
(returnMap.get("modus").toString().equals("startRecording")) {
-                                                
this.startButtonRecording.setEnabled(false);
-                                                
this.stopButtonRecording.setEnabled(true);
-                                        }
-                                } else {
-                                        throw new Exception("Could not aquire 
modus for event setConnectionAsSharingClient");
-                                }
-                                
-                        } else if 
(call.getServiceMethodName().equals("createStream")) {
-                                        
-                                publishStreamId = (Integer) call.getResult();
-                                logger.debug( "createPublishStream result 
stream id: " + publishStreamId );
-                                logger.debug( "publishing video by name: " + 
publishName );
-                                publish( publishStreamId, publishName, "live", 
this );
-        
-                                logger.debug( "setup capture thread");
-        
-                                capture = new 
CaptureScreen(VirtualScreenBean.vScreenSpinnerX,
-                                                                               
         VirtualScreenBean.vScreenSpinnerY,
-                                                                               
         VirtualScreenBean.vScreenSpinnerWidth,
-                                                                               
         VirtualScreenBean.vScreenSpinnerHeight,
-                                                                               
         VirtualScreenBean.vScreenResizeX,
-                                                                               
         VirtualScreenBean.vScreenResizeY
-                                                                               
                                                                );
-        
-                                if (thread == null)
-                                {
-                                        thread = new Thread(capture);
-                                        thread.start();
-                                }
-                                capture.start();
-        
-                        } else if 
(call.getServiceMethodName().equals("screenSharerAction")) {
-                                
-                                logger.debug("call ### get Method Name 
"+call.getServiceMethodName());
-                                
-                                Object o = call.getResult();
-                                
-                                logger.debug("Result Map Type 
"+o.getClass().getName());
-                                
-                                Map returnMap = (Map) o;
-                                
-                                //logger.debug("result 
"+returnMap.get("result"));
+                        //logger.debug("call get Method Name 
"+call.getServiceMethodName());
+                        
+                        Object o = call.getResult();
+                        
+                        //logger.debug("Result Map Type 
"+o.getClass().getName());
+                        
+                        Map returnMap = (Map) o;
+                        
+                        //logger.debug("result "+returnMap.get("result"));
+                        
+                        //for (Iterator iter = 
returnMap.keySet().iterator();iter.hasNext();) {
+                        //        logger.debug("key "+iter.next());
+                        //}
+                        
+                        if 
(!Boolean.valueOf(returnMap.get("alreadyPublished").toString()).booleanValue()) 
{
                                 
-                                //for (Iterator iter = 
returnMap.keySet().iterator();iter.hasNext();) {
-                                //        logger.debug("key "+iter.next());
-                                //}
+                                //logger.debug("Stream not yet started - do it 
");
                                 
-                                if (returnMap.get("result").equals("stopAll")) 
{
+                                createStream( this );
                                 
-                                        logger.debug("Stopping to stream, 
there is neither a Desktop Sharing nor Recording anymore");
-                                        
-                                        stopStream();
+                        } else {
                                 
+                                if (this.capture != null) {
+                                        this.capture.resetBuffer();
                                 }
                                 
-                                //logger.debug("Stop No Doubt!");
-                                //stopStream();
+                                //logger.debug("The Stream was already started 
");
+                        }
                         
-                        } else if 
(call.getServiceMethodName().equals("setNewCursorPosition")) {
-                                
-                                //Do not do anything
-                                
+                        if (returnMap.get("modus") != null) {
+                                if 
(returnMap.get("modus").toString().equals("startStreaming")) {
+                                        this.startButton.setEnabled(false);
+                                        this.stopButton.setEnabled(true);
+                                } else if 
(returnMap.get("modus").toString().equals("startRecording")) {
+                                        
this.startButtonRecording.setEnabled(false);
+                                        
this.stopButtonRecording.setEnabled(true);
+                                }
                         } else {
+                                throw new Exception("Could not aquire modus 
for event setConnectionAsSharingClient");
+                        }
+                        
+                } else if (call.getServiceMethodName().equals("createStream")) 
{
                                 
-                                logger.debug("Unkown method 
"+call.getServiceMethodName());
+                        publishStreamId = (Integer) call.getResult();
+                        logger.debug( "createPublishStream result stream id: " 
+ publishStreamId );
+                        logger.debug( "publishing video by name: " + 
publishName );
+                        publish( publishStreamId, publishName, "live", this );
+
+                        logger.debug( "setup capture thread");
+
+                        capture = new 
CaptureScreen(VirtualScreenBean.vScreenSpinnerX,
+                                                                               
 VirtualScreenBean.vScreenSpinnerY,
+                                                                               
 VirtualScreenBean.vScreenSpinnerWidth,
+                                                                               
 VirtualScreenBean.vScreenSpinnerHeight,
+                                                                               
 VirtualScreenBean.vScreenResizeX,
+                                                                               
 VirtualScreenBean.vScreenResizeY
+                                                                               
                                                        );
+
+                        if (thread == null)
+                        {
+                                thread = new Thread(capture);
+                                thread.start();
+                        }
+                        capture.start();
+
+                } else if 
(call.getServiceMethodName().equals("screenSharerAction")) {
+                        
+                        logger.debug("call ### get Method Name 
"+call.getServiceMethodName());
+                        
+                        Object o = call.getResult();
+                        
+                        logger.debug("Result Map Type 
"+o.getClass().getName());
+                        
+                        Map returnMap = (Map) o;
+                        
+                        //logger.debug("result "+returnMap.get("result"));
+                        
+                        //for (Iterator iter = 
returnMap.keySet().iterator();iter.hasNext();) {
+                        //        logger.debug("key "+iter.next());
+                        //}
+                        
+                        if (returnMap.get("result").equals("stopAll")) {
+                        
+                                logger.debug("Stopping to stream, there is 
neither a Desktop Sharing nor Recording anymore");
                                 
+                                stopStream();
+                        
                         }
+                        
+                        //logger.debug("Stop No Doubt!");
+                        //stopStream();
+                
+                } else if 
(call.getServiceMethodName().equals("setNewCursorPosition")) {
+                        
+                        //Do not do anything
+                        
+                } else {
+                        
+                        logger.debug("Unkown method 
"+call.getServiceMethodName());
+                        
+                }
                 
         } catch (Exception err) {
                 logger.error("[resultReceived]",err);


Reply via email to