diff options
Diffstat (limited to 'isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base')
43 files changed, 1370 insertions, 0 deletions
diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AbstractAppleMetaDataBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AbstractAppleMetaDataBox.java.svn-base new file mode 100644 index 0000000..fdb7ac9 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AbstractAppleMetaDataBox.java.svn-base @@ -0,0 +1,164 @@ +package com.coremedia.iso.boxes.apple; + +import com.coremedia.iso.IsoTypeReader; +import com.coremedia.iso.IsoTypeWriter; +import com.coremedia.iso.Utf8; +import com.googlecode.mp4parser.AbstractBox; +import com.coremedia.iso.boxes.Box; +import com.coremedia.iso.boxes.ContainerBox; +import com.googlecode.mp4parser.util.ByteBufferByteChannel; + +import java.io.IOException; +import java.math.BigInteger; +import java.nio.ByteBuffer; +import java.util.Collections; +import java.util.List; +import java.util.logging.Logger; + +/** + * + */ +public abstract class AbstractAppleMetaDataBox extends AbstractBox implements ContainerBox { + private static Logger LOG = Logger.getLogger(AbstractAppleMetaDataBox.class.getName()); + AppleDataBox appleDataBox = new AppleDataBox(); + + public List<Box> getBoxes() { + return Collections.singletonList((Box) appleDataBox); + } + + public void setBoxes(List<Box> boxes) { + if (boxes.size() == 1 && boxes.get(0) instanceof AppleDataBox) { + appleDataBox = (AppleDataBox) boxes.get(0); + } else { + throw new IllegalArgumentException("This box only accepts one AppleDataBox child"); + } + } + + public <T extends Box> List<T> getBoxes(Class<T> clazz) { + return getBoxes(clazz, false); + } + + public <T extends Box> List<T> getBoxes(Class<T> clazz, boolean recursive) { + //todo recursive? + if (clazz.isAssignableFrom(appleDataBox.getClass())) { + return (List<T>) Collections.singletonList(appleDataBox); + } + return null; + } + + public AbstractAppleMetaDataBox(String type) { + super(type); + } + + @Override + public void _parseDetails(ByteBuffer content) { + long dataBoxSize = IsoTypeReader.readUInt32(content); + String thisShouldBeData = IsoTypeReader.read4cc(content); + assert "data".equals(thisShouldBeData); + appleDataBox = new AppleDataBox(); + try { + appleDataBox.parse(new ByteBufferByteChannel(content), null, content.remaining(), null); + } catch (IOException e) { + throw new RuntimeException(e); + } + appleDataBox.setParent(this); + } + + + protected long getContentSize() { + return appleDataBox.getSize(); + } + + protected void getContent(ByteBuffer byteBuffer) { + try { + appleDataBox.getBox(new ByteBufferByteChannel(byteBuffer)); + } catch (IOException e) { + throw new RuntimeException("The Channel is based on a ByteBuffer and therefore it shouldn't throw any exception"); + } + } + + public long getNumOfBytesToFirstChild() { + return getSize() - appleDataBox.getSize(); + } + + @Override + public String toString() { + return this.getClass().getSimpleName() + "{" + + "appleDataBox=" + getValue() + + '}'; + } + + static long toLong(byte b) { + return b < 0 ? b + 256 : b; + } + + public void setValue(String value) { + if (appleDataBox.getFlags() == 1) { + appleDataBox = new AppleDataBox(); + appleDataBox.setVersion(0); + appleDataBox.setFlags(1); + appleDataBox.setFourBytes(new byte[4]); + appleDataBox.setData(Utf8.convert(value)); + } else if (appleDataBox.getFlags() == 21) { + byte[] content = appleDataBox.getData(); + appleDataBox = new AppleDataBox(); + appleDataBox.setVersion(0); + appleDataBox.setFlags(21); + appleDataBox.setFourBytes(new byte[4]); + + ByteBuffer bb = ByteBuffer.allocate(content.length); + if (content.length == 1) { + IsoTypeWriter.writeUInt8(bb, (Byte.parseByte(value) & 0xFF)); + } else if (content.length == 2) { + IsoTypeWriter.writeUInt16(bb, Integer.parseInt(value)); + } else if (content.length == 4) { + IsoTypeWriter.writeUInt32(bb, Long.parseLong(value)); + } else if (content.length == 8) { + IsoTypeWriter.writeUInt64(bb, Long.parseLong(value)); + } else { + throw new Error("The content length within the appleDataBox is neither 1, 2, 4 or 8. I can't handle that!"); + } + appleDataBox.setData(bb.array()); + } else if (appleDataBox.getFlags() == 0) { + appleDataBox = new AppleDataBox(); + appleDataBox.setVersion(0); + appleDataBox.setFlags(0); + appleDataBox.setFourBytes(new byte[4]); + appleDataBox.setData(hexStringToByteArray(value)); + + } else { + LOG.warning("Don't know how to handle appleDataBox with flag=" + appleDataBox.getFlags()); + } + } + + public String getValue() { + if (appleDataBox.getFlags() == 1) { + return Utf8.convert(appleDataBox.getData()); + } else if (appleDataBox.getFlags() == 21) { + byte[] content = appleDataBox.getData(); + long l = 0; + int current = 1; + int length = content.length; + for (byte b : content) { + l += toLong(b) << (8 * (length - current++)); + } + return "" + l; + } else if (appleDataBox.getFlags() == 0) { + return String.format("%x", new BigInteger(appleDataBox.getData())); + } else { + return "unknown"; + } + } + + public static byte[] hexStringToByteArray(String s) { + int len = s.length(); + byte[] data = new byte[len / 2]; + for (int i = 0; i < len; i += 2) { + data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + + Character.digit(s.charAt(i + 1), 16)); + } + return data; + } + + +} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleAlbumArtistBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleAlbumArtistBox.java.svn-base new file mode 100644 index 0000000..5c258b4 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleAlbumArtistBox.java.svn-base @@ -0,0 +1,16 @@ +package com.coremedia.iso.boxes.apple; + +/** + * itunes MetaData comment box. + */ +public class AppleAlbumArtistBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "aART"; + + + public AppleAlbumArtistBox() { + super(TYPE); + appleDataBox = AppleDataBox.getStringAppleDataBox(); + } + + +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleAlbumBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleAlbumBox.java.svn-base new file mode 100644 index 0000000..9e3d5f7 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleAlbumBox.java.svn-base @@ -0,0 +1,15 @@ +package com.coremedia.iso.boxes.apple; + +/** + * + */ +public final class AppleAlbumBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "\u00a9alb"; + + + public AppleAlbumBox() { + super(TYPE); + appleDataBox = AppleDataBox.getStringAppleDataBox(); + } + +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleArtistBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleArtistBox.java.svn-base new file mode 100644 index 0000000..627a603 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleArtistBox.java.svn-base @@ -0,0 +1,16 @@ +package com.coremedia.iso.boxes.apple;
+
+/**
+ * iTunes Artist box.
+ */
+public final class AppleArtistBox extends AbstractAppleMetaDataBox {
+ public static final String TYPE = "\u00a9ART";
+
+
+ public AppleArtistBox() {
+ super(TYPE);
+ appleDataBox = AppleDataBox.getStringAppleDataBox();
+ }
+
+
+}
diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCommentBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCommentBox.java.svn-base new file mode 100644 index 0000000..b58899f --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCommentBox.java.svn-base @@ -0,0 +1,16 @@ +package com.coremedia.iso.boxes.apple; + +/** + * itunes MetaData comment box. + */ +public final class AppleCommentBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "\u00a9cmt"; + + + public AppleCommentBox() { + super(TYPE); + appleDataBox = AppleDataBox.getStringAppleDataBox(); + } + + +} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCompilationBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCompilationBox.java.svn-base new file mode 100644 index 0000000..c8c9bf4 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCompilationBox.java.svn-base @@ -0,0 +1,15 @@ +package com.coremedia.iso.boxes.apple;
+
+/**
+ * Compilation.
+ */
+public final class AppleCompilationBox extends AbstractAppleMetaDataBox {
+ public static final String TYPE = "cpil";
+
+
+ public AppleCompilationBox() {
+ super(TYPE);
+ appleDataBox = AppleDataBox.getUint8AppleDataBox();
+ }
+
+}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCopyrightBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCopyrightBox.java.svn-base new file mode 100644 index 0000000..ae44285 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCopyrightBox.java.svn-base @@ -0,0 +1,15 @@ +package com.coremedia.iso.boxes.apple; + +/** + * itunes MetaData comment box. + */ +public final class AppleCopyrightBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "cprt"; + + + public AppleCopyrightBox() { + super(TYPE); + appleDataBox = AppleDataBox.getStringAppleDataBox(); + } + +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCoverBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCoverBox.java.svn-base new file mode 100644 index 0000000..946dd49 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCoverBox.java.svn-base @@ -0,0 +1,44 @@ +package com.coremedia.iso.boxes.apple; + +import java.util.logging.Logger; + +/** + * + */ +public final class AppleCoverBox extends AbstractAppleMetaDataBox { + private static Logger LOG = Logger.getLogger(AppleCoverBox.class.getName()); + public static final String TYPE = "covr"; + + + public AppleCoverBox() { + super(TYPE); + } + + + public void setPng(byte[] pngData) { + appleDataBox = new AppleDataBox(); + appleDataBox.setVersion(0); + appleDataBox.setFlags(0xe); + appleDataBox.setFourBytes(new byte[4]); + appleDataBox.setData(pngData); + } + + + public void setJpg(byte[] jpgData) { + appleDataBox = new AppleDataBox(); + appleDataBox.setVersion(0); + appleDataBox.setFlags(0xd); + appleDataBox.setFourBytes(new byte[4]); + appleDataBox.setData(jpgData); + } + + @Override + public void setValue(String value) { + LOG.warning("---"); + } + + @Override + public String getValue() { + return "---"; + } +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCustomGenreBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCustomGenreBox.java.svn-base new file mode 100644 index 0000000..0c67f97 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCustomGenreBox.java.svn-base @@ -0,0 +1,28 @@ +package com.coremedia.iso.boxes.apple; + +import com.coremedia.iso.Utf8; + +/** + * + */ +public final class AppleCustomGenreBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "\u00a9gen"; + + + public AppleCustomGenreBox() { + super(TYPE); + appleDataBox = AppleDataBox.getStringAppleDataBox(); + } + + public void setGenre(String genre) { + appleDataBox = new AppleDataBox(); + appleDataBox.setVersion(0); + appleDataBox.setFlags(1); + appleDataBox.setFourBytes(new byte[4]); + appleDataBox.setData(Utf8.convert(genre)); + } + + public String getGenre() { + return Utf8.convert(appleDataBox.getData()); + } +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleDataBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleDataBox.java.svn-base new file mode 100644 index 0000000..ba42629 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleDataBox.java.svn-base @@ -0,0 +1,92 @@ +package com.coremedia.iso.boxes.apple; + +import com.googlecode.mp4parser.AbstractFullBox; + +import java.nio.ByteBuffer; + +/** + * Most stupid box of the world. Encapsulates actual data within + */ +public final class AppleDataBox extends AbstractFullBox { + public static final String TYPE = "data"; + + private byte[] fourBytes = new byte[4]; + private byte[] data; + + private static AppleDataBox getEmpty() { + AppleDataBox appleDataBox = new AppleDataBox(); + appleDataBox.setVersion(0); + appleDataBox.setFourBytes(new byte[4]); + return appleDataBox; + } + + public static AppleDataBox getStringAppleDataBox() { + AppleDataBox appleDataBox = getEmpty(); + appleDataBox.setFlags(1); + appleDataBox.setData(new byte[]{0}); + return appleDataBox; + } + + public static AppleDataBox getUint8AppleDataBox() { + AppleDataBox appleDataBox = new AppleDataBox(); + appleDataBox.setFlags(21); + appleDataBox.setData(new byte[]{0}); + return appleDataBox; + } + + public static AppleDataBox getUint16AppleDataBox() { + AppleDataBox appleDataBox = new AppleDataBox(); + appleDataBox.setFlags(21); + appleDataBox.setData(new byte[]{0, 0}); + return appleDataBox; + } + + public static AppleDataBox getUint32AppleDataBox() { + AppleDataBox appleDataBox = new AppleDataBox(); + appleDataBox.setFlags(21); + appleDataBox.setData(new byte[]{0, 0, 0, 0}); + return appleDataBox; + } + + public AppleDataBox() { + super(TYPE); + } + + protected long getContentSize() { + return data.length + 8; + } + + public void setData(byte[] data) { + this.data = new byte[data.length]; + System.arraycopy(data, 0, this.data, 0, data.length); + } + + public void setFourBytes(byte[] fourBytes) { + System.arraycopy(fourBytes, 0, this.fourBytes, 0, 4); + } + + @Override + public void _parseDetails(ByteBuffer content) { + parseVersionAndFlags(content); + fourBytes = new byte[4]; + content.get(fourBytes); + data = new byte[content.remaining()]; + content.get(data); + } + + + @Override + protected void getContent(ByteBuffer byteBuffer) { + writeVersionAndFlags(byteBuffer); + byteBuffer.put(fourBytes, 0, 4); + byteBuffer.put(data); + } + + public byte[] getFourBytes() { + return fourBytes; + } + + public byte[] getData() { + return data; + } +} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleDataRateBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleDataRateBox.java.svn-base new file mode 100644 index 0000000..e58e550 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleDataRateBox.java.svn-base @@ -0,0 +1,53 @@ +/*
+ * Copyright 2009 castLabs GmbH, Berlin
+ *
+ * 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.apple;
+
+import com.coremedia.iso.IsoTypeReader;
+import com.coremedia.iso.IsoTypeWriter;
+import com.googlecode.mp4parser.AbstractFullBox;
+
+import java.nio.ByteBuffer;
+
+public class AppleDataRateBox extends AbstractFullBox {
+ public static final String TYPE = "rmdr";
+ private long dataRate;
+
+ public AppleDataRateBox() {
+ super(TYPE);
+ }
+
+ protected long getContentSize() {
+ return 8;
+ }
+
+ @Override
+ public void _parseDetails(ByteBuffer content) {
+ parseVersionAndFlags(content);
+ dataRate = IsoTypeReader.readUInt32(content);
+ }
+
+ @Override
+ protected void getContent(ByteBuffer byteBuffer) {
+ writeVersionAndFlags(byteBuffer);
+ IsoTypeWriter.writeUInt32(byteBuffer, dataRate);
+ }
+
+
+ public long getDataRate() {
+ return dataRate;
+ }
+}
diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleDataReferenceBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleDataReferenceBox.java.svn-base new file mode 100644 index 0000000..7370c10 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleDataReferenceBox.java.svn-base @@ -0,0 +1,71 @@ +/*
+ * Copyright 2009 castLabs GmbH, Berlin
+ *
+ * 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.apple;
+
+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 static com.googlecode.mp4parser.util.CastUtils.l2i;
+
+public class AppleDataReferenceBox extends AbstractFullBox {
+ public static final String TYPE = "rdrf";
+ private int dataReferenceSize;
+ private String dataReferenceType;
+ private String dataReference;
+
+ public AppleDataReferenceBox() {
+ super(TYPE);
+ }
+
+
+ protected long getContentSize() {
+ return 12 + dataReferenceSize;
+ }
+
+ @Override
+ public void _parseDetails(ByteBuffer content) {
+ parseVersionAndFlags(content);
+ dataReferenceType = IsoTypeReader.read4cc(content);
+ dataReferenceSize = l2i(IsoTypeReader.readUInt32(content));
+ dataReference = IsoTypeReader.readString(content, dataReferenceSize);
+ }
+
+ @Override
+ protected void getContent(ByteBuffer byteBuffer) {
+ writeVersionAndFlags(byteBuffer);
+ byteBuffer.put(IsoFile.fourCCtoBytes(dataReferenceType));
+ IsoTypeWriter.writeUInt32(byteBuffer, dataReferenceSize);
+ byteBuffer.put(Utf8.convert(dataReference));
+ }
+
+ public long getDataReferenceSize() {
+ return dataReferenceSize;
+ }
+
+ public String getDataReferenceType() {
+ return dataReferenceType;
+ }
+
+ public String getDataReference() {
+ return dataReference;
+ }
+}
diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleDescriptionBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleDescriptionBox.java.svn-base new file mode 100644 index 0000000..e20e0fc --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleDescriptionBox.java.svn-base @@ -0,0 +1,15 @@ +package com.coremedia.iso.boxes.apple; + +/** + * + */ +public final class AppleDescriptionBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "desc"; + + + public AppleDescriptionBox() { + super(TYPE); + appleDataBox = AppleDataBox.getStringAppleDataBox(); + } + +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleEncoderBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleEncoderBox.java.svn-base new file mode 100644 index 0000000..5a59e81 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleEncoderBox.java.svn-base @@ -0,0 +1,15 @@ +package com.coremedia.iso.boxes.apple; + +/** + * itunes MetaData comment box. + */ +public final class AppleEncoderBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "\u00a9too"; + + + public AppleEncoderBox() { + super(TYPE); + appleDataBox = AppleDataBox.getStringAppleDataBox(); + } + +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleGaplessPlaybackBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleGaplessPlaybackBox.java.svn-base new file mode 100644 index 0000000..c617a54 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleGaplessPlaybackBox.java.svn-base @@ -0,0 +1,15 @@ +package com.coremedia.iso.boxes.apple;
+
+/**
+ * Gapless Playback.
+ */
+public final class AppleGaplessPlaybackBox extends AbstractAppleMetaDataBox {
+ public static final String TYPE = "pgap";
+
+
+ public AppleGaplessPlaybackBox() {
+ super(TYPE);
+ appleDataBox = AppleDataBox.getUint8AppleDataBox();
+ }
+
+}
diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleGenericBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleGenericBox.java.svn-base new file mode 100644 index 0000000..177a25b --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleGenericBox.java.svn-base @@ -0,0 +1,15 @@ +package com.coremedia.iso.boxes.apple; + +import com.googlecode.mp4parser.AbstractContainerBox; + +/** + * + */ +public final class AppleGenericBox extends AbstractContainerBox { + public static final String TYPE = "----"; + + public AppleGenericBox() { + super(TYPE); + } + +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleGroupingBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleGroupingBox.java.svn-base new file mode 100644 index 0000000..9884298 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleGroupingBox.java.svn-base @@ -0,0 +1,15 @@ +package com.coremedia.iso.boxes.apple; + +/** + * itunes MetaData comment box. + */ +public final class AppleGroupingBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "\u00a9grp"; + + + public AppleGroupingBox() { + super(TYPE); + appleDataBox = AppleDataBox.getStringAppleDataBox(); + } + +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleIdBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleIdBox.java.svn-base new file mode 100644 index 0000000..08c697e --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleIdBox.java.svn-base @@ -0,0 +1,15 @@ +package com.coremedia.iso.boxes.apple; + +/** + * + */ +public final class AppleIdBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "apID"; + + + public AppleIdBox() { + super(TYPE); + appleDataBox = AppleDataBox.getStringAppleDataBox(); + } + +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleItemListBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleItemListBox.java.svn-base new file mode 100644 index 0000000..cd26e81 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleItemListBox.java.svn-base @@ -0,0 +1,15 @@ +package com.coremedia.iso.boxes.apple; + +import com.googlecode.mp4parser.AbstractContainerBox; + +/** + * undocumented iTunes MetaData Box. + */ +public class AppleItemListBox extends AbstractContainerBox { + public static final String TYPE = "ilst"; + + public AppleItemListBox() { + super(TYPE); + } + +} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleLosslessSpecificBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleLosslessSpecificBox.java.svn-base new file mode 100644 index 0000000..781af49 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleLosslessSpecificBox.java.svn-base @@ -0,0 +1,163 @@ +package com.coremedia.iso.boxes.apple;
+
+import com.coremedia.iso.IsoTypeReader;
+import com.coremedia.iso.IsoTypeWriter;
+import com.googlecode.mp4parser.AbstractFullBox;
+
+import java.nio.ByteBuffer;
+
+/**
+ *
+ */
+public final class AppleLosslessSpecificBox extends AbstractFullBox {
+
+ public static final String TYPE = "alac";
+ /*
+ Extradata: 32bit size 32bit tag (=alac) 32bit zero?
+ 32bit max sample per frame 8bit ?? (zero?) 8bit sample
+ size 8bit history mult 8bit initial history 8bit kmodifier
+ 8bit channels? 16bit ?? 32bit max coded frame size 32bit
+ bitrate? 32bit samplerate
+ */
+ private long maxSamplePerFrame; // 32bi
+ private int unknown1; // 8bit
+ private int sampleSize; // 8bit
+ private int historyMult; // 8bit
+ private int initialHistory; // 8bit
+ private int kModifier; // 8bit
+ private int channels; // 8bit
+ private int unknown2; // 16bit
+ private long maxCodedFrameSize; // 32bit
+ private long bitRate; // 32bit
+ private long sampleRate; // 32bit
+
+ public long getMaxSamplePerFrame() {
+ return maxSamplePerFrame;
+ }
+
+ public void setMaxSamplePerFrame(int maxSamplePerFrame) {
+ this.maxSamplePerFrame = maxSamplePerFrame;
+ }
+
+ public int getUnknown1() {
+ return unknown1;
+ }
+
+ public void setUnknown1(int unknown1) {
+ this.unknown1 = unknown1;
+ }
+
+ public int getSampleSize() {
+ return sampleSize;
+ }
+
+ public void setSampleSize(int sampleSize) {
+ this.sampleSize = sampleSize;
+ }
+
+ public int getHistoryMult() {
+ return historyMult;
+ }
+
+ public void setHistoryMult(int historyMult) {
+ this.historyMult = historyMult;
+ }
+
+ public int getInitialHistory() {
+ return initialHistory;
+ }
+
+ public void setInitialHistory(int initialHistory) {
+ this.initialHistory = initialHistory;
+ }
+
+ public int getKModifier() {
+ return kModifier;
+ }
+
+ public void setKModifier(int kModifier) {
+ this.kModifier = kModifier;
+ }
+
+ public int getChannels() {
+ return channels;
+ }
+
+ public void setChannels(int channels) {
+ this.channels = channels;
+ }
+
+ public int getUnknown2() {
+ return unknown2;
+ }
+
+ public void setUnknown2(int unknown2) {
+ this.unknown2 = unknown2;
+ }
+
+ public long getMaxCodedFrameSize() {
+ return maxCodedFrameSize;
+ }
+
+ public void setMaxCodedFrameSize(int maxCodedFrameSize) {
+ this.maxCodedFrameSize = maxCodedFrameSize;
+ }
+
+ public long getBitRate() {
+ return bitRate;
+ }
+
+ public void setBitRate(int bitRate) {
+ this.bitRate = bitRate;
+ }
+
+ public long getSampleRate() {
+ return sampleRate;
+ }
+
+ public void setSampleRate(int sampleRate) {
+ this.sampleRate = sampleRate;
+ }
+
+
+ @Override
+ public void _parseDetails(ByteBuffer content) {
+ parseVersionAndFlags(content);
+ maxSamplePerFrame = IsoTypeReader.readUInt32(content);
+ unknown1 = IsoTypeReader.readUInt8(content);
+ sampleSize = IsoTypeReader.readUInt8(content);
+ historyMult = IsoTypeReader.readUInt8(content);
+ initialHistory = IsoTypeReader.readUInt8(content);
+ kModifier = IsoTypeReader.readUInt8(content);
+ channels = IsoTypeReader.readUInt8(content);
+ unknown2 = IsoTypeReader.readUInt16(content);
+ maxCodedFrameSize = IsoTypeReader.readUInt32(content);
+ bitRate = IsoTypeReader.readUInt32(content);
+ sampleRate = IsoTypeReader.readUInt32(content);
+ }
+
+ @Override
+ protected void getContent(ByteBuffer byteBuffer) {
+ writeVersionAndFlags(byteBuffer);
+ IsoTypeWriter.writeUInt32(byteBuffer, maxSamplePerFrame);
+ IsoTypeWriter.writeUInt8(byteBuffer, unknown1);
+ IsoTypeWriter.writeUInt8(byteBuffer, sampleSize);
+ IsoTypeWriter.writeUInt8(byteBuffer, historyMult);
+ IsoTypeWriter.writeUInt8(byteBuffer, initialHistory);
+ IsoTypeWriter.writeUInt8(byteBuffer, kModifier);
+ IsoTypeWriter.writeUInt8(byteBuffer, channels);
+ IsoTypeWriter.writeUInt16(byteBuffer, unknown2);
+ IsoTypeWriter.writeUInt32(byteBuffer, maxCodedFrameSize);
+ IsoTypeWriter.writeUInt32(byteBuffer, bitRate);
+ IsoTypeWriter.writeUInt32(byteBuffer, sampleRate);
+ }
+
+ public AppleLosslessSpecificBox() {
+ super("alac");
+ }
+
+ protected long getContentSize() {
+ return 28;
+ }
+
+}
diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleMeanBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleMeanBox.java.svn-base new file mode 100644 index 0000000..3a26f96 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleMeanBox.java.svn-base @@ -0,0 +1,47 @@ +package com.coremedia.iso.boxes.apple;
+
+import com.coremedia.iso.IsoTypeReader;
+import com.coremedia.iso.Utf8;
+import com.googlecode.mp4parser.AbstractFullBox;
+
+import java.nio.ByteBuffer;
+
+/**
+ * Apple Meaning box. Allowed as subbox of "----" box.
+ *
+ * @see com.coremedia.iso.boxes.apple.AppleGenericBox
+ */
+public final class AppleMeanBox extends AbstractFullBox {
+ public static final String TYPE = "mean";
+ private String meaning;
+
+ public AppleMeanBox() {
+ super(TYPE);
+ }
+
+ protected long getContentSize() {
+ return 4 + Utf8.utf8StringLengthInBytes(meaning);
+ }
+
+ @Override
+ public void _parseDetails(ByteBuffer content) {
+ parseVersionAndFlags(content);
+ meaning = IsoTypeReader.readString(content, content.remaining());
+ }
+
+ @Override
+ protected void getContent(ByteBuffer byteBuffer) {
+ writeVersionAndFlags(byteBuffer);
+ byteBuffer.put(Utf8.convert(meaning));
+ }
+
+ public String getMeaning() {
+ return meaning;
+ }
+
+ public void setMeaning(String meaning) {
+ this.meaning = meaning;
+ }
+
+
+}
diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleMediaTypeBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleMediaTypeBox.java.svn-base new file mode 100644 index 0000000..f4ca98d --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleMediaTypeBox.java.svn-base @@ -0,0 +1,39 @@ +package com.coremedia.iso.boxes.apple; + +import java.util.HashMap; +import java.util.Map; + +/** + * itunes MetaData comment box. + */ +public class AppleMediaTypeBox extends AbstractAppleMetaDataBox { + private static Map<String, String> mediaTypes = new HashMap<String, String>(); + + static { + mediaTypes.put("0", "Movie (is now 9)"); + mediaTypes.put("1", "Normal (Music)"); + mediaTypes.put("2", "Audiobook"); + mediaTypes.put("6", "Music Video"); + mediaTypes.put("9", "Movie"); + mediaTypes.put("10", "TV Show"); + mediaTypes.put("11", "Booklet"); + mediaTypes.put("14", "Ringtone"); + } + + public static final String TYPE = "stik"; + + + public AppleMediaTypeBox() { + super(TYPE); + appleDataBox = AppleDataBox.getUint8AppleDataBox(); + } + + public String getReadableValue() { + if (mediaTypes.containsKey(getValue())) { + return mediaTypes.get(getValue()); + } else { + return "unknown media type " + getValue(); + } + + } +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleNameBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleNameBox.java.svn-base new file mode 100644 index 0000000..5cad249 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleNameBox.java.svn-base @@ -0,0 +1,45 @@ +package com.coremedia.iso.boxes.apple;
+
+import com.coremedia.iso.IsoTypeReader;
+import com.coremedia.iso.Utf8;
+import com.googlecode.mp4parser.AbstractFullBox;
+
+import java.nio.ByteBuffer;
+
+/**
+ * Apple Name box. Allowed as subbox of "----" box.
+ *
+ * @see AppleGenericBox
+ */
+public final class AppleNameBox extends AbstractFullBox {
+ public static final String TYPE = "name";
+ private String name;
+
+ public AppleNameBox() {
+ super(TYPE);
+ }
+
+ protected long getContentSize() {
+ return 4 + Utf8.convert(name).length;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public void _parseDetails(ByteBuffer content) {
+ parseVersionAndFlags(content);
+ name = IsoTypeReader.readString(content, content.remaining());
+ }
+
+ @Override
+ protected void getContent(ByteBuffer byteBuffer) {
+ writeVersionAndFlags(byteBuffer);
+ byteBuffer.put(Utf8.convert(name));
+ }
+}
diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleNetworkBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleNetworkBox.java.svn-base new file mode 100644 index 0000000..07691b3 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleNetworkBox.java.svn-base @@ -0,0 +1,16 @@ +package com.coremedia.iso.boxes.apple; + +/** + * + */ +public final class AppleNetworkBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "tvnn"; + + + public AppleNetworkBox() { + super(TYPE); + appleDataBox = AppleDataBox.getStringAppleDataBox(); + } + + +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/ApplePurchaseDateBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/ApplePurchaseDateBox.java.svn-base new file mode 100644 index 0000000..eb9807f --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/ApplePurchaseDateBox.java.svn-base @@ -0,0 +1,15 @@ +package com.coremedia.iso.boxes.apple; + +/** + * + */ +public final class ApplePurchaseDateBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "purd"; + + + public ApplePurchaseDateBox() { + super(TYPE); + appleDataBox = AppleDataBox.getStringAppleDataBox(); + } + +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleRatingBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleRatingBox.java.svn-base new file mode 100644 index 0000000..71671fc --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleRatingBox.java.svn-base @@ -0,0 +1,16 @@ +package com.coremedia.iso.boxes.apple; + +/** + * iTunes Rating Box. + */ +public final class AppleRatingBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "rtng"; + + + public AppleRatingBox() { + super(TYPE); + appleDataBox = AppleDataBox.getUint8AppleDataBox(); + } + + +} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleRecordingYearBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleRecordingYearBox.java.svn-base new file mode 100644 index 0000000..da13300 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleRecordingYearBox.java.svn-base @@ -0,0 +1,16 @@ +package com.coremedia.iso.boxes.apple; + +/** + * + */ +public class AppleRecordingYearBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "\u00a9day"; + + + public AppleRecordingYearBox() { + super(TYPE); + appleDataBox = AppleDataBox.getStringAppleDataBox(); + } + + +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleReferenceMovieBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleReferenceMovieBox.java.svn-base new file mode 100644 index 0000000..49c539f --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleReferenceMovieBox.java.svn-base @@ -0,0 +1,28 @@ +/*
+ * Copyright 2009 castLabs GmbH, Berlin
+ *
+ * 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.apple;
+
+import com.googlecode.mp4parser.AbstractContainerBox;
+
+public class AppleReferenceMovieBox extends AbstractContainerBox {
+ public static final String TYPE = "rmra";
+
+ public AppleReferenceMovieBox() {
+ super(TYPE);
+ }
+
+}
diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleReferenceMovieDescriptorBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleReferenceMovieDescriptorBox.java.svn-base new file mode 100644 index 0000000..488f01b --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleReferenceMovieDescriptorBox.java.svn-base @@ -0,0 +1,27 @@ +/*
+ * Copyright 2009 castLabs GmbH, Berlin
+ *
+ * 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.apple;
+
+import com.googlecode.mp4parser.AbstractContainerBox;
+
+public class AppleReferenceMovieDescriptorBox extends AbstractContainerBox {
+ public static final String TYPE = "rmda";
+
+ public AppleReferenceMovieDescriptorBox() {
+ super(TYPE);
+ }
+}
diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleShowBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleShowBox.java.svn-base new file mode 100644 index 0000000..66b0d59 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleShowBox.java.svn-base @@ -0,0 +1,15 @@ +package com.coremedia.iso.boxes.apple; + +/** + * + */ +public final class AppleShowBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "tvsh"; + + + public AppleShowBox() { + super(TYPE); + appleDataBox = AppleDataBox.getStringAppleDataBox(); + } + +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleSortAlbumBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleSortAlbumBox.java.svn-base new file mode 100644 index 0000000..cf74004 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleSortAlbumBox.java.svn-base @@ -0,0 +1,14 @@ +package com.coremedia.iso.boxes.apple; + +/** + * + */ +public final class AppleSortAlbumBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "soal"; + + + public AppleSortAlbumBox() { + super(TYPE); + appleDataBox = AppleDataBox.getStringAppleDataBox(); + } +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleStandardGenreBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleStandardGenreBox.java.svn-base new file mode 100644 index 0000000..21932fa --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleStandardGenreBox.java.svn-base @@ -0,0 +1,14 @@ +package com.coremedia.iso.boxes.apple; + +/** + * + */ +public final class AppleStandardGenreBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "gnre"; + + + public AppleStandardGenreBox() { + super(TYPE); + appleDataBox = AppleDataBox.getUint16AppleDataBox(); + } +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleStoreAccountTypeBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleStoreAccountTypeBox.java.svn-base new file mode 100644 index 0000000..36ecf4e --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleStoreAccountTypeBox.java.svn-base @@ -0,0 +1,27 @@ +package com.coremedia.iso.boxes.apple; + +/** + * itunes MetaData comment box. + */ +public class AppleStoreAccountTypeBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "akID"; + + + public AppleStoreAccountTypeBox() { + super(TYPE); + appleDataBox = AppleDataBox.getUint8AppleDataBox(); + } + + public String getReadableValue() { + byte value = this.appleDataBox.getData()[0]; + switch (value) { + case 0: + return "iTunes Account"; + case 1: + return "AOL Account"; + default: + return "unknown Account"; + } + + } +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleStoreCountryCodeBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleStoreCountryCodeBox.java.svn-base new file mode 100644 index 0000000..2c4756a --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleStoreCountryCodeBox.java.svn-base @@ -0,0 +1,54 @@ +package com.coremedia.iso.boxes.apple; + +import java.util.HashMap; +import java.util.Map; + +/** + * itunes MetaData comment box. + */ +public class AppleStoreCountryCodeBox extends AbstractAppleMetaDataBox { + private static Map<String, String> countryCodes = new HashMap<String, String>(); + + static { + countryCodes.put("143460", "Australia"); + countryCodes.put("143445", "Austria"); + countryCodes.put("143446", "Belgium"); + countryCodes.put("143455", "Canada"); + countryCodes.put("143458", "Denmark"); + countryCodes.put("143447", "Finland"); + countryCodes.put("143442", "France"); + countryCodes.put("143443", "Germany"); + countryCodes.put("143448", "Greece"); + countryCodes.put("143449", "Ireland"); + countryCodes.put("143450", "Italy"); + countryCodes.put("143462", "Japan"); + countryCodes.put("143451", "Luxembourg"); + countryCodes.put("143452", "Netherlands"); + countryCodes.put("143461", "New Zealand"); + countryCodes.put("143457", "Norway"); + countryCodes.put("143453", "Portugal"); + countryCodes.put("143454", "Spain"); + countryCodes.put("143456", "Sweden"); + countryCodes.put("143459", "Switzerland"); + countryCodes.put("143444", "United Kingdom"); + countryCodes.put("143441", "United States"); + } + + public static final String TYPE = "sfID"; + + + public AppleStoreCountryCodeBox() { + super(TYPE); + appleDataBox = AppleDataBox.getUint32AppleDataBox(); + } + + + public String getReadableValue() { + if (countryCodes.containsKey(getValue())) { + return countryCodes.get(getValue()); + } else { + return "unknown country code " + getValue(); + } + + } +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleSynopsisBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleSynopsisBox.java.svn-base new file mode 100644 index 0000000..cd5c2ab --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleSynopsisBox.java.svn-base @@ -0,0 +1,16 @@ +package com.coremedia.iso.boxes.apple; + +/** + * + */ +public final class AppleSynopsisBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "ldes"; + + + public AppleSynopsisBox() { + super(TYPE); + appleDataBox = AppleDataBox.getStringAppleDataBox(); + } + + +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTempBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTempBox.java.svn-base new file mode 100644 index 0000000..ef57228 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTempBox.java.svn-base @@ -0,0 +1,28 @@ +package com.coremedia.iso.boxes.apple;
+
+/**
+ * Beats per minute.
+ */
+public final class AppleTempBox extends AbstractAppleMetaDataBox {
+ public static final String TYPE = "tmpo";
+
+
+ public AppleTempBox() {
+ super(TYPE);
+ appleDataBox = AppleDataBox.getUint16AppleDataBox();
+ }
+
+
+ public int getTempo() {
+ return appleDataBox.getData()[1];
+ }
+
+ public void setTempo(int tempo) {
+ appleDataBox = new AppleDataBox();
+ appleDataBox.setVersion(0);
+ appleDataBox.setFlags(21);
+ appleDataBox.setFourBytes(new byte[4]);
+ appleDataBox.setData(new byte[]{0, (byte) (tempo & 0xFF)});
+
+ }
+}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTrackAuthorBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTrackAuthorBox.java.svn-base new file mode 100644 index 0000000..c5b3732 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTrackAuthorBox.java.svn-base @@ -0,0 +1,16 @@ +package com.coremedia.iso.boxes.apple; + +/** + * + */ +public final class AppleTrackAuthorBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "\u00a9wrt"; + + + public AppleTrackAuthorBox() { + super(TYPE); + appleDataBox = AppleDataBox.getStringAppleDataBox(); + } + + +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTrackNumberBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTrackNumberBox.java.svn-base new file mode 100644 index 0000000..c073c2f --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTrackNumberBox.java.svn-base @@ -0,0 +1,48 @@ +package com.coremedia.iso.boxes.apple; + +/** + * + */ +public final class AppleTrackNumberBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "trkn"; + + + public AppleTrackNumberBox() { + super(TYPE); + } + + + /** + * @param track the actual track number + * @param of number of tracks overall + */ + public void setTrackNumber(byte track, byte of) { + appleDataBox = new AppleDataBox(); + appleDataBox.setVersion(0); + appleDataBox.setFlags(0); + appleDataBox.setFourBytes(new byte[4]); + appleDataBox.setData(new byte[]{0, 0, 0, track, 0, of, 0, 0}); + } + + public byte getTrackNumber() { + return appleDataBox.getData()[3]; + } + + public byte getNumberOfTracks() { + return appleDataBox.getData()[5]; + } + + public void setNumberOfTracks(byte numberOfTracks) { + byte[] content = appleDataBox.getData(); + content[5] = numberOfTracks; + appleDataBox.setData(content); + } + + public void setTrackNumber(byte trackNumber) { + byte[] content = appleDataBox.getData(); + content[3] = trackNumber; + appleDataBox.setData(content); + } + + +}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTrackTitleBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTrackTitleBox.java.svn-base new file mode 100644 index 0000000..3dd613c --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTrackTitleBox.java.svn-base @@ -0,0 +1,15 @@ +package com.coremedia.iso.boxes.apple; + +/** + * + */ +public final class AppleTrackTitleBox extends AbstractAppleMetaDataBox { + public static final String TYPE = "\u00a9nam"; + + + public AppleTrackTitleBox() { + super(TYPE); + appleDataBox = AppleDataBox.getStringAppleDataBox(); + } + +} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTvEpisodeBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTvEpisodeBox.java.svn-base new file mode 100644 index 0000000..3b3817b --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTvEpisodeBox.java.svn-base @@ -0,0 +1,15 @@ +package com.coremedia.iso.boxes.apple;
+
+/**
+ * Tv Episode.
+ */
+public class AppleTvEpisodeBox extends AbstractAppleMetaDataBox {
+ public static final String TYPE = "tves";
+
+
+ public AppleTvEpisodeBox() {
+ super(TYPE);
+ appleDataBox = AppleDataBox.getUint32AppleDataBox();
+ }
+
+}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTvEpisodeNumberBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTvEpisodeNumberBox.java.svn-base new file mode 100644 index 0000000..33cd4e3 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTvEpisodeNumberBox.java.svn-base @@ -0,0 +1,15 @@ +package com.coremedia.iso.boxes.apple;
+
+/**
+ * Tv Episode.
+ */
+public class AppleTvEpisodeNumberBox extends AbstractAppleMetaDataBox {
+ public static final String TYPE = "tven";
+
+
+ public AppleTvEpisodeNumberBox() {
+ super(TYPE);
+ appleDataBox = AppleDataBox.getStringAppleDataBox();
+ }
+
+}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTvSeasonBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTvSeasonBox.java.svn-base new file mode 100644 index 0000000..9459ea3 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTvSeasonBox.java.svn-base @@ -0,0 +1,15 @@ +package com.coremedia.iso.boxes.apple;
+
+/**
+ * Tv Season.
+ */
+public final class AppleTvSeasonBox extends AbstractAppleMetaDataBox {
+ public static final String TYPE = "tvsn";
+
+
+ public AppleTvSeasonBox() {
+ super(TYPE);
+ appleDataBox = AppleDataBox.getUint32AppleDataBox();
+ }
+
+}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleWaveBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleWaveBox.java.svn-base new file mode 100644 index 0000000..65edd38 --- /dev/null +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleWaveBox.java.svn-base @@ -0,0 +1,16 @@ +package com.coremedia.iso.boxes.apple; + +import com.googlecode.mp4parser.AbstractContainerBox; + +/** + * + */ +public final class AppleWaveBox extends AbstractContainerBox { + public static final String TYPE = "wave"; + + public AppleWaveBox() { + super(TYPE); + } + + +} |