@Override protected long getContentSize() { long entries = 8 + ((4 + 2) * entryCount); int subsampleEntries = 0; for (SampleEntry sampleEntry : this.entries) { subsampleEntries += sampleEntry.getSubsampleCount() * (((getVersion() == 1) ? 4 : 2) + 1 + 1 + 4); } return entries + subsampleEntries; }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); long entryCount = IsoTypeReader.readUInt32(content); for (int i = 0; i < entryCount; i++) { SubSampleEntry SubSampleEntry = new SubSampleEntry(); SubSampleEntry.setSampleDelta(IsoTypeReader.readUInt32(content)); int subsampleCount = IsoTypeReader.readUInt16(content); for (int j = 0; j < subsampleCount; j++) { SubSampleEntry.SubsampleEntry subsampleEntry = new SubSampleEntry.SubsampleEntry(); subsampleEntry.setSubsampleSize(getVersion() == 1 ? IsoTypeReader.readUInt32(content) : IsoTypeReader.readUInt16(content)); subsampleEntry.setSubsamplePriority(IsoTypeReader.readUInt8(content)); subsampleEntry.setDiscardable(IsoTypeReader.readUInt8(content)); subsampleEntry.setReserved(IsoTypeReader.readUInt32(content)); SubSampleEntry.getSubsampleEntries().add(subsampleEntry); } entries.add(SubSampleEntry); } }
@Override protected void getContent(ByteBuffer byteBuffer) { writeVersionAndFlags(byteBuffer); IsoTypeWriter.writeUInt32(byteBuffer, entries.size()); for (SubSampleEntry subSampleEntry : entries) { IsoTypeWriter.writeUInt32(byteBuffer, subSampleEntry.getSampleDelta()); IsoTypeWriter.writeUInt16(byteBuffer, subSampleEntry.getSubsampleCount()); List<SubSampleEntry.SubsampleEntry> subsampleEntries = subSampleEntry.getSubsampleEntries(); for (SubSampleEntry.SubsampleEntry subsampleEntry : subsampleEntries) { if (getVersion() == 1) { IsoTypeWriter.writeUInt32(byteBuffer, subsampleEntry.getSubsampleSize()); } else { IsoTypeWriter.writeUInt16(byteBuffer, l2i(subsampleEntry.getSubsampleSize())); } IsoTypeWriter.writeUInt8(byteBuffer, subsampleEntry.getSubsamplePriority()); IsoTypeWriter.writeUInt8(byteBuffer, subsampleEntry.getDiscardable()); IsoTypeWriter.writeUInt32(byteBuffer, subsampleEntry.getReserved()); } } }
List<SubSampleInformationBox> subss = Path.getPaths(((Box) trackBox.getParent()).getParent(), "/moof/traf/subs"); if (subss.size() > 0) { subSampleInformationBox = new SubSampleInformationBox(); if (subs != null) { long difFromLastFragment = sampleNumber - lastSubsSample - 1; for (SubSampleInformationBox.SubSampleEntry subSampleEntry : subs.getEntries()) { SubSampleInformationBox.SubSampleEntry se = new SubSampleInformationBox.SubSampleEntry(); se.getSubsampleEntries().addAll(subSampleEntry.getSubsampleEntries()); se.setSampleDelta(subSampleEntry.getSampleDelta()); subSampleInformationBox.getEntries().add(se);
final Document ttml = ttmls.get(sampleNo); SubSampleInformationBox.SubSampleEntry subSampleEntry = new SubSampleInformationBox.SubSampleEntry(); subSampleInformationBox.getEntries().add(subSampleEntry); subSampleEntry.setSampleDelta(1); sampleDurations[sampleNo] = extractDuration(ttml);
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); entryCount = IsoTypeReader.readUInt32(content); for (int i = 0; i < entryCount; i++) { SampleEntry sampleEntry = new SampleEntry(); sampleEntry.setSampleDelta(IsoTypeReader.readUInt32(content)); int subsampleCount = IsoTypeReader.readUInt16(content); for (int j = 0; j < subsampleCount; j++) { SampleEntry.SubsampleEntry subsampleEntry = new SampleEntry.SubsampleEntry(); subsampleEntry.setSubsampleSize(getVersion() == 1 ? IsoTypeReader.readUInt32(content) : IsoTypeReader.readUInt16(content)); subsampleEntry.setSubsamplePriority(IsoTypeReader.readUInt8(content)); subsampleEntry.setDiscardable(IsoTypeReader.readUInt8(content)); subsampleEntry.setReserved(IsoTypeReader.readUInt32(content)); sampleEntry.addSubsampleEntry(subsampleEntry); } entries.add(sampleEntry); } }
@Override protected void getContent(ByteBuffer byteBuffer) { writeVersionAndFlags(byteBuffer); IsoTypeWriter.writeUInt32(byteBuffer, entries.size()); for (SampleEntry sampleEntry : entries) { IsoTypeWriter.writeUInt32(byteBuffer, sampleEntry.getSampleDelta()); IsoTypeWriter.writeUInt16(byteBuffer, sampleEntry.getSubsampleCount()); List<SampleEntry.SubsampleEntry> subsampleEntries = sampleEntry.getSubsampleEntries(); for (SampleEntry.SubsampleEntry subsampleEntry : subsampleEntries) { if (getVersion() == 1) { IsoTypeWriter.writeUInt32(byteBuffer, subsampleEntry.getSubsampleSize()); } else { IsoTypeWriter.writeUInt16(byteBuffer, l2i(subsampleEntry.getSubsampleSize())); } IsoTypeWriter.writeUInt8(byteBuffer, subsampleEntry.getSubsamplePriority()); IsoTypeWriter.writeUInt8(byteBuffer, subsampleEntry.getDiscardable()); IsoTypeWriter.writeUInt32(byteBuffer, subsampleEntry.getReserved()); } } }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); entryCount = IsoTypeReader.readUInt32(content); for (int i = 0; i < entryCount; i++) { SampleEntry sampleEntry = new SampleEntry(); sampleEntry.setSampleDelta(IsoTypeReader.readUInt32(content)); int subsampleCount = IsoTypeReader.readUInt16(content); for (int j = 0; j < subsampleCount; j++) { SampleEntry.SubsampleEntry subsampleEntry = new SampleEntry.SubsampleEntry(); subsampleEntry.setSubsampleSize(getVersion() == 1 ? IsoTypeReader.readUInt32(content) : IsoTypeReader.readUInt16(content)); subsampleEntry.setSubsamplePriority(IsoTypeReader.readUInt8(content)); subsampleEntry.setDiscardable(IsoTypeReader.readUInt8(content)); subsampleEntry.setReserved(IsoTypeReader.readUInt32(content)); sampleEntry.addSubsampleEntry(subsampleEntry); } entries.add(sampleEntry); } }
@Override protected void getContent(ByteBuffer byteBuffer) { writeVersionAndFlags(byteBuffer); IsoTypeWriter.writeUInt32(byteBuffer, entries.size()); for (SampleEntry sampleEntry : entries) { IsoTypeWriter.writeUInt32(byteBuffer, sampleEntry.getSampleDelta()); IsoTypeWriter.writeUInt16(byteBuffer, sampleEntry.getSubsampleCount()); List<SampleEntry.SubsampleEntry> subsampleEntries = sampleEntry.getSubsampleEntries(); for (SampleEntry.SubsampleEntry subsampleEntry : subsampleEntries) { if (getVersion() == 1) { IsoTypeWriter.writeUInt32(byteBuffer, subsampleEntry.getSubsampleSize()); } else { IsoTypeWriter.writeUInt16(byteBuffer, l2i(subsampleEntry.getSubsampleSize())); } IsoTypeWriter.writeUInt8(byteBuffer, subsampleEntry.getSubsamplePriority()); IsoTypeWriter.writeUInt8(byteBuffer, subsampleEntry.getDiscardable()); IsoTypeWriter.writeUInt32(byteBuffer, subsampleEntry.getReserved()); } } }
@Override protected long getContentSize() { long entries = 8 + ((4 + 2) * entryCount); int subsampleEntries = 0; for (SampleEntry sampleEntry : this.entries) { subsampleEntries += sampleEntry.getSubsampleCount() * (((getVersion() == 1) ? 4 : 2) + 1 + 1 + 4); } return entries + subsampleEntries; }
@Override protected long getContentSize() { long size = 8; for (SubSampleEntry entry : entries) { size += 4; size += 2; for (int j = 0; j < entry.getSubsampleEntries().size(); j++) { if (getVersion() == 1) { size += 4; } else { size += 2; } size += 2; size += 4; } } return size; }