TrackRunBox.Entry entry = new TrackRunBox.Entry(); entry.setSampleSize(sampleSizes[i]); if (sampleFlagsRequired) { entry.setSampleFlags(sflags); entry.setSampleDuration(track.getSampleDurations()[l2i(startSample + i - 1)]); entry.setSampleCompositionTimeOffset(compositionTimeQueue[compositionTimeQueueIndex].getOffset()); if (--compositionTimeEntriesLeft == 0 && (compositionTimeQueue.length - compositionTimeQueueIndex) > 1) { compositionTimeQueueIndex++;
if (trun.isSampleDurationPresent()) { if (decodingTimeEntries.size() == 0 || decodingTimeEntries.get(decodingTimeEntries.size() - 1).getDelta() != entry.getSampleDuration()) { decodingTimeEntries.add(new TimeToSampleBox.Entry(1, entry.getSampleDuration())); } else { TimeToSampleBox.Entry e = decodingTimeEntries.get(decodingTimeEntries.size() - 1); compositionTimeEntries.get(compositionTimeEntries.size() - 1).getOffset() != entry.getSampleCompositionTimeOffset()) { compositionTimeEntries.add(new CompositionTimeToSample.Entry(1, l2i(entry.getSampleCompositionTimeOffset()))); } else { CompositionTimeToSample.Entry e = compositionTimeEntries.get(compositionTimeEntries.size() - 1); sampleFlags = entry.getSampleFlags(); } else { if (first && trun.isFirstSampleFlagsPresent()) {
for (TrackRunBox.Entry e : trackRunEntries) { if (sampleSizePresent) { size += e.getSampleSize(); } else { size += defaultSampleSize; for (int i = 0; i < (sampleIndexWithInTraf - previousTrunsSize); i++) { if (sampleSizePresent) { offset += trackRunEntries.get(i).getSampleSize(); } else { offset += defaultSampleSize; sampleSize = trackRunEntries.get(sampleIndexWithInTraf - previousTrunsSize).getSampleSize(); } else { sampleSize = defaultSampleSize;
log.info("Entry: {}", rec); if (trun.isSampleCompositionTimeOffsetPresent()) { CompositionTimeToSample.Entry ctts = new CompositionTimeToSample.Entry((int) trun.getSampleCount(), (int) rec.getSampleCompositionTimeOffset()); compositionTimes.add(ctts); sampleSizes.add(rec.getSampleSize()); if (trun.isSampleDurationPresent()) { videoSampleDuration += rec.getSampleDuration();
log.info("Entry: {}", rec); if (trun.isSampleCompositionTimeOffsetPresent()) { CompositionTimeToSample.Entry ctts = new CompositionTimeToSample.Entry((int) trun.getSampleCount(), (int) rec.getSampleCompositionTimeOffset()); compositionTimes.add(ctts); sampleSizes.add(rec.getSampleSize()); if (trun.isSampleDurationPresent()) { videoSampleDuration += rec.getSampleDuration();
if (trun.isSampleDurationPresent()) { if (decodingTimeEntries.size() == 0 || decodingTimeEntries.get(decodingTimeEntries.size() - 1).getDelta() != entry.getSampleDuration()) { decodingTimeEntries.add(new TimeToSampleBox.Entry(1, entry.getSampleDuration())); } else { TimeToSampleBox.Entry e = decodingTimeEntries.get(decodingTimeEntries.size() - 1); compositionTimeEntries.get(compositionTimeEntries.size() - 1).getOffset() != entry.getSampleCompositionTimeOffset()) { compositionTimeEntries.add(new CompositionTimeToSample.Entry(1, l2i(entry.getSampleCompositionTimeOffset()))); } else { CompositionTimeToSample.Entry e = compositionTimeEntries.get(compositionTimeEntries.size() - 1); sampleFlags = entry.getSampleFlags(); } else { if (first && trun.isFirstSampleFlagsPresent()) {
for (TrackRunBox.Entry e : trackRunEntries) { if (sampleSizePresent) { size += e.getSampleSize(); } else { size += defaultSampleSize; for (int i = 0; i < (sampleIndexWithInTraf - previousTrunsSize); i++) { if (sampleSizePresent) { offset += trackRunEntries.get(i).getSampleSize(); } else { offset += defaultSampleSize; sampleSize = trackRunEntries.get(sampleIndexWithInTraf - previousTrunsSize).getSampleSize(); } else { sampleSize = defaultSampleSize;
first = entry.getSampleFlags(); } else if (second == null) { second = entry.getSampleFlags(); } else { allFllowingSame &= second.equals(entry.getSampleFlags());
sf = trun.getFirstSampleFlags(); } else if (trun.isSampleFlagsPresent()) { sf = trunEntry.getSampleFlags(); } else { sf = trex.getDefaultSampleFlags(); i + 1, j + 1, k + 1)); duration += trunEntry.getSampleDuration();
TrackRunBox.Entry entry = new TrackRunBox.Entry(); entry.setSampleSize(sampleSizes[i]); if (sampleFlagsRequired) { entry.setSampleFlags(sflags); entry.setSampleDuration(track.getSampleDurations()[l2i(startSample + i - 1)]); entry.setSampleCompositionTimeOffset(compositionTimeQueue[compositionTimeQueueIndex].getOffset()); if (--compositionTimeEntriesLeft == 0 && (compositionTimeQueue.length - compositionTimeQueueIndex) > 1) { compositionTimeQueueIndex++;
TrackRunBox.Entry entry = new TrackRunBox.Entry(); entry.setSampleSize(sampleSizes[i]); if (sampleFlagsRequired) { entry.setSampleFlags(sflags); entry.setSampleDuration(track.getSampleDurations()[l2i(startSample + i - 1)]); entry.setSampleCompositionTimeOffset(compositionTimeQueue[compositionTimeQueueIndex].getOffset()); if (--compositionTimeEntriesLeft == 0 && (compositionTimeQueue.length - compositionTimeQueueIndex) > 1) { compositionTimeQueueIndex++;
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); long sampleCount = IsoTypeReader.readUInt32(content); if ((getFlags() & 0x1) == 1) { //dataOffsetPresent dataOffset = CastUtils.l2i(IsoTypeReader.readUInt32(content)); } else { dataOffset = -1; } if ((getFlags() & 0x4) == 0x4) { //firstSampleFlagsPresent firstSampleFlags = new SampleFlags(content); } for (int i = 0; i < sampleCount; i++) { Entry entry = new Entry(); if ((getFlags() & 0x100) == 0x100) { //sampleDurationPresent entry.sampleDuration = IsoTypeReader.readUInt32(content); } if ((getFlags() & 0x200) == 0x200) { //sampleSizePresent entry.sampleSize = IsoTypeReader.readUInt32(content); } if ((getFlags() & 0x400) == 0x400) { //sampleFlagsPresent entry.sampleFlags = new SampleFlags(content); } if ((getFlags() & 0x800) == 0x800) { //sampleCompositionTimeOffsetPresent entry.sampleCompositionTimeOffset = content.getInt(); } entries.add(entry); } }
public static SampleFlags getSampleFlags(int i, TrackRunBox trun, org.mp4parser.boxes.iso14496.part12.TrackExtendsBox trex) { return trun.isFirstSampleFlagsPresent() ? trun.getFirstSampleFlags() : (trun.isSampleFlagsPresent() ? trun.getEntries().get(i).getSampleFlags() : trex.getDefaultSampleFlags()); }
public static long[] getPtss(org.mp4parser.boxes.iso14496.part12.TrackRunBox trun) { long currentTime = 0; long[] ptss = new long[trun.getEntries().size()]; for (int j = 0; j < ptss.length; j++) { ptss[j] = currentTime + trun.getEntries().get(j).getSampleCompositionTimeOffset(); currentTime += trun.getEntries().get(j).getSampleDuration(); } return ptss; }
public static long getDuration(TrackRunBox trun) { long[] ptss = new long[trun.getEntries().size()]; long duration = 0; for (int j = 0; j < ptss.length; j++) { duration += trun.getEntries().get(j).getSampleDuration(); } return duration; }
public long[] getSampleCompositionTimeOffsets() { if (isSampleCompositionTimeOffsetPresent()) { long[] result = new long[entries.size()]; for (int i = 0; i < result.length; i++) { result[i] = entries.get(i).getSampleCompositionTimeOffset(); } return result; } return null; }
sf = trun.getFirstSampleFlags(); } else if (trun.isSampleFlagsPresent()) { sf = trunEntry.getSampleFlags(); } else { sf = trex.getDefaultSampleFlags(); i + 1, j + 1, k + 1)); duration += trunEntry.getSampleDuration();
TrackRunBox.Entry entry = new TrackRunBox.Entry(); entry.setSampleSize(streamingSample.getContent().remaining()); if (defaultSampleFlagsTrackExtension == null) { SampleFlagsSampleExtension sampleFlagsSampleExtension = streamingSample.getSampleExtension(SampleFlagsSampleExtension.class); sflags.setSampleDegradationPriority(sampleFlagsSampleExtension.getSampleDegradationPriority()); entry.setSampleFlags(sflags); entry.setSampleDuration(streamingSample.getDuration()); entry.setSampleCompositionTimeOffset(l2i(compositionTimeSampleExtension.getCompositionTimeOffset()));
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); long sampleCount = IsoTypeReader.readUInt32(content); if ((getFlags() & 0x1) == 1) { //dataOffsetPresent dataOffset = CastUtils.l2i(IsoTypeReader.readUInt32(content)); } else { dataOffset = -1; } if ((getFlags() & 0x4) == 0x4) { //firstSampleFlagsPresent firstSampleFlags = new SampleFlags(content); } for (int i = 0; i < sampleCount; i++) { Entry entry = new Entry(); if ((getFlags() & 0x100) == 0x100) { //sampleDurationPresent entry.sampleDuration = IsoTypeReader.readUInt32(content); } if ((getFlags() & 0x200) == 0x200) { //sampleSizePresent entry.sampleSize = IsoTypeReader.readUInt32(content); } if ((getFlags() & 0x400) == 0x400) { //sampleFlagsPresent entry.sampleFlags = new SampleFlags(content); } if ((getFlags() & 0x800) == 0x800) { //sampleCompositionTimeOffsetPresent entry.sampleCompositionTimeOffset = content.getInt(); } entries.add(entry); } }
public long[] getSampleCompositionTimeOffsets() { if (isSampleCompositionTimeOffsetPresent()) { long[] result = new long[entries.size()]; for (int i = 0; i < result.length; i++) { result[i] = entries.get(i).getSampleCompositionTimeOffset(); } return result; } return null; }