org.mp4parser.boxes.iso23009.part1.EventMessageBox 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, ...)
The newest version!
package org.mp4parser.boxes.iso23009.part1;
import org.mp4parser.support.AbstractFullBox;
import org.mp4parser.tools.IsoTypeReader;
import org.mp4parser.tools.IsoTypeWriter;
import org.mp4parser.tools.Utf8;
import java.nio.ByteBuffer;
/**
* The Event Message box ('emsg') provides signalling for generic events related to the media
* presentation time.
*/
public class EventMessageBox extends AbstractFullBox {
public static final String TYPE = "emsg";
String schemeIdUri;
String value;
long timescale;
long presentationTimeDelta;
long eventDuration;
long id;
byte[] messageData;
public EventMessageBox() {
super(TYPE);
}
@Override
protected void _parseDetails(ByteBuffer content) {
parseVersionAndFlags(content);
schemeIdUri = IsoTypeReader.readString(content);
value = IsoTypeReader.readString(content);
timescale = IsoTypeReader.readUInt32(content);
presentationTimeDelta = IsoTypeReader.readUInt32(content);
eventDuration = IsoTypeReader.readUInt32(content);
id = IsoTypeReader.readUInt32(content);
messageData = new byte[content.remaining()];
content.get(messageData);
}
@Override
protected void getContent(ByteBuffer byteBuffer) {
writeVersionAndFlags(byteBuffer);
IsoTypeWriter.writeUtf8String(byteBuffer, schemeIdUri);
IsoTypeWriter.writeUtf8String(byteBuffer, value);
IsoTypeWriter.writeUInt32(byteBuffer, timescale);
IsoTypeWriter.writeUInt32(byteBuffer, presentationTimeDelta);
IsoTypeWriter.writeUInt32(byteBuffer, eventDuration);
IsoTypeWriter.writeUInt32(byteBuffer, id);
byteBuffer.put(messageData);
}
@Override
protected long getContentSize() {
return 22 + Utf8.utf8StringLengthInBytes(schemeIdUri) + Utf8.utf8StringLengthInBytes(value) + messageData.length;
}
public String getSchemeIdUri() {
return schemeIdUri;
}
public void setSchemeIdUri(String schemeIdUri) {
this.schemeIdUri = schemeIdUri;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public long getTimescale() {
return timescale;
}
public void setTimescale(long timescale) {
this.timescale = timescale;
}
public long getPresentationTimeDelta() {
return presentationTimeDelta;
}
public void setPresentationTimeDelta(long presentationTimeDelta) {
this.presentationTimeDelta = presentationTimeDelta;
}
public long getEventDuration() {
return eventDuration;
}
public void setEventDuration(long eventDuration) {
this.eventDuration = eventDuration;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public byte[] getMessageData() {
return messageData;
}
public void setMessageData(byte[] messageData) {
this.messageData = messageData;
}
}