com.coremedia.iso.boxes
Class EditListBox

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

public class EditListBox
extends AbstractFullBox

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

  • Nested Class Summary
    static class EditListBox.Entry
               
     
    Field Summary
    static String TYPE
               
     
    Fields inherited from class com.coremedia.iso.boxes.AbstractBox
    deadBytes, type
     
    Constructor Summary
    EditListBox()
               
     
    Method Summary
     void _parseDetails(ByteBuffer content)
              Implement the actual parsing of the box's fields here.
    protected  void getContent(ByteBuffer bb)
              Writes the box's content into the given ByteBuffer.
    protected  long getContentSize()
              Gets the box's content size.
     List<EditListBox.Entry> getEntries()
               
     void setEntries(List<EditListBox.Entry> entries)
               
     String toString()
               
     
    Methods inherited from class com.coremedia.iso.boxes.AbstractFullBox
    getFlags, getVersion, parseVersionAndFlags, setFlags, setVersion, writeVersionAndFlags
     
    Methods inherited from class com.coremedia.iso.boxes.AbstractBox
    getBox, getDeadBytes, getHeader, getIsoFile, getParent, getSize, getType, getUserType, isParsed, parse, parseDetails, setDeadBytes, setParent, setUserType
     
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, 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

    EditListBox

    public EditListBox()
    Method Detail

    getEntries

    public List<EditListBox.Entry> getEntries()

    setEntries

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

    getContentSize

    protected long getContentSize()
    Description copied from class: AbstractBox
    Gets the box's content size. This excludes all header fields:

    Flags and version of a full box need to be taken into account.

    Specified by:
    getContentSize in class AbstractBox
    Returns:
    Gets the box's content size in bytes

    _parseDetails

    public void _parseDetails(ByteBuffer content)
    Description copied from class: AbstractBox
    Implement the actual parsing of the box's fields here. External classes will always call AbstractBox.parseDetails() which encapsulates the call to this method with some safeguards.

    Specified by:
    _parseDetails in class AbstractBox

    getContent

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

    Specified by:
    getContent in class AbstractBox
    Parameters:
    bb - the box's content-sink.
    Throws:
    IOException - in case of an exception in the underlying OutputStream.

    toString

    public String toString()
    Overrides:
    toString in class Object


    Copyright © 2012. All Rights Reserved.