1dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu/* 2dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * Copyright 2012 Sebastian Annies, Hamburg 3dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * 4dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * Licensed under the Apache License, Version 2.0 (the License); 5dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * you may not use this file except in compliance with the License. 6dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * You may obtain a copy of the License at 7dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * 8dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * http://www.apache.org/licenses/LICENSE-2.0 9dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * 10dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * Unless required by applicable law or agreed to in writing, software 11dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * distributed under the License is distributed on an AS IS BASIS, 12dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * See the License for the specific language governing permissions and 14dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * limitations under the License. 15dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu */ 16dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhupackage com.googlecode.mp4parser.authoring; 17dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 18dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhuimport java.util.Date; 19dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 20dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu/** 21dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * 22dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu */ 23dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhupublic class TrackMetaData implements Cloneable { 24dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu private String language; 25dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu private long timescale; 26dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu private Date modificationTime = new Date(); 27dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu private Date creationTime = new Date(); 28dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu private double width; 29dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu private double height; 30dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu private float volume; 31dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu private long trackId = 1; // zero is not allowed 32dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu private int group = 0; 3336e04c3847e93ccf4c3e0cde617eecea72c2605dTeng-Hui Zhu private long[] matrix = new long[]{0x00010000, 0, 0, 0, 0x00010000, 0, 0, 0, 0x40000000}; 34dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 35dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 36dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu /** 37dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * specifies the front-to-back ordering of video tracks; tracks with lower 38dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * numbers are closer to the viewer. 0 is the normal value, and -1 would be 39dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * in front of track 0, and so on. 40dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu */ 41dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu int layer; 42dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 43dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public String getLanguage() { 44dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu return language; 45dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 46dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 47dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public void setLanguage(String language) { 48dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu this.language = language; 49dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 50dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 51dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public long getTimescale() { 52dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu return timescale; 53dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 54dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 55dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public void setTimescale(long timescale) { 56dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu this.timescale = timescale; 57dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 58dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 59dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public Date getModificationTime() { 60dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu return modificationTime; 61dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 62dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 63dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public void setModificationTime(Date modificationTime) { 64dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu this.modificationTime = modificationTime; 65dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 66dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 67dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public Date getCreationTime() { 68dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu return creationTime; 69dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 70dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 71dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public void setCreationTime(Date creationTime) { 72dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu this.creationTime = creationTime; 73dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 74dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 75dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public double getWidth() { 76dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu return width; 77dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 78dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 79dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public void setWidth(double width) { 80dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu this.width = width; 81dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 82dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 8336e04c3847e93ccf4c3e0cde617eecea72c2605dTeng-Hui Zhu public long[] getMatrix() { 8436e04c3847e93ccf4c3e0cde617eecea72c2605dTeng-Hui Zhu return matrix; 8536e04c3847e93ccf4c3e0cde617eecea72c2605dTeng-Hui Zhu } 8636e04c3847e93ccf4c3e0cde617eecea72c2605dTeng-Hui Zhu 8736e04c3847e93ccf4c3e0cde617eecea72c2605dTeng-Hui Zhu public void setMatrix(long[] m) { 8836e04c3847e93ccf4c3e0cde617eecea72c2605dTeng-Hui Zhu this.matrix = m; 8936e04c3847e93ccf4c3e0cde617eecea72c2605dTeng-Hui Zhu } 9036e04c3847e93ccf4c3e0cde617eecea72c2605dTeng-Hui Zhu 91dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public double getHeight() { 92dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu return height; 93dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 94dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 95dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public void setHeight(double height) { 96dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu this.height = height; 97dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 98dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 99dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public long getTrackId() { 100dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu return trackId; 101dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 102dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 103dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public void setTrackId(long trackId) { 104dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu this.trackId = trackId; 105dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 106dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 107dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public int getLayer() { 108dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu return layer; 109dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 110dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 111dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public void setLayer(int layer) { 112dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu this.layer = layer; 113dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 114dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 115dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public float getVolume() { 116dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu return volume; 117dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 118dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 119dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public void setVolume(float volume) { 120dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu this.volume = volume; 121dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 122dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 123dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public int getGroup() { 124dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu return group; 125dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 126dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 127dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public void setGroup(int group) { 128dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu this.group = group; 129dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 130dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 131dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public Object clone() { 132dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu try { 133dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu return super.clone(); 134dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } catch (CloneNotSupportedException e) { 135dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu return null; 136dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 137dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 138dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 139dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu} 140