Class EditListBox

All Implemented Interfaces:
Box, FullBox, ParsableBox

public class EditListBox extends AbstractFullBox

4cc = ""elst""

 Box Type  : 'elst'
 Container: EditBox('edts')
 Mandatory: No
 Quantity  : Zero or one

This box contains an explicit timeline map. Each entry defines part of the track time-line: by mapping part of the media time-line, or by indicating 'empty' time, or by defining a 'dwell', where a single time-point in the media is held for a period.

Note that edits are not restricted to fall on sample times. This means that when entering an edit, it can be necessary to (a) back up to a sync point, and pre-roll from there and then (b) be careful about the duration of the first sample - it might have been truncated if the edit enters it during its normal duration. If this is audio, that frame might need to be decoded, and then the final slicing done. Likewise, the duration of the last sample in an edit might need slicing.

Starting offsets for tracks (streams) are represented by an initial empty edit. For example, to play a track from its start for 30 seconds, but at 10 seconds into the presentation, we have the following edit list:

  • Entry-count = 2
  • Segment-duration = 10 seconds
  • Media-Time = -1
  • Media-Rate = 1
  • Segment-duration = 30 seconds (could be the length of the whole track)
  • Media-Time = 0 seconds
  • Media-Rate = 1
  • Field Details

  • Constructor Details

    • EditListBox

      public EditListBox()
  • Method Details

    • getEntries

      public List<EditListBox.Entry> getEntries()
    • setEntries

      public void setEntries(List<EditListBox.Entry> entries)
    • 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:
    • _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
    • toString

      public String toString()
      Overrides:
      toString in class Object