package org.mp4parser.streaming.input;
import org.mp4parser.boxes.iso14496.part12.TrackHeaderBox;
import org.mp4parser.streaming.StreamingTrack;
import org.mp4parser.streaming.TrackExtension;
import org.mp4parser.streaming.output.SampleSink;
import java.util.HashMap;
public abstract class AbstractStreamingTrack implements StreamingTrack {
protected TrackHeaderBox tkhd;
protected HashMap<Class<? extends TrackExtension>, TrackExtension> trackExtensions = new HashMap<Class<? extends TrackExtension>, TrackExtension>();
protected SampleSink sampleSink;
public AbstractStreamingTrack() {
tkhd = new TrackHeaderBox();
tkhd.setTrackId(1);
}
public void setSampleSink(SampleSink sampleSink) {
this.sampleSink = sampleSink;
}
public <T extends TrackExtension> T getTrackExtension(Class<T> clazz) {
return (T) trackExtensions.get(clazz);
}
public void addTrackExtension(TrackExtension trackExtension) {
trackExtensions.put(trackExtension.getClass(), trackExtension);
}
public void removeTrackExtension(Class<? extends TrackExtension> clazz) {
trackExtensions.remove(clazz);
}
}