package org.jcodec.containers.mp4.boxes;
import java.nio.ByteBuffer;
/**
* This class is part of JCodec ( www.jcodec.org )
* This software is distributed under FreeBSD License
*
* @author Jay Codec
*
*/
public class SampleSizesBox extends FullBox {
private int defaultSize;
private int count;
private int[] sizes;
public static String fourcc() {
return "stsz";
}
public SampleSizesBox(int defaultSize, int count) {
this();
this.defaultSize = defaultSize;
this.count = count;
}
public SampleSizesBox(int[] sizes) {
this();
this.sizes = sizes;
}
public SampleSizesBox() {
super(new Header(fourcc()));
}
public void parse(ByteBuffer input) {
super.parse(input);
defaultSize = input.getInt();
count = input.getInt();
if (defaultSize == 0) {
sizes = new int[count];
for (int i = 0; i < count; i++) {
sizes[i] = input.getInt();
}
}
}
public int getDefaultSize() {
return defaultSize;
}
public int[] getSizes() {
return sizes;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
@Override
public void doWrite(ByteBuffer out) {
super.doWrite(out);
out.putInt((int) defaultSize);
if (defaultSize == 0) {
out.putInt(sizes.length);
for (long size : sizes) {
out.putInt((int) size);
}
} else {
out.putInt((int)count);
}
}
}