EditListBoxpublic class EditListBox extends com.googlecode.mp4parser.AbstractFullBox
Box Type : 'elst'
Container: {@link 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 |
Fields Summary |
---|
private List | entries | public static final String | TYPE |
Constructors Summary |
---|
public EditListBox()
super(TYPE);
|
Methods Summary |
---|
public void | _parseDetails(java.nio.ByteBuffer content)
parseVersionAndFlags(content);
int entryCount = l2i(IsoTypeReader.readUInt32(content));
entries = new LinkedList<Entry>();
for (int i = 0; i < entryCount; i++) {
entries.add(new Entry(this, content));
}
| protected void | getContent(java.nio.ByteBuffer byteBuffer)
writeVersionAndFlags(byteBuffer);
IsoTypeWriter.writeUInt32(byteBuffer, entries.size());
for (Entry entry : entries) {
entry.getContent(byteBuffer);
}
| protected long | getContentSize()
long contentSize = 8;
if (getVersion() == 1) {
contentSize += entries.size() * 20;
} else {
contentSize += entries.size() * 12;
}
return contentSize;
| public java.util.List | getEntries()
return entries;
| public void | setEntries(java.util.List entries)
this.entries = entries;
| public java.lang.String | toString()
return "EditListBox{" +
"entries=" + entries +
'}";
|
|