153 lines
4.7 KiB
Java
153 lines
4.7 KiB
Java
package org.jcodec.common;
|
|
|
|
import java.util.LinkedHashMap;
|
|
import java.util.Map;
|
|
|
|
public final class Codec {
|
|
public static final Codec H264 = new Codec("H264", TrackType.VIDEO);
|
|
|
|
public static final Codec MPEG2 = new Codec("MPEG2", TrackType.VIDEO);
|
|
|
|
public static final Codec MPEG4 = new Codec("MPEG4", TrackType.VIDEO);
|
|
|
|
public static final Codec PRORES = new Codec("PRORES", TrackType.VIDEO);
|
|
|
|
public static final Codec DV = new Codec("DV", TrackType.VIDEO);
|
|
|
|
public static final Codec VC1 = new Codec("VC1", TrackType.VIDEO);
|
|
|
|
public static final Codec VC3 = new Codec("VC3", TrackType.VIDEO);
|
|
|
|
public static final Codec V210 = new Codec("V210", TrackType.VIDEO);
|
|
|
|
public static final Codec SORENSON = new Codec("SORENSON", TrackType.VIDEO);
|
|
|
|
public static final Codec FLASH_SCREEN_VIDEO = new Codec("FLASH_SCREEN_VIDEO", TrackType.VIDEO);
|
|
|
|
public static final Codec FLASH_SCREEN_V2 = new Codec("FLASH_SCREEN_V2", TrackType.VIDEO);
|
|
|
|
public static final Codec PNG = new Codec("PNG", TrackType.VIDEO);
|
|
|
|
public static final Codec JPEG = new Codec("JPEG", TrackType.VIDEO);
|
|
|
|
public static final Codec J2K = new Codec("J2K", TrackType.VIDEO);
|
|
|
|
public static final Codec VP6 = new Codec("VP6", TrackType.VIDEO);
|
|
|
|
public static final Codec VP8 = new Codec("VP8", TrackType.VIDEO);
|
|
|
|
public static final Codec VP9 = new Codec("VP9", TrackType.VIDEO);
|
|
|
|
public static final Codec VORBIS = new Codec("VORBIS", TrackType.VIDEO);
|
|
|
|
public static final Codec AAC = new Codec("AAC", TrackType.AUDIO);
|
|
|
|
public static final Codec MP3 = new Codec("MP3", TrackType.AUDIO);
|
|
|
|
public static final Codec MP2 = new Codec("MP2", TrackType.AUDIO);
|
|
|
|
public static final Codec MP1 = new Codec("MP1", TrackType.AUDIO);
|
|
|
|
public static final Codec AC3 = new Codec("AC3", TrackType.AUDIO);
|
|
|
|
public static final Codec DTS = new Codec("DTS", TrackType.AUDIO);
|
|
|
|
public static final Codec TRUEHD = new Codec("TRUEHD", TrackType.AUDIO);
|
|
|
|
public static final Codec PCM_DVD = new Codec("PCM_DVD", TrackType.AUDIO);
|
|
|
|
public static final Codec PCM = new Codec("PCM", TrackType.AUDIO);
|
|
|
|
public static final Codec ADPCM = new Codec("ADPCM", TrackType.AUDIO);
|
|
|
|
public static final Codec ALAW = new Codec("ALAW", TrackType.AUDIO);
|
|
|
|
public static final Codec NELLYMOSER = new Codec("NELLYMOSER", TrackType.AUDIO);
|
|
|
|
public static final Codec G711 = new Codec("G711", TrackType.AUDIO);
|
|
|
|
public static final Codec SPEEX = new Codec("SPEEX", TrackType.AUDIO);
|
|
|
|
public static final Codec RAW = new Codec("RAW", null);
|
|
|
|
public static final Codec TIMECODE = new Codec("TIMECODE", TrackType.OTHER);
|
|
|
|
private static final Map<String, Codec> _values = new LinkedHashMap<>();
|
|
|
|
private final String _name;
|
|
|
|
private final TrackType type;
|
|
|
|
static {
|
|
_values.put("H264", H264);
|
|
_values.put("MPEG2", MPEG2);
|
|
_values.put("MPEG4", MPEG4);
|
|
_values.put("PRORES", PRORES);
|
|
_values.put("DV", DV);
|
|
_values.put("VC1", VC1);
|
|
_values.put("VC3", VC3);
|
|
_values.put("V210", V210);
|
|
_values.put("SORENSON", SORENSON);
|
|
_values.put("FLASH_SCREEN_VIDEO", FLASH_SCREEN_VIDEO);
|
|
_values.put("FLASH_SCREEN_V2", FLASH_SCREEN_V2);
|
|
_values.put("PNG", PNG);
|
|
_values.put("JPEG", JPEG);
|
|
_values.put("J2K", J2K);
|
|
_values.put("VP6", VP6);
|
|
_values.put("VP8", VP8);
|
|
_values.put("VP9", VP9);
|
|
_values.put("VORBIS", VORBIS);
|
|
_values.put("AAC", AAC);
|
|
_values.put("MP3", MP3);
|
|
_values.put("MP2", MP2);
|
|
_values.put("MP1", MP1);
|
|
_values.put("AC3", AC3);
|
|
_values.put("DTS", DTS);
|
|
_values.put("TRUEHD", TRUEHD);
|
|
_values.put("PCM_DVD", PCM_DVD);
|
|
_values.put("PCM", PCM);
|
|
_values.put("ADPCM", ADPCM);
|
|
_values.put("ALAW", ALAW);
|
|
_values.put("NELLYMOSER", NELLYMOSER);
|
|
_values.put("G711", G711);
|
|
_values.put("SPEEX", SPEEX);
|
|
_values.put("RAW", RAW);
|
|
_values.put("TIMECODE", TIMECODE);
|
|
}
|
|
|
|
public Codec(String name, TrackType type) {
|
|
this._name = name;
|
|
this.type = type;
|
|
}
|
|
|
|
public TrackType getType() {
|
|
return this.type;
|
|
}
|
|
|
|
public static Codec codecByFourcc(String fourcc) {
|
|
if (fourcc.equals("avc1"))
|
|
return H264;
|
|
if (fourcc.equals("m1v1") || fourcc.equals("m2v1"))
|
|
return MPEG2;
|
|
if (fourcc.equals("apco") || fourcc.equals("apcs") || fourcc.equals("apcn") || fourcc.equals("apch") ||
|
|
fourcc.equals("ap4h"))
|
|
return PRORES;
|
|
if (fourcc.equals("mp4a"))
|
|
return AAC;
|
|
if (fourcc.equals("jpeg"))
|
|
return JPEG;
|
|
return null;
|
|
}
|
|
|
|
public static Codec valueOf(String s) {
|
|
return _values.get(s);
|
|
}
|
|
|
|
public String toString() {
|
|
return this._name;
|
|
}
|
|
|
|
public String name() {
|
|
return this._name;
|
|
}
|
|
}
|