Class TimeToSampleBox

  • All Implemented Interfaces:
    Box, FullBox, ParsableBox

    public class TimeToSampleBox
    extends AbstractFullBox

    4cc = ""stts""

    This box contains a compact version of a table that allows indexing from decoding time to sample number. Other tables give sample sizes and pointers, from the sample number. Each entry in the table gives the number of consecutive samples with the same time delta, and the delta of those samples. By adding the deltas a complete time-to-sample map may be built.
    The Decoding Time to Sample Box contains decode time delta's: DT(n+1) = DT(n) + STTS(n) where STTS(n) is the (uncompressed) table entry for sample n.
    The sample entries are ordered by decoding time stamps; therefore the deltas are all non-negative.
    The DT axis has a zero origin; DT(i) = SUM(for j=0 to i-1 of delta(j)), and the sum of all deltas gives the length of the media in the track (not mapped to the overall timescale, and not considering any edit list).
    The Edit List Box provides the initial CT value if it is non-empty (non-zero).
    • Constructor Detail

      • TimeToSampleBox

        public TimeToSampleBox()
    • Method Detail

      • blowupTimeToSamples

        public static long[] blowupTimeToSamples​(List<TimeToSampleBox.Entry> entries)
        Decompresses the list of entries and returns the list of decoding times.
        Parameters:
        entries - compressed entries
        Returns:
        decoding time per sample
      • _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