public class CompositionTimeToSample extends AbstractFullBox
aligned(8) class CompositionOffsetBox extends FullBox(‘ctts’, version = 0, 0) { unsigned int(32) entry_count; int i; if (version==0) { for (i=0; i < entry_count; i++) { unsigned int(32) sample_count; unsigned int(32) sample_offset; } } else if (version == 1) { for (i=0; i < entry_count; i++) { unsigned int(32) sample_count; signed int(32) sample_offset; } } }
This box provides the offset between decoding time and composition time. In version 0 of this box the decoding time must be less than the composition time, and the offsets are expressed as unsigned numbers such that
CT(n) = DT(n) + CTTS(n) where CTTS(n) is the (uncompressed) table entry for sample n.
In version 1 of this box, the composition timeline and the decoding timeline are still derived from each other, but the offsets are signed. It is recommended that for the computed composition timestamps, there is exactly one with the value 0 (zero).
Modifier and Type | Class and Description |
---|---|
static class |
CompositionTimeToSample.Entry |
Modifier and Type | Field and Description |
---|---|
static String |
TYPE |
type
Constructor and Description |
---|
CompositionTimeToSample() |
Modifier and Type | Method and Description |
---|---|
void |
_parseDetails(ByteBuffer content)
Parse the box's fields and child boxes if any.
|
static int[] |
blowupCompositionTimes(List<CompositionTimeToSample.Entry> entries)
Decompresses the list of entries and returns the list of composition times.
|
protected void |
getContent(ByteBuffer byteBuffer)
Write the box's content into the given
ByteBuffer . |
protected long |
getContentSize()
Get the box's content size without its header.
|
List<CompositionTimeToSample.Entry> |
getEntries() |
void |
setEntries(List<CompositionTimeToSample.Entry> entries) |
getFlags, getVersion, parseVersionAndFlags, setFlags, setVersion, writeVersionAndFlags
getBox, getOffset, getParent, getPath, getSize, getType, getUserType, isParsed, parse, parseDetails, setParent
public static final String TYPE
protected long getContentSize()
AbstractBox
getContent(ByteBuffer)
writes.getContentSize
in class AbstractBox
AbstractBox.getContent(java.nio.ByteBuffer)
public List<CompositionTimeToSample.Entry> getEntries()
public void setEntries(List<CompositionTimeToSample.Entry> entries)
public void _parseDetails(ByteBuffer content)
AbstractBox
_parseDetails
in class AbstractBox
content
- the box's raw content beginning after the 4-cc field.protected void getContent(ByteBuffer byteBuffer)
AbstractBox
ByteBuffer
. This must include flags
and version in case of a full box. byteBuffer
has been initialized with
getSize()
bytes.getContent
in class AbstractBox
byteBuffer
- the sink for the box's contentpublic static int[] blowupCompositionTimes(List<CompositionTimeToSample.Entry> entries)
entries
- composition time to sample entries in compressed formCopyright © 2017. All rights reserved.