Skip to content

Commit

Permalink
Merge pull request #9 from budius/only_subtitles
Browse files Browse the repository at this point in the history
Only subtitles
  • Loading branch information
budius authored Jan 2, 2020
2 parents 5d706a8 + 207ca5d commit 40b66f2
Show file tree
Hide file tree
Showing 11 changed files with 171 additions and 94 deletions.
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
3 changes: 1 addition & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
#Mon Dec 28 10:00:20 PST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
72 changes: 42 additions & 30 deletions gradlew
Original file line number Diff line number Diff line change
@@ -1,25 +1,43 @@
#!/usr/bin/env bash
#!/usr/bin/env sh

##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null

APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"

warn ( ) {
warn () {
echo "$*"
}

die ( ) {
die () {
echo
echo "$*"
echo
Expand All @@ -30,6 +48,7 @@ die ( ) {
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
Expand All @@ -40,26 +59,11 @@ case "`uname`" in
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac

# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null

CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar

# Determine the Java command to use to start the JVM.
Expand All @@ -85,7 +89,7 @@ location of your Java installation."
fi

# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
Expand Down Expand Up @@ -150,11 +154,19 @@ if $cygwin ; then
esac
fi

# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
APP_ARGS=$(save "$@")

# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"

# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi

exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
exec "$JAVACMD" "$@"
14 changes: 4 additions & 10 deletions gradlew.bat
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal

@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=

set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=

@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome

Expand Down Expand Up @@ -46,10 +46,9 @@ echo location of your Java installation.
goto fail

:init
@rem Get command-line arguments, handling Windowz variants
@rem Get command-line arguments, handling Windows variants

if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args

:win9xME_args
@rem Slurp the command line arguments.
Expand All @@ -60,11 +59,6 @@ set _SKIP=2
if "x%~1" == "x" goto execute

set CMD_LINE_ARGS=%*
goto execute

:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$

:execute
@rem Setup the command line
Expand Down
11 changes: 5 additions & 6 deletions main/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apply plugin: 'java'
apply plugin: 'application'
mainClassName = 'com.budius.chromecast.converter.Main'
applicationName = 'cc_converter'
version = '2.2.1'
version = '2.3.0'

sourceCompatibility = 1.7

Expand All @@ -11,9 +11,8 @@ repositories {
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'commons-cli:commons-cli:1.3.1'
compile 'commons-io:commons-io:2.5'
compile 'org.json:json:20160212'
compile 'com.google.code.gson:gson:2.6.2'
implementation 'commons-cli:commons-cli:1.3.1'
implementation 'commons-io:commons-io:2.5'
implementation 'org.json:json:20160212'
implementation 'com.google.code.gson:gson:2.6.2'
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ private static String fromArray(List<String> list) {
OPTIONS.addOption("f", "force", false, "Force conversion (even if input codecs are correct)");
OPTIONS.addOption("p", "pi", false, "Uses h264_omx to allow conversion on the Raspberry Pi");
OPTIONS.addOption(null, "DEBUG", false, "Debug mode with more logs");
OPTIONS.addOption(null, "onlySubtitles", false, "Do no convert anything, simply extract subtitles");
}

private Settings settings;
Expand All @@ -55,6 +56,7 @@ public Arguments(String[] args) {
boolean delete = cmd.hasOption("d");
boolean force = cmd.hasOption("f");
boolean pi = cmd.hasOption("p");
boolean onlySubtitles = cmd.hasOption("onlySubtitles");
debug = cmd.hasOption("DEBUG");

// test valid input
Expand Down Expand Up @@ -108,7 +110,7 @@ public Arguments(String[] args) {
return;
}

settings = new Settings(inputFile, outputFile, speedString, quality, delete, force, pi);
settings = new Settings(inputFile, outputFile, speedString, quality, delete, force, pi, onlySubtitles);

} catch (ParseException e) {
e.printStackTrace();
Expand Down
52 changes: 31 additions & 21 deletions main/src/main/java/com/budius/chromecast/converter/Execution.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,33 +64,43 @@ private void executeFolder(Settings settings) {
private void executeFile(Settings settings) {

Job job = new Job(settings, baseFolder);
List<Item> processors = Arrays.asList(
List<Item> processors;

if (settings.onlySubtitles) {
processors = Arrays.asList(
new Item("FFProbe", new FFProbe()),
new Item("Subtitles", new Subtitles()),
new Item("Subtitles", new FFmpegExecSubtitles())
);
} else {
processors = Arrays.asList(

// Probe the input file and extract information
new Item("FFProbe", new FFProbe()),
// Probe the input file and extract information
new Item("FFProbe", new FFProbe()),

// Build FFMPEG command in parts
new Item("CmdStart", new FFmpegCmdStart()),
new Item("Video", new Video()),
new Item("Audio", new Audio()),
new Item("CmdEnd", new FFmpegCmdEnd()),
// Build FFMPEG command in parts
new Item("CmdStart", new FFmpegCmdStart()),
new Item("Video", new Video()),
new Item("Audio", new Audio()),
new Item("CmdEnd", new FFmpegCmdEnd()),

// Build Subtitle extraction commands
new Item("Subtitles", new Subtitles()),
// Build Subtitle extraction commands
new Item("Subtitles", new Subtitles()),

// Checks if any conversion is necessary and process the `move` flag
new Item("CheckConversionCmd", new CheckConversionCmd()),
// Checks if any conversion is necessary and process the `move` flag
new Item("CheckConversionCmd", new CheckConversionCmd()),

// Execute FFMPEG commands
new Item("Conversion", new FFmpegExecConversion()),
new Item("Subtitles", new FFmpegExecSubtitles()),
// Execute FFMPEG commands
new Item("Conversion", new FFmpegExecConversion()),
new Item("Subtitles", new FFmpegExecSubtitles()),

// delete original
new Item("DeleteOriginal", new DeleteOriginal()),
// delete original
new Item("DeleteOriginal", new DeleteOriginal()),

// Rename temp file
new Item("RenameTempFile", new RenameTempFile())
);
// Rename temp file
new Item("RenameTempFile", new RenameTempFile())
);
}

// process all the processors and log any errors
ExecutionLoop:
Expand Down Expand Up @@ -118,7 +128,7 @@ private void executeFile(Settings settings) {
// Filters
// =========================================================================================================
private static final List<String> VIDEO_EXTENSION =
Arrays.asList("mp4", "mkv", "avi", "mpeg", "mpg", "mpe", "mov", "qt", "asf", "flv", "wmv", "m1v", "m2v", "3gp");
Arrays.asList("mp4", "mkv", "avi", "mpeg", "mpg", "mpe", "mov", "qt", "asf", "flv", "wmv", "m1v", "m2v", "3gp");

private static final FileFilter videoFilesFilter = new FileFilter() {
@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
*/
public class Main {

public static final String VERSION = "Chromecast Converter - V2.2.1";
public static final String VERSION = "Chromecast Converter - V2.3.0";

public static void main(String[] args) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,21 +36,23 @@ public class Settings {
public final boolean delete;
public final boolean force;
public final boolean pi;
public final boolean onlySubtitles;

public static final String DEFAULT_SPEED = "slow";
public static final String DEFAULT_QUALITY = "high";

public Settings(File input, File output, String speed, int quality, boolean delete, boolean force, boolean pi) {
public Settings(File input, File output, String speed, int quality, boolean delete, boolean force, boolean pi, boolean onlySubtitles) {
this.input = input;
this.output = output;
this.speed = speed;
this.quality = quality;
this.delete = delete;
this.force = force;
this.pi = pi;
this.onlySubtitles = onlySubtitles;
}

public Settings copy(File input) {
return new Settings(input, this.output, this.speed, this.quality, this.delete, this.force, this.pi);
return new Settings(input, this.output, this.speed, this.quality, this.delete, this.force, this.pi, this.onlySubtitles);
}
}
Loading

0 comments on commit 40b66f2

Please sign in to comment.