Skip to content

Commit

Permalink
FFmpeg Error Exporter
Browse files Browse the repository at this point in the history
  • Loading branch information
MORIMORI0317 committed Jan 16, 2021
1 parent b4c8f06 commit b76a254
Show file tree
Hide file tree
Showing 9 changed files with 82 additions and 4 deletions.
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ forge_mapping=20201028-1.16.3
forge_version=34.1.42
mod_name=IamMusicPlayer
mod_group=red.felnull.imp
mod_version=2.0
mod_version=2.1
mod_vendor=TeamFelNull
mc_version=1.16.3
curesfg_id=386380
releasetype=release
releasetype=alpha
jei_version=1.16.3:7.6.0.49
ftb_gui_library_version=1.0.0.18
oe_version=1.16.3-1.20
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ public class PlayWaitThread extends Thread {
private final long startPos;

public PlayWaitThread(long pos) {
this.setName("Play Wait Thread");
this.startPos = pos;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,6 @@ public static void converting(URL url, Path outPath, long offset, long duration)
} catch (Exception ex) {
ex.printStackTrace();
}

}

}
2 changes: 2 additions & 0 deletions src/main/java/red/felnull/imp/ffmpeg/FFmpegDownloader.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import red.felnull.imp.IamMusicPlayer;
import red.felnull.imp.util.PathUtils;
import red.felnull.otyacraftengine.util.IKSGFileLoadUtil;

