diff options
Diffstat (limited to 'isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/CompositionShiftLeastGreatestAtom.java.svn-base')
-rw-r--r-- | isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/CompositionShiftLeastGreatestAtom.java.svn-base | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/CompositionShiftLeastGreatestAtom.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/CompositionShiftLeastGreatestAtom.java.svn-base new file mode 100644 index 0000000..3534b7f --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/CompositionShiftLeastGreatestAtom.java.svn-base @@ -0,0 +1,101 @@ +package com.coremedia.iso.boxes; + +import com.googlecode.mp4parser.AbstractFullBox; + +import java.nio.ByteBuffer; + +/** + * The optional composition shift least greatest atom summarizes the calculated + * minimum and maximum offsets between decode and composition time, as well as + * the start and end times, for all samples. This allows a reader to determine + * the minimum required time for decode to obtain proper presentation order without + * needing to scan the sample table for the range of offsets. The type of the + * composition shift least greatest atom is ‘cslg’. + */ +public class CompositionShiftLeastGreatestAtom extends AbstractFullBox { + public CompositionShiftLeastGreatestAtom() { + super("cslg"); + } + + // A 32-bit unsigned integer that specifies the calculated value. + int compositionOffsetToDisplayOffsetShift; + + // A 32-bit signed integer that specifies the calculated value. + int leastDisplayOffset; + + // A 32-bit signed integer that specifies the calculated value. + int greatestDisplayOffset; + + //A 32-bit signed integer that specifies the calculated value. + int displayStartTime; + + //A 32-bit signed integer that specifies the calculated value. + int displayEndTime; + + + @Override + protected long getContentSize() { + return 24; + } + + @Override + public void _parseDetails(ByteBuffer content) { + parseVersionAndFlags(content); + compositionOffsetToDisplayOffsetShift = content.getInt(); + leastDisplayOffset = content.getInt(); + greatestDisplayOffset = content.getInt(); + displayStartTime = content.getInt(); + displayEndTime = content.getInt(); + } + + @Override + protected void getContent(ByteBuffer byteBuffer) { + writeVersionAndFlags(byteBuffer); + byteBuffer.putInt(compositionOffsetToDisplayOffsetShift); + byteBuffer.putInt(leastDisplayOffset); + byteBuffer.putInt(greatestDisplayOffset); + byteBuffer.putInt(displayStartTime); + byteBuffer.putInt(displayEndTime); + } + + + public int getCompositionOffsetToDisplayOffsetShift() { + return compositionOffsetToDisplayOffsetShift; + } + + public void setCompositionOffsetToDisplayOffsetShift(int compositionOffsetToDisplayOffsetShift) { + this.compositionOffsetToDisplayOffsetShift = compositionOffsetToDisplayOffsetShift; + } + + public int getLeastDisplayOffset() { + return leastDisplayOffset; + } + + public void setLeastDisplayOffset(int leastDisplayOffset) { + this.leastDisplayOffset = leastDisplayOffset; + } + + public int getGreatestDisplayOffset() { + return greatestDisplayOffset; + } + + public void setGreatestDisplayOffset(int greatestDisplayOffset) { + this.greatestDisplayOffset = greatestDisplayOffset; + } + + public int getDisplayStartTime() { + return displayStartTime; + } + + public void setDisplayStartTime(int displayStartTime) { + this.displayStartTime = displayStartTime; + } + + public int getDisplayEndTime() { + return displayEndTime; + } + + public void setDisplayEndTime(int displayEndTime) { + this.displayEndTime = displayEndTime; + } +} |