public static CompositionOffsetsBox createCompositionOffsetsBox(Entry[] entries) { CompositionOffsetsBox ctts = new CompositionOffsetsBox(new Header(fourcc())); ctts.entries = entries; return ctts; }
public CompositionOffsetsBox(Entry[] entries) { super(new Header(fourcc())); this.entries = entries; }
public FramesMP4DemuxerTrack(MovieBox mov, TrakBox trak, SeekableByteChannel input) { super(trak); this.input = input; this.movie = mov; SampleSizesBox stsz = findFirst(trak, SampleSizesBox.class, "mdia", "minf", "stbl", "stsz"); SyncSamplesBox stss = Box.findFirst(trak, SyncSamplesBox.class, "mdia", "minf", "stbl", "stss"); SyncSamplesBox stps = Box.findFirst(trak, SyncSamplesBox.class, "mdia", "minf", "stbl", "stps"); CompositionOffsetsBox ctts = Box.findFirst(trak, CompositionOffsetsBox.class, "mdia", "minf", "stbl", "ctts"); compOffsets = ctts == null ? null : ctts.getEntries(); if (stss != null) { syncSamples = stss.getSyncSamples(); } if(stps != null) { partialSync = stps.getSyncSamples(); } sizes = stsz.getSizes(); maxSize = stsz.getMaxSize(); }
private void putCompositionOffsets(NodeBox stbl) { if (compositionOffsets.size() > 0) { compositionOffsets.add(new Entry(lastCompositionSamples, lastCompositionOffset)); int min = minOffset(compositionOffsets); if (min > 0) { for (Entry entry : compositionOffsets) { entry.offset -= min; } } Entry first = compositionOffsets.get(0); if (first.getOffset() > 0) { if (edits == null) { edits = new ArrayList<Edit>(); edits.add(new Edit(trackTotalDuration, first.getOffset(), 1.0f)); } else { for (Edit edit : edits) { edit.setMediaTime(edit.getMediaTime() + first.getOffset()); } } } stbl.add(new CompositionOffsetsBox(compositionOffsets.toArray(new Entry[0]))); } }
private void putCompositionOffsets(NodeBox stbl) { if (compositionOffsets.size() > 0) { compositionOffsets.add(new LongEntry(lastCompositionSamples, lastCompositionOffset)); long min = minLongOffset(compositionOffsets); if (min > 0) { for (LongEntry entry : compositionOffsets) { entry.offset -= min; } } LongEntry first = compositionOffsets.get(0); if (first.getOffset() > 0) { if (edits == null) { edits = new ArrayList<Edit>(); edits.add(new Edit(trackTotalDuration, first.getOffset(), 1.0f)); } else { for (Edit edit : edits) { edit.setMediaTime(edit.getMediaTime() + first.getOffset()); } } } Entry[] intEntries = new Entry[compositionOffsets.size()]; for (int i = 0; i < compositionOffsets.size(); i++) { LongEntry longEntry = compositionOffsets.get(i); intEntries[i] = new Entry(checkedCast(longEntry.count), checkedCast(longEntry.offset)); } stbl.add(CompositionOffsetsBox.createCompositionOffsetsBox(intEntries)); } }
public CompositionOffsetsBox(Entry[] entries) { super(new Header(fourcc())); this.entries = entries; }
public FramesMP4DemuxerTrack(MovieBox mov, TrakBox trak, SeekableByteChannel input) { super(trak); this.input = input; this.movie = mov; SampleSizesBox stsz = findFirst(trak, SampleSizesBox.class, "mdia", "minf", "stbl", "stsz"); SyncSamplesBox stss = Box.findFirst(trak, SyncSamplesBox.class, "mdia", "minf", "stbl", "stss"); SyncSamplesBox stps = Box.findFirst(trak, SyncSamplesBox.class, "mdia", "minf", "stbl", "stps"); CompositionOffsetsBox ctts = Box.findFirst(trak, CompositionOffsetsBox.class, "mdia", "minf", "stbl", "ctts"); compOffsets = ctts == null ? null : ctts.getEntries(); if (stss != null) { syncSamples = stss.getSyncSamples(); } if(stps != null) { partialSync = stps.getSyncSamples(); } sizes = stsz.getSizes(); maxSize = stsz.getMaxSize(); }
private void putCompositionOffsets(NodeBox stbl) { if (compositionOffsets.size() > 0) { compositionOffsets.add(new Entry(lastCompositionSamples, lastCompositionOffset)); int min = minOffset(compositionOffsets); if (min > 0) { for (Entry entry : compositionOffsets) { entry.offset -= min; } } Entry first = compositionOffsets.get(0); if (first.getOffset() > 0) { if (edits == null) { edits = new ArrayList<Edit>(); edits.add(new Edit(trackTotalDuration, first.getOffset(), 1.0f)); } else { for (Edit edit : edits) { edit.setMediaTime(edit.getMediaTime() + first.getOffset()); } } } stbl.add(new CompositionOffsetsBox(compositionOffsets.toArray(new Entry[0]))); } }
public CompositionOffsetsBox() { super(new Header(fourcc())); }
public MP4DemuxerTrack(MovieBox mov, TrakBox trak, SeekableByteChannel input) { super(trak); this.input = input; this.movie = mov; SampleSizesBox stsz = NodeBox.findFirstPath(trak, SampleSizesBox.class, Box.path("mdia.minf.stbl.stsz")); SyncSamplesBox stss = NodeBox.findFirstPath(trak, SyncSamplesBox.class, Box.path("mdia.minf.stbl.stss")); SyncSamplesBox stps = NodeBox.findFirstPath(trak, SyncSamplesBox.class, Box.path("mdia.minf.stbl.stps")); CompositionOffsetsBox ctts = NodeBox.findFirstPath(trak, CompositionOffsetsBox.class, Box.path("mdia.minf.stbl.ctts")); compOffsets = ctts == null ? null : ctts.getEntries(); if (stss != null) { syncSamples = stss.getSyncSamples(); } if (stps != null) { partialSync = stps.getSyncSamples(); } sizes = stsz.getSizes(); }
public CompositionOffsetsBox() { super(new Header(fourcc())); }
mappings.put(TimecodeMediaInfoBox.fourcc(), TimecodeMediaInfoBox.class); mappings.put("udta", NodeBox.class); mappings.put(CompositionOffsetsBox.fourcc(), CompositionOffsetsBox.class); mappings.put(NameBox.fourcc(), NameBox.class);
mappings.put(TimecodeMediaInfoBox.fourcc(), TimecodeMediaInfoBox.class); mappings.put("udta", NodeBox.class); mappings.put(CompositionOffsetsBox.fourcc(), CompositionOffsetsBox.class); mappings.put(NameBox.fourcc(), NameBox.class);
mappings.put(TimecodeMediaInfoBox.fourcc(), TimecodeMediaInfoBox.class); mappings.put(UdtaBox.fourcc(), UdtaBox.class); mappings.put(CompositionOffsetsBox.fourcc(), CompositionOffsetsBox.class); mappings.put(NameBox.fourcc(), NameBox.class); mappings.put("mdta", LeafBox.class);