package com.coremedia.iso.boxes.sampleentry;
import com.coremedia.iso.BoxParser;
import com.coremedia.iso.IsoBufferWrapper;
import com.coremedia.iso.IsoOutputStream;
import com.coremedia.iso.boxes.Box;
import com.coremedia.iso.boxes.ContainerBox;
import java.io.IOException;
import java.util.Arrays;
public class MpegSampleEntry extends SampleEntry implements ContainerBox {
public MpegSampleEntry(byte[] type) {
super(type);
}
@Override
public void parse(IsoBufferWrapper in, long size, BoxParser boxParser, Box lastMovieFragmentBox) throws IOException {
super.parse(in, size, boxParser, lastMovieFragmentBox);
while (size > 8) {
Box b = boxParser.parseBox(in, this, lastMovieFragmentBox);
boxes.add(b);
size -= b.getSize();
}
}
@Override
protected long getContentSize() {
long contentSize = 8;
for (Box boxe : boxes) {
contentSize += boxe.getSize();
}
return contentSize;
}
public String toString() {
return "MpegSampleEntry" + Arrays.asList(getBoxes());
}
@Override
protected void getContent(IsoOutputStream isos) throws IOException {
isos.write(new byte[6]);
isos.writeUInt16(getDataReferenceIndex());
for (Box boxe : boxes) {
boxe.getBox(isos);
}
}
}