All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jcodec.containers.mp4.boxes.TimecodeMediaInfoBox Maven / Gradle / Ivy

There is a newer version: 0.2.5
Show newest version
package org.jcodec.containers.mp4.boxes;

import java.nio.ByteBuffer;

import org.jcodec.common.NIOUtils;

/**
 * This class is part of JCodec ( www.jcodec.org ) This software is distributed
 * under FreeBSD License
 * 
 * @author The JCodec project
 * 
 */
public class TimecodeMediaInfoBox extends FullBox {

    private short font;
    private short face;
    private short size;
    private short[] color = new short[3];
    private short[] bgcolor = new short[3];
    private String name;

    public static String fourcc() {
        return "tcmi";
    }

    public TimecodeMediaInfoBox(short font, short face, short size, short[] color, short[] bgcolor, String name) {
        this(new Header(fourcc()));
        this.font = font;
        this.face = face;
        this.size = size;
        this.color = color;
        this.bgcolor = bgcolor;
        this.name = name;
    }

    public TimecodeMediaInfoBox(Header atom) {
        super(atom);
    }

    @Override
    public void parse(ByteBuffer input) {
        super.parse(input);
        font = input.getShort();
        face = input.getShort();
        size = input.getShort();
        input.getShort();
        color[0] = input.getShort();
        color[1] = input.getShort();
        color[2] = input.getShort();
        bgcolor[0] = input.getShort();
        bgcolor[1] = input.getShort();
        bgcolor[2] = input.getShort();
        name = NIOUtils.readPascalString(input);
    }

    @Override
    protected void doWrite(ByteBuffer out) {
        super.doWrite(out);
        out.putShort(font);
        out.putShort(face);
        out.putShort(size);
        out.putShort((short) 0);
        out.putShort(color[0]);
        out.putShort(color[1]);
        out.putShort(color[2]);
        out.putShort(bgcolor[0]);
        out.putShort(bgcolor[1]);
        out.putShort(bgcolor[2]);
        NIOUtils.writePascalString(out, name);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy