You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by se...@apache.org on 2012/02/26 16:57:49 UTC
svn commit: r1293858 - in /incubator/openmeetings/trunk/singlewebapp:
WebContent/swf10/video/
src/app/org/openmeetings/app/data/flvrecord/converter/
src/app/org/openmeetings/app/data/flvrecord/listener/
src/app/org/openmeetings/app/remote/red5/
Author: sebawagner
Date: Sun Feb 26 15:57:48 2012
New Revision: 1293858
URL: http://svn.apache.org/viewvc?rev=1293858&view=rev
Log:
OPENMEETINGS-71 Fix interviewPodId in avClient's RoomClient Session variable
Modified:
incubator/openmeetings/trunk/singlewebapp/WebContent/swf10/video/editRecordStreamSWF10.lzx
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/BaseConverter.java
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/FlvInterviewConverter.java
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverter.java
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamAudioListener.java
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamScreenListener.java
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java
Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/swf10/video/editRecordStreamSWF10.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/swf10/video/editRecordStreamSWF10.lzx?rev=1293858&r1=1293857&r2=1293858&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/swf10/video/editRecordStreamSWF10.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/swf10/video/editRecordStreamSWF10.lzx Sun Feb 26 15:57:48 2012
@@ -131,6 +131,7 @@
<netparam><method name="getValue">return parent.parent.cam_default_height;</method></netparam>
<netparam><method name="getValue">return parent.parent.cam_default_height;</method></netparam>
<netparam><method name="getValue">return canvas.publicSID;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.interviewPodId;</method></netparam>
<handler name="ondata" args="value">
<![CDATA[
if ($debug) Debug.write("setUserAVSettings",value);
Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/BaseConverter.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/BaseConverter.java?rev=1293858&r1=1293857&r2=1293858&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/BaseConverter.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/BaseConverter.java Sun Feb 26 15:57:48 2012
@@ -116,15 +116,21 @@ public abstract class BaseConverter {
}
}
- protected String[] mergeAudioToWaves(List<String> listOfFullWaveFiles, String outputFullWav) {
+ protected String[] mergeAudioToWaves(List<String> listOfFullWaveFiles, String outputFullWav) throws Exception {
String[] argv_full_sox = new String[listOfFullWaveFiles.size() + 3];
+
+ log.debug(" listOfFullWaveFiles "+listOfFullWaveFiles.size()+" argv_full_sox LENGTH "+argv_full_sox.length);
+
argv_full_sox[0] = getPathToSoX();
argv_full_sox[1] = "-m";
int i = 0;
- for (;i < listOfFullWaveFiles.size(); ++i) {
+ for (;i < listOfFullWaveFiles.size(); i++) {
+ log.debug(" i "+i+" = "+listOfFullWaveFiles.get(i));
argv_full_sox[2 + i] = listOfFullWaveFiles.get(i);
}
+ log.debug(" i + 3 "+(i+3)+" "+outputFullWav);
+
argv_full_sox[i + 3] = outputFullWav;
return argv_full_sox;
@@ -132,7 +138,7 @@ public abstract class BaseConverter {
protected void stripAudioFirstPass(FlvRecording flvRecording,
List<HashMap<String, String>> returnLog,
- List<String> listOfFullWaveFiles, String streamFolderName) {
+ List<String> listOfFullWaveFiles, String streamFolderName) throws Exception {
List<FlvRecordingMetaData> metaDataList = flvRecordingMetaDataDaoImpl
.getFlvRecordingMetaDataAudioFlvsByRecording(flvRecording
.getFlvRecordingId());
Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/FlvInterviewConverter.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/FlvInterviewConverter.java?rev=1293858&r1=1293857&r2=1293858&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/FlvInterviewConverter.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/FlvInterviewConverter.java Sun Feb 26 15:57:48 2012
@@ -641,7 +641,7 @@ public class FlvInterviewConverter exten
// Create the Content of the Converter Script (.bat or .sh File)
String fileContent = pathToIMagick + " " + file1 + " " + file2
+ " " + "+append" + " " + file3
- + ScopeApplicationAdapter.lineSeperator + "exit";
+ + ScopeApplicationAdapter.lineSeperator + "";
File previous = new File(executable_fileName);
if (previous.exists()) {
Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverter.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverter.java?rev=1293858&r1=1293857&r2=1293858&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverter.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverter.java Sun Feb 26 15:57:48 2012
@@ -73,9 +73,8 @@ public class FlvRecorderConverter extend
List<HashMap<String, String>> returnLog = new LinkedList<HashMap<String, String>>();
List<String> listOfFullWaveFiles = new LinkedList<String>();
String streamFolderName = getStreamFolderName(flvRecording);
-
- stripAudioFirstPass(flvRecording, returnLog, listOfFullWaveFiles, streamFolderName);
try {
+ stripAudioFirstPass(flvRecording, returnLog, listOfFullWaveFiles, streamFolderName);
// Merge Wave to Full Length
String streamFolderGeneralName = getStreamFolderName();
Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamAudioListener.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamAudioListener.java?rev=1293858&r1=1293857&r2=1293858&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamAudioListener.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamAudioListener.java Sun Feb 26 15:57:48 2012
@@ -28,6 +28,7 @@ import org.openmeetings.app.data.flvreco
import org.openmeetings.app.persistence.beans.flvrecord.FlvRecordingMetaDelta;
import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
import org.red5.io.ITag;
+import org.red5.io.flv.impl.FLVWriter;
import org.red5.io.flv.impl.Tag;
import org.red5.logging.Red5LoggerFactory;
import org.red5.server.api.IScope;
@@ -337,7 +338,11 @@ public class StreamAudioListener extends
tag.setBodySize(data.limit());
tag.setTimestamp(timeStamp);
tag.setBody(data);
-
+
+ if (this.isClosed) {
+ throw new Exception("Stream was already closed");
+ }
+
writer.writeTag(tag);
}
Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamScreenListener.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamScreenListener.java?rev=1293858&r1=1293857&r2=1293858&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamScreenListener.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamScreenListener.java Sun Feb 26 15:57:48 2012
@@ -146,6 +146,10 @@ public class StreamScreenListener extend
return;
}
}
+
+ if (this.isClosed) {
+ throw new Exception("Stream was already closed");
+ }
writer.writeTag(tag);
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=1293858&r1=1293857&r2=1293858&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 Sun Feb 26 15:57:48 2012
@@ -129,8 +129,6 @@ public class ScopeApplicationAdapter ext
log.debug("webAppPath : " + webAppPath);
log.debug("batchFileFir : " + batchFileFir);
- // batchFileFir = webAppPath + File.separatorChar + "jod" +
- // File.separatorChar;
// Only load this Class one time
// Initially this value might by empty, because the DB is empty yet
@@ -1073,7 +1071,7 @@ public class ScopeApplicationAdapter ext
// Put the mod-flag to true for this client
this.clientListManager.updateClientByStreamId(
currentClient.getStreamid(), currentClient);
-
+
// Notify all clients of the same scope (room)
Collection<Set<IConnection>> conCollection = current.getScope()
.getConnections();
@@ -1083,20 +1081,23 @@ public class ScopeApplicationAdapter ext
RoomClient rcl = this.clientListManager
.getClientByStreamId(conn.getClient().getId());
if (rcl == null) {
- // continue;
+ continue;
} else if (rcl.getIsScreenClient() != null
&& rcl.getIsScreenClient()) {
- // continue;
- } else {
- log.debug("Send Flag to Client: "
- + rcl.getUsername());
- if (conn instanceof IServiceCapableConnection) {
- ((IServiceCapableConnection) conn).invoke(
- "setNewBroadCastingFlag",
- new Object[] { currentClient }, this);
- log.debug("sending setNewBroadCastingFlag to "
- + conn);
- }
+ continue;
+ } else if (rcl.getIsAVClient() != null
+ && rcl.getIsAVClient()) {
+ continue;
+ }
+
+ log.debug("Send Flag to Client: "
+ + rcl.getUsername());
+ if (conn instanceof IServiceCapableConnection) {
+ ((IServiceCapableConnection) conn).invoke(
+ "setNewBroadCastingFlag",
+ new Object[] { currentClient }, this);
+ log.debug("sending setNewBroadCastingFlag to "
+ + conn);
}
}
}
@@ -1285,7 +1286,7 @@ public class ScopeApplicationAdapter ext
*/
public synchronized RoomClient setUserAVSettings(String avsettings,
Object newMessage, Integer vWidth, Integer vHeight,
- long room_id, String publicSID) {
+ long room_id, String publicSID, Integer interviewPodId) {
try {
IConnection current = Red5.getConnectionLocal();
@@ -1298,6 +1299,7 @@ public class ScopeApplicationAdapter ext
currentClient.setIsAVClient(true);
currentClient.setVWidth(vWidth);
currentClient.setVHeight(vHeight);
+ currentClient.setInterviewPodId(interviewPodId);
// Long room_id = currentClient.getRoom_id();
this.clientListManager.updateAVClientByStreamId(streamid,
currentClient);
@@ -2642,6 +2644,17 @@ public class ScopeApplicationAdapter ext
for (Set<IConnection> conset : conCollection) {
for (IConnection conn : conset) {
if (conn != null) {
+
+ RoomClient rcl = this.clientListManager
+ .getClientByStreamId(conn.getClient().getId());
+
+ if (rcl == null) {
+ continue;
+ } else if (rcl.getIsAVClient() == null || rcl.getIsAVClient()) {
+ continue;
+ } else if (rcl.getIsScreenClient() != null && rcl.getIsScreenClient()) {
+ continue;
+ }
((IServiceCapableConnection) conn).invoke(
"interviewStatus",