package org.mp4parser.examples.syncsamples; import org.mp4parser.muxer.Movie; import org.mp4parser.muxer.Track; import org.mp4parser.muxer.container.mp4.MovieCreator; import java.io.File; import java.io.IOException; import java.util.LinkedHashMap; import java.util.Map; public class ListSyncSamples { public static void main(String[] args) throws IOException { Map<String, long[]> ss = new LinkedHashMap<String, long[]>(); int maxIndex = 0; for (String arg : args) { File f = new File(arg); if (f.exists()) { Movie m = MovieCreator.build(arg); for (Track track : m.getTracks()) { if ("vide".equals(track.getHandler())) { ss.put(f.getName() + track.getTrackMetaData().getTrackId(), track.getSyncSamples()); maxIndex = Math.max(maxIndex, track.getSyncSamples().length); } } } else { System.err.println("Input file " + arg + " does not exist. Ignoring."); } } for (String s : ss.keySet()) { System.out.print(String.format("|%10s", s)); } System.out.println("|"); for (int i = 0; i < maxIndex; i++) { for (String s : ss.keySet()) { long[] syncSamples = ss.get(s); try { System.out.print(String.format("|%10d", syncSamples[i])); } catch (IndexOutOfBoundsException e) { System.out.print(String.format("|%10s", "")); } } System.out.println("|"); } } }