package org.jcodec.codecs.pcm;
import java.nio.ByteBuffer;
import org.jcodec.common.AudioDecoder;
import org.jcodec.common.NIOUtils;
import org.jcodec.common.model.AudioBuffer;
import org.jcodec.player.filters.MediaInfo;
import org.jcodec.player.filters.MediaInfo.AudioInfo;
/**
* This class is part of JCodec ( www.jcodec.org ) This software is distributed
* under FreeBSD License
*
* @author The JCodec project
*
*/
public class PCMDecoder implements AudioDecoder {
private MediaInfo.AudioInfo audioInfo;
public PCMDecoder(AudioInfo audioInfo) {
this.audioInfo = audioInfo;
}
public AudioBuffer decodeFrame(ByteBuffer frame, ByteBuffer dst) {
ByteBuffer dup = dst.duplicate();
NIOUtils.write(dst, frame);
dup.flip();
return new AudioBuffer(dup, audioInfo.getFormat(), dup.remaining() / audioInfo.getFormat().getFrameSize());
}
}