public TtmlOptionBuilder withFileName(String fileName) { o.setFileName(fileName); return this; }
public TtmlOptionBuilder withEndMS(long endMS) { o.setEndMS(endMS); return this; }
public TtmlOptionBuilder withOffsetMS(long offsetMS) { o.setOffsetMS(offsetMS); return this; }
@Test public void ttmlOptionWithoutOffsetArgsPrasedCorrectly() { /* PREPARATION */ String[] args = new String[]{"-t", "file", "-o", "test"}; /* EXECUTION */ TtmlConverterCmdLineParams params = new TtmlConverterCmdLineParser().parse(args); /* VALIDATION */ assertEquals(1, params.getTtmlOptions().size()); TtmlOption option = params.getTtmlOptions().get(0); assertEquals("ttml option file part", args[1], option.getFileName()); assertEquals("ttml option offset part", 0, option.getOffsetMS()); assertEquals("ttml option start part", 0, option.getStartMS()); assertEquals("ttml option end part", Long.MAX_VALUE, option.getEndMS()); }
TtmlConverterCmdLineParams params = new TtmlConverterCmdLineParams(); params.setOutputFile(line.getOptionValue(out.getOpt())); } else { throw new ParseException("Output file option must be provided."); params.setFrameRate(parseFrameRate(line.getOptionValue(frameRate.getOpt()))); params.getTtmlOptions().addAll(Stream.of(line.getOptions()).filter((o) -> o.equals(ttml)).map((o) -> { TtmlOption ttmlOption = new TtmlOption(); ttmlOption.setFileName(o.getValue(0)); ttmlOption.setOffsetMS(parseTtmlParameter(o, 1, "offsetMS")); ttmlOption.setStartMS(parseTtmlParameter(o, 2, "startMS")); ttmlOption.setEndMS(parseTtmlParameter(o, 3, "endMS")); } catch (IndexOutOfBoundsException e) { if (ttmlOption.getFileName() == null) { throw new ParseException("--ttml parameter must have at least <file> attribute defined."); if (params.getTtmlOptions().isEmpty()) { throw new ParseException("At least one input TTML file must be provided.");
/** * Constructor. * * @param params parsed command line parameters * @throws ParseException */ public TtmlConverter(TtmlConverterCmdLineParams params) throws ParseException { outputFile = new File(params.getOutputFile()); if (!Files.isWritable(Paths.get((outputFile.getParent() == null) ? "." : outputFile.getParent()))) { throw new ParseException(String.format( "Output file %s cannot be written. Please check access rights.", params.getOutputFile())); } ttmlTts = params.getTtmlOptions().stream().map((o) -> { TtEltype tt; try { tt = XmlParser.parse(new File(o.getFileName()), new String[]{TTML_SCHEMA}, TTML_PACKAGES, TtEltype.class); } catch (XmlParsingException | FileNotFoundException e) { throw new ParseException(e); } TtmlUtils.reduceAccordingSegment(tt, o.getOffsetMS(), o.getStartMS(), o.getEndMS(), params.getFrameRate()); TtmlUtils.moveStyleRefToP(tt); return tt; }).collect(Collectors.toList()); }
@Test(expected = ParseException.class) public void outputFileOptionIsNotSetThenThrowException() { /* PREPARATION */ String[] args = new String[]{"-t", "test"}; /* EXECUTION */ new TtmlConverterCmdLineParser().parse(args); /* VALIDATION */ }
@Test public void outputFileOptionParsedCorrectly() { /* PREPARATION */ String[] args = new String[]{"-t", "test", "-o", "testFile"}; /* EXECUTION */ TtmlConverterCmdLineParams params = new TtmlConverterCmdLineParser().parse(args); /* VALIDATION */ assertEquals("Output file option", args[3], params.getOutputFile()); }
@Test public void frameRateOptionParsedCorrectly() { /* PREPARATION */ String[] args = new String[]{"-t", "test", "-o", "testFile", "-f", "24000/1001"}; /* EXECUTION */ TtmlConverterCmdLineParams params = new TtmlConverterCmdLineParser().parse(args); /* VALIDATION */ assertEquals("Frame rate option", new BigFraction(24000).divide(1001), params.getFrameRate()); }
public TtmlOptionBuilder withStartMS(long startMS) { o.setStartMS(startMS); return this; }
private static void printStartMessage(TtmlConverterCmdLineParams parsedParams) { String mergeMsg = ""; String fileMsg = " file."; String startMsg; if (parsedParams.getTtmlOptions().size() > 1) { mergeMsg = "and merging"; fileMsg = " files."; } startMsg = "Start converting " + mergeMsg + " of " + parsedParams.getTtmlOptions().stream() .map(TtmlOption::getFileName).collect(Collectors.joining(", ", "[", "]")) + fileMsg; System.out.println(startMsg); }
@Test public void ttmlOptionParsedCorrectly() { /* PREPARATION */ String[] args = new String[]{"-t", "test", "0", "200", "45", "-o", "testFile", "-f", "24000/1001"}; /* EXECUTION */ TtmlConverterCmdLineParams params = new TtmlConverterCmdLineParser().parse(args); /* VALIDATION */ assertEquals(1, params.getTtmlOptions().size()); TtmlOption option = params.getTtmlOptions().get(0); assertEquals("ttml option file part", args[1], option.getFileName()); assertEquals("ttml option offset part", Long.parseLong(args[2]), option.getOffsetMS()); assertEquals("ttml option start part", Long.parseLong(args[3]), option.getStartMS()); assertEquals("ttml option end part", Long.parseLong(args[4]), option.getEndMS()); }
@Test(expected = ParseException.class) public void ttmlOptionWithoutFileArgThrowException() { /* PREPARATION */ String[] args = new String[]{"-o", "test", "-t"}; /* EXECUTION */ new TtmlConverterCmdLineParser().parse(args); /* VALIDATION */ }
@Test public void manyTtmlOptionsParsedCorrectly() { /* PREPARATION */ String[] args = new String[]{"-t", "test1", "0", "200", "45", "-t", "test2", "10", "40", "67", "-o", "test"}; /* EXECUTION */ TtmlConverterCmdLineParams params = new TtmlConverterCmdLineParser().parse(args); /* VALIDATION */ assertEquals(2, params.getTtmlOptions().size()); TtmlOption option1 = params.getTtmlOptions().get(0); assertEquals("ttml option file part", args[1], option1.getFileName()); assertEquals("ttml option offset part", Long.parseLong(args[2]), option1.getOffsetMS()); assertEquals("ttml option start part", Long.parseLong(args[3]), option1.getStartMS()); assertEquals("ttml option end part", Long.parseLong(args[4]), option1.getEndMS()); TtmlOption option2 = params.getTtmlOptions().get(1); assertEquals("ttml option file part", args[6], option2.getFileName()); assertEquals("ttml option offset part", Long.parseLong(args[7]), option2.getOffsetMS()); assertEquals("ttml option start part", Long.parseLong(args[8]), option2.getStartMS()); assertEquals("ttml option end part", Long.parseLong(args[9]), option2.getEndMS()); }
@Test(expected = ParseException.class) public void outputFileOptionWithoutArgThrowException() { /* PREPARATION */ String[] args = new String[]{"-t", "test", "-o"}; /* EXECUTION */ new TtmlConverterCmdLineParser().parse(args); /* VALIDATION */ }
@Test(expected = ParseException.class) public void frameRateOptionFailParseThrowException() { /* PREPARATION */ String[] args = new String[]{"-t", "test", "-o", "test", "-f", "24000\\1001"}; /* EXECUTION */ new TtmlConverterCmdLineParser().parse(args); /* VALIDATION */ }
@Test(expected = ParseException.class) public void ttmlOptionIsNotSetThenThrowException() { /* PREPARATION */ String[] args = new String[]{"-o", "test"}; /* EXECUTION */ new TtmlConverterCmdLineParser().parse(args); /* VALIDATION */ } }
@Test(expected = ParseException.class) public void frameRateOptionWithoutArgThrowException() { /* PREPARATION */ String[] args = new String[]{"-t", "test", "-o", "test", "-f"}; /* EXECUTION */ new TtmlConverterCmdLineParser().parse(args); /* VALIDATION */ }
@Test public void helpOptionParsedCorrectly() { /* PREPARATION */ String[] args = new String[]{"-h", "-t"}; /* EXECUTION */ TtmlConverterCmdLineParams params = new TtmlConverterCmdLineParser().parse(args); /* VALIDATION */ assertEquals("Help option", null, params); }
parsedParams = new TtmlConverterCmdLineParser().parse(args); } catch (Exception e) { System.err.println(String.format("Parsing of command line arguments failed. Reason: %s",