2 * Meviz - Various tools collection to work with multimedia. Author: Svjatoslav Agejenko.
3 * This project is released under Creative Commons Zero (CC0) license.
7 package eu.svjatoslav.meviz.encoder;
9 import eu.svjatoslav.meviz.encoder.converters.*;
11 import java.util.ArrayList;
12 import java.util.List;
14 public class FormatsRegistry {
16 private final ArrayList<AbstractConverter> encoders = new ArrayList<>();
18 public FormatsRegistry() {
20 registerEncoder(new Ffmpeg2theora());
21 registerEncoder(new FFMpegVideo());
24 registerEncoder(new Convert());
25 registerEncoder(new WebpEncoder());
26 registerEncoder(new WebpDecoder());
28 // image to text (OCR)
29 registerEncoder(new Ocr());
32 registerEncoder(new Ogg2Wav());
33 registerEncoder(new Flac());
34 registerEncoder(new FFMpegAudio());
35 registerEncoder(new Midi2Wav());
38 public List<AbstractConverter> getEncoders(final String sourceFormat,
39 final String targetFormat) {
41 final String sourceFormatLowerCase = sourceFormat.toLowerCase();
42 final String targetFormatLowerCase = targetFormat.toLowerCase();
44 final ArrayList<AbstractConverter> encoders = new ArrayList<>();
46 for (final AbstractConverter encoder : this.encoders)
47 if (encoder.supportsSource(sourceFormatLowerCase))
48 if (encoder.supportsTarget(targetFormatLowerCase)) {
49 encoders.add(encoder);
56 private void registerEncoder(final AbstractConverter encoder) {
57 encoders.add(encoder);