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
    • Constructor Detail

      • EditListBox

        public EditListBox()
    • Method Detail

      • _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