diff options
Diffstat (limited to 'isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/HandlerBox.java.svn-base')
-rw-r--r-- | isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/HandlerBox.java.svn-base | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/HandlerBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/HandlerBox.java.svn-base deleted file mode 100644 index 01dcaca..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/HandlerBox.java.svn-base +++ /dev/null @@ -1,151 +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; - - -import com.coremedia.iso.IsoFile; -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.coremedia.iso.Utf8; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - -/** - * This box within a Media Box declares the process by which the media-data in the track is presented, - * and thus, the nature of the media in a track. - * This Box when present in a Meta Box, declares the structure or format of the 'meta' box contents. - * See ISO/IEC 14496-12 for details. - * - * @see MetaBox - * @see MediaBox - */ -public class HandlerBox extends AbstractFullBox { - public static final String TYPE = "hdlr"; - public static final Map<String, String> readableTypes; - - static { - HashMap<String, String> hm = new HashMap<String, String>(); - hm.put("odsm", "ObjectDescriptorStream - defined in ISO/IEC JTC1/SC29/WG11 - CODING OF MOVING PICTURES AND AUDIO"); - hm.put("crsm", "ClockReferenceStream - defined in ISO/IEC JTC1/SC29/WG11 - CODING OF MOVING PICTURES AND AUDIO"); - hm.put("sdsm", "SceneDescriptionStream - defined in ISO/IEC JTC1/SC29/WG11 - CODING OF MOVING PICTURES AND AUDIO"); - hm.put("m7sm", "MPEG7Stream - defined in ISO/IEC JTC1/SC29/WG11 - CODING OF MOVING PICTURES AND AUDIO"); - hm.put("ocsm", "ObjectContentInfoStream - defined in ISO/IEC JTC1/SC29/WG11 - CODING OF MOVING PICTURES AND AUDIO"); - hm.put("ipsm", "IPMP Stream - defined in ISO/IEC JTC1/SC29/WG11 - CODING OF MOVING PICTURES AND AUDIO"); - hm.put("mjsm", "MPEG-J Stream - defined in ISO/IEC JTC1/SC29/WG11 - CODING OF MOVING PICTURES AND AUDIO"); - hm.put("mdir", "Apple Meta Data iTunes Reader"); - hm.put("mp7b", "MPEG-7 binary XML"); - hm.put("mp7t", "MPEG-7 XML"); - hm.put("vide", "Video Track"); - hm.put("soun", "Sound Track"); - hm.put("hint", "Hint Track"); - hm.put("appl", "Apple specific"); - hm.put("meta", "Timed Metadata track - defined in ISO/IEC JTC1/SC29/WG11 - CODING OF MOVING PICTURES AND AUDIO"); - - readableTypes = Collections.unmodifiableMap(hm); - - } - - private String handlerType; - private String name = null; - private long a, b, c; - private boolean zeroTerm = true; - - private long shouldBeZeroButAppleWritesHereSomeValue; - - public HandlerBox() { - super(TYPE); - } - - public String getHandlerType() { - return handlerType; - } - - /** - * You are required to add a '\0' string termination by yourself. - * - * @param name the new human readable name - */ - public void setName(String name) { - this.name = name; - } - - public void setHandlerType(String handlerType) { - this.handlerType = handlerType; - } - - public String getName() { - return name; - } - - public String getHumanReadableTrackType() { - return readableTypes.get(handlerType) != null ? readableTypes.get(handlerType) : "Unknown Handler Type"; - } - - protected long getContentSize() { - if (zeroTerm) { - return 25 + Utf8.utf8StringLengthInBytes(name); - } else { - return 24 + Utf8.utf8StringLengthInBytes(name); - } - - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - shouldBeZeroButAppleWritesHereSomeValue = IsoTypeReader.readUInt32(content); - handlerType = IsoTypeReader.read4cc(content); - a = IsoTypeReader.readUInt32(content); - b = IsoTypeReader.readUInt32(content); - c = IsoTypeReader.readUInt32(content); - if (content.remaining() > 0) { - name = IsoTypeReader.readString(content, content.remaining()); - if (name.endsWith("\0")) { - name = name.substring(0, name.length() - 1); - zeroTerm = true; - } else { - zeroTerm = false; - } - } else { - zeroTerm = false; //No string at all, not even zero term char - } - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt32(byteBuffer, shouldBeZeroButAppleWritesHereSomeValue); - byteBuffer.put(IsoFile.fourCCtoBytes(handlerType)); - IsoTypeWriter.writeUInt32(byteBuffer, a); - IsoTypeWriter.writeUInt32(byteBuffer, b); - IsoTypeWriter.writeUInt32(byteBuffer, c); - if (name != null) { - byteBuffer.put(Utf8.convert(name)); - } - if (zeroTerm) { - byteBuffer.put((byte) 0); - } - } - - public String toString() { - return "HandlerBox[handlerType=" + getHandlerType() + ";name=" + getName() + "]"; - } -} |