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.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.AbstractConverter;
+import eu.svjatoslav.meviz.encoder.converters.AvconvAudio;
+import eu.svjatoslav.meviz.encoder.converters.AvconvVideo;
+import eu.svjatoslav.meviz.encoder.converters.Convert;
+import eu.svjatoslav.meviz.encoder.converters.Ffmpeg;
+import eu.svjatoslav.meviz.encoder.converters.Ffmpeg2theora;
+import eu.svjatoslav.meviz.encoder.converters.Flac;
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<Converter> encoders = new ArrayList<Converter>();
+ public ArrayList<AbstractConverter> encoders = new ArrayList<AbstractConverter>();
- public FormatsRegistry() {
- // video conversion
- registerEncoder(new Avi2Ogv());
- registerEncoder(new Mp42Ogv());
- registerEncoder(new Mts2Mp4());
- registerEncoder(new Mts2Mkv());
+ public FormatsRegistry() {
+ // video conversion
+ registerEncoder(new Ffmpeg2theora());
+ registerEncoder(new Ffmpeg());
+ registerEncoder(new AvconvVideo());
- // image conversion
- registerEncoder(new Jpeg2Png());
- registerEncoder(new Png2Tiff());
- registerEncoder(new Tiff2Png());
+ // image conversion
+ registerEncoder(new Convert());
- // audio conversion
- registerEncoder(new Ogg2Wav());
- registerEncoder(new Wav2mp3());
- registerEncoder(new Ogg2Mp3());
- }
+ // audio conversion
+ registerEncoder(new Ogg2Wav());
+ registerEncoder(new Flac());
+ registerEncoder(new AvconvAudio());
+ }
- public List<Converter> getEncoders(final String sourceFormat, final String targetFormat) {
+ public List<AbstractConverter> getEncoders(final String sourceFormat,
+ final String targetFormat) {
- final String sourceFormatLowerCase = sourceFormat.toLowerCase();
- final String targetFormatLowerCase = targetFormat.toLowerCase();
+ final String sourceFormatLowerCase = sourceFormat.toLowerCase();
+ final String targetFormatLowerCase = targetFormat.toLowerCase();
- final ArrayList<Converter> encoders = new ArrayList<Converter>();
+ final ArrayList<AbstractConverter> encoders = new ArrayList<AbstractConverter>();
- for (final Converter encoder : this.encoders) {
- if (encoder.getSourceFileExtension().equals(sourceFormatLowerCase)) {
- if (encoder.getTargetFileExtension().equals(targetFormatLowerCase)) {
- encoders.add(encoder);
- return encoders;
- }
- }
- }
+ for (final AbstractConverter encoder : this.encoders)
+ if (encoder.supportsSource(sourceFormatLowerCase))
+ if (encoder.supportsTarget(targetFormatLowerCase)) {
+ encoders.add(encoder);
+ return encoders;
+ }
- return encoders;
- }
+ return encoders;
+ }
- public void registerEncoder(final Converter encoder) {
- encoders.add(encoder);
- }
+ public void registerEncoder(final AbstractConverter encoder) {
+ encoders.add(encoder);
+ }
}