package org.korsakow.services.encoders.sound; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import org.korsakow.services.encoders.EncoderException; import org.korsakow.services.encoders.PipedExternalEncoder; public abstract class PipedExternalSoundEncoder extends PipedExternalEncoder implements SoundEncoder { protected abstract Process createProcess(SoundFormat destFormat) throws IOException; public void encode(InputStream sourceStream, SoundFormat destFormat, OutputStream destStream) throws EncoderException { Process process = null; try { process = createProcess(destFormat); } catch (IOException e) { throw new SoundEncoderException(e); } encode(process, sourceStream, destStream); } }