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 CDCIEssenceDescriptor extends GenericPictureEssenceDescriptor { private int componentDepth; private int horizontalSubsampling; private int verticalSubsampling; private byte colorSiting; private byte reversedByteOrder; private short paddingBits; private int alphaSampleDepth; private int blackRefLevel; private int whiteReflevel; private int colorRange; public CDCIEssenceDescriptor(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 0x3301: componentDepth = _bb.getInt(); break; case 0x3302: horizontalSubsampling = _bb.getInt(); break; case 0x3308: verticalSubsampling = _bb.getInt(); break; case 0x3303: colorSiting = _bb.get(); break; case 0x330b: reversedByteOrder = _bb.get(); break; case 0x3307: paddingBits = _bb.getShort(); break; case 0x3309: alphaSampleDepth = _bb.getInt(); break; case 0x3304: blackRefLevel = _bb.getInt(); break; case 0x3305: whiteReflevel = _bb.getInt(); break; case 0x3306: colorRange = _bb.getInt(); break; default: Logger.warn(String.format("Unknown tag [ " + ul + "]: %04x", entry.getKey())); continue; } it.remove(); } } public int getComponentDepth() { return componentDepth; } public int getHorizontalSubsampling() { return horizontalSubsampling; } public int getVerticalSubsampling() { return verticalSubsampling; } public byte getColorSiting() { return colorSiting; } public byte getReversedByteOrder() { return reversedByteOrder; } public short getPaddingBits() { return paddingBits; } public int getAlphaSampleDepth() { return alphaSampleDepth; } public int getBlackRefLevel() { return blackRefLevel; } public int getWhiteReflevel() { return whiteReflevel; } public int getColorRange() { return colorRange; } }