public void fixTimescale(int newTs) { int oldTs = getTimescale(); setTimescale(newTs); for (TrakBox trakBox : getTracks()) { trakBox.setDuration(rescale(trakBox.getDuration(), oldTs)); List<Edit> edits = trakBox.getEdits(); if (edits == null) continue; ListIterator<Edit> lit = edits.listIterator(); while (lit.hasNext()) { Edit edit = lit.next(); lit.set(new Edit(rescale(edit.getDuration(), oldTs), edit.getMediaTime(), edit.getRate())); } } setDuration(rescale(getDuration(), oldTs)); }
public void fixTimescale(int newTs) { int oldTs = getTimescale(); setTimescale(newTs); TrakBox[] tracks = getTracks(); for (int i = 0; i < tracks.length; i++) { TrakBox trakBox = tracks[i]; trakBox.setDuration(rescale(trakBox.getDuration(), oldTs)); List<Edit> edits = trakBox.getEdits(); if (edits == null) continue; ListIterator<Edit> lit = edits.listIterator(); while (lit.hasNext()) { Edit edit = lit.next(); lit.set(new Edit(rescale(edit.getDuration(), oldTs), edit.getMediaTime(), edit.getRate())); } } setDuration(rescale(getDuration(), oldTs)); }
public void fixTimescale(int newTs) { int oldTs = getTimescale(); setTimescale(newTs); for (TrakBox trakBox : getTracks()) { trakBox.setDuration(rescale(trakBox.getDuration(), oldTs)); List<Edit> edits = trakBox.getEdits(); if (edits == null) continue; ListIterator<Edit> lit = edits.listIterator(); while (lit.hasNext()) { Edit edit = lit.next(); lit.set(new Edit(rescale(edit.getDuration(), oldTs), edit.getMediaTime(), edit.getRate())); } } setDuration(rescale(getDuration(), oldTs)); }
movDuration = max(movDuration, trakBox.getDuration()); moov.setDuration(movDuration);
Logger.info("Changing timescale to: " + vt.getTimescale()); long newDuration = totalDuration * mov.getTimescale() / vt.getTimescale(); mov.setDuration(newDuration); vt.setDuration(newDuration); } else {