public void setClipRect(short x, short y, short width, short height) { NodeBox clip = NodeBox.findFirst(this, NodeBox.class, "clip"); if (clip == null) { clip = new NodeBox(new Header("clip")); add(clip); } clip.replace("crgn", ClipRegionBox.createClipRegionBox(x, y, width, height)); }
public void setClipRect(short x, short y, short width, short height) { NodeBox clip = NodeBox.findFirst(this, NodeBox.class, "clip"); if (clip == null) { clip = new NodeBox(new Header("clip")); add(clip); } clip.replace("crgn", new ClipRegionBox(x, y, width, height)); }
public void setClipRect(short x, short y, short width, short height) { NodeBox clip = NodeBox.findFirst(this, NodeBox.class, "clip"); if (clip == null) { clip = new NodeBox(new Header("clip")); add(clip); } clip.replace("crgn", new ClipRegionBox(x, y, width, height)); }
private static void appendTimeToSamples(TrakBox trakBox1, TrakBox trakBox2) { TimeToSampleBox stts1 = trakBox1.getStts(); TimeToSampleBox stts2 = trakBox2.getStts(); TimeToSampleBox sttsNew = TimeToSampleBox.createTimeToSampleBox((TimeToSampleEntry[]) addAllObj(stts1.getEntries(), stts2.getEntries())); NodeBox.findFirstPath(trakBox1, NodeBox.class, Box.path("mdia.minf.stbl")).replace("stts", sttsNew); }
private static int appendEntries(TrakBox trakBox1, TrakBox trakBox2) { appendDrefs(trakBox1, trakBox2); SampleEntry[] ent1 = trakBox1.getSampleEntries(); SampleEntry[] ent2 = trakBox2.getSampleEntries(); SampleDescriptionBox stsd = SampleDescriptionBox.createSampleDescriptionBox(ent1); for (int i = 0; i < ent2.length; i++) { SampleEntry se = ent2[i]; se.setDrefInd((short) (se.getDrefInd() + ent1.length)); stsd.add(se); } NodeBox.findFirstPath(trakBox1, NodeBox.class, Box.path("mdia.minf.stbl")).replace("stsd", stsd); return ent1.length; }
private static void appendSampleSizes(TrakBox trakBox1, TrakBox trakBox2) { SampleSizesBox stsz1 = trakBox1.getStsz(); SampleSizesBox stsz2 = trakBox2.getStsz(); if (stsz1.getDefaultSize() != stsz2.getDefaultSize()) throw new IllegalArgumentException("Can't append to track that has different default sample size"); SampleSizesBox stszr; if (stsz1.getDefaultSize() > 0) { stszr = SampleSizesBox.createSampleSizesBox(stsz1.getDefaultSize(), stsz1.getCount() + stsz2.getCount()); } else { stszr = SampleSizesBox.createSampleSizesBox2(addAllInt(stsz1.getSizes(), stsz2.getSizes())); } NodeBox.findFirstPath(trakBox1, NodeBox.class, Box.path("mdia.minf.stbl")).replace("stsz", stszr); }
private static void appendSampleToChunk(TrakBox trakBox1, TrakBox trakBox2, int off) { SampleToChunkBox stsc1 = trakBox1.getStsc(); SampleToChunkBox stsc2 = trakBox2.getStsc(); SampleToChunkEntry[] orig = stsc2.getSampleToChunk(); SampleToChunkEntry[] shifted = new SampleToChunkEntry[orig.length]; for (int i = 0; i < orig.length; i++) { shifted[i] = new SampleToChunkEntry(orig[i].getFirst() + stsc1.getSampleToChunk().length, orig[i].getCount(), orig[i].getEntry() + off); } NodeBox.findFirstPath(trakBox1, NodeBox.class, Box.path("mdia.minf.stbl")).replace("stsc", SampleToChunkBox.createSampleToChunkBox((SampleToChunkEntry[]) ArrayUtil.addAllObj(stsc1.getSampleToChunk(), shifted))); }