public static List<Edit> editsOnEdits(Rational mvByTrack, List<Edit> lower, List<Edit> higher) { List<Edit> result = new ArrayList<Edit>(); List<Edit> next = new ArrayList<Edit>(lower); for (Edit edit : higher) { long startMv = mvByTrack.multiply(edit.getMediaTime()); Pair<List<Edit>> split = split(next, mvByTrack.flip(), startMv); Pair<List<Edit>> split2 = split(split.getB(), mvByTrack.flip(), startMv + edit.getDuration()); result.addAll(split2.getA()); next = split2.getB(); } return result; } }
public static List<Edit> editsOnEdits(Rational mvByTrack, List<Edit> lower, List<Edit> higher) { List<Edit> result = new ArrayList<Edit>(); List<Edit> next = new ArrayList<Edit>(lower); for (Edit edit : higher) { long startMv = mvByTrack.multiply(edit.getMediaTime()); Pair<List<Edit>> split = split(next, mvByTrack.flip(), startMv); Pair<List<Edit>> split2 = split(split.getB(), mvByTrack.flip(), startMv + edit.getDuration()); result.addAll(split2.getA()); next = split2.getB(); } return result; } }
public static List<Edit> editsOnEdits(Rational mvByTrack, List<Edit> lower, List<Edit> higher) { List<Edit> result = new ArrayList<Edit>(); List<Edit> next = new ArrayList<Edit>(lower); for (Edit edit : higher) { long startMv = mvByTrack.multiplyLong(edit.getMediaTime()); Pair<List<Edit>> split = splitEdits(next, mvByTrack.flip(), startMv); Pair<List<Edit>> split2 = splitEdits(split.getB(), mvByTrack.flip(), startMv + edit.getDuration()); result.addAll(split2.getA()); next = split2.getB(); } return result; } }