Author: solomax
Date: Mon Aug 25 10:33:30 2014
New Revision: 1620291
URL: http://svn.apache.org/r1620291
Log:
Recordings in interview room are more stable
Modified:
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecordingLog.java
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/room/Room.java
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/room/RoomOrganisation.java
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/BaseConverter.java
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvInterviewConverter.java
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvRecorderConverter.java
openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/red5-web.xml
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvInterviewConverter.java
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvRecorderConverter.java
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/FlvRecordingLog.java
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomOrganisation.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/red5-web.xml
Modified:
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecordingLog.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecordingLog.java?rev=1620291&r1=1620290&r2=1620291&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecordingLog.java
(original)
+++
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecordingLog.java
Mon Aug 25 10:33:30 2014
@@ -40,7 +40,8 @@ import javax.persistence.Table;
})
@Table(name = "flvrecording_log")
public class FlvRecordingLog implements Serializable {
- private static final long serialVersionUID = -2577533628675416706L;
+ private static final long serialVersionUID = 1L;
+ public static final int MAX_LOG_SIZE = 1 * 1024 * 1024;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id")
@@ -57,7 +58,7 @@ public class FlvRecordingLog implements
private String msgType;
@Lob
- @Column(name="ful_message", length = 1 * 1024 * 1024)
+ @Column(name="ful_message", length = MAX_LOG_SIZE)
private String fullMessage;
@Column(name="exit_value")
@@ -95,7 +96,8 @@ public class FlvRecordingLog implements
return fullMessage;
}
public void setFullMessage(String fullMessage) {
- this.fullMessage = fullMessage;
+ this.fullMessage =
+ fullMessage == null || fullMessage.length() <
MAX_LOG_SIZE ? fullMessage : fullMessage.substring(0, MAX_LOG_SIZE);
}
public String getExitValue() {
Modified:
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/room/Room.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/room/Room.java?rev=1620291&r1=1620290&r2=1620291&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/room/Room.java
(original)
+++
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/room/Room.java
Mon Aug 25 10:33:30 2014
@@ -51,7 +51,7 @@ import org.simpleframework.xml.Root;
@Entity
@FetchGroups({
- @FetchGroup(name = "roomModerators", attributes = {
@FetchAttribute(name = "moderators")})
+ @FetchGroup(name = "roomModerators", attributes = {
@FetchAttribute(name = "moderators"), @FetchAttribute(name =
"roomOrganisations") })
})
@NamedQueries({
@NamedQuery(name = "getNondeletedRooms", query = "SELECT r FROM Room r
WHERE r.deleted = false"),
@@ -248,7 +248,7 @@ public class Room implements Serializabl
@Element(data = true, required = false)
private String pin;
- @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
+ @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "rooms_id", insertable = true, updatable = true)
@ElementDependent
@org.simpleframework.xml.Transient
Modified:
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/room/RoomOrganisation.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/room/RoomOrganisation.java?rev=1620291&r1=1620290&r2=1620291&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/room/RoomOrganisation.java
(original)
+++
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/room/RoomOrganisation.java
Mon Aug 25 10:33:30 2014
@@ -72,7 +72,7 @@ public class RoomOrganisation implements
@Element(data=true)
private Long rooms_organisation_id;
- @ManyToOne(fetch = FetchType.LAZY)
+ @ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="rooms_id", nullable=true)
@ForeignKey(enabled = true)
@Element(name="rooms_id", data=true, required=false)
@@ -94,8 +94,9 @@ public class RoomOrganisation implements
@Element(data=true)
private boolean deleted;
- public RoomOrganisation(Organisation org) {
+ public RoomOrganisation(Organisation org, Room room) {
this.organisation = org;
+ this.room = room;
}
public RoomOrganisation() {
Modified:
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/BaseConverter.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/BaseConverter.java?rev=1620291&r1=1620290&r2=1620291&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/BaseConverter.java
(original)
+++
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/BaseConverter.java
Mon Aug 25 10:33:30 2014
@@ -85,9 +85,12 @@ public abstract class BaseConverter {
protected File getStreamFolder(FlvRecording flvRecording) {
return getStreamsSubDir(flvRecording.getRoom_id());
}
-
- protected String getDifference(Date from, Date to) {
- long millis = from.getTime() - to.getTime();
+
+ protected long diff(Date from, Date to) {
+ return from.getTime() - to.getTime();
+ }
+
+ protected String formatMillis(long millis) {
long hours = TimeUnit.MILLISECONDS.toHours(millis);
millis -= TimeUnit.HOURS.toMillis(hours);
long minutes = TimeUnit.MILLISECONDS.toMinutes(millis);
@@ -98,7 +101,7 @@ public abstract class BaseConverter {
}
protected void updateDuration(FlvRecording r) {
- r.setDuration(getDifference(r.getRecordEnd(),
r.getRecordStart()));
+ r.setDuration(formatMillis(diff(r.getRecordEnd(),
r.getRecordStart())));
}
protected void deleteFileIfExists(String name) {
Modified:
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvInterviewConverter.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvInterviewConverter.java?rev=1620291&r1=1620290&r2=1620291&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvInterviewConverter.java
(original)
+++
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvInterviewConverter.java
Mon Aug 25 10:33:30 2014
@@ -192,32 +192,36 @@ public class FlvInterviewConverter exten
returnLog.add(r);
if ("0".equals(r.getExitValue())) {
//TODO need to remove smallest
gap
-
- // stub to add
- // ffmpeg -y -loop 1 -i
/home/solomax/work/openmeetings/branches/3.0.x/dist/red5/webapps/openmeetings/streams/hibernate/default_interview_image.jpg
-filter_complex '[0:0]scale=320:260' -c:v libx264 -t 00:00:29.059 -pix_fmt
yuv420p out.flv
- File podFB = new
File(streamFolder, meta.getStreamName() + "_pod_" + pod + "_blank.flv");
- String podPB =
podFB.getCanonicalPath();
- String[] argsPodB = new
String[] { getPathToFFMPEG(), "-y" //
- , "-loop", "1",
"-i", defaultInterviewImageFile.getCanonicalPath() //
- ,
"-filter_complex", String.format("[0:0]scale=%1$d:%2$d", flvWidth, flvHeight) //
- , "-c:v",
"libx264" //
- , "-t",
getDifference(meta.getRecordStart(), meta.getFlvRecording().getRecordStart()) //
- , "-pix_fmt",
"yuv420p" //
- , podPB };
-
returnLog.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, meta.getStreamName() + "_pod_" + pod + ".flv");
- String podP =
podF.getCanonicalPath();
- String[] argsPod = new String[]
{ getPathToFFMPEG(), "-y"//
- , "-i", podPB //
- , "-i", path //
- ,
"-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));
-
- pods[pod - 1] = podP;
+ long diff =
diff(meta.getRecordStart(), meta.getFlvRecording().getRecordStart());
+ if (diff != 0L) {
+ // stub to add
+ // ffmpeg -y -loop 1 -i
/home/solomax/work/openmeetings/branches/3.0.x/dist/red5/webapps/openmeetings/streams/hibernate/default_interview_image.jpg
-filter_complex '[0:0]scale=320:260' -c:v libx264 -t 00:00:29.059 -pix_fmt
yuv420p out.flv
+ File podFB = new
File(streamFolder, meta.getStreamName() + "_pod_" + pod + "_blank.flv");
+ String podPB =
podFB.getCanonicalPath();
+ String[] argsPodB = new
String[] { getPathToFFMPEG(), "-y" //
+ ,
"-loop", "1", "-i", defaultInterviewImageFile.getCanonicalPath() //
+ ,
"-filter_complex", String.format("[0:0]scale=%1$d:%2$d", flvWidth, flvHeight) //
+ ,
"-c:v", "libx264" //
+ , "-t",
formatMillis(diff) //
+ ,
"-pix_fmt", "yuv420p" //
+ , podPB
};
+
returnLog.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, meta.getStreamName() + "_pod_" + pod + ".flv");
+ String podP =
podF.getCanonicalPath();
+ String[] argsPod = new
String[] { getPathToFFMPEG(), "-y"//
+ , "-i",
podPB //
+ , "-i",
path //
+ ,
"-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));
+
+ pods[pod - 1] = podP;
+ } else {
+ pods[pod - 1] = path;
+ }
}
found = true;
}
Modified:
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvRecorderConverter.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvRecorderConverter.java?rev=1620291&r1=1620290&r2=1620291&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvRecorderConverter.java
(original)
+++
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvRecorderConverter.java
Mon Aug 25 10:33:30 2014
@@ -136,7 +136,7 @@ public class FlvRecorderConverter extend
flvRecording.setFlvHeight(flvHeight);
String[] argv_fullFLV = new String[] {
getPathToFFMPEG(), "-y",//
- "-itsoffset",
getDifference(screenMetaData.getRecordStart(),
screenMetaData.getFlvRecording().getRecordStart()),
+ "-itsoffset",
formatMillis(diff(screenMetaData.getRecordStart(),
screenMetaData.getFlvRecording().getRecordStart())),
"-i", inputScreenFullFlv, "-i",
outputFullWav, "-ar", "22050", //
"-acodec", "libmp3lame", //
"-ab", "32k", //
Modified:
openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml?rev=1620291&r1=1620290&r2=1620291&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
(original)
+++
openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
Mon Aug 25 10:33:30 2014
@@ -23,15 +23,11 @@
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
- xmlns:jaxrs="http://cxf.apache.org/jaxrs"
- xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
- http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
- http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd
- http://cxf.apache.org/jaxrs
http://cxf.apache.org/schemas/jaxrs.xsd"
+ http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd"
>
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="openmeetings" />
Modified: openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/red5-web.xml
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/red5-web.xml?rev=1620291&r1=1620290&r2=1620291&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/red5-web.xml (original)
+++ openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/red5-web.xml Mon Aug 25
10:33:30 2014
@@ -20,9 +20,7 @@
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:lang="http://www.springframework.org/schema/lang"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
- http://www.springframework.org/schema/lang
http://www.springframework.org/schema/lang/spring-lang-3.1.xsd">
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="placeholderConfig"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="/WEB-INF/red5-web.properties" />
Modified:
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java?rev=1620291&r1=1620290&r2=1620291&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
(original)
+++
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
Mon Aug 25 10:33:30 2014
@@ -120,7 +120,7 @@ public class RoomForm extends AdminBaseF
List<Organisation> orgList =
Application.getBean(OrganisationDao.class).get(0, Integer.MAX_VALUE);
final List<RoomOrganisation> orgRooms = new
ArrayList<RoomOrganisation>(orgList.size());
for (Organisation org : orgList) {
- orgRooms.add(new RoomOrganisation(org));
+ orgRooms.add(new RoomOrganisation(org,
getModelObject()));
}
add(new
Select2MultiChoice<RoomOrganisation>("roomOrganisations", null, new
TextChoiceProvider<RoomOrganisation>() {
private static final long serialVersionUID = 1L;
@@ -152,7 +152,7 @@ public class RoomForm extends AdminBaseF
}
List<RoomOrganisation> list = new
ArrayList<RoomOrganisation>();
for (Organisation o :
getBean(OrganisationDao.class).get(ids)) {
- list.add(new RoomOrganisation(o));
+ list.add(new RoomOrganisation(o,
RoomForm.this.getModelObject()));
}
return list;
}
Modified:
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java?rev=1620291&r1=1620290&r2=1620291&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
Mon Aug 25 10:33:30 2014
@@ -86,8 +86,11 @@ public abstract class BaseConverter {
return getStreamsSubDir(flvRecording.getRoomId());
}
- protected String getDifference(Date from, Date to) {
- long millis = from.getTime() - to.getTime();
+ protected long diff(Date from, Date to) {
+ return from.getTime() - to.getTime();
+ }
+
+ protected String formatMillis(long millis) {
long hours = TimeUnit.MILLISECONDS.toHours(millis);
millis -= TimeUnit.HOURS.toMillis(hours);
long minutes = TimeUnit.MILLISECONDS.toMinutes(millis);
@@ -98,7 +101,7 @@ public abstract class BaseConverter {
}
protected void updateDuration(FlvRecording r) {
- r.setDuration(getDifference(r.getRecordEnd(),
r.getRecordStart()));
+ r.setDuration(formatMillis(diff(r.getRecordEnd(),
r.getRecordStart())));
}
protected void deleteFileIfExists(String name) {
Modified:
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvInterviewConverter.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvInterviewConverter.java?rev=1620291&r1=1620290&r2=1620291&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvInterviewConverter.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvInterviewConverter.java
Mon Aug 25 10:33:30 2014
@@ -193,31 +193,36 @@ public class FlvInterviewConverter exten
if ("0".equals(r.getExitValue())) {
//TODO need to remove smallest
gap
- // stub to add
- // ffmpeg -y -loop 1 -i
/home/solomax/work/openmeetings/branches/3.0.x/dist/red5/webapps/openmeetings/streams/hibernate/default_interview_image.jpg
-filter_complex '[0:0]scale=320:260' -c:v libx264 -t 00:00:29.059 -pix_fmt
yuv420p out.flv
- File podFB = new
File(streamFolder, meta.getStreamName() + "_pod_" + pod + "_blank.flv");
- String podPB =
podFB.getCanonicalPath();
- String[] argsPodB = new
String[] { getPathToFFMPEG(), "-y" //
- , "-loop", "1",
"-i", defaultInterviewImageFile.getCanonicalPath() //
- ,
"-filter_complex", String.format("[0:0]scale=%1$d:%2$d", flvWidth, flvHeight) //
- , "-c:v",
"libx264" //
- , "-t",
getDifference(meta.getRecordStart(), meta.getFlvRecording().getRecordStart()) //
- , "-pix_fmt",
"yuv420p" //
- , podPB };
-
returnLog.add(ProcessHelper.executeScript("blankFlvPod_" + pod , argsPodB));
+ long diff =
diff(meta.getRecordStart(), meta.getFlvRecording().getRecordStart());
+ if (diff != 0L) {
+ // stub to add
+ // ffmpeg -y -loop 1 -i
/home/solomax/work/openmeetings/branches/3.0.x/dist/red5/webapps/openmeetings/streams/hibernate/default_interview_image.jpg
-filter_complex '[0:0]scale=320:260' -c:v libx264 -t 00:00:29.059 -pix_fmt
yuv420p out.flv
+ File podFB = new
File(streamFolder, meta.getStreamName() + "_pod_" + pod + "_blank.flv");
+ String podPB =
podFB.getCanonicalPath();
+ String[] argsPodB = new
String[] { getPathToFFMPEG(), "-y" //
+ ,
"-loop", "1", "-i", defaultInterviewImageFile.getCanonicalPath() //
+ ,
"-filter_complex", String.format("[0:0]scale=%1$d:%2$d", flvWidth, flvHeight) //
+ ,
"-c:v", "libx264" //
+ , "-t",
formatMillis(diff) //
+ ,
"-pix_fmt", "yuv420p" //
+ , podPB
};
+
returnLog.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, meta.getStreamName() + "_pod_" + pod + ".flv");
- String podP =
podF.getCanonicalPath();
- String[] argsPod = new String[]
{ getPathToFFMPEG(), "-y"//
- , "-i", podPB //
- , "-i", path //
- ,
"-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));
-
- pods[pod - 1] = podP;
+ //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, meta.getStreamName() + "_pod_" + pod + ".flv");
+ String podP =
podF.getCanonicalPath();
+ String[] argsPod = new
String[] { getPathToFFMPEG(), "-y"//
+ , "-i",
podPB //
+ , "-i",
path //
+ ,
"-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));
+
+ pods[pod - 1] = podP;
+ } else {
+ pods[pod - 1] = path;
+ }
}
found = true;
}
Modified:
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvRecorderConverter.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvRecorderConverter.java?rev=1620291&r1=1620290&r2=1620291&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvRecorderConverter.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvRecorderConverter.java
Mon Aug 25 10:33:30 2014
@@ -136,7 +136,7 @@ public class FlvRecorderConverter extend
flvRecording.setFlvHeight(flvHeight);
String[] argv_fullFLV = new String[] {
getPathToFFMPEG(), "-y",//
- "-itsoffset",
getDifference(screenMetaData.getRecordStart(),
screenMetaData.getFlvRecording().getRecordStart()),
+ "-itsoffset",
formatMillis(diff(screenMetaData.getRecordStart(),
screenMetaData.getFlvRecording().getRecordStart())),
"-i", inputScreenFullFlv, "-i",
outputFullWav, "-ar", "22050", //
"-acodec", "libmp3lame", //
"-ab", "32k", //
Modified:
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/FlvRecordingLog.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/FlvRecordingLog.java?rev=1620291&r1=1620290&r2=1620291&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/FlvRecordingLog.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/FlvRecordingLog.java
Mon Aug 25 10:33:30 2014
@@ -42,6 +42,7 @@ import org.apache.openmeetings.db.entity
@Table(name = "flvrecording_log")
public class FlvRecordingLog implements IDataProviderEntity {
private static final long serialVersionUID = 1L;
+ public static final int MAX_LOG_SIZE = 1 * 1024 * 1024;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id")
@@ -58,7 +59,7 @@ public class FlvRecordingLog implements
private String msgType;
@Lob
- @Column(name="full_message", length = 1 * 1024 * 1024)
+ @Column(name="ful_message", length = MAX_LOG_SIZE)
private String fullMessage;
@Column(name="exit_value")
@@ -96,7 +97,8 @@ public class FlvRecordingLog implements
return fullMessage;
}
public void setFullMessage(String fullMessage) {
- this.fullMessage = fullMessage;
+ this.fullMessage =
+ fullMessage == null || fullMessage.length() <
MAX_LOG_SIZE ? fullMessage : fullMessage.substring(0, MAX_LOG_SIZE);
}
public String getExitValue() {
Modified:
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java?rev=1620291&r1=1620290&r2=1620291&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
Mon Aug 25 10:33:30 2014
@@ -53,7 +53,7 @@ import org.simpleframework.xml.Root;
@Entity
@FetchGroups({
- @FetchGroup(name = "roomModerators", attributes = {
@FetchAttribute(name = "moderators")})
+ @FetchGroup(name = "roomModerators", attributes = {
@FetchAttribute(name = "moderators"), @FetchAttribute(name =
"roomOrganisations") })
})
@NamedQueries({
@NamedQuery(name = "getNondeletedRooms", query = "SELECT r FROM Room r
WHERE r.deleted = false"),
@@ -252,7 +252,7 @@ public class Room implements IDataProvid
@Element(data = true, required = false)
private String pin;
- @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
+ @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "rooms_id", insertable = true, updatable = true)
@ElementDependent
@org.simpleframework.xml.Transient
Modified:
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomOrganisation.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomOrganisation.java?rev=1620291&r1=1620290&r2=1620291&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomOrganisation.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomOrganisation.java
Mon Aug 25 10:33:30 2014
@@ -71,7 +71,7 @@ public class RoomOrganisation implements
@Element(data = true, name = "rooms_organisation_id")
private Long id;
- @ManyToOne(fetch = FetchType.LAZY)
+ @ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="rooms_id", nullable=true)
@ForeignKey(enabled = true)
@Element(name="rooms_id", data=true, required=false)
@@ -93,8 +93,9 @@ public class RoomOrganisation implements
@Element(data=true)
private boolean deleted;
- public RoomOrganisation(Organisation org) {
+ public RoomOrganisation(Organisation org, Room room) {
this.organisation = org;
+ this.room = room;
}
public RoomOrganisation() {
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java?rev=1620291&r1=1620290&r2=1620291&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
Mon Aug 25 10:33:30 2014
@@ -119,7 +119,7 @@ public class RoomForm extends AdminBaseF
List<Organisation> orgList =
Application.getBean(OrganisationDao.class).get(0, Integer.MAX_VALUE);
final List<RoomOrganisation> orgRooms = new
ArrayList<RoomOrganisation>(orgList.size());
for (Organisation org : orgList) {
- orgRooms.add(new RoomOrganisation(org));
+ orgRooms.add(new RoomOrganisation(org,
getModelObject()));
}
add(new
Select2MultiChoice<RoomOrganisation>("roomOrganisations", null, new
TextChoiceProvider<RoomOrganisation>() {
private static final long serialVersionUID = 1L;
@@ -151,7 +151,7 @@ public class RoomForm extends AdminBaseF
}
List<RoomOrganisation> list = new
ArrayList<RoomOrganisation>();
for (Organisation o :
getBean(OrganisationDao.class).get(ids)) {
- list.add(new RoomOrganisation(o));
+ list.add(new RoomOrganisation(o,
RoomForm.this.getModelObject()));
}
return list;
}
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/red5-web.xml
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/red5-web.xml?rev=1620291&r1=1620290&r2=1620291&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/red5-web.xml
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/red5-web.xml
Mon Aug 25 10:33:30 2014
@@ -20,9 +20,7 @@
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:lang="http://www.springframework.org/schema/lang"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
- http://www.springframework.org/schema/lang
http://www.springframework.org/schema/lang/spring-lang-3.1.xsd">
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="placeholderConfig"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="/WEB-INF/red5-web.properties" />