package org.mp4parser.streaming.extensions; import org.mp4parser.streaming.SampleExtension; import java.util.Collections; import java.util.HashMap; import java.util.Map; public class CompositionTimeSampleExtension implements SampleExtension { public static Map<Long, CompositionTimeSampleExtension> pool = Collections.synchronizedMap(new HashMap<Long, CompositionTimeSampleExtension>()); private long ctts; public static CompositionTimeSampleExtension create(long offset) { CompositionTimeSampleExtension c = pool.get(offset); if (c == null) { c = new CompositionTimeSampleExtension(); c.ctts = offset; pool.put(offset, c); } return c; } /** * This value provides the offset between decoding time and composition time. The offset is expressed as * signed long such that CT(n) = DT(n) + CTTS(n). This method is * * @return offset between decoding time and composition time. */ public long getCompositionTimeOffset() { return ctts; } @Override public String toString() { return "ctts=" + ctts; } }