/* * myLib - https://github.com/taktod/myLib * Copyright (c) 2014 ttProject. All rights reserved. * * Licensed under The MIT license. */ package com.ttProject.container.mkv.type; import com.ttProject.container.mkv.MkvMasterTag; import com.ttProject.container.mkv.Type; import com.ttProject.unit.extra.EbmlValue; /** * Info * @author taktod */ public class Info extends MkvMasterTag { /** * constructor * @param size */ public Info(EbmlValue size) { super(Type.Info, size); } /** * constructor */ public Info() { this(new EbmlValue()); } /** * constructor * @param position */ public Info(long position) { this(); setPosition((int)position); } /** * set position * @param position */ public void setPosition(long position) { super.setPosition((int)position); } /** * setup information. * @param timecodeScale 1000000L(ナノ秒単位で指定、この値だと1ミリ秒刻みになります) * @param muxApp * @param writeApp * @return timecodeScaleの実動作値を応答します。通常なら1000(1ミリ秒刻みなため) */ public long setup(long scale, String muxApp, String writeApp) throws Exception { TimecodeScale timecodeScale = new TimecodeScale(); timecodeScale.setValue(scale); addChild(timecodeScale); MuxingApp muxingApp = new MuxingApp(); muxingApp.setValue(muxApp); addChild(muxingApp); WritingApp writingApp = new WritingApp(); writingApp.setValue(writeApp); addChild(writingApp); // TODO in prepareTailer for writer. here is the position to pt duration(doubleTag) Void voidTag = new Void(); voidTag.setTagSize(9); addChild(voidTag); return timecodeScale.getTimebaseValue(); } }