com.coremedia.iso.boxes
Class CompositionTimeToSample

java.lang.Object
  extended by com.googlecode.mp4parser.AbstractBox
      extended by com.googlecode.mp4parser.AbstractFullBox
          extended by com.coremedia.iso.boxes.CompositionTimeToSample
All Implemented Interfaces:
Box, FullBox

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).


Nested Class Summary
static class CompositionTimeToSample.Entry
           
 
Field Summary
static String TYPE
           
 
Fields inherited from class com.googlecode.mp4parser.AbstractBox
type
 
Constructor Summary
CompositionTimeToSample()
           
 
Method Summary
 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)
           
 
Methods inherited from class com.googlecode.mp4parser.AbstractFullBox
getFlags, getVersion, parseVersionAndFlags, setFlags, setVersion, writeVersionAndFlags
 
Methods inherited from class com.googlecode.mp4parser.AbstractBox
getBox, getIsoFile, getParent, getSize, getType, getUserType, isParsed, parse, setDeadBytes, setParent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.coremedia.iso.boxes.Box
getBox, getParent, getSize, getType, parse, setParent
 

Field Detail

TYPE

public static final String TYPE
See Also:
Constant Field Values
Constructor Detail

CompositionTimeToSample

public CompositionTimeToSample()
Method Detail

getContentSize

protected long getContentSize()
Description copied from class: AbstractBox
Get the box's content size without its header. This must be the exact number of bytes that getContent(ByteBuffer) writes.

Specified by:
getContentSize in class AbstractBox
Returns:
Gets the box's content size in bytes
See Also:
AbstractBox.getContent(java.nio.ByteBuffer)

getEntries

public List<CompositionTimeToSample.Entry> getEntries()

setEntries

public void setEntries(List<CompositionTimeToSample.Entry> entries)

_parseDetails

public void _parseDetails(ByteBuffer content)
Description copied from class: AbstractBox
Parse the box's fields and child boxes if any.

Specified by:
_parseDetails in class AbstractBox
Parameters:
content - the box's raw content beginning after the 4-cc field.

getContent

protected void getContent(ByteBuffer byteBuffer)
Description copied from class: AbstractBox
Write the box's content into the given ByteBuffer. This must include flags and version in case of a full box. byteBuffer has been initialized with getSize() bytes.

Specified by:
getContent in class AbstractBox
Parameters:
byteBuffer - the sink for the box's content

blowupCompositionTimes

public static int[] blowupCompositionTimes(List<CompositionTimeToSample.Entry> entries)
Decompresses the list of entries and returns the list of composition times.

Returns:
decoding time per sample


Copyright © 2012. All Rights Reserved.