X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fmeviz%2Fencoder%2FFormatsRegistry.java;h=b106cbaee1719342053fbab6274994bc22577856;hb=304c3aace09cf8a96ec381dabc21725398e87b55;hp=9555e6e146bbd5682478b60803c796d25a26dca7;hpb=dddcfc16c5894cfb8fb98719f7652662d8466062;p=meviz.git diff --git a/src/main/java/eu/svjatoslav/meviz/encoder/FormatsRegistry.java b/src/main/java/eu/svjatoslav/meviz/encoder/FormatsRegistry.java index 9555e6e..b106cba 100755 --- a/src/main/java/eu/svjatoslav/meviz/encoder/FormatsRegistry.java +++ b/src/main/java/eu/svjatoslav/meviz/encoder/FormatsRegistry.java @@ -1,76 +1,61 @@ /* * Meviz - Various tools collection to work with multimedia. - * Copyright (C) 2012, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu - * + * Copyright (C) 2012 -- 2019, 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. - */ + * modify it under the terms of version 3 of the GNU Lesser General Public License + * or later as published by the Free Software Foundation. +*/ package eu.svjatoslav.meviz.encoder; +import eu.svjatoslav.meviz.encoder.converters.*; + import java.util.ArrayList; import java.util.List; -import eu.svjatoslav.meviz.encoder.converters.Avi2Ogv; -import eu.svjatoslav.meviz.encoder.converters.Converter; -import eu.svjatoslav.meviz.encoder.converters.Jpeg2Png; -import eu.svjatoslav.meviz.encoder.converters.Mkv2Mp4; -import eu.svjatoslav.meviz.encoder.converters.Mp42Ogv; -import eu.svjatoslav.meviz.encoder.converters.Mts2Mkv; -import eu.svjatoslav.meviz.encoder.converters.Mts2Mp4; -import eu.svjatoslav.meviz.encoder.converters.Ogg2Mp3; -import eu.svjatoslav.meviz.encoder.converters.Ogg2Wav; -import eu.svjatoslav.meviz.encoder.converters.Png2Tiff; -import eu.svjatoslav.meviz.encoder.converters.Tiff2Png; -import eu.svjatoslav.meviz.encoder.converters.Wav2mp3; - public class FormatsRegistry { - public ArrayList encoders = new ArrayList(); - - public FormatsRegistry() { - // video conversion - registerEncoder(new Avi2Ogv()); - registerEncoder(new Mp42Ogv()); - registerEncoder(new Mts2Mp4()); - registerEncoder(new Mts2Mkv()); - registerEncoder(new Mkv2Mp4()); - - // image conversion - registerEncoder(new Jpeg2Png()); - registerEncoder(new Png2Tiff()); - registerEncoder(new Tiff2Png()); - - // audio conversion - registerEncoder(new Ogg2Wav()); - registerEncoder(new Wav2mp3()); - registerEncoder(new Ogg2Mp3()); - } - - public List getEncoders(final String sourceFormat, - final String targetFormat) { - - final String sourceFormatLowerCase = sourceFormat.toLowerCase(); - final String targetFormatLowerCase = targetFormat.toLowerCase(); - - final ArrayList encoders = new ArrayList(); - - for (final Converter encoder : this.encoders) { - if (encoder.getSourceFileExtension().equals(sourceFormatLowerCase)) { - if (encoder.getTargetFileExtension().equals( - targetFormatLowerCase)) { - encoders.add(encoder); - return encoders; - } - } - } - - return encoders; - } - - public void registerEncoder(final Converter encoder) { - encoders.add(encoder); - } + private final ArrayList encoders = new ArrayList<>(); + + public FormatsRegistry() { + // video conversion + registerEncoder(new Ffmpeg2theora()); + registerEncoder(new FFMpegVideo()); + + // image conversion + registerEncoder(new Convert()); + + // image to text (OCR) + registerEncoder(new Ocr()); + + // audio conversion + registerEncoder(new Ogg2Wav()); + registerEncoder(new Flac()); + registerEncoder(new FFMpegAudio()); + registerEncoder(new Midi2Wav()); + } + + public List getEncoders(final String sourceFormat, + final String targetFormat) { + + final String sourceFormatLowerCase = sourceFormat.toLowerCase(); + final String targetFormatLowerCase = targetFormat.toLowerCase(); + + final ArrayList encoders = new ArrayList<>(); + + for (final AbstractConverter encoder : this.encoders) + if (encoder.supportsSource(sourceFormatLowerCase)) + if (encoder.supportsTarget(targetFormatLowerCase)) { + encoders.add(encoder); + return encoders; + } + + return encoders; + } + + private void registerEncoder(final AbstractConverter encoder) { + encoders.add(encoder); + } }