mirror of
https://github.com/axiomatic-systems/Bento4.git
synced 2026-01-26 16:28:24 +08:00
47 lines
1.4 KiB
Java
47 lines
1.4 KiB
Java
package com.axiosys.bento4;
|
|
|
|
import java.io.DataOutputStream;
|
|
import java.io.IOException;
|
|
import java.io.RandomAccessFile;
|
|
|
|
public class SampleEntry extends ContainerAtom {
|
|
private int dataReferenceIndex;
|
|
|
|
SampleEntry(int format, int size, RandomAccessFile source, AtomFactory atomFactory) throws IOException, InvalidFormatException {
|
|
super(format, size, false, source);
|
|
|
|
// read the fields before the children atoms
|
|
int fieldsSize = getFieldsSize();
|
|
readFields(source);
|
|
|
|
// read children atoms (ex: esds and maybe others)
|
|
readChildren(atomFactory, source, size-HEADER_SIZE-fieldsSize);
|
|
}
|
|
|
|
public void write(DataOutputStream stream) throws IOException {
|
|
// write the header
|
|
writeHeader(stream);
|
|
|
|
// write the fields
|
|
writeFields(stream);
|
|
|
|
// write the children atoms
|
|
writeChildren(stream);
|
|
}
|
|
|
|
protected int getFieldsSize() {
|
|
return 8;
|
|
}
|
|
|
|
protected void readFields(RandomAccessFile source) throws IOException {
|
|
source.skipBytes(6);
|
|
dataReferenceIndex = source.readUnsignedShort();
|
|
}
|
|
|
|
protected void writeFields(DataOutputStream stream) throws IOException {
|
|
byte[] reserved = new byte[] { 0,0,0,0,0,0 };
|
|
stream.write(reserved);
|
|
stream.writeShort(dataReferenceIndex);
|
|
}
|
|
}
|