A 0 in the user-given language input now matches streams with language defined as "und"
All checks were successful
KnarCraft/FFmpegConvert/pipeline/head This commit looks good

This commit is contained in:
Kristian Knarvik 2020-05-12 16:05:35 +02:00
parent b78aa7eb42
commit a516cdcdff
6 changed files with 14 additions and 12 deletions

View File

@ -107,15 +107,15 @@ class Main {
OutputUtil.println("[Audio languages jpn,eng,ger,fre] [Subtitle languages eng,ger,fre] [Convert to stereo if " + OutputUtil.println("[Audio languages jpn,eng,ger,fre] [Subtitle languages eng,ger,fre] [Convert to stereo if " +
"necessary true/false] [Prevent signs&songs subtitles true/false]\nYour input: "); "necessary true/false] [Prevent signs&songs subtitles true/false]\nYour input: ");
List<String> input = readInput(4); List<String> input = readInput(4);
String[] audioLang = new String[]{"jpn", "*"}; String[] audioLanguage = new String[]{"jpn", "0"};
String[] subtitleLang = new String[]{"eng", "*"}; String[] subtitleLanguage = new String[]{"eng", "0"};
boolean toStereo = true; boolean toStereo = true;
boolean preventSigns = true; boolean preventSigns = true;
if (input.size() > 0 && ListUtil.getListFromCommaSeparatedString(input.get(0)) != null) { if (input.size() > 0 && ListUtil.getListFromCommaSeparatedString(input.get(0)) != null) {
audioLang = ListUtil.getListFromCommaSeparatedString(input.get(0)); audioLanguage = ListUtil.getListFromCommaSeparatedString(input.get(0));
} }
if (input.size() > 1 && ListUtil.getListFromCommaSeparatedString(input.get(1)) != null) { if (input.size() > 1 && ListUtil.getListFromCommaSeparatedString(input.get(1)) != null) {
subtitleLang = ListUtil.getListFromCommaSeparatedString(input.get(1)); subtitleLanguage = ListUtil.getListFromCommaSeparatedString(input.get(1));
} }
if (input.size() > 2) { if (input.size() > 2) {
toStereo = Boolean.parseBoolean(input.get(2)); toStereo = Boolean.parseBoolean(input.get(2));
@ -123,7 +123,7 @@ class Main {
if (input.size() > 3) { if (input.size() > 3) {
preventSigns = Boolean.parseBoolean(input.get(3)); preventSigns = Boolean.parseBoolean(input.get(3));
} }
converter = new AnimeConverter(FFPROBE_PATH, FFMPEG_PATH, audioLang, subtitleLang, toStereo, preventSigns); converter = new AnimeConverter(FFPROBE_PATH, FFMPEG_PATH, audioLanguage, subtitleLanguage, toStereo, preventSigns);
} }

View File

@ -17,7 +17,7 @@ import java.util.List;
* Implements all methods which can be useful for any implementation of a converter. * Implements all methods which can be useful for any implementation of a converter.
*/ */
public abstract class AbstractConverter implements Converter { public abstract class AbstractConverter implements Converter {
final boolean DEBUG = false; final boolean debug = false;
private final String newExtension; private final String newExtension;
String ffprobePath; String ffprobePath;
String ffmpegPath; String ffmpegPath;
@ -29,6 +29,7 @@ public abstract class AbstractConverter implements Converter {
*/ */
AbstractConverter(String newExtension) { AbstractConverter(String newExtension) {
this.newExtension = newExtension; this.newExtension = newExtension;
OutputUtil.setDebug(this.debug);
try { try {
audioFormats = FileUtil.readFileLines("audio_formats.txt"); audioFormats = FileUtil.readFileLines("audio_formats.txt");
videoFormats = FileUtil.readFileLines("video_formats.txt"); videoFormats = FileUtil.readFileLines("video_formats.txt");
@ -96,8 +97,8 @@ public abstract class AbstractConverter implements Converter {
for (String language : languages) { for (String language : languages) {
for (G stream : streams) { for (G stream : streams) {
String streamLanguage = stream.getLanguage(); String streamLanguage = stream.getLanguage();
if (language.equals("*") || (streamLanguage == null && language.equals("0")) || if (language.equals("*") || ((streamLanguage == null || streamLanguage.equals("und")) &&
(streamLanguage != null && streamLanguage.equals(language))) { language.equals("0")) || (streamLanguage != null && streamLanguage.equals(language))) {
sorted.add(stream); sorted.add(stream);
} }
} }

View File

@ -49,7 +49,7 @@ public class AnimeConverter extends AbstractConverter {
@Override @Override
public String[] generateConversionCommand(String executable, File file, List<StreamObject> streams, String outFile) { public String[] generateConversionCommand(String executable, File file, List<StreamObject> streams, String outFile) {
List<String> command = FFMpegHelper.getFFMpegWebVideoCommand(executable, file.getName()); List<String> command = FFMpegHelper.getFFMpegWebVideoCommand(executable, file.getName());
if (this.DEBUG) { if (this.debug) {
FFMpegHelper.addDebugArguments(command, 50, 120); FFMpegHelper.addDebugArguments(command, 50, 120);
} }

View File

@ -29,7 +29,7 @@ public class AudioConverter extends AbstractConverter {
@Override @Override
public String[] generateConversionCommand(String executable, File file, List<StreamObject> streams, String outFile) { public String[] generateConversionCommand(String executable, File file, List<StreamObject> streams, String outFile) {
List<String> command = FFMpegHelper.getFFMpegGeneralFileCommand(executable, file.getName()); List<String> command = FFMpegHelper.getFFMpegGeneralFileCommand(executable, file.getName());
if (this.DEBUG) { if (this.debug) {
FFMpegHelper.addDebugArguments(command, 50, 120); FFMpegHelper.addDebugArguments(command, 50, 120);
} }

View File

@ -31,7 +31,7 @@ public class VideoConverter extends AbstractConverter {
@Override @Override
public String[] generateConversionCommand(String executable, File file, List<StreamObject> streams, String outFile) { public String[] generateConversionCommand(String executable, File file, List<StreamObject> streams, String outFile) {
List<String> command = FFMpegHelper.getFFMpegGeneralFileCommand(executable, file.getName()); List<String> command = FFMpegHelper.getFFMpegGeneralFileCommand(executable, file.getName());
if (this.DEBUG) { if (this.debug) {
FFMpegHelper.addDebugArguments(command, 50, 120); FFMpegHelper.addDebugArguments(command, 50, 120);
} }

View File

@ -111,8 +111,9 @@ public final class FFMpegHelper {
String read = readProcess(processReader, spacer); String read = readProcess(processReader, spacer);
if (!read.equals("")) { if (!read.equals("")) {
if (write) { if (write) {
OutputUtil.print(read); OutputUtil.println(read);
} else { } else {
OutputUtil.printDebug(read);
output.append(read); output.append(read);
} }
} }