package org.jcodec.containers.mxf.model;
import java.util.Iterator;
import org.jcodec.common.logging.Logger;
import java.nio.ByteBuffer;
import java.util.Map;
import java.util.Map.Entry;
/**
* This class is part of JCodec ( www.jcodec.org ) This software is distributed
* under FreeBSD License
*
* @author The JCodec project
*
*/
public class AES3PCMDescriptor extends WaveAudioDescriptor {
private byte emphasis;
private short blockStartOffset;
private byte auxBitsMode;
private ByteBuffer channelStatusMode;
private ByteBuffer fixedChannelStatusData;
private ByteBuffer userDataMode;
private ByteBuffer fixedUserData;
public AES3PCMDescriptor(UL ul) {
super(ul);
}
protected void read(Map<Integer, ByteBuffer> tags) {
super.read(tags);
for (Iterator<Entry<Integer, ByteBuffer>> it = tags.entrySet().iterator(); it.hasNext();) {
Entry<Integer, ByteBuffer> entry = it.next();
ByteBuffer _bb = entry.getValue();
switch (entry.getKey()) {
case 0x3d0d:
emphasis = _bb.get();
break;
case 0x3d0f:
blockStartOffset = _bb.getShort();
break;
case 0x3d08:
auxBitsMode = _bb.get();
break;
case 0x3d10:
channelStatusMode = _bb;
break;
case 0x3d11:
fixedChannelStatusData = _bb;
break;
case 0x3d12:
userDataMode = _bb;
break;
case 0x3d13:
fixedUserData = _bb;
break;
default:
Logger.warn(String.format("Unknown tag [ " + ul + "]: %04x", entry.getKey()));
continue;
}
it.remove();
}
}
public byte getEmphasis() {
return emphasis;
}
public short getBlockStartOffset() {
return blockStartOffset;
}
public byte getAuxBitsMode() {
return auxBitsMode;
}
public ByteBuffer getChannelStatusMode() {
return channelStatusMode;
}
public ByteBuffer getFixedChannelStatusData() {
return fixedChannelStatusData;
}
public ByteBuffer getUserDataMode() {
return userDataMode;
}
public ByteBuffer getFixedUserData() {
return fixedUserData;
}
}