X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fmeviz%2Fencoder%2FCommandlineHandler.java;h=dc1601dc30acb56da1a16fec3cdd1cce1b070393;hb=0c8606b2b2bee4d93f383653c283da116ad7fdee;hp=fd9d9e94780d22227a374bfd58538f3b6cc88792;hpb=50cb7085d553fdd82cd06806cd27b1675299f719;p=meviz.git diff --git a/src/main/java/eu/svjatoslav/meviz/encoder/CommandlineHandler.java b/src/main/java/eu/svjatoslav/meviz/encoder/CommandlineHandler.java index fd9d9e9..dc1601d 100755 --- a/src/main/java/eu/svjatoslav/meviz/encoder/CommandlineHandler.java +++ b/src/main/java/eu/svjatoslav/meviz/encoder/CommandlineHandler.java @@ -1,7 +1,7 @@ /* * Meviz - Various tools collection to work with multimedia. * Copyright (C) 2012, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu - * + * * This program is free software; you can redistribute it and/or * modify it under the terms of version 2 of the GNU General Public License * as published by the Free Software Foundation. @@ -9,95 +9,81 @@ package eu.svjatoslav.meviz.encoder; -import eu.svjatoslav.commons.commandline.parameterparser.Parameter; import eu.svjatoslav.commons.commandline.parameterparser.Parser; +import eu.svjatoslav.commons.commandline.parameterparser.parameter.DirectoryParameter; +import eu.svjatoslav.commons.commandline.parameterparser.parameter.IntegerParameter; +import eu.svjatoslav.commons.commandline.parameterparser.parameter.NullParameter; +import eu.svjatoslav.commons.commandline.parameterparser.parameter.StringParameters; public class CommandlineHandler { - Parameter outputFormatParameter = new Parameter(true, true, true, - new eu.svjatoslav.commons.commandline.parameterparser.arguments.String(), "Encoding output format.", "-o", - "--output-format"); + Parser parser = new Parser(); - Parameter terminalParameter = new Parameter("Enable popup terminal.", "--terminal"); + StringParameters outputFormatParameter = parser.add(new StringParameters("Encoding output format.")) + .addAliases("-o", "--output-format").setMandatory(); - Parameter testParameter = new Parameter("Simulate file encoding.", "-t", "--test"); + IntegerParameter targetFramerate = parser + .add(new IntegerParameter("Target framerate.").addAliases("-f", "--target-framerate")); - Parameter recursiveParameter = new Parameter("Enable recursive mode.", "-r", "--recursive"); + NullParameter deinterlaceParameter = parser.add(new NullParameter("Deinterlace video.")).addAliases("-d", + "--deinterlace"); - Parameter inputPatternParameter = new Parameter(true, true, true, - new eu.svjatoslav.commons.commandline.parameterparser.arguments.String(), "File input pattern.", "-i", - "--input-pattern"); + NullParameter testParameter = parser.add(new NullParameter("Simulate file encoding.")).addAliases("-t", "--test"); - Parameter workingDirectoryParameter = new Parameter(false, true, true, - new eu.svjatoslav.commons.commandline.parameterparser.arguments.ExistingDirectory(), "Working directory.", - "-w", "--working-directory"); + NullParameter recursiveParameter = parser.add(new NullParameter("Enable recursive mode.")).addAliases("-r", + "--recursive"); - Parameter videoBitrateParameter = new Parameter(false, true, false, new Bitrate(), "Video bitrate.", "-v", - "--video-bitrate"); - - public Parser initParser() { - final Parser parser = new Parser(); - - parser.addParameter(recursiveParameter); - - parser.addParameter(testParameter); - - parser.addParameter(terminalParameter); + NullParameter forPortableParameter = parser.add(new NullParameter("Encode for portable player.")).addAliases("-p", + "--portable"); - parser.addParameter(outputFormatParameter); + StringParameters inputPatternParameter = parser.add(new StringParameters("File input pattern.")) + .addAliases("-i", "--input-pattern").setMandatory(); - parser.addParameter(inputPatternParameter); + DirectoryParameter workingDirectoryParameter = parser.add(new DirectoryParameter("Working directory.")) + .addAliases("-w", "--working-directory").mustExist(); - parser.addParameter(workingDirectoryParameter); - - parser.addParameter(videoBitrateParameter); + BitrateParameter videoBitrateParameter = parser.add(new BitrateParameter("Video bitrate")).addAliases("-v", + "--video-bitrate"); - return parser; - } + BitrateParameter audioBitrateParameter = parser.add(new BitrateParameter("Audio bitrate")).addAliases("-a", + "--audio-bitrate"); /** * @return {@link EncodingOptions} if commandline arguments were - * successfully parsed, or null if parsing error - * occurred. + * successfully parsed, or null if parsing error + * occurred. */ public EncodingOptions parseCommandlineArguments(final String[] args) { final EncodingOptions options = new EncodingOptions(); - final Parser parser = initParser(); parser.parse(args); - if (recursiveParameter.isParameterSpecified()) - options.recursive = true; + options.setRecursive(recursiveParameter.isParameterSpecified()); + + options.setDeinterlace(deinterlaceParameter.isParameterSpecified()); + + options.setTestOnly(testParameter.isParameterSpecified()); - if (terminalParameter.isParameterSpecified()) - options.terminal = true; + if (outputFormatParameter.isParameterSpecified()) + options.getOutputFormats().addAll(outputFormatParameter.getValue()); - if (testParameter.isParameterSpecified()) - options.testOnly = true; + if (targetFramerate.isParameterSpecified()) + options.setTargetFps(targetFramerate.getValue()); - if (outputFormatParameter.isParameterSpecified()) { - options.outputFormats.addAll(outputFormatParameter.getArgumentsAsStrings()); - } + if (workingDirectoryParameter.isParameterSpecified()) + options.setWorkingDirectory(workingDirectoryParameter.getValue()); - if (workingDirectoryParameter.isParameterSpecified()) { - options.workingDirectory = workingDirectoryParameter.getArgumentsAsFiles().get(0); - } + if (inputPatternParameter.isParameterSpecified()) + options.getInputPatterns().addAll(inputPatternParameter.getValue()); - if (inputPatternParameter.isParameterSpecified()) { - options.inputPatterns.addAll(inputPatternParameter.getArgumentsAsStrings()); - } + options.setForPortablePlayer(forPortableParameter.isParameterSpecified()); - if (videoBitrateParameter.isParameterSpecified()) { + if (videoBitrateParameter.isParameterSpecified()) + options.setVideoBitrate(videoBitrateParameter.getValue()); - try { - options.videoBitrate = Bitrate.bitrate.valueOf(videoBitrateParameter.getArgumentAsString() - .toUpperCase()); - } catch (final Exception e) { - System.out.println("Invalid video bitrate. Valid values are: LOW, MEDIUM, HIGH."); - return null; - } - } + if (audioBitrateParameter.isParameterSpecified()) + options.setAudioBitrate(audioBitrateParameter.getValue()); return options; }