package org.jcodec.containers.mp4.boxes;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.List;
/**
* This class is part of JCodec ( www.jcodec.org ) This software is distributed
* under FreeBSD License
*
* @author The JCodec project
*
*/
public class EditListBox extends FullBox {
private List<Edit> edits;
public static String fourcc() {
return "elst";
}
public static EditListBox createEditListBox(List<Edit> edits) {
EditListBox elst = new EditListBox(new Header(fourcc()));
elst.edits = edits;
return elst;
}
public EditListBox(Header atom) {
super(atom);
}
public void parse(ByteBuffer input) {
super.parse(input);
edits = new ArrayList<Edit>();
long num = input.getInt();
for (int i = 0; i < num; i++) {
int duration = input.getInt();
int mediaTime = input.getInt();
float rate = input.getInt() / 65536f;
edits.add(new Edit(duration, mediaTime, rate));
}
}
protected void doWrite(ByteBuffer out) {
super.doWrite(out);
out.putInt(edits.size());
for (Edit edit : edits) {
out.putInt((int) edit.getDuration());
out.putInt((int) edit.getMediaTime());
out.putInt((int) (edit.getRate() * 65536));
}
}
public List<Edit> getEdits() {
return edits;
}
}