org.mp4parser.boxes.iso14496.part15.TierInfoBox 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.support.AbstractBox;
import org.mp4parser.tools.IsoTypeReader;
import org.mp4parser.tools.IsoTypeWriter;
import java.nio.ByteBuffer;
public class TierInfoBox extends AbstractBox {
public static final String TYPE = "tiri";
int tierID;
int profileIndication;
int profile_compatibility;
int levelIndication;
int reserved1 = 0;
int visualWidth;
int visualHeight;
int discardable;
int constantFrameRate;
int reserved2 = 0;
int frameRate;
public TierInfoBox() {
super(TYPE);
}
@Override
protected long getContentSize() {
return 13;
}
@Override
protected void getContent(ByteBuffer byteBuffer) {
IsoTypeWriter.writeUInt16(byteBuffer, tierID);
IsoTypeWriter.writeUInt8(byteBuffer, profileIndication);
IsoTypeWriter.writeUInt8(byteBuffer, profile_compatibility);
IsoTypeWriter.writeUInt8(byteBuffer, levelIndication);
IsoTypeWriter.writeUInt8(byteBuffer, reserved1);
IsoTypeWriter.writeUInt16(byteBuffer, visualWidth);
IsoTypeWriter.writeUInt16(byteBuffer, visualHeight);
IsoTypeWriter.writeUInt8(byteBuffer, (discardable << 6) + (constantFrameRate << 4) + reserved2);
IsoTypeWriter.writeUInt16(byteBuffer, frameRate);
}
@Override
protected void _parseDetails(ByteBuffer content) {
tierID = IsoTypeReader.readUInt16(content);
profileIndication = IsoTypeReader.readUInt8(content);
profile_compatibility = IsoTypeReader.readUInt8(content);
levelIndication = IsoTypeReader.readUInt8(content);
reserved1 = IsoTypeReader.readUInt8(content);
visualWidth = IsoTypeReader.readUInt16(content);
visualHeight = IsoTypeReader.readUInt16(content);
int a = IsoTypeReader.readUInt8(content);
discardable = (a & 0xC0) >> 6;
constantFrameRate = (a & 0x30) >> 4;
reserved2 = a & 0xf;
frameRate = IsoTypeReader.readUInt16(content);
}
public int getTierID() {
return tierID;
}
public void setTierID(int tierID) {
this.tierID = tierID;
}
public int getProfileIndication() {
return profileIndication;
}
public void setProfileIndication(int profileIndication) {
this.profileIndication = profileIndication;
}
public int getProfile_compatibility() {
return profile_compatibility;
}
public void setProfile_compatibility(int profile_compatibility) {
this.profile_compatibility = profile_compatibility;
}
public int getLevelIndication() {
return levelIndication;
}
public void setLevelIndication(int levelIndication) {
this.levelIndication = levelIndication;
}
public int getReserved1() {
return reserved1;
}
public void setReserved1(int reserved1) {
this.reserved1 = reserved1;
}
public int getVisualWidth() {
return visualWidth;
}
public void setVisualWidth(int visualWidth) {
this.visualWidth = visualWidth;
}
public int getVisualHeight() {
return visualHeight;
}
public void setVisualHeight(int visualHeight) {
this.visualHeight = visualHeight;
}
public int getDiscardable() {
return discardable;
}
public void setDiscardable(int discardable) {
this.discardable = discardable;
}
public int getConstantFrameRate() {
return constantFrameRate;
}
public void setConstantFrameRate(int constantFrameRate) {
this.constantFrameRate = constantFrameRate;
}
public int getReserved2() {
return reserved2;
}
public void setReserved2(int reserved2) {
this.reserved2 = reserved2;
}
public int getFrameRate() {
return frameRate;
}
public void setFrameRate(int frameRate) {
this.frameRate = frameRate;
}
}