![JAR search and dependency download from the Maven repository](/logo.png)
org.jcodec.containers.mkv.muxer.MKVMuxerTrack Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jcodec Show documentation
Show all versions of jcodec Show documentation
Pure Java implementation of video/audio codecs and formats
package org.jcodec.containers.mkv.muxer;
import static org.jcodec.containers.mkv.boxes.MkvBlock.keyFrame;
import java.util.ArrayList;
import java.util.List;
import org.jcodec.common.MuxerTrack;
import org.jcodec.common.VideoCodecMeta;
import org.jcodec.common.model.Packet;
import org.jcodec.containers.mkv.boxes.MkvBlock;
/**
* This class is part of JCodec ( www.jcodec.org ) This software is distributed
* under FreeBSD License
*
* @author The JCodec project
*
*/
public class MKVMuxerTrack implements MuxerTrack {
public static enum MKVMuxerTrackType {VIDEO };
public MKVMuxerTrackType type;
public VideoCodecMeta videoMeta;
public String codecId;
public int trackNo;
private int frameDuration;
List trackBlocks;
public MKVMuxerTrack() {
this.trackBlocks = new ArrayList();
this.type = MKVMuxerTrackType.VIDEO;
}
static final int DEFAULT_TIMESCALE = 1000000000; //NANOSECOND
static final int NANOSECONDS_IN_A_MILISECOND = 1000000;
static final int MULTIPLIER = DEFAULT_TIMESCALE/NANOSECONDS_IN_A_MILISECOND;
public int getTimescale(){
return NANOSECONDS_IN_A_MILISECOND;
}
@Override
public void addFrame(Packet outPacket) {
MkvBlock frame = keyFrame(trackNo, 0, outPacket.getData());
frame.absoluteTimecode = outPacket.getPts() - 1;
trackBlocks.add(frame);
}
public long getTrackNo() {
return trackNo;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy