diff options
Diffstat (limited to 'isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/VisualSampleEntry.java.svn-base')
-rw-r--r-- | isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/VisualSampleEntry.java.svn-base | 213 |
1 files changed, 0 insertions, 213 deletions
diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/VisualSampleEntry.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/VisualSampleEntry.java.svn-base deleted file mode 100644 index 407e79f..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/VisualSampleEntry.java.svn-base +++ /dev/null @@ -1,213 +0,0 @@ -/* - * Copyright 2008 CoreMedia AG, Hamburg - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.coremedia.iso.boxes.sampleentry; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.coremedia.iso.Utf8; -import com.coremedia.iso.boxes.Box; -import com.coremedia.iso.boxes.ContainerBox; - -import java.nio.ByteBuffer; - -/** - * Contains information common to all visual tracks. - * <code> - * <pre> - * class VisualSampleEntry(codingname) extends SampleEntry (codingname){ - * unsigned int(16) pre_defined = 0; - * const unsigned int(16) reserved = 0; - * unsigned int(32)[3] pre_defined = 0; - * unsigned int(16) width; - * unsigned int(16) height; - * template unsigned int(32) horizresolution = 0x00480000; // 72 dpi - * template unsigned int(32) vertresolution = 0x00480000; // 72 dpi - * const unsigned int(32) reserved = 0; - * template unsigned int(16) frame_count = 1; - * string[32] compressorname; - * template unsigned int(16) depth = 0x0018; - * int(16) pre_defined = -1; - * }<br> - * </pre> - * </code> - * <p/> - * Format-specific informationis appened as boxes after the data described in ISO/IEC 14496-12 chapter 8.16.2. - */ -public class VisualSampleEntry extends SampleEntry implements ContainerBox { - public static final String TYPE1 = "mp4v"; - public static final String TYPE2 = "s263"; - public static final String TYPE3 = "avc1"; - - - /** - * Identifier for an encrypted video track. - * - * @see com.coremedia.iso.boxes.ProtectionSchemeInformationBox - */ - public static final String TYPE_ENCRYPTED = "encv"; - - - private int width; - private int height; - private double horizresolution = 72; - private double vertresolution = 72; - private int frameCount = 1; - private String compressorname; - private int depth = 24; - - private long[] predefined = new long[3]; - - public VisualSampleEntry(String type) { - super(type); - } - - public int getWidth() { - return width; - } - - public int getHeight() { - return height; - } - - public double getHorizresolution() { - return horizresolution; - } - - public double getVertresolution() { - return vertresolution; - } - - public int getFrameCount() { - return frameCount; - } - - public String getCompressorname() { - return compressorname; - } - - public int getDepth() { - return depth; - } - - public void setCompressorname(String compressorname) { - this.compressorname = compressorname; - } - - public void setWidth(int width) { - this.width = width; - } - - public void setHeight(int height) { - this.height = height; - } - - public void setHorizresolution(double horizresolution) { - this.horizresolution = horizresolution; - } - - public void setVertresolution(double vertresolution) { - this.vertresolution = vertresolution; - } - - public void setFrameCount(int frameCount) { - this.frameCount = frameCount; - } - - public void setDepth(int depth) { - this.depth = depth; - } - - @Override - public void _parseDetails(ByteBuffer content) { - _parseReservedAndDataReferenceIndex(content); - long tmp = IsoTypeReader.readUInt16(content); - assert 0 == tmp : "reserved byte not 0"; - tmp = IsoTypeReader.readUInt16(content); - assert 0 == tmp : "reserved byte not 0"; - predefined[0] = IsoTypeReader.readUInt32(content); // should be zero - predefined[1] = IsoTypeReader.readUInt32(content); // should be zero - predefined[2] = IsoTypeReader.readUInt32(content); // should be zero - width = IsoTypeReader.readUInt16(content); - height = IsoTypeReader.readUInt16(content); - horizresolution = IsoTypeReader.readFixedPoint1616(content); - vertresolution = IsoTypeReader.readFixedPoint1616(content); - tmp = IsoTypeReader.readUInt32(content); - assert 0 == tmp : "reserved byte not 0"; - frameCount = IsoTypeReader.readUInt16(content); - int compressornameDisplayAbleData = IsoTypeReader.readUInt8(content); - if (compressornameDisplayAbleData > 31) { - System.out.println("invalid compressor name displayable data: " + compressornameDisplayAbleData); - compressornameDisplayAbleData = 31; - } - byte[] bytes = new byte[compressornameDisplayAbleData]; - content.get(bytes); - compressorname = Utf8.convert(bytes); - if (compressornameDisplayAbleData < 31) { - byte[] zeros = new byte[31 - compressornameDisplayAbleData]; - content.get(zeros); - //assert Arrays.equals(zeros, new byte[zeros.length]) : "The compressor name length was not filled up with zeros"; - } - depth = IsoTypeReader.readUInt16(content); - tmp = IsoTypeReader.readUInt16(content); - assert 0xFFFF == tmp; - - _parseChildBoxes(content); - - } - - - protected long getContentSize() { - long contentSize = 78; - for (Box boxe : boxes) { - contentSize += boxe.getSize(); - } - return contentSize; - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - _writeReservedAndDataReferenceIndex(byteBuffer); - IsoTypeWriter.writeUInt16(byteBuffer, 0); - IsoTypeWriter.writeUInt16(byteBuffer, 0); - IsoTypeWriter.writeUInt32(byteBuffer, predefined[0]); - IsoTypeWriter.writeUInt32(byteBuffer, predefined[1]); - IsoTypeWriter.writeUInt32(byteBuffer, predefined[2]); - - IsoTypeWriter.writeUInt16(byteBuffer, getWidth()); - IsoTypeWriter.writeUInt16(byteBuffer, getHeight()); - - IsoTypeWriter.writeFixedPont1616(byteBuffer, getHorizresolution()); - IsoTypeWriter.writeFixedPont1616(byteBuffer, getVertresolution()); - - - IsoTypeWriter.writeUInt32(byteBuffer, 0); - IsoTypeWriter.writeUInt16(byteBuffer, getFrameCount()); - IsoTypeWriter.writeUInt8(byteBuffer, Utf8.utf8StringLengthInBytes(getCompressorname())); - byteBuffer.put(Utf8.convert(getCompressorname())); - int a = Utf8.utf8StringLengthInBytes(getCompressorname()); - while (a < 31) { - a++; - byteBuffer.put((byte) 0); - } - IsoTypeWriter.writeUInt16(byteBuffer, getDepth()); - IsoTypeWriter.writeUInt16(byteBuffer, 0xFFFF); - - _writeChildBoxes(byteBuffer); - - } - -} |