You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/12/29 03:45:29 UTC
openmeetings git commit: [OPENMEETINGS-1808] strip audio is marked as
optional during conversion
Repository: openmeetings
Updated Branches:
refs/heads/4.0.x 0b0506b93 -> 1093049c0
[OPENMEETINGS-1808] strip audio is marked as optional during conversion
Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/1093049c
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/1093049c
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/1093049c
Branch: refs/heads/4.0.x
Commit: 1093049c0465965b1145d394a5e446679f267a00
Parents: 0b0506b
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Fri Dec 29 10:45:20 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Fri Dec 29 10:45:20 2017 +0700
----------------------------------------------------------------------
.../core/converter/BaseConverter.java | 17 ++++----
.../db/dao/file/FileItemLogDao.java | 17 ++++----
.../db/entity/file/FileItemLog.java | 35 ++++++++++++----
.../util/process/ProcessHelper.java | 43 ++++++++------------
.../util/process/ProcessResult.java | 29 ++++++++++---
.../web/common/tree/ConvertingErrorsDialog.java | 5 ++-
openmeetings-web/src/main/webapp/css/tree.css | 3 ++
7 files changed, 93 insertions(+), 56 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1093049c/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
index 8a5c92b..904e86d 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
@@ -202,11 +202,11 @@ public abstract class BaseConverter {
protected RecordingMetaData waitForTheStream(long metaId) throws InterruptedException {
RecordingMetaData metaData = metaDataDao.get(metaId);
if (metaData.getStreamStatus() != Status.STOPPED) {
- log.debug("### meta Stream not yet written to disk " + metaId);
+ log.debug("### meta Stream not yet written to disk {}", metaId);
long counter = 0;
long maxTimestamp = 0;
while(true) {
- log.trace("### Stream not yet written Thread Sleep - " + metaId);
+ log.trace("### Stream not yet written Thread Sleep - {}", metaId);
metaData = metaDataDao.get(metaId);
@@ -259,14 +259,14 @@ public abstract class BaseConverter {
List<RecordingMetaData> metaDataList) {
try {
// Init variables
- log.debug("### meta Data Number - " + metaDataList.size());
+ log.debug("### meta Data Number - {}", metaDataList.size());
log.debug("###################################################");
for (RecordingMetaData metaData : metaDataList) {
long metaId = metaData.getId();
- log.debug("### processing metadata: " + metaId);
+ log.debug("### processing metadata: {}", metaId);
if (metaData.getStreamStatus() == Status.NONE) {
- log.debug("Stream has not been started, error in recording " + metaId);
+ log.debug("Stream has not been started, error in recording {}", metaId);
continue;
}
@@ -284,8 +284,8 @@ public abstract class BaseConverter {
, "-i", inputFlvFile.getCanonicalPath()
, "-af", String.format("aresample=%s:min_comp=0.001:min_hard_comp=0.100000", getAudioBitrate())
, outputWav.getCanonicalPath()};
-
- logs.add(ProcessHelper.executeScript("stripAudioFromFLVs", argv));
+ //there might be no audio in the stream
+ logs.add(ProcessHelper.executeScript("stripAudioFromFLVs", argv, true));
}
if (outputWav.exists() && outputWav.length() != 0) {
@@ -319,7 +319,7 @@ public abstract class BaseConverter {
}
if (soxArgs != null) {
- log.debug("START fillGap ################# Delta-ID :: " + metaDelta.getId());
+ log.debug("START fillGap ################# Delta-ID :: {}", metaDelta.getId());
metaDeltaDao.update(metaDelta);
counter++;
@@ -353,7 +353,6 @@ public abstract class BaseConverter {
// Finally add it to the row!
waveFiles.add(outputFullWav);
}
-
metaDataDao.update(metaData);
}
} catch (Exception err) {
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1093049c/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java
index 1a52f90..d5b59a5 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java
@@ -56,14 +56,15 @@ public class FileItemLogDao {
.executeUpdate();
}
- public FileItemLog add(String name, BaseFileItem f, ProcessResult returnMap) {
- log.trace("Adding log: {}, {}, {}", name, f, returnMap);
- FileItemLog l = new FileItemLog();
- l.setInserted(new Date());
- l.setExitCode(returnMap.getExitCode());
- l.setFileId(f.getId());
- l.setMessage(returnMap.buildLogMessage());
- l.setName(name);
+ public FileItemLog add(String name, BaseFileItem f, ProcessResult r) {
+ log.trace("Adding log: {}, {}, {}", name, f, r);
+ FileItemLog l = new FileItemLog()
+ .setInserted(new Date())
+ .setExitCode(r.getExitCode())
+ .setFileId(f.getId())
+ .setMessage(r.buildLogMessage())
+ .setName(name)
+ .setOptional(r.isOptional());
em.persist(l);
return l;
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1093049c/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java
index c04a931..cf2b3e6 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java
@@ -39,7 +39,7 @@ import org.apache.openmeetings.db.entity.IDataProviderEntity;
@Entity
@NamedQueries({
@NamedQuery(name = "getFileLogsByFile", query = "SELECT fl FROM FileItemLog fl WHERE fl.fileId = :fileId"),
- @NamedQuery(name = "countErrorFileLogsByFile", query = "SELECT COUNT(fl) FROM FileItemLog fl WHERE fl.fileId = :fileId AND fl.exitCode <> 0"),
+ @NamedQuery(name = "countErrorFileLogsByFile", query = "SELECT COUNT(fl) FROM FileItemLog fl WHERE fl.fileId = :fileId AND fl.optional = false AND fl.exitCode <> 0"),
@NamedQuery(name = "deleteErrorFileLogsByFile", query = "DELETE FROM FileItemLog fl WHERE fl.fileId = :fileId") })
@Table(name = "file_log")
public class FileItemLog implements IDataProviderEntity {
@@ -66,6 +66,9 @@ public class FileItemLog implements IDataProviderEntity {
@Column(name = "exit_code")
private Integer exitCode;
+ @Column(name = "optional", nullable = false)
+ private boolean optional;
+
@Override
public Long getId() {
return id;
@@ -80,40 +83,45 @@ public class FileItemLog implements IDataProviderEntity {
return fileId;
}
- public void setFileId(Long fileId) {
+ public FileItemLog setFileId(Long fileId) {
this.fileId = fileId;
+ return this;
}
public Date getInserted() {
return inserted;
}
- public void setInserted(Date inserted) {
+ public FileItemLog setInserted(Date inserted) {
this.inserted = inserted;
+ return this;
}
public String getName() {
return name;
}
- public void setName(String name) {
+ public FileItemLog setName(String name) {
this.name = name;
+ return this;
}
public String getMessage() {
return bytes == null ? null : new String(bytes, UTF_8);
}
- public void setMessage(String message) {
+ public FileItemLog setMessage(String message) {
setBytes(message.getBytes(UTF_8));
+ return this;
}
public Integer getExitCode() {
return exitCode;
}
- public void setExitCode(Integer exitCode) {
+ public FileItemLog setExitCode(Integer exitCode) {
this.exitCode = exitCode;
+ return this;
}
public byte[] getBytes() {
@@ -125,6 +133,19 @@ public class FileItemLog implements IDataProviderEntity {
}
public boolean isOk() {
- return ZERO.equals(exitCode);
+ return optional || !isWarn();
+ }
+
+ public boolean isWarn() {
+ return !ZERO.equals(exitCode);
+ }
+
+ public boolean isOptional() {
+ return optional;
+ }
+
+ public FileItemLog setOptional(boolean optional) {
+ this.optional = optional;
+ return this;
}
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1093049c/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessHelper.java
----------------------------------------------------------------------
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessHelper.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessHelper.java
index 3996352..ea406c3 100644
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessHelper.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessHelper.java
@@ -35,20 +35,6 @@ public class ProcessHelper {
private ProcessHelper() {}
- public static ProcessResult executeScriptWindows(String process, String[] argv) {
- try {
- String[] cmd = new String[argv.length + 2];
- cmd[0] = "cmd.exe";
- cmd[1] = "/C";
- System.arraycopy(argv, 0, cmd, 2, argv.length);
- Map<String, String> env = new HashMap<>();
- return executeScript(process, cmd, env);
- } catch (Exception t) {
- log.error("executeScriptWindows", t);
- return new ProcessResult(process, t.getMessage(), t);
- }
- }
-
private static String getCommand(String[] argv) {
StringBuilder tString = new StringBuilder();
for (int i = 0; i < argv.length; i++) {
@@ -71,19 +57,24 @@ public class ProcessHelper {
}
public static ProcessResult executeScript(String process, String[] argv) {
+ return executeScript(process, argv, false);
+ }
+
+ public static ProcessResult executeScript(String process, String[] argv, boolean optional) {
Map<String, String> env = new HashMap<>();
- return executeScript(process, argv, env);
+ return executeScript(process, argv, env, optional);
}
- public static ProcessResult executeScript(String process, String[] argv, Map<? extends String, ? extends String> env) {
- ProcessResult res = new ProcessResult();
- res.setProcess(process);
+ private static ProcessResult executeScript(String process, String[] argv, Map<? extends String, ? extends String> env, boolean optional) {
+ ProcessResult res = new ProcessResult()
+ .setProcess(process)
+ .setOptional(optional);
debugCommandStart(process, argv);
Process proc = null;
try {
- res.setCommand(getCommand(argv));
- res.setOut("");
+ res.setCommand(getCommand(argv))
+ .setOut("");
// By using the process Builder we have access to modify the
// environment variables
@@ -98,14 +89,14 @@ public class ProcessHelper {
// its finished
proc.waitFor(getExtProcessTtl(), TimeUnit.MINUTES);
- res.setExitCode(proc.exitValue());
- res.setOut(IOUtils.toString(proc.getInputStream(), UTF_8));
- res.setError(IOUtils.toString(proc.getErrorStream(), UTF_8));
+ res.setExitCode(proc.exitValue())
+ .setOut(IOUtils.toString(proc.getInputStream(), UTF_8))
+ .setError(IOUtils.toString(proc.getErrorStream(), UTF_8));
} catch (Throwable t) {
log.error("executeScript", t);
- res.setError(t.getMessage());
- res.setException(t.toString());
- res.setExitCode(-1);
+ res.setExitCode(-1)
+ .setError(t.getMessage())
+ .setException(t.toString());
} finally {
if (proc != null) {
proc.destroy();
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1093049c/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessResult.java
----------------------------------------------------------------------
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessResult.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessResult.java
index 01c271f..8c45422 100644
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessResult.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessResult.java
@@ -36,6 +36,7 @@ public class ProcessResult {
private String error;
private Integer exitCode;
private String out;
+ private boolean optional = false;
public ProcessResult() {
this(null, null, null);
@@ -56,24 +57,27 @@ public class ProcessResult {
return out;
}
- public void setOut(String out) {
+ public ProcessResult setOut(String out) {
this.out = out;
+ return this;
}
public String getCommand() {
return command;
}
- public void setCommand(String command) {
+ public ProcessResult setCommand(String command) {
this.command = command;
+ return this;
}
public String getProcess() {
return process;
}
- public void setProcess(String process) {
+ public ProcessResult setProcess(String process) {
this.process = process;
+ return this;
}
public String getException() {
@@ -88,8 +92,9 @@ public class ProcessResult {
return error;
}
- public void setError(String error) {
+ public ProcessResult setError(String error) {
this.error = error;
+ return this;
}
public Integer getExitCode() {
@@ -101,8 +106,21 @@ public class ProcessResult {
return this;
}
+ public boolean isOptional() {
+ return optional;
+ }
+
+ public ProcessResult setOptional(boolean optional) {
+ this.optional = optional;
+ return this;
+ }
+
public boolean isOk() {
- return ZERO.equals(exitCode);
+ return optional || !isWarn();
+ }
+
+ public boolean isWarn() {
+ return !ZERO.equals(exitCode);
}
public String buildLogMessage() {
@@ -112,6 +130,7 @@ public class ProcessResult {
.append("exception: ").append(exception).append("\r\n")
.append("error: ").append(error).append("\r\n")
.append("exitValue: ").append(exitCode).append("\r\n")
+ .append("optional: ").append(optional).append("\r\n")
.append("out: ").append(out).append("\r\n").toString();
}
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1093049c/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.java
index 45629f9..c44bc52 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.java
@@ -52,7 +52,10 @@ public class ConvertingErrorsDialog extends AbstractDialog<BaseFileItem> {
item.add(new Label("exitCode", l.getExitCode()));
item.add(new Label("message", l.getMessage()));
if (!l.isOk()) {
- item.add(AttributeModifier.replace(ATTR_CLASS, "alert"));
+ item.add(AttributeModifier.append(ATTR_CLASS, "alert"));
+ }
+ if (l.isWarn()) {
+ item.add(AttributeModifier.append(ATTR_CLASS, "warn"));
}
}
};
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1093049c/openmeetings-web/src/main/webapp/css/tree.css
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/css/tree.css b/openmeetings-web/src/main/webapp/css/tree.css
index 3277d48..37e9a5b 100644
--- a/openmeetings-web/src/main/webapp/css/tree.css
+++ b/openmeetings-web/src/main/webapp/css/tree.css
@@ -161,6 +161,9 @@
.dialog.errors .alert {
color: red;
}
+.dialog.errors .warn {
+ color: #afaf09;
+}
.dialog.errors .message {
display: block;
unicode-bidi: embed;