mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-05-31 08:56:08 +00:00
trunk contents moved to root
This commit is contained in:
99
libsrc/avi/src/org/monte/media/AbstractCodec.java
Normal file
99
libsrc/avi/src/org/monte/media/AbstractCodec.java
Normal file
@@ -0,0 +1,99 @@
|
||||
/*
|
||||
* To change this template, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package org.monte.media;
|
||||
|
||||
import java.util.ArrayList;
|
||||
/**
|
||||
* {@code AbstractCodec}.
|
||||
*
|
||||
* @author Werner Randelshofer
|
||||
* @version 1.0 2011-03-12 Created.
|
||||
*/
|
||||
public abstract class AbstractCodec implements Codec {
|
||||
|
||||
protected Format[] inputFormats;
|
||||
protected Format[] outputFormats;
|
||||
protected Format inputFormat;
|
||||
protected Format outputFormat;
|
||||
protected String name="unnamed codec";
|
||||
|
||||
public AbstractCodec(Format[] supportedInputFormats, Format[] supportedOutputFormats) {
|
||||
this.inputFormats = supportedInputFormats;
|
||||
this.outputFormats = supportedOutputFormats;
|
||||
}
|
||||
public AbstractCodec(Format[] supportedInputOutputFormats) {
|
||||
this.inputFormats = supportedInputOutputFormats;
|
||||
this.outputFormats = supportedInputOutputFormats;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Format[] getInputFormats() {
|
||||
return inputFormats.clone();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Format[] getOutputFormats(Format input) {
|
||||
ArrayList<Format>of=new ArrayList<Format>(outputFormats.length);
|
||||
for (Format f:outputFormats) {
|
||||
of.add(input==null?f:f.append(input));
|
||||
}
|
||||
return of.toArray(new Format[of.size()]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Format setInputFormat(Format f) {
|
||||
if (f!=null)
|
||||
for (Format sf : getInputFormats()) {
|
||||
if (sf.matches(f)) {
|
||||
this.inputFormat = sf.append(f);
|
||||
return inputFormat;
|
||||
}
|
||||
}
|
||||
this.inputFormat=null;
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Format setOutputFormat(Format f) {
|
||||
for (Format sf : getOutputFormats(f)) {
|
||||
if (sf.matches(f)) {
|
||||
this.outputFormat = f;
|
||||
return sf;
|
||||
}
|
||||
}
|
||||
this.outputFormat=null;
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Format getInputFormat() {
|
||||
return inputFormat;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Format getOutputFormat() {
|
||||
return outputFormat;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
/** Empty implementation of the reset method. Don't call super. */
|
||||
@Override
|
||||
public void reset() {
|
||||
// empty
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
String className=getClass().getName();
|
||||
int p=className.lastIndexOf('.');
|
||||
return className.substring(p+1)+"{" + "inputFormat=" + inputFormat + ", outputFormat=" + outputFormat+'}';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user