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);