import java.io.File;
Expand Down Expand Up @@ -44,6 +45,7 @@ public FFmpegDownloadThread(FFmpegManeger.OSAndArch oaa, File file) {
public void run() {
FFmpegManeger maneger = FFmpegManeger.instance();
maneger.setState(FFmpegManeger.FFmpegState.PREPARATION);
IKSGFileLoadUtil.createFolder(PathUtils.getFFmpegFolder());
IKSGFileLoadUtil.deleteFile(ffmpegfile);
IamMusicPlayer.proxy.addFFmpegLoadToast();
try {
Expand Down
64 changes: 64 additions & 0 deletions src/main/java/red/felnull/imp/ffmpeg/FFmpegErrorReporter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package red.felnull.imp.ffmpeg;

import net.minecraftforge.fml.ModList;
import red.felnull.imp.exception.IMPFFmpegException;
import red.felnull.imp.util.PathUtils;
import red.felnull.otyacraftengine.util.IKSGFileLoadUtil;
import red.felnull.otyacraftengine.util.IKSGModUtil;

import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.nio.file.Path;
import java.text.SimpleDateFormat;
import java.util.Date;

public class FFmpegErrorReporter {
public static void reportExport(Exception ex, IMPFFmpegException impex) {
IKSGFileLoadUtil.createFolder(PathUtils.getFFmpegReportFolder());
Date date = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd_HH.mm.ss");
Path pt = PathUtils.getFFmpegReportFolder().resolve("error-" + df.format(date) + ".txt");
FFmpegManeger maneger = FFmpegManeger.instance();
StringBuffer sb = new StringBuffer();
sb.append("---- FFmpeg Error Report ----\n");
SimpleDateFormat dff = new SimpleDateFormat("yy/mm/dd HH:mm");
sb.append("Time: ").append(dff.format(date)).append("\n");
sb.append("Description: ").append(ex.getLocalizedMessage()).append("\n");
sb.append("IMPDescription: ").append(impex.getLocalizedMessage()).append("\n\n");
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
ex.printStackTrace(pw);
sb.append(sw.toString()).append("\n\n");
StringWriter impsw = new StringWriter();
PrintWriter imppw = new PrintWriter(sw);
ex.printStackTrace(imppw);
sb.append(impsw.toString()).append("\n");
sb.append("Info:").append("\n");
sb.append("---------------------------------------------------------------------------------------").append("\n\n");
sb.append("-- Head --").append("\n");
Thread cr = Thread.currentThread();
sb.append("Thread: ").append(cr.getName()).append("\n");
sb.append("Stacktrace:\n");
for (StackTraceElement ste : cr.getStackTrace()) {
sb.append(ste.toString()).append("\n");
}
sb.append("\n\n");
sb.append("-- System Details --").append("\n");
sb.append("Details:").append("\n");
String os = System.getProperty("os.name");
String arch = System.getProperty("os.arch");
sb.append("OS and Arch: ").append(os).append(" - ").append(arch).append(" - ").append(maneger.getOsAndArch().getName()).append("\n");
sb.append("Java: ").append(System.getProperty("java.vm.vendor")).append(" ").append(System.getProperty("java.vm.name")).append(" ").append(System.getProperty("java.version")).append("\n");

InputStream ffmpegResource = maneger.getFFmpegResource(maneger.getOsAndArch().getResourceName());
sb.append("FFmpeg Included: ").append(ffmpegResource != null).append("\n\n");

sb.append("-- Mod List --").append("\n");
ModList.get().getMods().forEach(n -> {
sb.append(n.getModId()).append(": ").append(IKSGModUtil.getModVersion(n.getModId())).append("\n");
});

IKSGFileLoadUtil.txtWriter(sb.toString(), pt);
}
}
4 changes: 4 additions & 0 deletions src/main/java/red/felnull/imp/ffmpeg/FFmpegManeger.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ public static void init() {
INSTANCE = new FFmpegManeger();
}

public OSAndArch getOsAndArch() {
return osAndArch;
}

public static FFmpegManeger instance() {
return INSTANCE;
}
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/red/felnull/imp/util/FFmpegUtils.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package red.felnull.imp.util;

import red.felnull.imp.exception.IMPFFmpegException;
import red.felnull.imp.ffmpeg.FFmpegErrorReporter;
import red.felnull.imp.ffmpeg.FFmpegManeger;
import ws.schild.jave.Encoder;
import ws.schild.jave.MultimediaObject;
Expand All @@ -22,6 +23,7 @@ public static MultimediaObject createMultimediaObject(URL url) throws IMPFFmpegE
} catch (Exception ex) {
ex.printStackTrace();
IMPFFmpegException impfFmpegException = new IMPFFmpegException("Create URL MultimediaObject Error");
FFmpegErrorReporter.reportExport(ex, impfFmpegException);
FFmpegManeger.instance().error(impfFmpegException);
throw impfFmpegException;
}
Expand All @@ -33,6 +35,7 @@ public static MultimediaObject createMultimediaObject(File file) throws IMPFFmpe
} catch (Exception ex) {
ex.printStackTrace();
IMPFFmpegException impfFmpegException = new IMPFFmpegException("Create File MultimediaObject Error");
FFmpegErrorReporter.reportExport(ex, impfFmpegException);
FFmpegManeger.instance().error(impfFmpegException);
throw impfFmpegException;
}
Expand All @@ -44,6 +47,7 @@ public static MultimediaInfo getInfo(MultimediaObject multimediaObject) throws I
} catch (Exception ex) {
ex.printStackTrace();
IMPFFmpegException impfFmpegException = new IMPFFmpegException("Get Info Error");
FFmpegErrorReporter.reportExport(ex, impfFmpegException);
FFmpegManeger.instance().error(impfFmpegException);
throw impfFmpegException;
}
Expand Down Expand Up @@ -86,6 +90,7 @@ public static void encode(MultimediaObject multimediaObject, File file, String c
} catch (Exception ex) {
ex.printStackTrace();
IMPFFmpegException impfFmpegException = new IMPFFmpegException("Encode Error");
FFmpegErrorReporter.reportExport(ex, impfFmpegException);
FFmpegManeger.instance().error(impfFmpegException);
throw impfFmpegException;
}
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/red/felnull/imp/util/PathUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,8 @@ public static Path getFFmpegFolder() {
return getIMPFolder().resolve("ffmpeg");
}

public static Path getFFmpegReportFolder() {
return getIMPFolder().resolve("ffmpeg-reports");
}

}
2 changes: 1 addition & 1 deletion src/main/resources/META-INF/mods.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ description="Thank you for downloading!\nThis mod is The Ikisugi Music Player MO
[[dependencies.iammusicplayer]]
modId="otyacraftengine"
mandatory=true
versionRange="[1.6,)"
versionRange="[1.20,)"
ordering="NONE"
side="BOTH"

0 comments on commit b76a254

Please sign in to comment.