Methods Summary |
---|
protected void | _parseDetails(java.nio.ByteBuffer content)
parseVersionAndFlags(content);
if (this.getVersion() != 1) {
throw new RuntimeException("SampleGroupDescriptionBox are only supported in version 1");
}
groupingType = IsoTypeReader.read4cc(content);
if (this.getVersion() == 1) {
defaultLength = l2i(IsoTypeReader.readUInt32(content));
}
long entryCount = IsoTypeReader.readUInt32(content);
while (entryCount-- > 0) {
int length = defaultLength;
if (this.getVersion() == 1) {
if (defaultLength == 0) {
descriptionLength = l2i(IsoTypeReader.readUInt32(content));
length = descriptionLength;
}
} else {
throw new RuntimeException("This should be implemented");
}
int finalPos = content.position() + length;
ByteBuffer parseMe = content.slice();
parseMe.limit(length);
groupEntries.add(parseGroupEntry(parseMe, groupingType));
content.position(finalPos);
}
|
public boolean | equals(java.lang.Object o)
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
SampleGroupDescriptionBox that = (SampleGroupDescriptionBox) o;
if (defaultLength != that.defaultLength) {
return false;
}
if (groupEntries != null ? !groupEntries.equals(that.groupEntries) : that.groupEntries != null) {
return false;
}
if (groupingType != null ? !groupingType.equals(that.groupingType) : that.groupingType != null) {
return false;
}
return true;
|
protected void | getContent(java.nio.ByteBuffer byteBuffer)
writeVersionAndFlags(byteBuffer);
byteBuffer.put(groupingType.getBytes());
if (this.getVersion() == 1) {
IsoTypeWriter.writeUInt32(byteBuffer, defaultLength);
}
IsoTypeWriter.writeUInt32(byteBuffer, this.groupEntries.size());
for (GroupEntry entry : groupEntries) {
if (this.getVersion() == 1 && defaultLength == 0) {
IsoTypeWriter.writeUInt32(byteBuffer, entry.get().limit());
}
byteBuffer.put(entry.get());
}
|
protected long | getContentSize()
long size = 8;
if (getVersion() == 1) {
size += 4;
}
size += 4; // entryCount
for (GroupEntry groupEntry : groupEntries) {
if (getVersion() == 1 && defaultLength == 0) {
size += 4;
}
size += groupEntry.size();
}
return size;
|
public int | getDefaultLength()
return defaultLength;
|
public java.util.List | getGroupEntries()
return groupEntries;
|
public java.lang.String | getGroupingType()
return groupingType;
|
public int | hashCode()
int result = groupingType != null ? groupingType.hashCode() : 0;
result = 31 * result + defaultLength;
result = 31 * result + (groupEntries != null ? groupEntries.hashCode() : 0);
return result;
|
private GroupEntry | parseGroupEntry(java.nio.ByteBuffer content, java.lang.String groupingType)
GroupEntry groupEntry;
if (RollRecoveryEntry.TYPE.equals(groupingType)) {
groupEntry = new RollRecoveryEntry();
} else if (RateShareEntry.TYPE.equals(groupingType)) {
groupEntry = new RateShareEntry();
} else if (CencSampleEncryptionInformationGroupEntry.TYPE.equals(groupingType)) {
groupEntry = new CencSampleEncryptionInformationGroupEntry();
} else if (VisualRandomAccessEntry.TYPE.equals(groupingType)) {
groupEntry = new VisualRandomAccessEntry();
} else if (TemporalLevelEntry.TYPE.equals(groupingType)) {
groupEntry = new TemporalLevelEntry();
} else {
groupEntry = new UnknownEntry();
}
groupEntry.parse(content);
return groupEntry;
|
public void | setDefaultLength(int defaultLength)
this.defaultLength = defaultLength;
|
public void | setGroupEntries(java.util.List groupEntries)
this.groupEntries = groupEntries;
|
public void | setGroupingType(java.lang.String groupingType)
this.groupingType = groupingType;
|
public java.lang.String | toString()
return "SampleGroupDescriptionBox{" +
"groupingType='" + groupingType + '\'" +
", defaultLength=" + defaultLength +
", groupEntries=" + groupEntries +
'}";
|