2018-06-05 02:35:39 -04:00
|
|
|
package net.filebot.media;
|
|
|
|
|
2019-06-15 04:14:22 -04:00
|
|
|
import static net.filebot.MediaTypes.*;
|
|
|
|
import static net.filebot.util.FileUtilities.*;
|
|
|
|
|
2018-06-05 02:35:39 -04:00
|
|
|
import java.io.File;
|
|
|
|
|
|
|
|
import net.filebot.mediainfo.MediaInfo;
|
|
|
|
import net.filebot.util.SystemProperty;
|
|
|
|
|
|
|
|
public enum MediaCharacteristicsParser {
|
|
|
|
|
2019-01-28 09:08:24 -05:00
|
|
|
libmediainfo {
|
2018-06-05 02:35:39 -04:00
|
|
|
|
2019-01-28 09:08:24 -05:00
|
|
|
@Override
|
|
|
|
public MediaCharacteristics open(File f) throws Exception {
|
2018-06-05 02:35:39 -04:00
|
|
|
return new MediaInfo().open(f);
|
2019-01-28 09:08:24 -05:00
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
ffprobe {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public MediaCharacteristics open(File f) throws Exception {
|
2018-06-05 02:35:39 -04:00
|
|
|
return new FFProbe().open(f);
|
|
|
|
}
|
2019-01-28 09:08:24 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
public abstract MediaCharacteristics open(File f) throws Exception;
|
2018-06-05 02:35:39 -04:00
|
|
|
|
2019-06-15 04:14:22 -04:00
|
|
|
public boolean acceptVideoFile(File f) {
|
|
|
|
return VIDEO_FILES.accept(f) && f.length() > ONE_MEGABYTE;
|
|
|
|
}
|
|
|
|
|
2019-02-01 04:42:07 -05:00
|
|
|
public static MediaCharacteristicsParser getDefault() {
|
|
|
|
return DEFAULT;
|
|
|
|
}
|
|
|
|
|
2019-01-28 09:08:24 -05:00
|
|
|
public static final MediaCharacteristicsParser DEFAULT = SystemProperty.of("net.filebot.media.parser", MediaCharacteristicsParser::valueOf, libmediainfo).get();
|
2018-06-05 02:35:39 -04:00
|
|
|
|
2019-02-01 04:42:07 -05:00
|
|
|
}
|