com.coremedia.iso.boxes
Class EditListBox
java.lang.Object
com.coremedia.iso.boxes.AbstractBox
com.coremedia.iso.boxes.AbstractFullBox
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
Methods inherited from class com.coremedia.iso.boxes.AbstractBox |
getBox, getDeadBytes, getHeader, getIsoFile, getParent, getSize, getType, getUserType, isParsed, parse, parseDetails, setDeadBytes, setParent, setUserType |
TYPE
public static final String TYPE
- See Also:
- Constant Field Values
EditListBox
public EditListBox()
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:
- 4 byte size
- 4 byte type
- (large length - 8 bytes)
- (user type - 16 bytes)
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.