org.mp4parser.boxes.iso14496.part15.SyncSampleEntry Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of isoparser Show documentation
Show all versions of isoparser Show documentation
A generic parser and writer for all ISO 14496 based files (MP4, Quicktime, DCF, PDCF, ...)
package org.mp4parser.boxes.iso14496.part15;
import org.mp4parser.boxes.samplegrouping.GroupEntry;
import org.mp4parser.tools.IsoTypeReader;
import org.mp4parser.tools.IsoTypeWriter;
import java.nio.ByteBuffer;
/**
* A sync sample sample group entry identifies samples containing a sync sample of a specific type.
*/
public class SyncSampleEntry extends GroupEntry {
public static final String TYPE = "sync";
int reserved;
int nalUnitType;
@Override
public void parse(ByteBuffer byteBuffer) {
int a = IsoTypeReader.readUInt8(byteBuffer);
reserved = (a & 0xC0) >> 6;
nalUnitType = a & 0x3F;
}
@Override
public ByteBuffer get() {
ByteBuffer b = ByteBuffer.allocate(1);
IsoTypeWriter.writeUInt8(b, (nalUnitType + (reserved << 6)));
return (ByteBuffer) b.rewind();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
SyncSampleEntry that = (SyncSampleEntry) o;
if (nalUnitType != that.nalUnitType) return false;
if (reserved != that.reserved) return false;
return true;
}
@Override
public int hashCode() {
int result = reserved;
result = 31 * result + nalUnitType;
return result;
}
public int getReserved() {
return reserved;
}
public void setReserved(int reserved) {
this.reserved = reserved;
}
public int getNalUnitType() {
return nalUnitType;
}
public void setNalUnitType(int nalUnitType) {
this.nalUnitType = nalUnitType;
}
@Override
public String getType() {
return TYPE;
}
@Override
public String toString() {
return "SyncSampleEntry{" +
"reserved=" + reserved +
", nalUnitType=" + nalUnitType +
'}';
}
}