diff options
Diffstat (limited to 'isoparser/src/main/java/com/coremedia')
194 files changed, 0 insertions, 20386 deletions
diff --git a/isoparser/src/main/java/com/coremedia/.svn/all-wcprops b/isoparser/src/main/java/com/coremedia/.svn/all-wcprops deleted file mode 100644 index 95a5b8f..0000000 --- a/isoparser/src/main/java/com/coremedia/.svn/all-wcprops +++ /dev/null @@ -1,5 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 61 -/svn/!svn/ver/777/trunk/isoparser/src/main/java/com/coremedia -END diff --git a/isoparser/src/main/java/com/coremedia/.svn/entries b/isoparser/src/main/java/com/coremedia/.svn/entries deleted file mode 100644 index 08e6e56..0000000 --- a/isoparser/src/main/java/com/coremedia/.svn/entries +++ /dev/null @@ -1,31 +0,0 @@ -10 - -dir -778 -http://mp4parser.googlecode.com/svn/trunk/isoparser/src/main/java/com/coremedia -http://mp4parser.googlecode.com/svn - - - -2012-09-10T14:56:10.036617Z -777 -sebastian.annies@gmail.com - - - - - - - - - - - - - - -7decde4b-c250-0410-a0da-51896bc88be6 - -iso -dir - diff --git a/isoparser/src/main/java/com/coremedia/iso/.svn/all-wcprops b/isoparser/src/main/java/com/coremedia/iso/.svn/all-wcprops deleted file mode 100644 index 9b50c5a..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/.svn/all-wcprops +++ /dev/null @@ -1,77 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 65 -/svn/!svn/ver/777/trunk/isoparser/src/main/java/com/coremedia/iso -END -IsoTypeReader.java -K 25 -svn:wc:ra_dav:version-url -V 84 -/svn/!svn/ver/659/trunk/isoparser/src/main/java/com/coremedia/iso/IsoTypeReader.java -END -IsoTypeWriterVariable.java -K 25 -svn:wc:ra_dav:version-url -V 92 -/svn/!svn/ver/426/trunk/isoparser/src/main/java/com/coremedia/iso/IsoTypeWriterVariable.java -END -Hex.java -K 25 -svn:wc:ra_dav:version-url -V 74 -/svn/!svn/ver/619/trunk/isoparser/src/main/java/com/coremedia/iso/Hex.java -END -IsoTypeReaderVariable.java -K 25 -svn:wc:ra_dav:version-url -V 92 -/svn/!svn/ver/419/trunk/isoparser/src/main/java/com/coremedia/iso/IsoTypeReaderVariable.java -END -BoxParser.java -K 25 -svn:wc:ra_dav:version-url -V 80 -/svn/!svn/ver/419/trunk/isoparser/src/main/java/com/coremedia/iso/BoxParser.java -END -Utf8.java -K 25 -svn:wc:ra_dav:version-url -V 75 -/svn/!svn/ver/419/trunk/isoparser/src/main/java/com/coremedia/iso/Utf8.java -END -Ascii.java -K 25 -svn:wc:ra_dav:version-url -V 76 -/svn/!svn/ver/419/trunk/isoparser/src/main/java/com/coremedia/iso/Ascii.java -END -ChannelHelper.java -K 25 -svn:wc:ra_dav:version-url -V 84 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/ChannelHelper.java -END -IsoTypeWriter.java -K 25 -svn:wc:ra_dav:version-url -V 84 -/svn/!svn/ver/692/trunk/isoparser/src/main/java/com/coremedia/iso/IsoTypeWriter.java -END -AbstractBoxParser.java -K 25 -svn:wc:ra_dav:version-url -V 88 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/AbstractBoxParser.java -END -IsoFile.java -K 25 -svn:wc:ra_dav:version-url -V 78 -/svn/!svn/ver/742/trunk/isoparser/src/main/java/com/coremedia/iso/IsoFile.java -END -PropertyBoxParserImpl.java -K 25 -svn:wc:ra_dav:version-url -V 92 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/PropertyBoxParserImpl.java -END diff --git a/isoparser/src/main/java/com/coremedia/iso/.svn/entries b/isoparser/src/main/java/com/coremedia/iso/.svn/entries deleted file mode 100644 index 0114cad..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/.svn/entries +++ /dev/null @@ -1,442 +0,0 @@ -10 - -dir -778 -http://mp4parser.googlecode.com/svn/trunk/isoparser/src/main/java/com/coremedia/iso -http://mp4parser.googlecode.com/svn - - - -2012-09-10T14:56:10.036617Z -777 -sebastian.annies@gmail.com - - - - - - - - - - - - - - -7decde4b-c250-0410-a0da-51896bc88be6 - -IsoTypeReader.java -file - - - - -2012-09-14T17:27:53.147256Z -1b3832056109e2538ddb064410e145a3 -2012-06-06T10:36:53.498661Z -659 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -4181 - -IsoTypeWriterVariable.java -file - - - - -2012-09-14T17:27:53.157256Z -dc08bcfd952e251e81f54d6876cf2822 -2012-03-12T12:55:40.927472Z -426 -hoemmagnus@gmail.com - - - - - - - - - - - - - - - - - - - - - -1471 - -boxes -dir - -Hex.java -file - - - - -2012-09-14T17:27:53.157256Z -834508c38dadb7747ba2a9e611a29f75 -2012-05-20T18:32:15.672660Z -619 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2026 - -mdta -dir - -IsoTypeReaderVariable.java -file - - - - -2012-09-14T17:27:53.157256Z -a2e5fe2ff8d860e485a09fe069b23b67 -2012-03-11T20:58:41.111953Z -419 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1283 - -BoxParser.java -file - - - - -2012-09-14T17:27:53.157256Z -7ffb4de0f5409f6be08384c50ed1f239 -2012-03-11T20:58:41.111953Z -419 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1089 - -Utf8.java -file - - - - -2012-09-14T17:27:53.157256Z -7e580cd68183dc1f3927fb0866b2030b -2012-03-11T20:58:41.111953Z -419 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1712 - -Ascii.java -file - - - - -2012-09-14T17:27:53.157256Z -30e0990932cfaaf6df4603a5aabbd724 -2012-03-11T20:58:41.111953Z -419 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1274 - -ChannelHelper.java -file - - - - -2012-09-14T17:27:53.157256Z -363efdcb385f027569cf4748273c9533 -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2750 - -IsoTypeWriter.java -file - - - - -2012-09-14T17:27:53.157256Z -746a167bf3de7edb454855bed18ec21b -2012-06-25T03:13:15.796438Z -692 -michael.stattmann@gmail.com - - - - - - - - - - - - - - - - - - - - - -2840 - -AbstractBoxParser.java -file - - - - -2012-09-14T17:27:53.157256Z -e5bf90052f2d10b984827de45560b8b8 -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -4828 - -IsoFile.java -file - - - - -2012-09-14T17:27:53.157256Z -fa74e86d8e2f3f19c2a91319ee286b38 -2012-08-12T09:16:02.229115Z -742 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -5567 - -PropertyBoxParserImpl.java -file - - - - -2012-09-14T17:27:53.157256Z -e93996880a8025f186a835bbff195141 -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -7247 - diff --git a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/AbstractBoxParser.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/AbstractBoxParser.java.svn-base deleted file mode 100644 index 6d92acd..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/AbstractBoxParser.java.svn-base +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright 2012 Sebastian Annies, 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; - -import com.coremedia.iso.boxes.Box; -import com.coremedia.iso.boxes.ContainerBox; -import com.coremedia.iso.boxes.UserBox; - -import java.io.IOException; -import java.nio.ByteBuffer; -import java.nio.channels.FileChannel; -import java.nio.channels.ReadableByteChannel; -import java.util.logging.Logger; - -import static com.googlecode.mp4parser.util.CastUtils.l2i; - -/** - * This BoxParser handles the basic stuff like reading size and extracting box type. - */ -public abstract class AbstractBoxParser implements BoxParser { - - private static Logger LOG = Logger.getLogger(AbstractBoxParser.class.getName()); - - public abstract Box createBox(String type, byte[] userType, String parent); - - /** - * Parses the next size and type, creates a box instance and parses the box's content. - * - * @param byteChannel the FileChannel pointing to the ISO file - * @param parent the current box's parent (null if no parent) - * @return the box just parsed - * @throws java.io.IOException if reading from <code>in</code> fails - */ - public Box parseBox(ReadableByteChannel byteChannel, ContainerBox parent) throws IOException { - - - ByteBuffer header = ChannelHelper.readFully(byteChannel, 8); - - long size = IsoTypeReader.readUInt32(header); - // do plausibility check - if (size < 8 && size > 1) { - LOG.severe("Plausibility check failed: size < 8 (size = " + size + "). Stop parsing!"); - return null; - } - - - String type = IsoTypeReader.read4cc(header); - byte[] usertype = null; - long contentSize; - - if (size == 1) { - ByteBuffer bb = ByteBuffer.allocate(8); - byteChannel.read(bb); - bb.rewind(); - size = IsoTypeReader.readUInt64(bb); - contentSize = size - 16; - } else if (size == 0) { - if (byteChannel instanceof FileChannel) { - size = ((FileChannel) byteChannel).size() - ((FileChannel) byteChannel).position() - 8; - } else { - throw new RuntimeException("Only FileChannel inputs may use size == 0 (box reaches to the end of file)"); - } - contentSize = size - 8; - } else { - contentSize = size - 8; - } - if (UserBox.TYPE.equals(type)) { - ByteBuffer bb = ByteBuffer.allocate(16); - byteChannel.read(bb); - bb.rewind(); - usertype = bb.array(); - contentSize -= 16; - } - Box box = createBox(type, usertype, parent.getType()); - box.setParent(parent); - LOG.finest("Parsing " + box.getType()); - // System.out.println("parsing " + Arrays.toString(box.getType()) + " " + box.getClass().getName() + " size=" + size); - - - if (l2i(size - contentSize) == 8) { - // default - no large box - no uuid - // do nothing header's already correct - header.rewind(); - } else if (l2i(size - contentSize) == 16) { - header = ByteBuffer.allocate(16); - IsoTypeWriter.writeUInt32(header, 1); - header.put(IsoFile.fourCCtoBytes(type)); - IsoTypeWriter.writeUInt64(header, size); - } else if (l2i(size - contentSize) == 24) { - header = ByteBuffer.allocate(24); - IsoTypeWriter.writeUInt32(header, size); - header.put(IsoFile.fourCCtoBytes(type)); - header.put(usertype); - } else if (l2i(size - contentSize) == 32) { - header = ByteBuffer.allocate(32); - IsoTypeWriter.writeUInt32(header, size); - header.put(IsoFile.fourCCtoBytes(type)); - IsoTypeWriter.writeUInt64(header, size); - header.put(usertype); - } else { - throw new RuntimeException("I didn't expect that"); - } - - - box.parse(byteChannel, header, contentSize, this); - // System.out.println("box = " + box); - - - assert size == box.getSize() : - "Reconstructed Size is not x to the number of parsed bytes! (" + - box.getType() + ")" - + " Actual Box size: " + size + " Calculated size: " + box.getSize(); - return box; - } - - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/Ascii.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/Ascii.java.svn-base deleted file mode 100644 index 2a659d7..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/Ascii.java.svn-base +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2012 Sebastian Annies, 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; - -import java.io.UnsupportedEncodingException; - -/** - * Converts <code>byte[]</code> -> <code>String</code> and vice versa. - */ -public final class Ascii { - public static byte[] convert(String s) { - try { - if (s != null) { - return s.getBytes("us-ascii"); - } else { - return null; - } - } catch (UnsupportedEncodingException e) { - throw new Error(e); - } - } - - public static String convert(byte[] b) { - try { - if (b != null) { - return new String(b, "us-ascii"); - } else { - return null; - } - } catch (UnsupportedEncodingException e) { - throw new Error(e); - } - } -}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/BoxParser.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/BoxParser.java.svn-base deleted file mode 100644 index cbe9a6f..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/BoxParser.java.svn-base +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2012 Sebastian Annies, 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; - -import com.coremedia.iso.boxes.Box; -import com.coremedia.iso.boxes.ContainerBox; - -import java.io.IOException; -import java.nio.channels.ReadableByteChannel; - -/** - * Basic interface to create boxes from a <code>IsoBufferWrapper</code> and its parent. - */ -public interface BoxParser { - Class<? extends Box> getClassForFourCc(String type, byte[] userType, String parent); - - Box parseBox(ReadableByteChannel in, ContainerBox parent) throws IOException; -} diff --git a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/ChannelHelper.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/ChannelHelper.java.svn-base deleted file mode 100644 index 2ec1d05..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/ChannelHelper.java.svn-base +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright 2012 Sebastian Annies, 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; - -import java.io.EOFException; -import java.io.IOException; -import java.nio.ByteBuffer; -import java.nio.channels.FileChannel; -import java.nio.channels.ReadableByteChannel; -import java.nio.channels.SelectionKey; -import java.nio.channels.WritableByteChannel; - -import static com.googlecode.mp4parser.util.CastUtils.l2i; - - -public class ChannelHelper { - public static ByteBuffer readFully(final ReadableByteChannel channel, long size) throws IOException { - - if (channel instanceof FileChannel && size > 1024 * 1024) { - ByteBuffer bb = ((FileChannel) channel).map(FileChannel.MapMode.READ_ONLY, ((FileChannel) channel).position(), size); - ((FileChannel) channel).position(((FileChannel) channel).position() + size); - return bb; - } else { - ByteBuffer buf = ByteBuffer.allocate(l2i(size)); - readFully(channel, buf, buf.limit()); - buf.rewind(); - assert buf.limit() == size; - - return buf; - } - - } - - - public static void readFully(final ReadableByteChannel channel, final ByteBuffer buf) - throws IOException { - readFully(channel, buf, buf.remaining()); - } - - public static int readFully(final ReadableByteChannel channel, final ByteBuffer buf, final int length) - throws IOException { - int n, count = 0; - while (-1 != (n = channel.read(buf))) { - count += n; - if (count == length) { - break; - } - } - if (n == -1) { - throw new EOFException("End of file. No more boxes."); - } - return count; - } - - - public static void writeFully(final WritableByteChannel channel, final ByteBuffer buf) - throws IOException { - do { - int written = channel.write(buf); - if (written < 0) { - throw new EOFException(); - } - } while (buf.hasRemaining()); - } - - - public static void close(SelectionKey key) { - try { - key.channel().close(); - } catch (IOException e) { - // nop - } - - } - - -}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/Hex.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/Hex.java.svn-base deleted file mode 100644 index b3d55ef..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/Hex.java.svn-base +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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. - */ - -/* -Extracted from commons-codec - */ -package com.coremedia.iso; - -import java.io.ByteArrayOutputStream; - -/** - * Converts hexadecimal Strings. - */ -public class Hex { - private static final char[] DIGITS = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; - - public static String encodeHex(byte[] data) { - return encodeHex(data, 0); - } - - public static String encodeHex(byte[] data, int group) { - int l = data.length; - char[] out = new char[(l << 1) + (group > 0 ? (l / group) : 0)]; - // two characters form the hex value. - for (int i = 0, j = 0; i < l; i++) { - if ((group > 0) && ((i % group) == 0) && j > 0) { - out[j++] = '-'; - } - - out[j++] = DIGITS[(0xF0 & data[i]) >>> 4]; - out[j++] = DIGITS[0x0F & data[i]]; - } - return new String(out); - } - - public static byte[] decodeHex(String hexString) { - ByteArrayOutputStream bas = new ByteArrayOutputStream(); - for (int i = 0; i < hexString.length(); i += 2) { - int b = Integer.parseInt(hexString.substring(i, i + 2), 16); - bas.write(b); - } - return bas.toByteArray(); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoFile.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoFile.java.svn-base deleted file mode 100644 index a6f4b2b..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoFile.java.svn-base +++ /dev/null @@ -1,195 +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; - -import com.googlecode.mp4parser.AbstractContainerBox; -import com.coremedia.iso.boxes.Box; -import com.coremedia.iso.boxes.MovieBox; -import com.googlecode.mp4parser.annotations.DoNotParseDetail; - -import java.io.*; -import java.nio.ByteBuffer; -import java.nio.channels.FileChannel; -import java.nio.channels.ReadableByteChannel; -import java.nio.channels.WritableByteChannel; - -/** - * The most upper container for ISO Boxes. It is a container box that is a file. - * Uses IsoBufferWrapper to access the underlying file. - */ -@DoNotParseDetail -public class IsoFile extends AbstractContainerBox implements Closeable { - protected BoxParser boxParser = new PropertyBoxParserImpl(); - ReadableByteChannel byteChannel; - - public IsoFile() { - super(""); - } - - public IsoFile(File f) throws IOException { - super(""); - this.byteChannel = new FileInputStream(f).getChannel(); - boxParser = createBoxParser(); - parse(); - } - - public IsoFile(ReadableByteChannel byteChannel) throws IOException { - super(""); - this.byteChannel = byteChannel; - boxParser = createBoxParser(); - parse(); - } - - public IsoFile(ReadableByteChannel byteChannel, BoxParser boxParser) throws IOException { - super(""); - this.byteChannel = byteChannel; - this.boxParser = boxParser; - parse(); - - - } - - protected BoxParser createBoxParser() { - return new PropertyBoxParserImpl(); - } - - - @Override - public void _parseDetails(ByteBuffer content) { - // there are no details to parse we should be just file - } - - public void parse(ReadableByteChannel inFC, ByteBuffer header, long contentSize, AbstractBoxParser abstractBoxParser) throws IOException { - throw new IOException("This method is not meant to be called. Use #parse() directly."); - } - - private void parse() throws IOException { - - boolean done = false; - while (!done) { - try { - Box box = boxParser.parseBox(byteChannel, this); - if (box != null) { - // System.err.println(box.getType()); - boxes.add(box); - } else { - done = true; - } - } catch (EOFException e) { - done = true; - } - } - } - - @DoNotParseDetail - public String toString() { - StringBuilder buffer = new StringBuilder(); - buffer.append("IsoFile["); - if (boxes == null) { - buffer.append("unparsed"); - } else { - for (int i = 0; i < boxes.size(); i++) { - if (i > 0) { - buffer.append(";"); - } - buffer.append(boxes.get(i).toString()); - } - } - buffer.append("]"); - return buffer.toString(); - } - - @DoNotParseDetail - public static byte[] fourCCtoBytes(String fourCC) { - byte[] result = new byte[4]; - if (fourCC != null) { - for (int i = 0; i < Math.min(4, fourCC.length()); i++) { - result[i] = (byte) fourCC.charAt(i); - } - } - return result; - } - - @DoNotParseDetail - public static String bytesToFourCC(byte[] type) { - byte[] result = new byte[]{0, 0, 0, 0}; - if (type != null) { - System.arraycopy(type, 0, result, 0, Math.min(type.length, 4)); - } - try { - return new String(result, "ISO-8859-1"); - } catch (UnsupportedEncodingException e) { - throw new Error("Required character encoding is missing", e); - } - } - - - @Override - public long getNumOfBytesToFirstChild() { - return 0; - } - - @Override - public long getSize() { - long size = 0; - for (Box box : boxes) { - size += box.getSize(); - } - return size; - } - - @Override - public IsoFile getIsoFile() { - return this; - } - - - /** - * Shortcut to get the MovieBox since it is often needed and present in - * nearly all ISO 14496 files (at least if they are derived from MP4 ). - * - * @return the MovieBox or <code>null</code> - */ - @DoNotParseDetail - public MovieBox getMovieBox() { - for (Box box : boxes) { - if (box instanceof MovieBox) { - return (MovieBox) box; - } - } - return null; - } - - public void getBox(WritableByteChannel os) throws IOException { - for (Box box : boxes) { - - if (os instanceof FileChannel) { - long startPos = ((FileChannel) os).position(); - box.getBox(os); - long size = ((FileChannel) os).position() - startPos; - assert size == box.getSize(); - } else { - box.getBox(os); - } - - } - } - - public void close() throws IOException { - this.byteChannel.close(); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoTypeReader.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoTypeReader.java.svn-base deleted file mode 100644 index 6d9e86e..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoTypeReader.java.svn-base +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright 2012 Sebastian Annies, 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; - -import java.io.ByteArrayOutputStream; -import java.nio.ByteBuffer; - -public final class IsoTypeReader { - - - public static long readUInt32BE(ByteBuffer bb) { - long ch1 = readUInt8(bb); - long ch2 = readUInt8(bb); - long ch3 = readUInt8(bb); - long ch4 = readUInt8(bb); - return ((ch4 << 24) + (ch3 << 16) + (ch2 << 8) + (ch1 << 0)); - - } - - - public static long readUInt32(ByteBuffer bb) { - long i = bb.getInt(); - if (i < 0) { - i += 1l<<32; - } - return i; - } - - public static int readUInt24(ByteBuffer bb) { - int result = 0; - result += readUInt16(bb) << 8; - result += byte2int(bb.get()); - return result; - } - - - public static int readUInt16(ByteBuffer bb) { - int result = 0; - result += byte2int(bb.get()) << 8; - result += byte2int(bb.get()); - return result; - } - - public static int readUInt16BE(ByteBuffer bb) { - int result = 0; - result += byte2int(bb.get()); - result += byte2int(bb.get()) << 8; - return result; - } - - public static int readUInt8(ByteBuffer bb) { - return byte2int(bb.get()); - } - - public static int byte2int(byte b) { - return b < 0 ? b + 256 : b; - } - - - /** - * Reads a zero terminated UTF-8 string. - * - * @param byteBuffer the data source - * @return the string readByte - * @throws Error in case of an error in the underlying stream - */ - public static String readString(ByteBuffer byteBuffer) { - - ByteArrayOutputStream out = new ByteArrayOutputStream(); - int read; - while ((read = byteBuffer.get()) != 0) { - out.write(read); - } - return Utf8.convert(out.toByteArray()); - } - - public static String readString(ByteBuffer byteBuffer, int length) { - byte[] buffer = new byte[length]; - byteBuffer.get(buffer); - return Utf8.convert(buffer); - - } - - public static long readUInt64(ByteBuffer byteBuffer) { - long result = 0; - // thanks to Erik Nicolas for finding a bug! Cast to long is definitivly needed - result += readUInt32(byteBuffer) << 32; - if (result < 0) { - throw new RuntimeException("I don't know how to deal with UInt64! long is not sufficient and I don't want to use BigInt"); - } - result += readUInt32(byteBuffer); - - return result; - } - - public static double readFixedPoint1616(ByteBuffer bb) { - byte[] bytes = new byte[4]; - bb.get(bytes); - - int result = 0; - result |= ((bytes[0] << 24) & 0xFF000000); - result |= ((bytes[1] << 16) & 0xFF0000); - result |= ((bytes[2] << 8) & 0xFF00); - result |= ((bytes[3]) & 0xFF); - return ((double) result) / 65536; - - } - - public static float readFixedPoint88(ByteBuffer bb) { - byte[] bytes = new byte[2]; - bb.get(bytes); - short result = 0; - result |= ((bytes[0] << 8) & 0xFF00); - result |= ((bytes[1]) & 0xFF); - return ((float) result) / 256; - } - - public static String readIso639(ByteBuffer bb) { - int bits = readUInt16(bb); - StringBuilder result = new StringBuilder(); - for (int i = 0; i < 3; i++) { - int c = (bits >> (2 - i) * 5) & 0x1f; - result.append((char) (c + 0x60)); - } - return result.toString(); - } - - public static String read4cc(ByteBuffer bb) { - byte[] b = new byte[4]; - bb.get(b); - return IsoFile.bytesToFourCC(b); - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoTypeReaderVariable.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoTypeReaderVariable.java.svn-base deleted file mode 100644 index a2e4681..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoTypeReaderVariable.java.svn-base +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2012 Sebastian Annies, 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; - -import java.nio.ByteBuffer; - -public final class IsoTypeReaderVariable { - - public static long read(ByteBuffer bb, int bytes) { - switch (bytes) { - case 1: - return IsoTypeReader.readUInt8(bb); - case 2: - return IsoTypeReader.readUInt16(bb); - case 3: - return IsoTypeReader.readUInt24(bb); - case 4: - return IsoTypeReader.readUInt32(bb); - case 8: - return IsoTypeReader.readUInt64(bb); - default: - throw new RuntimeException("I don't know how to read " + bytes + " bytes"); - } - - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoTypeWriter.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoTypeWriter.java.svn-base deleted file mode 100644 index 6da6998..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoTypeWriter.java.svn-base +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2012 Sebastian Annies, 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; - -import java.nio.ByteBuffer; - -public final class IsoTypeWriter { - - public static void writeUInt64(ByteBuffer bb, long u) { - bb.putLong(u); - } - - public static void writeUInt32(ByteBuffer bb, long u) { - bb.putInt((int) u); - - } - - public static void writeUInt32BE(ByteBuffer bb, long u) { - assert u >= 0 && u <= 1L << 32 : "The given long is not in the range of uint32 (" + u + ")"; - writeUInt16BE(bb, (int) u & 0xFFFF); - writeUInt16BE(bb, (int) ((u >> 16) & 0xFFFF)); - - } - - - public static void writeUInt24(ByteBuffer bb, int i) { - i = i & 0xFFFFFF; - writeUInt16(bb, i >> 8); - writeUInt8(bb, i); - - } - - - public static void writeUInt16(ByteBuffer bb, int i) { - i = i & 0xFFFF; - writeUInt8(bb, i >> 8); - writeUInt8(bb, i & 0xFF); - } - - public static void writeUInt16BE(ByteBuffer bb, int i) { - i = i & 0xFFFF; - writeUInt8(bb, i & 0xFF); - writeUInt8(bb, i >> 8); - } - - public static void writeUInt8(ByteBuffer bb, int i) { - i = i & 0xFF; - bb.put((byte) i); - } - - - public static void writeFixedPont1616(ByteBuffer bb, double v) { - int result = (int) (v * 65536); - bb.put((byte) ((result & 0xFF000000) >> 24)); - bb.put((byte) ((result & 0x00FF0000) >> 16)); - bb.put((byte) ((result & 0x0000FF00) >> 8)); - bb.put((byte) ((result & 0x000000FF))); - } - - public static void writeFixedPont88(ByteBuffer bb, double v) { - short result = (short) (v * 256); - bb.put((byte) ((result & 0xFF00) >> 8)); - bb.put((byte) ((result & 0x00FF))); - } - - public static void writeIso639(ByteBuffer bb, String language) { - if (language.getBytes().length != 3) { - throw new IllegalArgumentException("\"" + language + "\" language string isn't exactly 3 characters long!"); - } - int bits = 0; - for (int i = 0; i < 3; i++) { - bits += (language.getBytes()[i] - 0x60) << (2 - i) * 5; - } - writeUInt16(bb, bits); - } - - public static void writeUtf8String(ByteBuffer bb, String string) { - - bb.put(Utf8.convert(string)); - writeUInt8(bb, 0); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoTypeWriterVariable.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoTypeWriterVariable.java.svn-base deleted file mode 100644 index 3b3bdd4..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoTypeWriterVariable.java.svn-base +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2012 Sebastian Annies, 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; - -import java.io.IOException; -import java.nio.ByteBuffer; - -public final class IsoTypeWriterVariable { - - public static void write(long v, ByteBuffer bb, int bytes) { - switch (bytes) { - case 1: - IsoTypeWriter.writeUInt8(bb, (int) (v & 0xff)); - break; - case 2: - IsoTypeWriter.writeUInt16(bb, (int) (v & 0xffff)); - break; - case 3: - IsoTypeWriter.writeUInt24(bb, (int) (v & 0xffffff)); - break; - case 4: - IsoTypeWriter.writeUInt32(bb, v); - break; - case 8: - IsoTypeWriter.writeUInt64(bb, v); - break; - default: - throw new RuntimeException("I don't know how to read " + bytes + " bytes"); - } - - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/PropertyBoxParserImpl.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/PropertyBoxParserImpl.java.svn-base deleted file mode 100644 index f1bcc01..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/PropertyBoxParserImpl.java.svn-base +++ /dev/null @@ -1,199 +0,0 @@ -/* - * Copyright 2012 Sebastian Annies, 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; - -import com.googlecode.mp4parser.AbstractBox; -import com.coremedia.iso.boxes.Box; - -import java.io.BufferedInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; -import java.net.URL; -import java.util.Enumeration; -import java.util.Properties; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * A Property file based BoxFactory - */ -public class PropertyBoxParserImpl extends AbstractBoxParser { - Properties mapping; - - public PropertyBoxParserImpl(String... customProperties) { - InputStream is = new BufferedInputStream(getClass().getResourceAsStream("/isoparser-default.properties")); - try { - mapping = new Properties(); - try { - mapping.load(is); - Enumeration<URL> enumeration = Thread.currentThread().getContextClassLoader().getResources("isoparser-custom.properties"); - - while (enumeration.hasMoreElements()) { - URL url = enumeration.nextElement(); - InputStream customIS = new BufferedInputStream(url.openStream()); - try { - mapping.load(customIS); - } finally { - customIS.close(); - } - } - for (String customProperty : customProperties) { - mapping.load(new BufferedInputStream(getClass().getResourceAsStream(customProperty))); - } - } catch (IOException e) { - throw new RuntimeException(e); - } - } finally { - try { - is.close(); - } catch (IOException e) { - e.printStackTrace(); - // ignore - I can't help - } - } - } - - public PropertyBoxParserImpl(Properties mapping) { - this.mapping = mapping; - } - - Pattern p = Pattern.compile("(.*)\\((.*?)\\)"); - - @SuppressWarnings("unchecked") - public Class<? extends Box> getClassForFourCc(String type, byte[] userType, String parent) { - FourCcToBox fourCcToBox = new FourCcToBox(type, userType, parent).invoke(); - try { - return (Class<? extends Box>) Class.forName(fourCcToBox.clazzName); - } catch (ClassNotFoundException e) { - throw new RuntimeException(e); - } - } - - @Override - public Box createBox(String type, byte[] userType, String parent) { - - FourCcToBox fourCcToBox = new FourCcToBox(type, userType, parent).invoke(); - String[] param = fourCcToBox.getParam(); - String clazzName = fourCcToBox.getClazzName(); - try { - if (param[0].trim().length() == 0) { - param = new String[]{}; - } - Class clazz = Class.forName(clazzName); - - Class[] constructorArgsClazz = new Class[param.length]; - Object[] constructorArgs = new Object[param.length]; - for (int i = 0; i < param.length; i++) { - - if ("userType".equals(param[i])) { - constructorArgs[i] = userType; - constructorArgsClazz[i] = byte[].class; - } else if ("type".equals(param[i])) { - constructorArgs[i] = type; - constructorArgsClazz[i] = String.class; - } else if ("parent".equals(param[i])) { - constructorArgs[i] = parent; - constructorArgsClazz[i] = String.class; - } else { - throw new InternalError("No such param: " + param[i]); - } - - - } - Constructor<AbstractBox> constructorObject; - try { - if (param.length > 0) { - constructorObject = clazz.getConstructor(constructorArgsClazz); - } else { - constructorObject = clazz.getConstructor(); - } - - return constructorObject.newInstance(constructorArgs); - } catch (NoSuchMethodException e) { - throw new RuntimeException(e); - } catch (InvocationTargetException e) { - throw new RuntimeException(e); - } catch (InstantiationException e) { - throw new RuntimeException(e); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } - - - } catch (ClassNotFoundException e) { - throw new RuntimeException(e); - } - } - - private class FourCcToBox { - private String type; - private byte[] userType; - private String parent; - private String clazzName; - private String[] param; - - public FourCcToBox(String type, byte[] userType, String parent) { - this.type = type; - this.parent = parent; - this.userType = userType; - } - - public String getClazzName() { - return clazzName; - } - - public String[] getParam() { - return param; - } - - public FourCcToBox invoke() { - String constructor; - if (userType != null) { - if (!"uuid".equals((type))) { - throw new RuntimeException("we have a userType but no uuid box type. Something's wrong"); - } - constructor = mapping.getProperty((parent) + "-uuid[" + Hex.encodeHex(userType).toUpperCase() + "]"); - if (constructor == null) { - constructor = mapping.getProperty("uuid[" + Hex.encodeHex(userType).toUpperCase() + "]"); - } - if (constructor == null) { - constructor = mapping.getProperty("uuid"); - } - } else { - constructor = mapping.getProperty((parent) + "-" + (type)); - if (constructor == null) { - constructor = mapping.getProperty((type)); - } - } - if (constructor == null) { - constructor = mapping.getProperty("default"); - } - if (constructor == null) { - throw new RuntimeException("No box object found for " + type); - } - Matcher m = p.matcher(constructor); - boolean matches = m.matches(); - if (!matches) { - throw new RuntimeException("Cannot work with that constructor: " + constructor); - } - clazzName = m.group(1); - param = m.group(2).split(","); - return this; - } - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/Utf8.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/Utf8.java.svn-base deleted file mode 100644 index a30497e..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/Utf8.java.svn-base +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2012 Sebastian Annies, 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; - -import java.io.UnsupportedEncodingException; - -/** - * Converts <code>byte[]</code> -> <code>String</code> and vice versa. - */ -public final class Utf8 { - public static byte[] convert(String s) { - try { - if (s != null) { - return s.getBytes("UTF-8"); - } else { - return null; - } - } catch (UnsupportedEncodingException e) { - throw new Error(e); - } - } - - public static String convert(byte[] b) { - try { - if (b != null) { - return new String(b, "UTF-8"); - } else { - return null; - } - } catch (UnsupportedEncodingException e) { - throw new Error(e); - } - } - - public static int utf8StringLengthInBytes(String utf8) { - try { - if (utf8 != null) { - return utf8.getBytes("UTF-8").length; - } else { - return 0; - } - } catch (UnsupportedEncodingException e) { - throw new RuntimeException(); - } - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/all-wcprops b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/all-wcprops deleted file mode 100644 index 8c356fa..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/all-wcprops +++ /dev/null @@ -1,443 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 71 -/svn/!svn/ver/777/trunk/isoparser/src/main/java/com/coremedia/iso/boxes -END -DataReferenceBox.java -K 25 -svn:wc:ra_dav:version-url -V 93 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/DataReferenceBox.java -END -ChunkOffset64BitBox.java -K 25 -svn:wc:ra_dav:version-url -V 96 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/ChunkOffset64BitBox.java -END -ItemDataBox.java -K 25 -svn:wc:ra_dav:version-url -V 88 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/ItemDataBox.java -END -BitRateBox.java -K 25 -svn:wc:ra_dav:version-url -V 87 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/BitRateBox.java -END -UnknownBox.java -K 25 -svn:wc:ra_dav:version-url -V 87 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/UnknownBox.java -END -XmlBox.java -K 25 -svn:wc:ra_dav:version-url -V 83 -/svn/!svn/ver/624/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/XmlBox.java -END -CompositionShiftLeastGreatestAtom.java -K 25 -svn:wc:ra_dav:version-url -V 110 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/CompositionShiftLeastGreatestAtom.java -END -TrackBox.java -K 25 -svn:wc:ra_dav:version-url -V 85 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/TrackBox.java -END -ItemProtectionBox.java -K 25 -svn:wc:ra_dav:version-url -V 94 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/ItemProtectionBox.java -END -SampleAuxiliaryInformationOffsetsBox.java -K 25 -svn:wc:ra_dav:version-url -V 113 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/SampleAuxiliaryInformationOffsetsBox.java -END -SchemeInformationBox.java -K 25 -svn:wc:ra_dav:version-url -V 97 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/SchemeInformationBox.java -END -OmaDrmAccessUnitFormatBox.java -K 25 -svn:wc:ra_dav:version-url -V 102 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/OmaDrmAccessUnitFormatBox.java -END -HintMediaHeaderBox.java -K 25 -svn:wc:ra_dav:version-url -V 95 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/HintMediaHeaderBox.java -END -SampleSizeBox.java -K 25 -svn:wc:ra_dav:version-url -V 90 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/SampleSizeBox.java -END -TrackHeaderBox.java -K 25 -svn:wc:ra_dav:version-url -V 91 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/TrackHeaderBox.java -END -CompositionTimeToSample.java -K 25 -svn:wc:ra_dav:version-url -V 100 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/CompositionTimeToSample.java -END -UserBox.java -K 25 -svn:wc:ra_dav:version-url -V 84 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/UserBox.java -END -MediaBox.java -K 25 -svn:wc:ra_dav:version-url -V 85 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/MediaBox.java -END -DataInformationBox.java -K 25 -svn:wc:ra_dav:version-url -V 95 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/DataInformationBox.java -END -FileTypeBox.java -K 25 -svn:wc:ra_dav:version-url -V 88 -/svn/!svn/ver/580/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/FileTypeBox.java -END -FreeBox.java -K 25 -svn:wc:ra_dav:version-url -V 84 -/svn/!svn/ver/668/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/FreeBox.java -END -TitleBox.java -K 25 -svn:wc:ra_dav:version-url -V 85 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/TitleBox.java -END -NullMediaHeaderBox.java -K 25 -svn:wc:ra_dav:version-url -V 95 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/NullMediaHeaderBox.java -END -SampleDescriptionBox.java -K 25 -svn:wc:ra_dav:version-url -V 97 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/SampleDescriptionBox.java -END -StaticChunkOffsetBox.java -K 25 -svn:wc:ra_dav:version-url -V 97 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/StaticChunkOffsetBox.java -END -WriteListener.java -K 25 -svn:wc:ra_dav:version-url -V 89 -/svn/!svn/ver/98/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/WriteListener.java -END -RecordingYearBox.java -K 25 -svn:wc:ra_dav:version-url -V 93 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/RecordingYearBox.java -END -PerformerBox.java -K 25 -svn:wc:ra_dav:version-url -V 89 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/PerformerBox.java -END -AuthorBox.java -K 25 -svn:wc:ra_dav:version-url -V 86 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/AuthorBox.java -END -SubtitleMediaHeaderBox.java -K 25 -svn:wc:ra_dav:version-url -V 99 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/SubtitleMediaHeaderBox.java -END -ObjectDescriptorBox.java -K 25 -svn:wc:ra_dav:version-url -V 95 -/svn/!svn/ver/84/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/ObjectDescriptorBox.java -END -SchemeTypeBox.java -K 25 -svn:wc:ra_dav:version-url -V 90 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/SchemeTypeBox.java -END -KeywordsBox.java -K 25 -svn:wc:ra_dav:version-url -V 88 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/KeywordsBox.java -END -AbstractMediaHeaderBox.java -K 25 -svn:wc:ra_dav:version-url -V 99 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/AbstractMediaHeaderBox.java -END -HandlerBox.java -K 25 -svn:wc:ra_dav:version-url -V 87 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/HandlerBox.java -END -OriginalFormatBox.java -K 25 -svn:wc:ra_dav:version-url -V 94 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/OriginalFormatBox.java -END -SampleToChunkBox.java -K 25 -svn:wc:ra_dav:version-url -V 93 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/SampleToChunkBox.java -END -Box.java -K 25 -svn:wc:ra_dav:version-url -V 80 -/svn/!svn/ver/510/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/Box.java -END -DescriptionBox.java -K 25 -svn:wc:ra_dav:version-url -V 91 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/DescriptionBox.java -END -EditBox.java -K 25 -svn:wc:ra_dav:version-url -V 84 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/EditBox.java -END -ItemLocationBox.java -K 25 -svn:wc:ra_dav:version-url -V 92 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/ItemLocationBox.java -END -MovieHeaderBox.java -K 25 -svn:wc:ra_dav:version-url -V 91 -/svn/!svn/ver/688/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/MovieHeaderBox.java -END -ClassificationBox.java -K 25 -svn:wc:ra_dav:version-url -V 94 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/ClassificationBox.java -END -odf-boxes.zip -K 25 -svn:wc:ra_dav:version-url -V 85 -/svn/!svn/ver/377/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/odf-boxes.zip -END -GenreBox.java -K 25 -svn:wc:ra_dav:version-url -V 85 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/GenreBox.java -END -AlbumBox.java -K 25 -svn:wc:ra_dav:version-url -V 85 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/AlbumBox.java -END -SubSampleInformationBox.java -K 25 -svn:wc:ra_dav:version-url -V 100 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/SubSampleInformationBox.java -END -FullBox.java -K 25 -svn:wc:ra_dav:version-url -V 84 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/FullBox.java -END -TimeToSampleBox.java -K 25 -svn:wc:ra_dav:version-url -V 92 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/TimeToSampleBox.java -END -UserDataBox.java -K 25 -svn:wc:ra_dav:version-url -V 88 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/UserDataBox.java -END -CopyrightBox.java -K 25 -svn:wc:ra_dav:version-url -V 89 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/CopyrightBox.java -END -SyncSampleBox.java -K 25 -svn:wc:ra_dav:version-url -V 90 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/SyncSampleBox.java -END -ChunkOffsetBox.java -K 25 -svn:wc:ra_dav:version-url -V 91 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/ChunkOffsetBox.java -END -RatingBox.java -K 25 -svn:wc:ra_dav:version-url -V 86 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/RatingBox.java -END -TrackReferenceTypeBox.java -K 25 -svn:wc:ra_dav:version-url -V 98 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/TrackReferenceTypeBox.java -END -MetaBox.java -K 25 -svn:wc:ra_dav:version-url -V 84 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/MetaBox.java -END -MediaHeaderBox.java -K 25 -svn:wc:ra_dav:version-url -V 91 -/svn/!svn/ver/616/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/MediaHeaderBox.java -END -SampleTableBox.java -K 25 -svn:wc:ra_dav:version-url -V 91 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/SampleTableBox.java -END -rtp-boxes.zip -K 25 -svn:wc:ra_dav:version-url -V 85 -/svn/!svn/ver/377/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/rtp-boxes.zip -END -FreeSpaceBox.java -K 25 -svn:wc:ra_dav:version-url -V 89 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/FreeSpaceBox.java -END -SampleAuxiliaryInformationSizesBox.java -K 25 -svn:wc:ra_dav:version-url -V 111 -/svn/!svn/ver/727/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/SampleAuxiliaryInformationSizesBox.java -END -SoundMediaHeaderBox.java -K 25 -svn:wc:ra_dav:version-url -V 96 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/SoundMediaHeaderBox.java -END -ProgressiveDownloadInformationBox.java -K 25 -svn:wc:ra_dav:version-url -V 110 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/ProgressiveDownloadInformationBox.java -END -DataEntryUrlBox.java -K 25 -svn:wc:ra_dav:version-url -V 92 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/DataEntryUrlBox.java -END -VideoMediaHeaderBox.java -K 25 -svn:wc:ra_dav:version-url -V 96 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/VideoMediaHeaderBox.java -END -MovieBox.java -K 25 -svn:wc:ra_dav:version-url -V 85 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/MovieBox.java -END -DataEntryUrnBox.java -K 25 -svn:wc:ra_dav:version-url -V 92 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/DataEntryUrnBox.java -END -ProtectionSchemeInformationBox.java -K 25 -svn:wc:ra_dav:version-url -V 107 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/ProtectionSchemeInformationBox.java -END -EditListBox.java -K 25 -svn:wc:ra_dav:version-url -V 88 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/EditListBox.java -END -SampleDependencyTypeBox.java -K 25 -svn:wc:ra_dav:version-url -V 100 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/SampleDependencyTypeBox.java -END -ContainerBox.java -K 25 -svn:wc:ra_dav:version-url -V 89 -/svn/!svn/ver/132/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/ContainerBox.java -END -TrackReferenceBox.java -K 25 -svn:wc:ra_dav:version-url -V 94 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/TrackReferenceBox.java -END -MediaInformationBox.java -K 25 -svn:wc:ra_dav:version-url -V 96 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/MediaInformationBox.java -END diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/entries b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/entries deleted file mode 100644 index abb566b..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/entries +++ /dev/null @@ -1,2534 +0,0 @@ -10 - -dir -778 -http://mp4parser.googlecode.com/svn/trunk/isoparser/src/main/java/com/coremedia/iso/boxes -http://mp4parser.googlecode.com/svn - - - -2012-09-10T14:56:10.036617Z -777 -sebastian.annies@gmail.com - - - - - - - - - - - - - - -7decde4b-c250-0410-a0da-51896bc88be6 - -DataReferenceBox.java -file - - - - -2012-09-14T17:27:53.057255Z -9903c0a889788836ccc2cb2265196393 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2206 - -ChunkOffset64BitBox.java -file - - - - -2012-09-14T17:27:53.057255Z -01fec67b09938a06c351b1f61ddd3eca -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com -has-props - - - - - - - - - - - - - - - - - - - - -1288 - -ItemDataBox.java -file - - - - -2012-09-14T17:27:53.057255Z -d89b6e2c38b3dcd74a3574131391d0c0 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -823 - -BitRateBox.java -file - - - - -2012-09-14T17:27:53.057255Z -8b80a19e9d0180804dd3e8cdd51fe652 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2585 - -UnknownBox.java -file - - - - -2012-09-14T17:27:53.057255Z -6f1e688b0e1c8a5b4cb76b7e734f50d2 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1539 - -XmlBox.java -file - - - - -2012-09-14T17:27:53.057255Z -3466d3b5e977ee5cc212d3846f16f387 -2012-05-21T11:57:37.647327Z -624 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1079 - -CompositionShiftLeastGreatestAtom.java -file - - - - -2012-09-14T17:27:53.057255Z -409e9d1a7bf3d4c309d7d7f5847816d3 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -3179 - -TrackBox.java -file - - - - -2012-09-14T17:27:53.057255Z -fee5b44d47cf99419d838238864e696c -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2234 - -ItemProtectionBox.java -file - - - - -2012-09-14T17:27:53.057255Z -78f95c81797d21680e71c2476caf5a19 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1810 - -vodafone -dir - -apple -dir - -SampleAuxiliaryInformationOffsetsBox.java -file - - - - -2012-09-14T17:27:53.057255Z -96eb95e44d49e9cf2cc480ad6e6a44a1 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -3773 - -fragment -dir - -OmaDrmAccessUnitFormatBox.java -file - - - - -2012-09-14T17:27:53.057255Z -71e60410948a327722a34931d6b6690d -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2554 - -SchemeInformationBox.java -file - - - - -2012-09-14T17:27:53.067255Z -2b7467575e1b4ae45e2021528a5660ae -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1216 - -HintMediaHeaderBox.java -file - - - - -2012-09-14T17:27:53.067255Z -a2face08c70d66256f2c0dc7fa9397c1 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2682 - -SampleSizeBox.java -file - - - - -2012-09-14T17:27:53.067255Z -8574502d967dcb457f9760c4613e9c60 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -3416 - -TrackHeaderBox.java -file - - - - -2012-09-14T17:27:53.067255Z -c545735fa9f6b46b6ddaa97fa191b6ed -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -7950 - -CompositionTimeToSample.java -file - - - - -2012-09-14T17:27:53.067255Z -24d6bf8af948cf9724c9c6b963d60e05 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -4123 - -UserBox.java -file - - - - -2012-09-14T17:27:53.067255Z -b2c4353c1cdfb1ae08f404b7d4c6e88a -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1629 - -MediaBox.java -file - - - - -2012-09-14T17:27:53.067255Z -8903b483282e444e19e09019396588e3 -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1675 - -DataInformationBox.java -file - - - - -2012-09-14T17:27:53.067255Z -c06ffa206dbc8a97dab729e7e9d16127 -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1169 - -FileTypeBox.java -file - - - - -2012-09-14T17:27:53.067255Z -019751b42d06e4caa726c38102be4820 -2012-05-04T18:32:18.338607Z -580 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -4381 - -FreeBox.java -file - - - - -2012-09-14T17:27:53.067255Z -05c03ad86d424b209975515c10e27143 -2012-06-08T10:14:31.301984Z -668 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -3395 - -TitleBox.java -file - - - - -2012-09-14T17:27:53.067255Z -f4b9dbcee26737350024b0d15e2aed1c -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2326 - -NullMediaHeaderBox.java -file - - - - -2012-09-14T17:27:53.067255Z -2085a3a59a3ad7387eabc995525b0ac3 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1228 - -SampleDescriptionBox.java -file - - - - -2012-09-14T17:27:53.067255Z -a0c4559c8d7c474e32f6c491a82b78c7 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -3328 - -WriteListener.java -file - - - - -2012-09-14T17:27:53.067255Z -3af0a5ef179d43c4bcbec9f9981dc397 -2011-03-09T17:58:20.876792Z -98 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -277 - -StaticChunkOffsetBox.java -file - - - - -2012-09-14T17:27:53.067255Z -fdb4124cdbd7503e86559be883fabbe9 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2079 - -mdat -dir - -RecordingYearBox.java -file - - - - -2012-09-14T17:27:53.067255Z -18244842b093dc4f2afed5e2fe83051f -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1602 - -PerformerBox.java -file - - - - -2012-09-14T17:27:53.067255Z -d1807b59f86c3b1c078f5424485504f3 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2225 - -AuthorBox.java -file - - - - -2012-09-14T17:27:53.067255Z -d277c32f45368d98c0e7f284b53af023 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2625 - -SubtitleMediaHeaderBox.java -file - - - - -2012-09-14T17:27:53.067255Z -2d0a0d6508e401d64bba308335167c8f -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -619 - -ObjectDescriptorBox.java -file - - - - -2012-09-14T17:27:53.067255Z -d41d8cd98f00b204e9800998ecf8427e -2011-02-24T14:29:07.487725Z -84 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -0 - -SchemeTypeBox.java -file - - - - -2012-09-14T17:27:53.067255Z -e5aac0ed26846099c0c9b3901c605d34 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -3147 - -KeywordsBox.java -file - - - - -2012-09-14T17:27:53.067255Z -1b30dd2dd9a4a2cc71dbbd93673454c5 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2884 - -dece -dir - -sampleentry -dir - -AbstractMediaHeaderBox.java -file - - - - -2012-09-14T17:27:53.067255Z -fae5d0df177984d5429ec108759ff0ea -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -989 - -HandlerBox.java -file - - - - -2012-09-14T17:27:53.067255Z -7d0687f791f2a2a762df2ddb743fa15f -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -5425 - -OriginalFormatBox.java -file - - - - -2012-09-14T17:27:53.067255Z -ddb06cb6a4fdf016e8d74b02a916f026 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1844 - -SampleToChunkBox.java -file - - - - -2012-09-14T17:27:53.067255Z -bfe8cb30f157785f58eacf5e7e61033a -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -5178 - -Box.java -file - - - - -2012-09-14T17:27:53.067255Z -85e9f91cd74a90a0796c556689a72972 -2012-04-22T09:16:09.151890Z -510 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1677 - -DescriptionBox.java -file - - - - -2012-09-14T17:27:53.067255Z -64c10e153fbfc1dea0c14fe48ebf0a55 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2207 - -EditBox.java -file - - - - -2012-09-14T17:27:53.067255Z -75252edf8148360e335ebac2f838118f -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1066 - -ItemLocationBox.java -file - - - - -2012-09-14T17:27:53.067255Z -3e27a64bf1fd101c7fd324d9cdbb7f21 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -10845 - -MovieHeaderBox.java -file - - - - -2012-09-14T17:27:53.067255Z -d1eececbea781c89399d83dca0ecf5a0 -2012-06-24T21:02:28.697657Z -688 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -8025 - -h264 -dir - -ClassificationBox.java -file - - - - -2012-09-14T17:27:53.067255Z -a61f9cac340a30bfe69bbd3866a8179e -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -3544 - -odf-boxes.zip -file - - - - -2012-09-14T17:27:53.067255Z -4c8dc9b701c5de0144269f58d168f621 -2012-03-05T23:28:24.666173Z -377 -Sebastian.Annies@gmail.com -has-props - - - - - - - - - - - - - - - - - - - - -37706 - -GenreBox.java -file - - - - -2012-09-14T17:27:53.077255Z -8a42cc14e1f999aa99bbe26675991dc7 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2162 - -AlbumBox.java -file - - - - -2012-09-14T17:27:53.067255Z -063882f7ab178937a59190ff933ed1cf -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -3360 - -SubSampleInformationBox.java -file - - - - -2012-09-14T17:27:53.077255Z -62c871d625fa41c8c5667b60e1a96084 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -7003 - -FullBox.java -file - - - - -2012-09-14T17:27:53.077255Z -b25b6cfe0af3936de4507b280c9a80f9 -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -375 - -TimeToSampleBox.java -file - - - - -2012-09-14T17:27:53.077255Z -87761496666ed6ed43d1055c39daec07 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -4719 - -UserDataBox.java -file - - - - -2012-09-14T17:27:53.077255Z -44ba8dc0558f53582186a9fb4bd937e5 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2209 - -CopyrightBox.java -file - - - - -2012-09-14T17:27:53.077255Z -d3fa4843e4ca4973476a0243b1e90c76 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2386 - -SyncSampleBox.java -file - - - - -2012-09-14T17:27:53.077255Z -e88379417c7537d02c2bdd14c16d2d98 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2444 - -ChunkOffsetBox.java -file - - - - -2012-09-14T17:27:53.077255Z -2a7cb5f28a7c28ff4125e73e44027e00 -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com -has-props - - - - - - - - - - - - - - - - - - - - -440 - -RatingBox.java -file - - - - -2012-09-14T17:27:53.077255Z -77d5aae6d65403599af0d0e62f65b44b -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -3812 - -TrackReferenceTypeBox.java -file - - - - -2012-09-14T17:27:53.077255Z -01ff3b9bf0898d65ca27f199d4baee40 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2193 - -MetaBox.java -file - - - - -2012-09-14T17:27:53.077255Z -bd6ccb4b26b177f64b960d16da5f5a30 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -3224 - -threegpp26244 -dir - -MediaHeaderBox.java -file - - - - -2012-09-14T17:27:53.077255Z -9381ac78989b7089d482c2b44526c282 -2012-05-17T09:04:15.805545Z -616 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -4561 - -SampleTableBox.java -file - - - - -2012-09-14T17:27:53.077255Z -7c86e7ceab9e74c9f681fed071a4dc0c -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -4313 - -rtp-boxes.zip -file - - - - -2012-09-14T17:27:53.077255Z -b6fbe151f5fec8953cb3ce9e58784729 -2012-03-05T23:28:24.666173Z -377 -Sebastian.Annies@gmail.com -has-props - - - - - - - - - - - - - - - - - - - - -31772 - -SampleAuxiliaryInformationSizesBox.java -file - - - - -2012-09-14T17:27:53.077255Z -31f750177546a2e82ca8de769972f872 -2012-08-08T07:05:08.133759Z -727 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -4409 - -FreeSpaceBox.java -file - - - - -2012-09-14T17:27:53.077255Z -54792878d4a9e36d969c58ddd86692bf -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1724 - -SoundMediaHeaderBox.java -file - - - - -2012-09-14T17:27:53.077255Z -a997902bd90b258f996ef83e827e8580 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1639 - -ProgressiveDownloadInformationBox.java -file - - - - -2012-09-14T17:27:53.077255Z -8f230a1e42bea52f81bab49a91236f89 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2339 - -DataEntryUrlBox.java -file - - - - -2012-09-14T17:27:53.077255Z -c95d854ae68f925b06282c6aafdc07f6 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1389 - -VideoMediaHeaderBox.java -file - - - - -2012-09-14T17:27:53.077255Z -fce940b90e4ffe11ec8553c13cc9e357 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2420 - -MovieBox.java -file - - - - -2012-09-14T17:27:53.077255Z -847eb9e7c4bb29f730913b57ec25a68b -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2152 - -DataEntryUrnBox.java -file - - - - -2012-09-14T17:27:53.077255Z -af48983c19d5b39783baea8517578f53 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1956 - -ProtectionSchemeInformationBox.java -file - - - - -2012-09-14T17:27:53.077255Z -e2b7ff1f04405872d0da3dd9a22e1ac4 -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1623 - -EditListBox.java -file - - - - -2012-09-14T17:27:53.077255Z -1b135924d295a0f357d8744a6b49ec3f -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -8432 - -SampleDependencyTypeBox.java -file - - - - -2012-09-14T17:27:53.077255Z -035c90e133e9799d14c92b5388cf4353 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -3701 - -ContainerBox.java -file - - - - -2012-09-14T17:27:53.077255Z -77b4f7d07f35cfebac08c440d56986a0 -2011-05-13T11:05:56.209382Z -132 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2239 - -TrackReferenceBox.java -file - - - - -2012-09-14T17:27:53.077255Z -ea9697511c11cbe5115c898455b4f2e3 -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1584 - -MediaInformationBox.java -file - - - - -2012-09-14T17:27:53.077255Z -c21e4a8822e8391001fcc3c1817a69ff -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1468 - diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/prop-base/ChunkOffset64BitBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/prop-base/ChunkOffset64BitBox.java.svn-base deleted file mode 100644 index 869ac71..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/prop-base/ChunkOffset64BitBox.java.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 14 -svn:executable -V 1 -* -END diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/prop-base/ChunkOffsetBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/prop-base/ChunkOffsetBox.java.svn-base deleted file mode 100644 index 869ac71..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/prop-base/ChunkOffsetBox.java.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 14 -svn:executable -V 1 -* -END diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/prop-base/odf-boxes.zip.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/prop-base/odf-boxes.zip.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/prop-base/odf-boxes.zip.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/prop-base/rtp-boxes.zip.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/prop-base/rtp-boxes.zip.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/prop-base/rtp-boxes.zip.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/AbstractMediaHeaderBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/AbstractMediaHeaderBox.java.svn-base deleted file mode 100644 index cc141ae..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/AbstractMediaHeaderBox.java.svn-base +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2011 Sebastian Annies, Hamburg, Germany - * - * 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.googlecode.mp4parser.AbstractFullBox; - -/** - * A common superclass for all MediaInformationHeaderBoxes. E.g. - * VideoMediaHeaderBox, SoundMediaHeaderBox & HintMediaHeaderBox - */ -public abstract class AbstractMediaHeaderBox extends AbstractFullBox { - protected AbstractMediaHeaderBox(String type) { - super(type); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/AlbumBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/AlbumBox.java.svn-base deleted file mode 100644 index d666806..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/AlbumBox.java.svn-base +++ /dev/null @@ -1,112 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.coremedia.iso.Utf8; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * Meta information in a 'udta' box about a track. - * Defined in 3GPP 26.244. - * - * @see com.coremedia.iso.boxes.UserDataBox - */ -public class AlbumBox extends AbstractFullBox { - public static final String TYPE = "albm"; - - private String language; - private String albumTitle; - private int trackNumber; - - public AlbumBox() { - super(TYPE); - } - - /** - * Declares the language code for the {@link #getAlbumTitle()} return value. See ISO 639-2/T for the set of three - * character codes.Each character is packed as the difference between its ASCII value and 0x60. The code is - * confined to being three lower-case letters, so these values are strictly positive. - * - * @return the language code - */ - public String getLanguage() { - return language; - } - - public String getAlbumTitle() { - return albumTitle; - } - - public int getTrackNumber() { - return trackNumber; - } - - public void setLanguage(String language) { - this.language = language; - } - - public void setAlbumTitle(String albumTitle) { - this.albumTitle = albumTitle; - } - - public void setTrackNumber(int trackNumber) { - this.trackNumber = trackNumber; - } - - protected long getContentSize() { - return 6 + Utf8.utf8StringLengthInBytes(albumTitle) + 1 + (trackNumber == -1 ? 0 : 1); - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - language = IsoTypeReader.readIso639(content); - albumTitle = IsoTypeReader.readString(content); - - if (content.remaining() > 0) { - trackNumber = IsoTypeReader.readUInt8(content); - } else { - trackNumber = -1; - } - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeIso639(byteBuffer, language); - byteBuffer.put(Utf8.convert(albumTitle)); - byteBuffer.put((byte) 0); - if (trackNumber != -1) { - IsoTypeWriter.writeUInt8(byteBuffer, trackNumber); - } - } - - public String toString() { - StringBuilder buffer = new StringBuilder(); - buffer.append("AlbumBox[language=").append(getLanguage()).append(";"); - buffer.append("albumTitle=").append(getAlbumTitle()); - if (trackNumber >= 0) { - buffer.append(";trackNumber=").append(getTrackNumber()); - } - buffer.append("]"); - return buffer.toString(); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/AuthorBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/AuthorBox.java.svn-base deleted file mode 100644 index 672cde2..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/AuthorBox.java.svn-base +++ /dev/null @@ -1,94 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.coremedia.iso.Utf8; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * Meta information in a 'udta' box about a track. - * Defined in 3GPP 26.244. - * - * @see com.coremedia.iso.boxes.UserDataBox - */ -public class AuthorBox extends AbstractFullBox { - public static final String TYPE = "auth"; - - private String language; - private String author; - - public AuthorBox() { - super(TYPE); - } - - /** - * Declares the language code for the {@link #getAuthor()} return value. See ISO 639-2/T for the set of three - * character codes.Each character is packed as the difference between its ASCII value and 0x60. The code is - * confined to being three lower-case letters, so these values are strictly positive. - * - * @return the language code - */ - public String getLanguage() { - return language; - } - - /** - * Author information. - * - * @return the author - */ - public String getAuthor() { - return author; - } - - public void setLanguage(String language) { - this.language = language; - } - - public void setAuthor(String author) { - this.author = author; - } - - protected long getContentSize() { - return 7 + Utf8.utf8StringLengthInBytes(author); - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - language = IsoTypeReader.readIso639(content); - author = IsoTypeReader.readString(content); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeIso639(byteBuffer, language); - byteBuffer.put(Utf8.convert(author)); - byteBuffer.put((byte) 0); - } - - - public String toString() { - return "AuthorBox[language=" + getLanguage() + ";author=" + getAuthor() + "]"; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/BitRateBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/BitRateBox.java.svn-base deleted file mode 100644 index 6c4b0e6..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/BitRateBox.java.svn-base +++ /dev/null @@ -1,91 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractBox; - -import java.nio.ByteBuffer; - -/** - * <code>class BitRateBox extends Box('btrt') {<br/> - * unsigned int(32) bufferSizeDB;<br/> - * // gives the size of the decoding buffer for<br/> - * // the elementary stream in bytes.<br/> - * unsigned int(32) maxBitrate;<br/> - * // gives the maximum rate in bits/second <br/> - * // over any window of one second.<br/> - * unsigned int(32) avgBitrate;<br/> - * // avgBitrate gives the average rate in <br/> - * // bits/second over the entire presentation.<br/> - * }</code> - */ - -public final class BitRateBox extends AbstractBox { - public static final String TYPE = "btrt"; - - private long bufferSizeDb; - private long maxBitrate; - private long avgBitrate; - - public BitRateBox() { - super(TYPE); - } - - protected long getContentSize() { - return 12; - } - - @Override - public void _parseDetails(ByteBuffer content) { - bufferSizeDb = IsoTypeReader.readUInt32(content); - maxBitrate = IsoTypeReader.readUInt32(content); - avgBitrate = IsoTypeReader.readUInt32(content); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - IsoTypeWriter.writeUInt32(byteBuffer, bufferSizeDb); - IsoTypeWriter.writeUInt32(byteBuffer, maxBitrate); - IsoTypeWriter.writeUInt32(byteBuffer, avgBitrate); - } - - public long getBufferSizeDb() { - return bufferSizeDb; - } - - public void setBufferSizeDb(long bufferSizeDb) { - this.bufferSizeDb = bufferSizeDb; - } - - public long getMaxBitrate() { - return maxBitrate; - } - - public void setMaxBitrate(long maxBitrate) { - this.maxBitrate = maxBitrate; - } - - public long getAvgBitrate() { - return avgBitrate; - } - - public void setAvgBitrate(long avgBitrate) { - this.avgBitrate = avgBitrate; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/Box.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/Box.java.svn-base deleted file mode 100644 index f6ca302..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/Box.java.svn-base +++ /dev/null @@ -1,51 +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.BoxParser; -import com.coremedia.iso.boxes.ContainerBox; - -import java.io.IOException; -import java.nio.ByteBuffer; -import java.nio.channels.ReadableByteChannel; -import java.nio.channels.WritableByteChannel; - -/** - * Defines basic interaction possibilities for any ISO box. Each box has a parent box and a type. - */ -public interface Box { - ContainerBox getParent(); - - void setParent(ContainerBox parent); - - long getSize(); - - /** - * The box's 4-cc type. - * @return the 4 character type of the box - */ - String getType(); - - /** - * Writes the complete box - size | 4-cc | content - to the given <code>writableByteChannel</code>. - * @param writableByteChannel the box's sink - * @throws IOException in case of problems with the <code>Channel</code> - */ - void getBox(WritableByteChannel writableByteChannel) throws IOException; - - void parse(ReadableByteChannel readableByteChannel, ByteBuffer header, long contentSize, BoxParser boxParser) throws IOException; -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ChunkOffset64BitBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ChunkOffset64BitBox.java.svn-base deleted file mode 100644 index f2340b9..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ChunkOffset64BitBox.java.svn-base +++ /dev/null @@ -1,51 +0,0 @@ -package com.coremedia.iso.boxes; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; - -import java.nio.ByteBuffer; - -import static com.googlecode.mp4parser.util.CastUtils.l2i; - -/** - * Abstract Chunk Offset Box - */ -public class ChunkOffset64BitBox extends ChunkOffsetBox { - public static final String TYPE = "co64"; - private long[] chunkOffsets; - - public ChunkOffset64BitBox() { - super(TYPE); - } - - @Override - public long[] getChunkOffsets() { - return chunkOffsets; - } - - @Override - protected long getContentSize() { - return 8 + 8 * chunkOffsets.length; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - int entryCount = l2i(IsoTypeReader.readUInt32(content)); - chunkOffsets = new long[entryCount]; - for (int i = 0; i < entryCount; i++) { - chunkOffsets[i] = IsoTypeReader.readUInt64(content); - } - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt32(byteBuffer, chunkOffsets.length); - for (long chunkOffset : chunkOffsets) { - IsoTypeWriter.writeUInt64(byteBuffer, chunkOffset); - } - } - - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ChunkOffsetBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ChunkOffsetBox.java.svn-base deleted file mode 100644 index 01f5ae4..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ChunkOffsetBox.java.svn-base +++ /dev/null @@ -1,21 +0,0 @@ -package com.coremedia.iso.boxes; - -import com.googlecode.mp4parser.AbstractFullBox; - -/** - * Abstract Chunk Offset Box - */ -public abstract class ChunkOffsetBox extends AbstractFullBox { - - public ChunkOffsetBox(String type) { - super(type); - } - - public abstract long[] getChunkOffsets(); - - - public String toString() { - return this.getClass().getSimpleName() + "[entryCount=" + getChunkOffsets().length + "]"; - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ClassificationBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ClassificationBox.java.svn-base deleted file mode 100644 index a20feca..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ClassificationBox.java.svn-base +++ /dev/null @@ -1,110 +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; - -/** - * Classification of the media according to 3GPP 26.244. - */ -public class ClassificationBox extends AbstractFullBox { - public static final String TYPE = "clsf"; - - - private String classificationEntity; - private int classificationTableIndex; - private String language; - private String classificationInfo; - - public ClassificationBox() { - super(TYPE); - } - - public String getLanguage() { - return language; - } - - public String getClassificationEntity() { - return classificationEntity; - } - - public int getClassificationTableIndex() { - return classificationTableIndex; - } - - public String getClassificationInfo() { - return classificationInfo; - } - - public void setClassificationEntity(String classificationEntity) { - this.classificationEntity = classificationEntity; - } - - public void setClassificationTableIndex(int classificationTableIndex) { - this.classificationTableIndex = classificationTableIndex; - } - - public void setLanguage(String language) { - this.language = language; - } - - public void setClassificationInfo(String classificationInfo) { - this.classificationInfo = classificationInfo; - } - - protected long getContentSize() { - return 4 + 2 + 2 + Utf8.utf8StringLengthInBytes(classificationInfo) + 1; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - byte[] cE = new byte[4]; - content.get(cE); - classificationEntity = IsoFile.bytesToFourCC(cE); - classificationTableIndex = IsoTypeReader.readUInt16(content); - language = IsoTypeReader.readIso639(content); - classificationInfo = IsoTypeReader.readString(content); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - byteBuffer.put(IsoFile.fourCCtoBytes(classificationEntity)); - IsoTypeWriter.writeUInt16(byteBuffer, classificationTableIndex); - IsoTypeWriter.writeIso639(byteBuffer, language); - byteBuffer.put(Utf8.convert(classificationInfo)); - byteBuffer.put((byte) 0); - } - - - public String toString() { - StringBuilder buffer = new StringBuilder(); - buffer.append("ClassificationBox[language=").append(getLanguage()); - buffer.append("classificationEntity=").append(getClassificationEntity()); - buffer.append(";classificationTableIndex=").append(getClassificationTableIndex()); - buffer.append(";language=").append(getLanguage()); - buffer.append(";classificationInfo=").append(getClassificationInfo()); - buffer.append("]"); - return buffer.toString(); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/CompositionShiftLeastGreatestAtom.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/CompositionShiftLeastGreatestAtom.java.svn-base deleted file mode 100644 index 3534b7f..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/CompositionShiftLeastGreatestAtom.java.svn-base +++ /dev/null @@ -1,101 +0,0 @@ -package com.coremedia.iso.boxes; - -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * The optional composition shift least greatest atom summarizes the calculated - * minimum and maximum offsets between decode and composition time, as well as - * the start and end times, for all samples. This allows a reader to determine - * the minimum required time for decode to obtain proper presentation order without - * needing to scan the sample table for the range of offsets. The type of the - * composition shift least greatest atom is ‘cslg’. - */ -public class CompositionShiftLeastGreatestAtom extends AbstractFullBox { - public CompositionShiftLeastGreatestAtom() { - super("cslg"); - } - - // A 32-bit unsigned integer that specifies the calculated value. - int compositionOffsetToDisplayOffsetShift; - - // A 32-bit signed integer that specifies the calculated value. - int leastDisplayOffset; - - // A 32-bit signed integer that specifies the calculated value. - int greatestDisplayOffset; - - //A 32-bit signed integer that specifies the calculated value. - int displayStartTime; - - //A 32-bit signed integer that specifies the calculated value. - int displayEndTime; - - - @Override - protected long getContentSize() { - return 24; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - compositionOffsetToDisplayOffsetShift = content.getInt(); - leastDisplayOffset = content.getInt(); - greatestDisplayOffset = content.getInt(); - displayStartTime = content.getInt(); - displayEndTime = content.getInt(); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - byteBuffer.putInt(compositionOffsetToDisplayOffsetShift); - byteBuffer.putInt(leastDisplayOffset); - byteBuffer.putInt(greatestDisplayOffset); - byteBuffer.putInt(displayStartTime); - byteBuffer.putInt(displayEndTime); - } - - - public int getCompositionOffsetToDisplayOffsetShift() { - return compositionOffsetToDisplayOffsetShift; - } - - public void setCompositionOffsetToDisplayOffsetShift(int compositionOffsetToDisplayOffsetShift) { - this.compositionOffsetToDisplayOffsetShift = compositionOffsetToDisplayOffsetShift; - } - - public int getLeastDisplayOffset() { - return leastDisplayOffset; - } - - public void setLeastDisplayOffset(int leastDisplayOffset) { - this.leastDisplayOffset = leastDisplayOffset; - } - - public int getGreatestDisplayOffset() { - return greatestDisplayOffset; - } - - public void setGreatestDisplayOffset(int greatestDisplayOffset) { - this.greatestDisplayOffset = greatestDisplayOffset; - } - - public int getDisplayStartTime() { - return displayStartTime; - } - - public void setDisplayStartTime(int displayStartTime) { - this.displayStartTime = displayStartTime; - } - - public int getDisplayEndTime() { - return displayEndTime; - } - - public void setDisplayEndTime(int displayEndTime) { - this.displayEndTime = displayEndTime; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/CompositionTimeToSample.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/CompositionTimeToSample.java.svn-base deleted file mode 100644 index 411bfe9..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/CompositionTimeToSample.java.svn-base +++ /dev/null @@ -1,150 +0,0 @@ -package com.coremedia.iso.boxes; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import static com.googlecode.mp4parser.util.CastUtils.l2i; - -/** - * <pre> - * aligned(8) class CompositionOffsetBox - * extends FullBox(‘ctts’, version = 0, 0) { - * unsigned int(32) entry_count; - * int i; - * if (version==0) { - * for (i=0; i < entry_count; i++) { - * unsigned int(32) sample_count; - * unsigned int(32) sample_offset; - * } - * } - * else if (version == 1) { - * for (i=0; i < entry_count; i++) { - * unsigned int(32) sample_count; - * signed int(32) sample_offset; - * } - * } - * } - * </pre> - * <p/> - * This box provides the offset between decoding time and composition time. - * In version 0 of this box the decoding time must be less than the composition time, and - * the offsets are expressed as unsigned numbers such that - * CT(n) = DT(n) + CTTS(n) where CTTS(n) is the (uncompressed) table entry for sample n. - * <p/> - * In version 1 of this box, the composition timeline and the decoding timeline are - * still derived from each other, but the offsets are signed. - * It is recommended that for the computed composition timestamps, there is - * exactly one with the value 0 (zero). - */ -public class CompositionTimeToSample extends AbstractFullBox { - public static final String TYPE = "ctts"; - - List<Entry> entries = Collections.emptyList(); - - public CompositionTimeToSample() { - super(TYPE); - } - - protected long getContentSize() { - return 8 + 8 * entries.size(); - } - - public List<Entry> getEntries() { - return entries; - } - - public void setEntries(List<Entry> entries) { - this.entries = entries; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - int numberOfEntries = l2i(IsoTypeReader.readUInt32(content)); - entries = new ArrayList<Entry>(numberOfEntries); - for (int i = 0; i < numberOfEntries; i++) { - Entry e = new Entry(l2i(IsoTypeReader.readUInt32(content)), content.getInt()); - entries.add(e); - } - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt32(byteBuffer, entries.size()); - - for (Entry entry : entries) { - IsoTypeWriter.writeUInt32(byteBuffer, entry.getCount()); - byteBuffer.putInt(entry.getOffset()); - } - - } - - - public static class Entry { - int count; - int offset; - - public Entry(int count, int offset) { - this.count = count; - this.offset = offset; - } - - public int getCount() { - return count; - } - - public int getOffset() { - return offset; - } - - public void setCount(int count) { - this.count = count; - } - - public void setOffset(int offset) { - this.offset = offset; - } - - @Override - public String toString() { - return "Entry{" + - "count=" + count + - ", offset=" + offset + - '}'; - } - } - - - /** - * Decompresses the list of entries and returns the list of composition times. - * - * @return decoding time per sample - */ - public static int[] blowupCompositionTimes(List<CompositionTimeToSample.Entry> entries) { - long numOfSamples = 0; - for (CompositionTimeToSample.Entry entry : entries) { - numOfSamples += entry.getCount(); - } - assert numOfSamples <= Integer.MAX_VALUE; - int[] decodingTime = new int[(int) numOfSamples]; - - int current = 0; - - - for (CompositionTimeToSample.Entry entry : entries) { - for (int i = 0; i < entry.getCount(); i++) { - decodingTime[current++] = entry.getOffset(); - } - } - - return decodingTime; - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ContainerBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ContainerBox.java.svn-base deleted file mode 100644 index a016374..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ContainerBox.java.svn-base +++ /dev/null @@ -1,74 +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 java.util.List; - -/** - * Interface for all ISO boxes that may contain other boxes. - */ -public interface ContainerBox extends Box { - - /** - * Gets all child boxes. May not return <code>null</code>. - * - * @return an array of boxes, empty array in case of no children. - */ - List<Box> getBoxes(); - - /** - * Sets all boxes and removes all previous child boxes. - * @param boxes the new list of children - */ - void setBoxes(List<Box> boxes); - - /** - * Gets all child boxes of the given type. May not return <code>null</code>. - * - * @param clazz child box's type - * @return an array of boxes, empty array in case of no children. - */ - <T extends Box> List<T> getBoxes(Class<T> clazz); - - /** - * Gets all child boxes of the given type. May not return <code>null</code>. - * - * @param clazz child box's type - * @param recursive step down the tree - * @return an array of boxes, empty array in case of no children. - */ - <T extends Box> List<T> getBoxes(Class<T> clazz, boolean recursive); - - /** - * Gets the parent box. May be <code>null</code> in case of the - * {@link com.coremedia.iso.IsoFile} itself. - * - * @return a <code>ContainerBox</code> that contains <code>this</code> - */ - ContainerBox getParent(); - - /** - * Returns the number of bytes from the start of the box to start of the first child. - * - * @return offset of first child from box start - */ - long getNumOfBytesToFirstChild(); - - IsoFile getIsoFile(); -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/CopyrightBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/CopyrightBox.java.svn-base deleted file mode 100644 index 86bc215..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/CopyrightBox.java.svn-base +++ /dev/null @@ -1,86 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.coremedia.iso.Utf8; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * The copyright box contains a copyright declaration which applies to the entire presentation, when contained - * within the MovieBox, or, when contained in a track, to that entire track. There may be multple boxes using - * different language codes. - * - * @see MovieBox - * @see TrackBox - */ -public class CopyrightBox extends AbstractFullBox { - public static final String TYPE = "cprt"; - - private String language; - private String copyright; - - public CopyrightBox() { - super(TYPE); - } - - public String getLanguage() { - return language; - } - - public String getCopyright() { - return copyright; - } - - public void setLanguage(String language) { - this.language = language; - } - - public void setCopyright(String copyright) { - this.copyright = copyright; - } - - protected long getContentSize() { - return 7 + Utf8.utf8StringLengthInBytes(copyright); - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - language = IsoTypeReader.readIso639(content); - copyright = IsoTypeReader.readString(content); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeIso639(byteBuffer, language); - byteBuffer.put(Utf8.convert(copyright)); - byteBuffer.put((byte) 0); - } - - public String toString() { - return "CopyrightBox[language=" + getLanguage() + ";copyright=" + getCopyright() + "]"; - } - - - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/DataEntryUrlBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/DataEntryUrlBox.java.svn-base deleted file mode 100644 index b58608d..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/DataEntryUrlBox.java.svn-base +++ /dev/null @@ -1,53 +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.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * Only used within the DataReferenceBox. Find more information there. - * - * @see com.coremedia.iso.boxes.DataReferenceBox - */ -public class DataEntryUrlBox extends AbstractFullBox { - public static final String TYPE = "url "; - - public DataEntryUrlBox() { - super(TYPE); - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - } - - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - } - - protected long getContentSize() { - return 4; - } - - public String toString() { - return "DataEntryUrlBox[]"; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/DataEntryUrnBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/DataEntryUrnBox.java.svn-base deleted file mode 100644 index 042a972..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/DataEntryUrnBox.java.svn-base +++ /dev/null @@ -1,69 +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.IsoTypeReader; -import com.coremedia.iso.Utf8; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * Only used within the DataReferenceBox. Find more information there. - * - * @see com.coremedia.iso.boxes.DataReferenceBox - */ -public class DataEntryUrnBox extends AbstractFullBox { - private String name; - private String location; - public static final String TYPE = "urn "; - - public DataEntryUrnBox() { - super(TYPE); - } - - public String getName() { - return name; - } - - public String getLocation() { - return location; - } - - protected long getContentSize() { - return Utf8.utf8StringLengthInBytes(name) + 1 + Utf8.utf8StringLengthInBytes(location) + 1; - } - - @Override - public void _parseDetails(ByteBuffer content) { - name = IsoTypeReader.readString(content); - location = IsoTypeReader.readString(content); - - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - byteBuffer.put(Utf8.convert(name)); - byteBuffer.put((byte) 0); - byteBuffer.put(Utf8.convert(location)); - byteBuffer.put((byte) 0); - } - - public String toString() { - return "DataEntryUrlBox[name=" + getName() + ";location=" + getLocation() + "]"; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/DataInformationBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/DataInformationBox.java.svn-base deleted file mode 100644 index 7f058eb..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/DataInformationBox.java.svn-base +++ /dev/null @@ -1,36 +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.googlecode.mp4parser.AbstractContainerBox; - -/** - * <code> - * Box Type: 'dinf'<br> - * Container: {@link com.coremedia.iso.boxes.MediaInformationBox} ('minf')<br> - * Mandatory: Yes<br> - * Quantity: Exactly one<br><br></code> - * The data information box contains objects that declare the location of the media information in a track. - */ -public class DataInformationBox extends AbstractContainerBox { - public static final String TYPE = "dinf"; - - public DataInformationBox() { - super(TYPE); - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/DataReferenceBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/DataReferenceBox.java.svn-base deleted file mode 100644 index 8156d3f..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/DataReferenceBox.java.svn-base +++ /dev/null @@ -1,65 +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.IsoTypeWriter; -import com.googlecode.mp4parser.FullContainerBox; - -import java.nio.ByteBuffer; - -/** - * The data reference object contains a table of data references (normally URLs) that declare the location(s) of - * the media data used within the presentation. The data reference index in the sample description ties entries in - * this table to the samples in the track. A track may be split over several sources in this way. - * If the flag is set indicating that the data is in the same file as this box, then no string (not even an empty one) - * shall be supplied in the entry field. - * The DataEntryBox within the DataReferenceBox shall be either a DataEntryUrnBox or a DataEntryUrlBox. - * - * @see com.coremedia.iso.boxes.DataEntryUrlBox - * @see com.coremedia.iso.boxes.DataEntryUrnBox - */ -public class DataReferenceBox extends FullContainerBox { - - public static final String TYPE = "dref"; - - public DataReferenceBox() { - super(TYPE); - - } - - @Override - protected long getContentSize() { - return super.getContentSize() + 4; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - content.get(new byte[4]); // basically a skip of 4 bytes signaling the number of child boxes - parseChildBoxes(content); - } - - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt32(byteBuffer, getBoxes().size()); - writeChildBoxes(byteBuffer); - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/DescriptionBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/DescriptionBox.java.svn-base deleted file mode 100644 index 8352051..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/DescriptionBox.java.svn-base +++ /dev/null @@ -1,77 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.coremedia.iso.Utf8; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * Gives a language dependent description of the media contained in the ISO file. - */ -public class DescriptionBox extends AbstractFullBox { - public static final String TYPE = "dscp"; - - private String language; - private String description; - - public DescriptionBox() { - super(TYPE); - } - - public String getLanguage() { - return language; - } - - public String getDescription() { - return description; - } - - protected long getContentSize() { - return 7 + Utf8.utf8StringLengthInBytes(description); - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - language = IsoTypeReader.readIso639(content); - description = IsoTypeReader.readString(content); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeIso639(byteBuffer, language); - byteBuffer.put(Utf8.convert(description)); - byteBuffer.put((byte) 0); - } - - public String toString() { - return "DescriptionBox[language=" + getLanguage() + ";description=" + getDescription() + "]"; - } - - public void setLanguage(String language) { - this.language = language; - } - - public void setDescription(String description) { - this.description = description; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/EditBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/EditBox.java.svn-base deleted file mode 100644 index db3bc25..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/EditBox.java.svn-base +++ /dev/null @@ -1,34 +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.googlecode.mp4parser.AbstractContainerBox; - -/** - * An Edit Box maps the presentation time-line to the media time-line as it is stored in the file. - * The Edit Box is a container fpr the edit lists. Defined in ISO/IEC 14496-12. - * - * @see EditListBox - */ -public class EditBox extends AbstractContainerBox { - public static final String TYPE = "edts"; - - public EditBox() { - super(TYPE); - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/EditListBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/EditListBox.java.svn-base deleted file mode 100644 index 231f8be..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/EditListBox.java.svn-base +++ /dev/null @@ -1,248 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.io.IOException; -import java.nio.ByteBuffer; -import java.util.LinkedList; -import java.util.List; - -import static com.googlecode.mp4parser.util.CastUtils.l2i; - -/** - * <code> - * Box Type : 'elst'<br> - * Container: {@link EditBox}('edts')<br> - * Mandatory: No<br> - * Quantity : Zero or one</code><br><br> - * This box contains an explicit timeline map. Each entry defines part of the track time-line: by mapping part of - * the media time-line, or by indicating 'empty' time, or by defining a 'dwell', where a single time-point in the - * media is held for a period.<br> - * Note that edits are not restricted to fall on sample times. This means that when entering an edit, it can be - * necessary to (a) back up to a sync point, and pre-roll from there and then (b) be careful about the duration of - * the first sample - it might have been truncated if the edit enters it during its normal duration. If this is audio, - * that frame might need to be decoded, and then the final slicing done. Likewise, the duration of the last sample - * in an edit might need slicing. <br> - * Starting offsets for tracks (streams) are represented by an initial empty edit. For example, to play a track from - * its start for 30 seconds, but at 10 seconds into the presentation, we have the following edit list:<br> - * <p/> - * <li>Entry-count = 2</li> - * <li>Segment-duration = 10 seconds</li> - * <li>Media-Time = -1</li> - * <li>Media-Rate = 1</li> - * <li>Segment-duration = 30 seconds (could be the length of the whole track)</li> - * <li>Media-Time = 0 seconds</li> - * <li>Media-Rate = 1</li> - */ -public class EditListBox extends AbstractFullBox { - private List<Entry> entries = new LinkedList<Entry>(); - public static final String TYPE = "elst"; - - public EditListBox() { - super(TYPE); - } - - - public List<Entry> getEntries() { - return entries; - } - - public void setEntries(List<Entry> entries) { - this.entries = entries; - } - - protected long getContentSize() { - long contentSize = 8; - if (getVersion() == 1) { - contentSize += entries.size() * 20; - } else { - contentSize += entries.size() * 12; - } - - return contentSize; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - int entryCount = l2i(IsoTypeReader.readUInt32(content)); - entries = new LinkedList<Entry>(); - for (int i = 0; i < entryCount; i++) { - entries.add(new Entry(this, content)); - - } - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt32(byteBuffer, entries.size()); - for (Entry entry : entries) { - entry.getContent(byteBuffer); - } - } - - @Override - public String toString() { - return "EditListBox{" + - "entries=" + entries + - '}'; - } - - public static class Entry { - private long segmentDuration; - private long mediaTime; - private double mediaRate; - EditListBox editListBox; - - /** - * Creates a new <code>Entry</code> with all values set. - * - * @param segmentDuration duration in movie timescale - * @param mediaTime starting time - * @param mediaRate relative play rate - */ - public Entry(EditListBox editListBox, long segmentDuration, long mediaTime, double mediaRate) { - this.segmentDuration = segmentDuration; - this.mediaTime = mediaTime; - this.mediaRate = mediaRate; - this.editListBox = editListBox; - } - - public Entry(EditListBox editListBox, ByteBuffer bb) { - if (editListBox.getVersion() == 1) { - segmentDuration = IsoTypeReader.readUInt64(bb); - mediaTime = IsoTypeReader.readUInt64(bb); - mediaRate = IsoTypeReader.readFixedPoint1616(bb); - } else { - segmentDuration = IsoTypeReader.readUInt32(bb); - mediaTime = IsoTypeReader.readUInt32(bb); - mediaRate = IsoTypeReader.readFixedPoint1616(bb); - } - this.editListBox = editListBox; - } - - /** - * The segment duration is an integer that specifies the duration - * of this edit segment in units of the timescale in the Movie - * Header Box - * - * @return segment duration in movie timescale - */ - public long getSegmentDuration() { - return segmentDuration; - } - - /** - * The segment duration is an integer that specifies the duration - * of this edit segment in units of the timescale in the Movie - * Header Box - * - * @param segmentDuration new segment duration in movie timescale - */ - public void setSegmentDuration(long segmentDuration) { - this.segmentDuration = segmentDuration; - } - - /** - * The media time is an integer containing the starting time - * within the media of a specific edit segment(in media time - * scale units, in composition time) - * - * @return starting time - */ - public long getMediaTime() { - return mediaTime; - } - - /** - * The media time is an integer containing the starting time - * within the media of a specific edit segment(in media time - * scale units, in composition time) - * - * @param mediaTime starting time - */ - public void setMediaTime(long mediaTime) { - this.mediaTime = mediaTime; - } - - /** - * The media rate specifies the relative rate at which to play the - * media corresponding to a specific edit segment. - * - * @return relative play rate - */ - public double getMediaRate() { - return mediaRate; - } - - /** - * The media rate specifies the relative rate at which to play the - * media corresponding to a specific edit segment. - * - * @param mediaRate new relative play rate - */ - public void setMediaRate(double mediaRate) { - this.mediaRate = mediaRate; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - Entry entry = (Entry) o; - - if (mediaTime != entry.mediaTime) return false; - if (segmentDuration != entry.segmentDuration) return false; - - return true; - } - - @Override - public int hashCode() { - int result = (int) (segmentDuration ^ (segmentDuration >>> 32)); - result = 31 * result + (int) (mediaTime ^ (mediaTime >>> 32)); - return result; - } - - public void getContent(ByteBuffer bb) { - if (editListBox.getVersion() == 1) { - IsoTypeWriter.writeUInt64(bb, segmentDuration); - IsoTypeWriter.writeUInt64(bb, mediaTime); - } else { - IsoTypeWriter.writeUInt32(bb, l2i(segmentDuration)); - bb.putInt(l2i(mediaTime)); - } - IsoTypeWriter.writeFixedPont1616(bb, mediaRate); - } - - @Override - public String toString() { - return "Entry{" + - "segmentDuration=" + segmentDuration + - ", mediaTime=" + mediaTime + - ", mediaRate=" + mediaRate + - '}'; - } - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/FileTypeBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/FileTypeBox.java.svn-base deleted file mode 100644 index e6eed20..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/FileTypeBox.java.svn-base +++ /dev/null @@ -1,144 +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.googlecode.mp4parser.AbstractBox; -import com.googlecode.mp4parser.annotations.DoNotParseDetail; - -import java.nio.ByteBuffer; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; - -/** - * This box identifies the specifications to which this file complies. <br> - * Each brand is a printable four-character code, registered with ISO, that - * identifies a precise specification. - */ -public class FileTypeBox extends AbstractBox { - public static final String TYPE = "ftyp"; - - private String majorBrand; - private long minorVersion; - private List<String> compatibleBrands = Collections.emptyList(); - - public FileTypeBox() { - super(TYPE); - } - - public FileTypeBox(String majorBrand, long minorVersion, List<String> compatibleBrands) { - super(TYPE); - this.majorBrand = majorBrand; - this.minorVersion = minorVersion; - this.compatibleBrands = compatibleBrands; - } - - protected long getContentSize() { - return 8 + compatibleBrands.size() * 4; - - } - - @Override - public void _parseDetails(ByteBuffer content) { - majorBrand = IsoTypeReader.read4cc(content); - minorVersion = IsoTypeReader.readUInt32(content); - int compatibleBrandsCount = content.remaining() / 4; - compatibleBrands = new LinkedList<String>(); - for (int i = 0; i < compatibleBrandsCount; i++) { - compatibleBrands.add(IsoTypeReader.read4cc(content)); - } - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - byteBuffer.put(IsoFile.fourCCtoBytes(majorBrand)); - IsoTypeWriter.writeUInt32(byteBuffer, minorVersion); - for (String compatibleBrand : compatibleBrands) { - byteBuffer.put(IsoFile.fourCCtoBytes(compatibleBrand)); - } - - } - - /** - * Gets the brand identifier. - * - * @return the brand identifier - */ - public String getMajorBrand() { - return majorBrand; - } - - /** - * Sets the major brand of the file used to determine an appropriate reader. - * - * @param majorBrand the new major brand - */ - public void setMajorBrand(String majorBrand) { - this.majorBrand = majorBrand; - } - - /** - * Sets the "informative integer for the minor version of the major brand". - * - * @param minorVersion the version number of the major brand - */ - public void setMinorVersion(int minorVersion) { - this.minorVersion = minorVersion; - } - - /** - * Gets an informative integer for the minor version of the major brand. - * - * @return an informative integer - * @see FileTypeBox#getMajorBrand() - */ - public long getMinorVersion() { - return minorVersion; - } - - /** - * Gets an array of 4-cc brands. - * - * @return the compatible brands - */ - public List<String> getCompatibleBrands() { - return compatibleBrands; - } - - public void setCompatibleBrands(List<String> compatibleBrands) { - this.compatibleBrands = compatibleBrands; - } - - @DoNotParseDetail - public String toString() { - StringBuilder result = new StringBuilder(); - result.append("FileTypeBox["); - result.append("majorBrand=").append(getMajorBrand()); - result.append(";"); - result.append("minorVersion=").append(getMinorVersion()); - for (String compatibleBrand : compatibleBrands) { - result.append(";"); - result.append("compatibleBrand=").append(compatibleBrand); - } - result.append("]"); - return result.toString(); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/FreeBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/FreeBox.java.svn-base deleted file mode 100644 index 636c9a7..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/FreeBox.java.svn-base +++ /dev/null @@ -1,114 +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.BoxParser; -import com.coremedia.iso.ChannelHelper; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractBox; - -import java.io.IOException; -import java.nio.ByteBuffer; -import java.nio.channels.FileChannel; -import java.nio.channels.ReadableByteChannel; -import java.nio.channels.WritableByteChannel; -import java.util.LinkedList; -import java.util.List; - -import static com.googlecode.mp4parser.util.CastUtils.l2i; - -/** - * A free box. Just a placeholder to enable editing without rewriting the whole file. - */ -public class FreeBox implements Box { - public static final String TYPE = "free"; - ByteBuffer data; - List<Box> replacers = new LinkedList<Box>(); - private ContainerBox parent; - - public FreeBox() { - } - - public FreeBox(int size) { - this.data = ByteBuffer.allocate(size); - } - - - public ByteBuffer getData() { - return data; - } - - public void setData(ByteBuffer data) { - this.data = data; - } - - public void getBox(WritableByteChannel os) throws IOException { - for (Box replacer : replacers) { - replacer.getBox(os); - } - ByteBuffer header = ByteBuffer.allocate(8); - IsoTypeWriter.writeUInt32(header, 8 + data.limit()); - header.put(TYPE.getBytes()); - header.rewind(); - os.write(header); - data.rewind(); - os.write(data); - - } - - public ContainerBox getParent() { - return parent; - } - - public void setParent(ContainerBox parent) { - this.parent = parent; - } - - public long getSize() { - long size = 8; - for (Box replacer : replacers) { - size += replacer.getSize(); - } - size += data.limit(); - return size; - } - - public String getType() { - return TYPE; - } - - public void parse(ReadableByteChannel readableByteChannel, ByteBuffer header, long contentSize, BoxParser boxParser) throws IOException { - if (readableByteChannel instanceof FileChannel && contentSize > 1024 * 1024) { - // It's quite expensive to map a file into the memory. Just do it when the box is larger than a MB. - data = ((FileChannel) readableByteChannel).map(FileChannel.MapMode.READ_ONLY, ((FileChannel) readableByteChannel).position(), contentSize); - ((FileChannel) readableByteChannel).position(((FileChannel) readableByteChannel).position() + contentSize); - } else { - assert contentSize < Integer.MAX_VALUE; - data = ChannelHelper.readFully(readableByteChannel, contentSize); - } - } - - - public void addAndReplace(Box box) { - data.position(l2i(box.getSize())); - data = data.slice(); - replacers.add(box); - } - - -}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/FreeSpaceBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/FreeSpaceBox.java.svn-base deleted file mode 100644 index ed42bf9..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/FreeSpaceBox.java.svn-base +++ /dev/null @@ -1,63 +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.googlecode.mp4parser.AbstractBox; - -import java.nio.ByteBuffer; - -/** - * The contents of a free-space box are irrelevant and may be ignored, or the object deleted, without affecting the - * presentation. Care should be excercized when deleting the object, as this may invalidate the offsets used in the - * sample table. - */ -public class FreeSpaceBox extends AbstractBox { - public static final String TYPE = "skip"; - - byte[] data; - - protected long getContentSize() { - return data.length; - } - - public FreeSpaceBox() { - super(TYPE); - } - - public void setData(byte[] data) { - this.data = data; - } - - public byte[] getData() { - return data; - } - - @Override - public void _parseDetails(ByteBuffer content) { - data = new byte[content.remaining()]; - content.get(data); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - byteBuffer.put(data); - } - - public String toString() { - return "FreeSpaceBox[size=" + data.length + ";type=" + getType() + "]"; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/FullBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/FullBox.java.svn-base deleted file mode 100644 index 1515d76..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/FullBox.java.svn-base +++ /dev/null @@ -1,17 +0,0 @@ -package com.coremedia.iso.boxes; - -import com.coremedia.iso.boxes.Box; - -/** - * The <code>FullBox</code> contains all getters and setters specific - * to a so-called full box according to the ISO/IEC 14496/12 specification. - */ -public interface FullBox extends Box { - int getVersion(); - - void setVersion(int version); - - int getFlags(); - - void setFlags(int flags); -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/GenreBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/GenreBox.java.svn-base deleted file mode 100644 index e2d1faf..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/GenreBox.java.svn-base +++ /dev/null @@ -1,80 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.coremedia.iso.Utf8; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * Containing genre information and contained in the <code>UserDataBox</code>. - * - * @see com.coremedia.iso.boxes.UserDataBox - */ -public class GenreBox extends AbstractFullBox { - public static final String TYPE = "gnre"; - - private String language; - private String genre; - - public GenreBox() { - super(TYPE); - } - - public String getLanguage() { - return language; - } - - public String getGenre() { - return genre; - } - - public void setLanguage(String language) { - this.language = language; - } - - public void setGenre(String genre) { - this.genre = genre; - } - - protected long getContentSize() { - return 7 + Utf8.utf8StringLengthInBytes(genre); - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - language = IsoTypeReader.readIso639(content); - genre = IsoTypeReader.readString(content); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeIso639(byteBuffer, language); - byteBuffer.put(Utf8.convert(genre)); - byteBuffer.put((byte) 0); - } - - public String toString() { - return "GenreBox[language=" + getLanguage() + ";genre=" + getGenre() + "]"; - } - -} 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() + "]"; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/HintMediaHeaderBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/HintMediaHeaderBox.java.svn-base deleted file mode 100644 index 3477738..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/HintMediaHeaderBox.java.svn-base +++ /dev/null @@ -1,91 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; - -import java.nio.ByteBuffer; - -/** - * The hint media header contains general information, independent of the protocaol, for hint tracks. Resides - * in Media Information Box. - * - * @see com.coremedia.iso.boxes.MediaInformationBox - */ -public class HintMediaHeaderBox extends AbstractMediaHeaderBox { - private int maxPduSize; - private int avgPduSize; - private long maxBitrate; - private long avgBitrate; - public static final String TYPE = "hmhd"; - - public HintMediaHeaderBox() { - super(TYPE); - } - - public int getMaxPduSize() { - return maxPduSize; - } - - public int getAvgPduSize() { - return avgPduSize; - } - - public long getMaxBitrate() { - return maxBitrate; - } - - public long getAvgBitrate() { - return avgBitrate; - } - - protected long getContentSize() { - return 20; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - maxPduSize = IsoTypeReader.readUInt16(content); - avgPduSize = IsoTypeReader.readUInt16(content); - maxBitrate = IsoTypeReader.readUInt32(content); - avgBitrate = IsoTypeReader.readUInt32(content); - IsoTypeReader.readUInt32(content); // reserved! - - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt16(byteBuffer, maxPduSize); - IsoTypeWriter.writeUInt16(byteBuffer, avgPduSize); - IsoTypeWriter.writeUInt32(byteBuffer, maxBitrate); - IsoTypeWriter.writeUInt32(byteBuffer, avgBitrate); - IsoTypeWriter.writeUInt32(byteBuffer, 0); - } - - @Override - public String toString() { - return "HintMediaHeaderBox{" + - "maxPduSize=" + maxPduSize + - ", avgPduSize=" + avgPduSize + - ", maxBitrate=" + maxBitrate + - ", avgBitrate=" + avgBitrate + - '}'; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ItemDataBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ItemDataBox.java.svn-base deleted file mode 100644 index 46097cc..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ItemDataBox.java.svn-base +++ /dev/null @@ -1,43 +0,0 @@ -package com.coremedia.iso.boxes; - -import com.googlecode.mp4parser.AbstractBox; - -import java.nio.ByteBuffer; - -/** - * - */ -public class ItemDataBox extends AbstractBox { - ByteBuffer data = ByteBuffer.allocate(0); - public static final String TYPE = "idat"; - - - public ItemDataBox() { - super(TYPE); - } - - public ByteBuffer getData() { - return data; - } - - public void setData(ByteBuffer data) { - this.data = data; - } - - @Override - protected long getContentSize() { - return data.limit(); - } - - - @Override - public void _parseDetails(ByteBuffer content) { - data = content.slice(); - content.position(content.position() + content.remaining()); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - byteBuffer.put(data); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ItemLocationBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ItemLocationBox.java.svn-base deleted file mode 100644 index 6dcee6f..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ItemLocationBox.java.svn-base +++ /dev/null @@ -1,360 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeReaderVariable; -import com.coremedia.iso.IsoTypeWriter; -import com.coremedia.iso.IsoTypeWriterVariable; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.io.IOException; -import java.nio.ByteBuffer; -import java.util.LinkedList; -import java.util.List; - -/** - * aligned(8) class ItemLocationBox extends FullBox(‘iloc’, version, 0) { - * unsigned int(4) offset_size; - * unsigned int(4) length_size; - * unsigned int(4) base_offset_size; - * if (version == 1) - * unsigned int(4) index_size; - * else - * unsigned int(4) reserved; - * unsigned int(16) item_count; - * for (i=0; i<item_count; i++) { - * unsigned int(16) item_ID; - * if (version == 1) { - * unsigned int(12) reserved = 0; - * unsigned int(4) construction_method; - * } - * unsigned int(16) data_reference_index; - * unsigned int(base_offset_size*8) base_offset; - * unsigned int(16) extent_count; - * for (j=0; j<extent_count; j++) { - * if ((version == 1) && (index_size > 0)) { - * unsigned int(index_size*8) extent_index; - * } - * unsigned int(offset_size*8) extent_offset; - * unsigned int(length_size*8) extent_length; - * } - * } - * } - */ -public class ItemLocationBox extends AbstractFullBox { - public int offsetSize = 8; - public int lengthSize = 8; - public int baseOffsetSize = 8; - public int indexSize = 0; - public List<Item> items = new LinkedList<Item>(); - - public static final String TYPE = "iloc"; - - public ItemLocationBox() { - super(TYPE); - } - - @Override - protected long getContentSize() { - long size = 8; - for (Item item : items) { - size += item.getSize(); - } - return size; - } - - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt8(byteBuffer, ((offsetSize << 4) | lengthSize)); - if (getVersion() == 1) { - IsoTypeWriter.writeUInt8(byteBuffer, (baseOffsetSize << 4 | indexSize)); - } else { - IsoTypeWriter.writeUInt8(byteBuffer, (baseOffsetSize << 4)); - } - IsoTypeWriter.writeUInt16(byteBuffer, items.size()); - for (Item item : items) { - item.getContent(byteBuffer); - } - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - int tmp = IsoTypeReader.readUInt8(content); - offsetSize = tmp >>> 4; - lengthSize = tmp & 0xf; - tmp = IsoTypeReader.readUInt8(content); - baseOffsetSize = tmp >>> 4; - - if (getVersion() == 1) { - indexSize = tmp & 0xf; - } - int itemCount = IsoTypeReader.readUInt16(content); - for (int i = 0; i < itemCount; i++) { - items.add(new Item(content)); - } - } - - - public int getOffsetSize() { - return offsetSize; - } - - public void setOffsetSize(int offsetSize) { - this.offsetSize = offsetSize; - } - - public int getLengthSize() { - return lengthSize; - } - - public void setLengthSize(int lengthSize) { - this.lengthSize = lengthSize; - } - - public int getBaseOffsetSize() { - return baseOffsetSize; - } - - public void setBaseOffsetSize(int baseOffsetSize) { - this.baseOffsetSize = baseOffsetSize; - } - - public int getIndexSize() { - return indexSize; - } - - public void setIndexSize(int indexSize) { - this.indexSize = indexSize; - } - - public List<Item> getItems() { - return items; - } - - public void setItems(List<Item> items) { - this.items = items; - } - - - public Item createItem(int itemId, int constructionMethod, int dataReferenceIndex, long baseOffset, List<Extent> extents) { - return new Item(itemId, constructionMethod, dataReferenceIndex, baseOffset, extents); - } - - Item createItem(ByteBuffer bb) { - return new Item(bb); - } - - public class Item { - public int itemId; - public int constructionMethod; - public int dataReferenceIndex; - public long baseOffset; - public List<Extent> extents = new LinkedList<Extent>(); - - public Item(ByteBuffer in) { - itemId = IsoTypeReader.readUInt16(in); - - if (getVersion() == 1) { - int tmp = IsoTypeReader.readUInt16(in); - constructionMethod = tmp & 0xf; - } - - dataReferenceIndex = IsoTypeReader.readUInt16(in); - if (baseOffsetSize > 0) { - baseOffset = IsoTypeReaderVariable.read(in, baseOffsetSize); - } else { - baseOffset = 0; - } - int extentCount = IsoTypeReader.readUInt16(in); - - - for (int i = 0; i < extentCount; i++) { - extents.add(new Extent(in)); - } - } - - public Item(int itemId, int constructionMethod, int dataReferenceIndex, long baseOffset, List<Extent> extents) { - this.itemId = itemId; - this.constructionMethod = constructionMethod; - this.dataReferenceIndex = dataReferenceIndex; - this.baseOffset = baseOffset; - this.extents = extents; - } - - public int getSize() { - int size = 2; - - if (getVersion() == 1) { - size += 2; - } - - size += 2; - size += baseOffsetSize; - size += 2; - - - for (Extent extent : extents) { - size += extent.getSize(); - } - return size; - } - - public void setBaseOffset(long baseOffset) { - this.baseOffset = baseOffset; - } - - public void getContent(ByteBuffer bb) { - IsoTypeWriter.writeUInt16(bb, itemId); - - if (getVersion() == 1) { - IsoTypeWriter.writeUInt16(bb, constructionMethod); - } - - - IsoTypeWriter.writeUInt16(bb, dataReferenceIndex); - if (baseOffsetSize > 0) { - IsoTypeWriterVariable.write(baseOffset, bb, baseOffsetSize); - } - IsoTypeWriter.writeUInt16(bb, extents.size()); - - for (Extent extent : extents) { - extent.getContent(bb); - } - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - Item item = (Item) o; - - if (baseOffset != item.baseOffset) return false; - if (constructionMethod != item.constructionMethod) return false; - if (dataReferenceIndex != item.dataReferenceIndex) return false; - if (itemId != item.itemId) return false; - if (extents != null ? !extents.equals(item.extents) : item.extents != null) return false; - - return true; - } - - @Override - public int hashCode() { - int result = itemId; - result = 31 * result + constructionMethod; - result = 31 * result + dataReferenceIndex; - result = 31 * result + (int) (baseOffset ^ (baseOffset >>> 32)); - result = 31 * result + (extents != null ? extents.hashCode() : 0); - return result; - } - - @Override - public String toString() { - return "Item{" + - "baseOffset=" + baseOffset + - ", itemId=" + itemId + - ", constructionMethod=" + constructionMethod + - ", dataReferenceIndex=" + dataReferenceIndex + - ", extents=" + extents + - '}'; - } - } - - - public Extent createExtent(long extentOffset, long extentLength, long extentIndex) { - return new Extent(extentOffset, extentLength, extentIndex); - } - - Extent createExtent(ByteBuffer bb) { - return new Extent(bb); - } - - - public class Extent { - public long extentOffset; - public long extentLength; - public long extentIndex; - - public Extent(long extentOffset, long extentLength, long extentIndex) { - this.extentOffset = extentOffset; - this.extentLength = extentLength; - this.extentIndex = extentIndex; - } - - - public Extent(ByteBuffer in) { - if ((getVersion() == 1) && indexSize > 0) { - extentIndex = IsoTypeReaderVariable.read(in, indexSize); - } - extentOffset = IsoTypeReaderVariable.read(in, offsetSize); - extentLength = IsoTypeReaderVariable.read(in, lengthSize); - } - - public void getContent(ByteBuffer os) { - if ((getVersion() == 1) && indexSize > 0) { - IsoTypeWriterVariable.write(extentIndex, os, indexSize); - } - IsoTypeWriterVariable.write(extentOffset, os, offsetSize); - IsoTypeWriterVariable.write(extentLength, os, lengthSize); - } - - public int getSize() { - return (indexSize > 0 ? indexSize : 0) + offsetSize + lengthSize; - } - - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - Extent extent = (Extent) o; - - if (extentIndex != extent.extentIndex) return false; - if (extentLength != extent.extentLength) return false; - if (extentOffset != extent.extentOffset) return false; - - return true; - } - - @Override - public int hashCode() { - int result = (int) (extentOffset ^ (extentOffset >>> 32)); - result = 31 * result + (int) (extentLength ^ (extentLength >>> 32)); - result = 31 * result + (int) (extentIndex ^ (extentIndex >>> 32)); - return result; - } - - @Override - public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("Extent"); - sb.append("{extentOffset=").append(extentOffset); - sb.append(", extentLength=").append(extentLength); - sb.append(", extentIndex=").append(extentIndex); - sb.append('}'); - return sb.toString(); - } - } - - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ItemProtectionBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ItemProtectionBox.java.svn-base deleted file mode 100644 index 7eed790..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ItemProtectionBox.java.svn-base +++ /dev/null @@ -1,61 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.FullContainerBox; - -import java.nio.ByteBuffer; - -/** - * The Item Protection Box provides an array of item protection information, for use by the Item Information Box. - * - * @see com.coremedia.iso.boxes.ItemProtectionBox - */ -public class ItemProtectionBox extends FullContainerBox { - - public static final String TYPE = "ipro"; - - public ItemProtectionBox() { - super(TYPE); - } - - public SchemeInformationBox getItemProtectionScheme() { - if (!getBoxes(SchemeInformationBox.class).isEmpty()) { - return getBoxes(SchemeInformationBox.class).get(0); - } else { - return null; - } - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - IsoTypeReader.readUInt16(content); - parseChildBoxes(content); - } - - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt16(byteBuffer, getBoxes().size()); - writeChildBoxes(byteBuffer); - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/KeywordsBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/KeywordsBox.java.svn-base deleted file mode 100644 index d9b7c0c..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/KeywordsBox.java.svn-base +++ /dev/null @@ -1,95 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.coremedia.iso.Utf8; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * List of keywords according to 3GPP 26.244. - */ -public class KeywordsBox extends AbstractFullBox { - public static final String TYPE = "kywd"; - - private String language; - private String[] keywords; - - public KeywordsBox() { - super(TYPE); - } - - public String getLanguage() { - return language; - } - - public String[] getKeywords() { - return keywords; - } - - public void setLanguage(String language) { - this.language = language; - } - - public void setKeywords(String[] keywords) { - this.keywords = keywords; - } - - protected long getContentSize() { - long contentSize = 7; - for (String keyword : keywords) { - contentSize += 1 + Utf8.utf8StringLengthInBytes(keyword) + 1; - } - return contentSize; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - language = IsoTypeReader.readIso639(content); - int keywordCount = IsoTypeReader.readUInt8(content); - keywords = new String[keywordCount]; - for (int i = 0; i < keywordCount; i++) { - IsoTypeReader.readUInt8(content); - keywords[i] = IsoTypeReader.readString(content); - } - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeIso639(byteBuffer, language); - IsoTypeWriter.writeUInt8(byteBuffer, keywords.length); - for (String keyword : keywords) { - IsoTypeWriter.writeUInt8(byteBuffer, Utf8.utf8StringLengthInBytes(keyword) + 1); - byteBuffer.put(Utf8.convert(keyword)); - } - } - - public String toString() { - StringBuffer buffer = new StringBuffer(); - buffer.append("KeywordsBox[language=").append(getLanguage()); - for (int i = 0; i < keywords.length; i++) { - buffer.append(";keyword").append(i).append("=").append(keywords[i]); - } - buffer.append("]"); - return buffer.toString(); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/MediaBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/MediaBox.java.svn-base deleted file mode 100644 index fa5642c..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/MediaBox.java.svn-base +++ /dev/null @@ -1,61 +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.googlecode.mp4parser.AbstractContainerBox; - -/** - * The media declaration container contains all the objects that declare information about the media data within a - * track. - */ -public class MediaBox extends AbstractContainerBox { - public static final String TYPE = "mdia"; - - public MediaBox() { - super(TYPE); - } - - public MediaInformationBox getMediaInformationBox() { - for (Box box : boxes) { - if (box instanceof MediaInformationBox) { - return (MediaInformationBox) box; - } - } - return null; - } - - public MediaHeaderBox getMediaHeaderBox() { - for (Box box : boxes) { - if (box instanceof MediaHeaderBox) { - return (MediaHeaderBox) box; - } - } - return null; - } - - public HandlerBox getHandlerBox() { - for (Box box : boxes) { - if (box instanceof HandlerBox) { - return (HandlerBox) box; - } - } - return null; - } - - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/MediaHeaderBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/MediaHeaderBox.java.svn-base deleted file mode 100644 index 69b538b..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/MediaHeaderBox.java.svn-base +++ /dev/null @@ -1,147 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * This box defines overall information which is media-independent, and relevant to the entire presentation - * considered as a whole. - */ -public class MediaHeaderBox extends AbstractFullBox { - public static final String TYPE = "mdhd"; - - - private long creationTime; - private long modificationTime; - private long timescale; - private long duration; - private String language; - - public MediaHeaderBox() { - super(TYPE); - } - - public long getCreationTime() { - return creationTime; - } - - public long getModificationTime() { - return modificationTime; - } - - public long getTimescale() { - return timescale; - } - - public long getDuration() { - return duration; - } - - public String getLanguage() { - return language; - } - - protected long getContentSize() { - long contentSize = 4; - if (getVersion() == 1) { - contentSize += 8 + 8 + 4 + 8; - } else { - contentSize += 4 + 4 + 4 + 4; - } - contentSize += 2; - contentSize += 2; - return contentSize; - - } - - public void setCreationTime(long creationTime) { - this.creationTime = creationTime; - } - - public void setModificationTime(long modificationTime) { - this.modificationTime = modificationTime; - } - - public void setTimescale(long timescale) { - this.timescale = timescale; - } - - public void setDuration(long duration) { - this.duration = duration; - } - - public void setLanguage(String language) { - this.language = language; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - if (getVersion() == 1) { - creationTime = IsoTypeReader.readUInt64(content); - modificationTime = IsoTypeReader.readUInt64(content); - timescale = IsoTypeReader.readUInt32(content); - duration = IsoTypeReader.readUInt64(content); - } else { - creationTime = IsoTypeReader.readUInt32(content); - modificationTime = IsoTypeReader.readUInt32(content); - timescale = IsoTypeReader.readUInt32(content); - duration = IsoTypeReader.readUInt32(content); - } - language = IsoTypeReader.readIso639(content); - IsoTypeReader.readUInt16(content); - } - - - public String toString() { - StringBuilder result = new StringBuilder(); - result.append("MediaHeaderBox["); - result.append("creationTime=").append(getCreationTime()); - result.append(";"); - result.append("modificationTime=").append(getModificationTime()); - result.append(";"); - result.append("timescale=").append(getTimescale()); - result.append(";"); - result.append("duration=").append(getDuration()); - result.append(";"); - result.append("language=").append(getLanguage()); - result.append("]"); - return result.toString(); - } - - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - if (getVersion() == 1) { - IsoTypeWriter.writeUInt64(byteBuffer, creationTime); - IsoTypeWriter.writeUInt64(byteBuffer, modificationTime); - IsoTypeWriter.writeUInt32(byteBuffer, timescale); - IsoTypeWriter.writeUInt64(byteBuffer, duration); - } else { - IsoTypeWriter.writeUInt32(byteBuffer, creationTime); - IsoTypeWriter.writeUInt32(byteBuffer, modificationTime); - IsoTypeWriter.writeUInt32(byteBuffer, timescale); - IsoTypeWriter.writeUInt32(byteBuffer, duration); - } - IsoTypeWriter.writeIso639(byteBuffer, language); - IsoTypeWriter.writeUInt16(byteBuffer, 0); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/MediaInformationBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/MediaInformationBox.java.svn-base deleted file mode 100644 index ed25051..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/MediaInformationBox.java.svn-base +++ /dev/null @@ -1,49 +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.googlecode.mp4parser.AbstractContainerBox; - -/** - * This box contains all the objects that declare characteristic information of the media in the track. - */ -public class MediaInformationBox extends AbstractContainerBox { - public static final String TYPE = "minf"; - - public MediaInformationBox() { - super(TYPE); - } - - public SampleTableBox getSampleTableBox() { - for (Box box : boxes) { - if (box instanceof SampleTableBox) { - return (SampleTableBox) box; - } - } - return null; - } - - public AbstractMediaHeaderBox getMediaHeaderBox() { - for (Box box : boxes) { - if (box instanceof AbstractMediaHeaderBox) { - return (AbstractMediaHeaderBox) box; - } - } - return null; - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/MetaBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/MetaBox.java.svn-base deleted file mode 100644 index 35499ec..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/MetaBox.java.svn-base +++ /dev/null @@ -1,113 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractContainerBox; -import com.googlecode.mp4parser.util.ByteBufferByteChannel; - -import java.io.IOException; -import java.nio.ByteBuffer; - - -/** - * A common base structure to contain general metadata. See ISO/IEC 14496-12 Ch. 8.44.1. - */ -public class MetaBox extends AbstractContainerBox { - private int version = 0; - private int flags = 0; - - public static final String TYPE = "meta"; - - public MetaBox() { - super(TYPE); - } - - @Override - public long getContentSize() { - if (isMp4Box()) { - // it's a fullbox - return 4 + super.getContentSize(); - } else { - // it's an apple metabox - return super.getContentSize(); - } - } - - @Override - public long getNumOfBytesToFirstChild() { - if (isMp4Box()) { - // it's a fullbox - return 12; - } else { - // it's an apple metabox - return 8; - } - } - - @Override - public void _parseDetails(ByteBuffer content) { - int pos = content.position(); - content.get(new byte[4]); - String isHdlr = IsoTypeReader.read4cc(content); - if ("hdlr".equals(isHdlr)) { - // this is apple bullshit - it's NO FULLBOX - content.position(pos); - version = -1; - flags = -1; - } else { - content.position(pos); - version = IsoTypeReader.readUInt8(content); - flags = IsoTypeReader.readUInt24(content); - } - while (content.remaining() >= 8) { - try { - boxes.add(boxParser.parseBox(new ByteBufferByteChannel(content), this)); - } catch (IOException e) { - throw new RuntimeException("Sebastian needs to fix 7518765283"); - } - } - if (content.remaining() > 0) { - throw new RuntimeException("Sebastian needs to fix it 90732r26537"); - } - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - if (isMp4Box()) { - IsoTypeWriter.writeUInt8(byteBuffer, version); - IsoTypeWriter.writeUInt24(byteBuffer, flags); - } - writeChildBoxes(byteBuffer); - } - - - public boolean isMp4Box() { - return version != -1 && flags != -1; - } - - public void setMp4Box(boolean mp4) { - if (mp4) { - version = 0; - flags = 0; - } else { - version = -1; - flags = -1; - } - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/MovieBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/MovieBox.java.svn-base deleted file mode 100644 index 3aff7d8..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/MovieBox.java.svn-base +++ /dev/null @@ -1,67 +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.googlecode.mp4parser.AbstractBox; -import com.googlecode.mp4parser.AbstractContainerBox; - -import java.util.List; - -/** - * The metadata for a presentation is stored in the single Movie Box which occurs at the top-level of a file. - * Normally this box is close to the beginning or end of the file, though this is not required. - */ -public class MovieBox extends AbstractContainerBox { - public static final String TYPE = "moov"; - - public MovieBox() { - super(TYPE); - } - - public int getTrackCount() { - return getBoxes(TrackBox.class).size(); - } - - - /** - * Returns the track numbers associated with this <code>MovieBox</code>. - * - * @return the tracknumbers (IDs) of the tracks in their order of appearance in the file - */ - public long[] getTrackNumbers() { - - List<TrackBox> trackBoxes = this.getBoxes(TrackBox.class); - long[] trackNumbers = new long[trackBoxes.size()]; - for (int trackCounter = 0; trackCounter < trackBoxes.size(); trackCounter++) { - AbstractBox trackBoxe = trackBoxes.get(trackCounter); - TrackBox trackBox = (TrackBox) trackBoxe; - trackNumbers[trackCounter] = trackBox.getTrackHeaderBox().getTrackId(); - } - return trackNumbers; - } - - public MovieHeaderBox getMovieHeaderBox() { - for (Box box : boxes) { - if (box instanceof MovieHeaderBox) { - return (MovieHeaderBox) box; - } - } - return null; - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/MovieHeaderBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/MovieHeaderBox.java.svn-base deleted file mode 100644 index 30fbe8c..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/MovieHeaderBox.java.svn-base +++ /dev/null @@ -1,278 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * <code> - * Box Type: 'mvhd'<br> - * Container: {@link MovieBox} ('moov')<br> - * Mandatory: Yes<br> - * Quantity: Exactly one<br><br> - * </code> - * This box defines overall information which is media-independent, and relevant to the entire presentation - * considered as a whole. - */ -public class MovieHeaderBox extends AbstractFullBox { - private long creationTime; - private long modificationTime; - private long timescale; - private long duration; - private double rate = 1.0; - private float volume = 1.0f; - private long[] matrix = new long[]{0x00010000, 0, 0, 0, 0x00010000, 0, 0, 0, 0x40000000}; - private long nextTrackId; - - private int previewTime; - private int previewDuration; - private int posterTime; - private int selectionTime; - private int selectionDuration; - private int currentTime; - - - public static final String TYPE = "mvhd"; - - public MovieHeaderBox() { - super(TYPE); - } - - public long getCreationTime() { - return creationTime; - } - - public long getModificationTime() { - return modificationTime; - } - - public long getTimescale() { - return timescale; - } - - public long getDuration() { - return duration; - } - - public double getRate() { - return rate; - } - - public float getVolume() { - return volume; - } - - public long[] getMatrix() { - return matrix; - } - - public long getNextTrackId() { - return nextTrackId; - } - - protected long getContentSize() { - long contentSize = 4; - if (getVersion() == 1) { - contentSize += 28; - } else { - contentSize += 16; - } - contentSize += 80; - return contentSize; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - if (getVersion() == 1) { - creationTime = IsoTypeReader.readUInt64(content); - modificationTime = IsoTypeReader.readUInt64(content); - timescale = IsoTypeReader.readUInt32(content); - duration = IsoTypeReader.readUInt64(content); - } else { - creationTime = IsoTypeReader.readUInt32(content); - modificationTime = IsoTypeReader.readUInt32(content); - timescale = IsoTypeReader.readUInt32(content); - duration = IsoTypeReader.readUInt32(content); - } - rate = IsoTypeReader.readFixedPoint1616(content); - volume = IsoTypeReader.readFixedPoint88(content); - IsoTypeReader.readUInt16(content); - IsoTypeReader.readUInt32(content); - IsoTypeReader.readUInt32(content); - matrix = new long[9]; - for (int i = 0; i < 9; i++) { - matrix[i] = IsoTypeReader.readUInt32(content); - } - - previewTime = content.getInt(); - previewDuration = content.getInt(); - posterTime = content.getInt(); - selectionTime = content.getInt(); - selectionDuration = content.getInt(); - currentTime = content.getInt(); - - nextTrackId = IsoTypeReader.readUInt32(content); - - } - - public String toString() { - StringBuilder result = new StringBuilder(); - result.append("MovieHeaderBox["); - result.append("creationTime=").append(getCreationTime()); - result.append(";"); - result.append("modificationTime=").append(getModificationTime()); - result.append(";"); - result.append("timescale=").append(getTimescale()); - result.append(";"); - result.append("duration=").append(getDuration()); - result.append(";"); - result.append("rate=").append(getRate()); - result.append(";"); - result.append("volume=").append(getVolume()); - for (int i = 0; i < matrix.length; i++) { - result.append(";"); - result.append("matrix").append(i).append("=").append(matrix[i]); - } - result.append(";"); - result.append("nextTrackId=").append(getNextTrackId()); - result.append("]"); - return result.toString(); - } - - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - if (getVersion() == 1) { - IsoTypeWriter.writeUInt64(byteBuffer, creationTime); - IsoTypeWriter.writeUInt64(byteBuffer, modificationTime); - IsoTypeWriter.writeUInt32(byteBuffer, timescale); - IsoTypeWriter.writeUInt64(byteBuffer, duration); - } else { - IsoTypeWriter.writeUInt32(byteBuffer, creationTime); - IsoTypeWriter.writeUInt32(byteBuffer, modificationTime); - IsoTypeWriter.writeUInt32(byteBuffer, timescale); - IsoTypeWriter.writeUInt32(byteBuffer, duration); - } - IsoTypeWriter.writeFixedPont1616(byteBuffer, rate); - IsoTypeWriter.writeFixedPont88(byteBuffer, volume); - IsoTypeWriter.writeUInt16(byteBuffer, 0); - IsoTypeWriter.writeUInt32(byteBuffer, 0); - IsoTypeWriter.writeUInt32(byteBuffer, 0); - - - for (int i = 0; i < 9; i++) { - IsoTypeWriter.writeUInt32(byteBuffer, matrix[i]); - } - - - byteBuffer.putInt(previewTime); - byteBuffer.putInt(previewDuration); - byteBuffer.putInt(posterTime); - byteBuffer.putInt(selectionTime); - byteBuffer.putInt(selectionDuration); - byteBuffer.putInt(currentTime); - - IsoTypeWriter.writeUInt32(byteBuffer, nextTrackId); - } - - - public void setCreationTime(long creationTime) { - this.creationTime = creationTime; - } - - public void setModificationTime(long modificationTime) { - this.modificationTime = modificationTime; - } - - public void setTimescale(long timescale) { - this.timescale = timescale; - } - - public void setDuration(long duration) { - this.duration = duration; - } - - public void setRate(double rate) { - this.rate = rate; - } - - public void setVolume(float volume) { - this.volume = volume; - } - - public void setMatrix(long[] matrix) { - this.matrix = matrix; - } - - public void setNextTrackId(long nextTrackId) { - this.nextTrackId = nextTrackId; - } - - public int getPreviewTime() { - return previewTime; - } - - public void setPreviewTime(int previewTime) { - this.previewTime = previewTime; - } - - public int getPreviewDuration() { - return previewDuration; - } - - public void setPreviewDuration(int previewDuration) { - this.previewDuration = previewDuration; - } - - public int getPosterTime() { - return posterTime; - } - - public void setPosterTime(int posterTime) { - this.posterTime = posterTime; - } - - public int getSelectionTime() { - return selectionTime; - } - - public void setSelectionTime(int selectionTime) { - this.selectionTime = selectionTime; - } - - public int getSelectionDuration() { - return selectionDuration; - } - - public void setSelectionDuration(int selectionDuration) { - this.selectionDuration = selectionDuration; - } - - public int getCurrentTime() { - return currentTime; - } - - public void setCurrentTime(int currentTime) { - this.currentTime = currentTime; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/NullMediaHeaderBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/NullMediaHeaderBox.java.svn-base deleted file mode 100644 index 562f8d4..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/NullMediaHeaderBox.java.svn-base +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2011 Sebastian Annies, Hamburg, Germany - * - * 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 java.nio.ByteBuffer; - -/** - * Streams other than visual and audio (e.g., timed metadata streams) may use a - * Null Media Header Box. - */ -public class NullMediaHeaderBox extends AbstractMediaHeaderBox { - public NullMediaHeaderBox() { - super("nmhd"); - } - - @Override - protected long getContentSize() { - return 4; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ObjectDescriptorBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ObjectDescriptorBox.java.svn-base deleted file mode 100644 index e69de29..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ObjectDescriptorBox.java.svn-base +++ /dev/null diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/OmaDrmAccessUnitFormatBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/OmaDrmAccessUnitFormatBox.java.svn-base deleted file mode 100644 index 020881b..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/OmaDrmAccessUnitFormatBox.java.svn-base +++ /dev/null @@ -1,87 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * Describes the format of media access units in PDCF files. - */ -public final class OmaDrmAccessUnitFormatBox extends AbstractFullBox { - public static final String TYPE = "odaf"; - - private boolean selectiveEncryption; - private byte allBits; - - private int keyIndicatorLength; - private int initVectorLength; - - protected long getContentSize() { - return 7; - } - - public OmaDrmAccessUnitFormatBox() { - super("odaf"); - } - - public boolean isSelectiveEncryption() { - return selectiveEncryption; - } - - public int getKeyIndicatorLength() { - return keyIndicatorLength; - } - - public int getInitVectorLength() { - return initVectorLength; - } - - public void setInitVectorLength(int initVectorLength) { - this.initVectorLength = initVectorLength; - } - - public void setKeyIndicatorLength(int keyIndicatorLength) { - this.keyIndicatorLength = keyIndicatorLength; - } - - public void setAllBits(byte allBits) { - this.allBits = allBits; - selectiveEncryption = (allBits & 0x80) == 0x80; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - allBits = (byte) IsoTypeReader.readUInt8(content); - selectiveEncryption = (allBits & 0x80) == 0x80; - keyIndicatorLength = IsoTypeReader.readUInt8(content); - initVectorLength = IsoTypeReader.readUInt8(content); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt8(byteBuffer, allBits); - IsoTypeWriter.writeUInt8(byteBuffer, keyIndicatorLength); - IsoTypeWriter.writeUInt8(byteBuffer, initVectorLength); - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/OriginalFormatBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/OriginalFormatBox.java.svn-base deleted file mode 100644 index 004c6c2..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/OriginalFormatBox.java.svn-base +++ /dev/null @@ -1,69 +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.googlecode.mp4parser.AbstractBox; - -import java.nio.ByteBuffer; - -/** - * The Original Format Box contains the four-character-code of the original untransformed sample description. - * See ISO/IEC 14496-12 for details. - * - * @see ProtectionSchemeInformationBox - */ - -public class OriginalFormatBox extends AbstractBox { - public static final String TYPE = "frma"; - - private String dataFormat = " "; - - public OriginalFormatBox() { - super("frma"); - } - - public String getDataFormat() { - return dataFormat; - } - - - public void setDataFormat(String dataFormat) { - assert dataFormat.length() == 4; - this.dataFormat = dataFormat; - } - - protected long getContentSize() { - return 4; - } - - @Override - public void _parseDetails(ByteBuffer content) { - dataFormat = IsoTypeReader.read4cc(content); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - byteBuffer.put(IsoFile.fourCCtoBytes(dataFormat)); - } - - - public String toString() { - return "OriginalFormatBox[dataFormat=" + getDataFormat() + "]"; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/PerformerBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/PerformerBox.java.svn-base deleted file mode 100644 index cf702dc..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/PerformerBox.java.svn-base +++ /dev/null @@ -1,78 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.coremedia.iso.Utf8; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * Used to give information about the performer. Mostly used in confunction with music files. - * See 3GPP 26.234 for details. - */ -public class PerformerBox extends AbstractFullBox { - public static final String TYPE = "perf"; - - private String language; - private String performer; - - public PerformerBox() { - super(TYPE); - } - - public String getLanguage() { - return language; - } - - public String getPerformer() { - return performer; - } - - public void setLanguage(String language) { - this.language = language; - } - - public void setPerformer(String performer) { - this.performer = performer; - } - - protected long getContentSize() { - return 6 + Utf8.utf8StringLengthInBytes(performer) + 1; - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeIso639(byteBuffer, language); - byteBuffer.put(Utf8.convert(performer)); - byteBuffer.put((byte) 0); - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - language = IsoTypeReader.readIso639(content); - performer = IsoTypeReader.readString(content); - } - - public String toString() { - return "PerformerBox[language=" + getLanguage() + ";performer=" + getPerformer() + "]"; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ProgressiveDownloadInformationBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ProgressiveDownloadInformationBox.java.svn-base deleted file mode 100644 index 7acd7ed..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ProgressiveDownloadInformationBox.java.svn-base +++ /dev/null @@ -1,95 +0,0 @@ -package com.coremedia.iso.boxes; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; - -public class ProgressiveDownloadInformationBox extends AbstractFullBox { - - - List<Entry> entries = Collections.emptyList(); - - public ProgressiveDownloadInformationBox() { - super("pdin"); - } - - @Override - protected long getContentSize() { - return 4 + entries.size() * 8; - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - for (Entry entry : entries) { - IsoTypeWriter.writeUInt32(byteBuffer, entry.getRate()); - IsoTypeWriter.writeUInt32(byteBuffer, entry.getInitialDelay()); - } - } - - public List<Entry> getEntries() { - return entries; - } - - public void setEntries(List<Entry> entries) { - this.entries = entries; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - entries = new LinkedList<Entry>(); - while (content.remaining() >= 8) { - Entry entry = new Entry(IsoTypeReader.readUInt32(content), IsoTypeReader.readUInt32(content)); - entries.add(entry); - } - } - - - public static class Entry { - long rate; - long initialDelay; - - public Entry(long rate, long initialDelay) { - this.rate = rate; - this.initialDelay = initialDelay; - } - - public long getRate() { - return rate; - } - - public void setRate(long rate) { - this.rate = rate; - } - - public long getInitialDelay() { - return initialDelay; - } - - public void setInitialDelay(long initialDelay) { - this.initialDelay = initialDelay; - } - - @Override - public String toString() { - return "Entry{" + - "rate=" + rate + - ", initialDelay=" + initialDelay + - '}'; - } - } - - @Override - public String toString() { - return "ProgressiveDownloadInfoBox{" + - "entries=" + entries + - '}'; - } - -}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ProtectionSchemeInformationBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ProtectionSchemeInformationBox.java.svn-base deleted file mode 100644 index 87069d3..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ProtectionSchemeInformationBox.java.svn-base +++ /dev/null @@ -1,42 +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.googlecode.mp4parser.AbstractContainerBox; - -/** - * The <code>ProtectionSchemeInformationBox</code> contains all the information required both - * to understand the encryption transform applied and its parameters, and also to find other - * information such as the kind and location of the key management system. It also documents the - * the original (unencrypted) format of the media. The <code>ProtectionSchemeInformationBox</code> - * is a container box. It is mandatory in a sample entry that uses a code idicating a - * protected stream. - * - * @see com.coremedia.iso.boxes.odf.OmaDrmKeyManagenentSystemBox - * @see com.coremedia.iso.boxes.sampleentry.AudioSampleEntry#TYPE_ENCRYPTED - * @see com.coremedia.iso.boxes.sampleentry.VisualSampleEntry#TYPE_ENCRYPTED - */ -public class ProtectionSchemeInformationBox extends AbstractContainerBox { - public static final String TYPE = "sinf"; - - public ProtectionSchemeInformationBox() { - super(TYPE); - - } - - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/RatingBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/RatingBox.java.svn-base deleted file mode 100644 index ad32749..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/RatingBox.java.svn-base +++ /dev/null @@ -1,124 +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; - - -/** - * Contained a the <code>UserDataBox</code> and containing information about the media's rating. E.g. - * PG13or FSK16. - */ -public class RatingBox extends AbstractFullBox { - public static final String TYPE = "rtng"; - - private String ratingEntity; - private String ratingCriteria; - private String language; - private String ratingInfo; - - public RatingBox() { - super(TYPE); - } - - - public void setRatingEntity(String ratingEntity) { - this.ratingEntity = ratingEntity; - } - - public void setRatingCriteria(String ratingCriteria) { - this.ratingCriteria = ratingCriteria; - } - - public void setLanguage(String language) { - this.language = language; - } - - public void setRatingInfo(String ratingInfo) { - this.ratingInfo = ratingInfo; - } - - public String getLanguage() { - return language; - } - - /** - * Gets a four-character code that indicates the rating entity grading the asset, e.g., 'BBFC'. The values of this - * field should follow common names of worldwide movie rating systems, such as those mentioned in - * [http://www.movie-ratings.net/, October 2002]. - * - * @return the rating organization - */ - public String getRatingEntity() { - return ratingEntity; - } - - /** - * Gets the four-character code that indicates which rating criteria are being used for the corresponding rating - * entity, e.g., 'PG13'. - * - * @return the actual rating - */ - public String getRatingCriteria() { - return ratingCriteria; - } - - public String getRatingInfo() { - return ratingInfo; - } - - protected long getContentSize() { - return 15 + Utf8.utf8StringLengthInBytes(ratingInfo); - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - ratingEntity = IsoTypeReader.read4cc(content); - ratingCriteria = IsoTypeReader.read4cc(content); - language = IsoTypeReader.readIso639(content); - ratingInfo = IsoTypeReader.readString(content); - - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - byteBuffer.put(IsoFile.fourCCtoBytes(ratingEntity)); - byteBuffer.put(IsoFile.fourCCtoBytes(ratingCriteria)); - IsoTypeWriter.writeIso639(byteBuffer, language); - byteBuffer.put(Utf8.convert(ratingInfo)); - byteBuffer.put((byte) 0); - } - - public String toString() { - StringBuilder buffer = new StringBuilder(); - buffer.append("RatingBox[language=").append(getLanguage()); - buffer.append("ratingEntity=").append(getRatingEntity()); - buffer.append(";ratingCriteria=").append(getRatingCriteria()); - buffer.append(";language=").append(getLanguage()); - buffer.append(";ratingInfo=").append(getRatingInfo()); - buffer.append("]"); - return buffer.toString(); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/RecordingYearBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/RecordingYearBox.java.svn-base deleted file mode 100644 index e2dcbd9..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/RecordingYearBox.java.svn-base +++ /dev/null @@ -1,63 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * - */ -public class RecordingYearBox extends AbstractFullBox { - public static final String TYPE = "yrrc"; - - int recordingYear; - - public RecordingYearBox() { - super(TYPE); - } - - - protected long getContentSize() { - return 6; - } - - public int getRecordingYear() { - return recordingYear; - } - - public void setRecordingYear(int recordingYear) { - this.recordingYear = recordingYear; - } - - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - recordingYear = IsoTypeReader.readUInt16(content); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt16(byteBuffer, recordingYear); - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleAuxiliaryInformationOffsetsBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleAuxiliaryInformationOffsetsBox.java.svn-base deleted file mode 100644 index 517bc03..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleAuxiliaryInformationOffsetsBox.java.svn-base +++ /dev/null @@ -1,127 +0,0 @@ -/* - * 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; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; -import java.util.LinkedList; -import java.util.List; - -import static com.googlecode.mp4parser.util.CastUtils.l2i; - -/* -aligned(8) class SampleAuxiliaryInformationOffsetsBox - extends FullBox(‘saio’, version, flags) -{ - if (flags & 1) { - unsigned int(32) aux_info_type; - unsigned int(32) aux_info_type_parameter; - } - unsigned int(32) entry_count; - if ( version == 0 ) - { - unsigned int(32) offset[ entry_count ]; - } - else - { - unsigned int(64) offset[ entry_count ]; - } -} - */ -public class SampleAuxiliaryInformationOffsetsBox extends AbstractFullBox { - public static final String TYPE = "saio"; - - private List<Long> offsets = new LinkedList<Long>(); - private long auxInfoType; - private long auxInfoTypeParameter; - - public SampleAuxiliaryInformationOffsetsBox() { - super(TYPE); - } - - @Override - protected long getContentSize() { - return 8 + (getVersion() == 0 ? 4 * offsets.size() : 8 * offsets.size()) + ((getFlags() & 1) == 1 ? 8 : 0); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - if ((getFlags() & 1) == 1) { - IsoTypeWriter.writeUInt32(byteBuffer, auxInfoType); - IsoTypeWriter.writeUInt32(byteBuffer, auxInfoTypeParameter); - } - - IsoTypeWriter.writeUInt32(byteBuffer, offsets.size()); - for (Long offset : offsets) { - if (getVersion() == 0) { - IsoTypeWriter.writeUInt32(byteBuffer, offset); - } else { - IsoTypeWriter.writeUInt64(byteBuffer, offset); - } - } - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - - if ((getFlags() & 1) == 1) { - auxInfoType = IsoTypeReader.readUInt32(content); - auxInfoTypeParameter = IsoTypeReader.readUInt32(content); - } - - int entryCount = l2i(IsoTypeReader.readUInt32(content)); - offsets.clear(); - - for (int i = 0; i < entryCount; i++) { - if (getVersion() == 0) { - offsets.add(IsoTypeReader.readUInt32(content)); - } else { - offsets.add(IsoTypeReader.readUInt64(content)); - } - } - } - - - public long getAuxInfoType() { - return auxInfoType; - } - - public void setAuxInfoType(long auxInfoType) { - this.auxInfoType = auxInfoType; - } - - public long getAuxInfoTypeParameter() { - return auxInfoTypeParameter; - } - - public void setAuxInfoTypeParameter(long auxInfoTypeParameter) { - this.auxInfoTypeParameter = auxInfoTypeParameter; - } - - public List<Long> getOffsets() { - return offsets; - } - - public void setOffsets(List<Long> offsets) { - this.offsets = offsets; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleAuxiliaryInformationSizesBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleAuxiliaryInformationSizesBox.java.svn-base deleted file mode 100644 index 4032d01..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleAuxiliaryInformationSizesBox.java.svn-base +++ /dev/null @@ -1,145 +0,0 @@ -/* - * 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; - -import com.coremedia.iso.IsoFile; -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; -import java.util.LinkedList; -import java.util.List; - -import static com.googlecode.mp4parser.util.CastUtils.l2i; - -public class SampleAuxiliaryInformationSizesBox extends AbstractFullBox { - public static final String TYPE = "saiz"; - - private int defaultSampleInfoSize; - private List<Short> sampleInfoSizes = new LinkedList<Short>(); - private int sampleCount; - private String auxInfoType; - private String auxInfoTypeParameter; - - public SampleAuxiliaryInformationSizesBox() { - super(TYPE); - } - - @Override - protected long getContentSize() { - int size = 4; - if ((getFlags() & 1) == 1) { - size += 8; - } - - size += 5; - size += defaultSampleInfoSize == 0 ? sampleInfoSizes.size() : 0; - return size; - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - if ((getFlags() & 1) == 1) { - byteBuffer.put(IsoFile.fourCCtoBytes(auxInfoType)); - byteBuffer.put(IsoFile.fourCCtoBytes(auxInfoTypeParameter)); - } - - IsoTypeWriter.writeUInt8(byteBuffer, defaultSampleInfoSize); - - if (defaultSampleInfoSize == 0) { - IsoTypeWriter.writeUInt32(byteBuffer, sampleInfoSizes.size()); - for (short sampleInfoSize : sampleInfoSizes) { - IsoTypeWriter.writeUInt8(byteBuffer, sampleInfoSize); - } - } else { - IsoTypeWriter.writeUInt32(byteBuffer, sampleCount); - } - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - if ((getFlags() & 1) == 1) { - auxInfoType = IsoTypeReader.read4cc(content); - auxInfoTypeParameter = IsoTypeReader.read4cc(content); - } - - defaultSampleInfoSize = (short) IsoTypeReader.readUInt8(content); - sampleCount = l2i(IsoTypeReader.readUInt32(content)); - - sampleInfoSizes.clear(); - - if (defaultSampleInfoSize == 0) { - for (int i = 0; i < sampleCount; i++) { - sampleInfoSizes.add((short) IsoTypeReader.readUInt8(content)); - } - } - } - - public String getAuxInfoType() { - return auxInfoType; - } - - public void setAuxInfoType(String auxInfoType) { - this.auxInfoType = auxInfoType; - } - - public String getAuxInfoTypeParameter() { - return auxInfoTypeParameter; - } - - public void setAuxInfoTypeParameter(String auxInfoTypeParameter) { - this.auxInfoTypeParameter = auxInfoTypeParameter; - } - - public int getDefaultSampleInfoSize() { - return defaultSampleInfoSize; - } - - public void setDefaultSampleInfoSize(int defaultSampleInfoSize) { - assert defaultSampleInfoSize <= 255; - this.defaultSampleInfoSize = defaultSampleInfoSize; - } - - public List<Short> getSampleInfoSizes() { - return sampleInfoSizes; - } - - public void setSampleInfoSizes(List<Short> sampleInfoSizes) { - this.sampleInfoSizes = sampleInfoSizes; - } - - public int getSampleCount() { - return sampleCount; - } - - public void setSampleCount(int sampleCount) { - this.sampleCount = sampleCount; - } - - @Override - public String toString() { - return "SampleAuxiliaryInformationSizesBox{" + - "defaultSampleInfoSize=" + defaultSampleInfoSize + - ", sampleCount=" + sampleCount + - ", auxInfoType='" + auxInfoType + '\'' + - ", auxInfoTypeParameter='" + auxInfoTypeParameter + '\'' + - '}'; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleDependencyTypeBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleDependencyTypeBox.java.svn-base deleted file mode 100644 index bb38d8c..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleDependencyTypeBox.java.svn-base +++ /dev/null @@ -1,136 +0,0 @@ -/* - * 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; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; -import java.util.ArrayList; -import java.util.List; - -/** - * aligned(8) class SampleDependencyTypeBox - * extends FullBox('sdtp', version = 0, 0) { - * for (i=0; i < sample_count; i++){ - * unsigned int(2) reserved = 0; - * unsigned int(2) sample_depends_on; - * unsigned int(2) sample_is_depended_on; - * unsigned int(2) sample_has_redundancy; - * } - * } - */ -public class SampleDependencyTypeBox extends AbstractFullBox { - public static final String TYPE = "sdtp"; - - private List<Entry> entries = new ArrayList<Entry>(); - - public static class Entry { - - public Entry(int value) { - this.value = value; - } - - private int value; - - - public int getReserved() { - return (value >> 6) & 0x03; - } - - public void setReserved(int res) { - value = (res & 0x03) << 6 | value & 0x3f; - } - - public int getSampleDependsOn() { - return (value >> 4) & 0x03; - } - - public void setSampleDependsOn(int sdo) { - value = (sdo & 0x03) << 4 | value & 0xcf; - } - - public int getSampleIsDependentOn() { - return (value >> 2) & 0x03; - } - - public void setSampleIsDependentOn(int sido) { - value = (sido & 0x03) << 2 | value & 0xf3; - } - - public int getSampleHasRedundancy() { - return value & 0x03; - } - - public void setSampleHasRedundancy(int shr) { - value = shr & 0x03 | value & 0xfc; - } - - @Override - public String toString() { - return "Entry{" + - "reserved=" + getReserved() + - ", sampleDependsOn=" + getSampleDependsOn() + - ", sampleIsDependentOn=" + getSampleIsDependentOn() + - ", sampleHasRedundancy=" + getSampleHasRedundancy() + - '}'; - } - } - - public SampleDependencyTypeBox() { - super(TYPE); - } - - @Override - protected long getContentSize() { - return 4 + entries.size(); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - for (Entry entry : entries) { - IsoTypeWriter.writeUInt8(byteBuffer, entry.value); - } - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - while (content.remaining() > 0) { - entries.add(new Entry(IsoTypeReader.readUInt8(content))); - } - } - - public List<Entry> getEntries() { - return entries; - } - - public void setEntries(List<Entry> entries) { - this.entries = entries; - } - - @Override - public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("SampleDependencyTypeBox"); - sb.append("{entries=").append(entries); - sb.append('}'); - return sb.toString(); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleDescriptionBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleDescriptionBox.java.svn-base deleted file mode 100644 index 662fa99..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleDescriptionBox.java.svn-base +++ /dev/null @@ -1,81 +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.IsoTypeWriter; -import com.coremedia.iso.boxes.sampleentry.SampleEntry; -import com.googlecode.mp4parser.FullContainerBox; - -import java.nio.ByteBuffer; - -/** - * The sample description table gives detailed information about the coding type used, and any initialization - * information needed for that coding. <br> - * The information stored in the sample description box after the entry-count is both track-type specific as - * documented here, and can also have variants within a track type (e.g. different codings may use different - * specific information after some common fields, even within a video track).<br> - * For video tracks, a VisualSampleEntry is used; for audio tracks, an AudioSampleEntry. Hint tracks use an - * entry format specific to their protocol, with an appropriate name. Timed Text tracks use a TextSampleEntry - * For hint tracks, the sample description contains appropriate declarative data for the streaming protocol being - * used, and the format of the hint track. The definition of the sample description is specific to the protocol. - * Multiple descriptions may be used within a track.<br> - * The 'protocol' and 'codingname' fields are registered identifiers that uniquely identify the streaming protocol or - * compression format decoder to be used. A given protocol or codingname may have optional or required - * extensions to the sample description (e.g. codec initialization parameters). All such extensions shall be within - * boxes; these boxes occur after the required fields. Unrecognized boxes shall be ignored. - * <br> - * Defined in ISO/IEC 14496-12 - * - * @see com.coremedia.iso.boxes.sampleentry.VisualSampleEntry - * @see com.coremedia.iso.boxes.sampleentry.TextSampleEntry - * @see com.coremedia.iso.boxes.sampleentry.AudioSampleEntry - */ -public class SampleDescriptionBox extends FullContainerBox { - public static final String TYPE = "stsd"; - - public SampleDescriptionBox() { - super(TYPE); - } - - @Override - protected long getContentSize() { - return super.getContentSize() + 4; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - content.get(new byte[4]); - parseChildBoxes(content); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt32(byteBuffer, boxes.size()); - writeChildBoxes(byteBuffer); - } - - public SampleEntry getSampleEntry() { - for (Box box : boxes) { - if (box instanceof SampleEntry) { - return (SampleEntry) box; - } - } - return null; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleSizeBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleSizeBox.java.svn-base deleted file mode 100644 index 3bc1df0..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleSizeBox.java.svn-base +++ /dev/null @@ -1,121 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -import static com.googlecode.mp4parser.util.CastUtils.l2i; - -/** - * This box containes the sample count and a table giving the size in bytes of each sample. - * Defined in ISO/IEC 14496-12. - */ -public class SampleSizeBox extends AbstractFullBox { - private long sampleSize; - private long[] sampleSizes = new long[0]; - public static final String TYPE = "stsz"; - int sampleCount; - - public SampleSizeBox() { - super(TYPE); - } - - /** - * Returns the field sample size. - * If sampleSize > 0 every sample has the same size. - * If sampleSize == 0 the samples have different size as stated in the sampleSizes field. - * - * @return the sampleSize field - */ - public long getSampleSize() { - return sampleSize; - } - - public void setSampleSize(long sampleSize) { - this.sampleSize = sampleSize; - } - - - public long getSampleSizeAtIndex(int index) { - if (sampleSize > 0) { - return sampleSize; - } else { - return sampleSizes[index]; - } - } - - public long getSampleCount() { - if (sampleSize > 0) { - return sampleCount; - } else { - return sampleSizes.length; - } - - } - - public long[] getSampleSizes() { - return sampleSizes; - } - - public void setSampleSizes(long[] sampleSizes) { - this.sampleSizes = sampleSizes; - } - - protected long getContentSize() { - return 12 + (sampleSize == 0 ? sampleSizes.length * 4 : 0); - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - sampleSize = IsoTypeReader.readUInt32(content); - sampleCount = l2i(IsoTypeReader.readUInt32(content)); - - if (sampleSize == 0) { - sampleSizes = new long[(int) sampleCount]; - - for (int i = 0; i < sampleCount; i++) { - sampleSizes[i] = IsoTypeReader.readUInt32(content); - } - } - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt32(byteBuffer, sampleSize); - - if (sampleSize == 0) { - IsoTypeWriter.writeUInt32(byteBuffer, sampleSizes.length); - for (long sampleSize1 : sampleSizes) { - IsoTypeWriter.writeUInt32(byteBuffer, sampleSize1); - } - } else { - IsoTypeWriter.writeUInt32(byteBuffer, sampleCount); - } - - } - - public String toString() { - return "SampleSizeBox[sampleSize=" + getSampleSize() + ";sampleCount=" + getSampleCount() + "]"; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleTableBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleTableBox.java.svn-base deleted file mode 100644 index 33968b3..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleTableBox.java.svn-base +++ /dev/null @@ -1,124 +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.googlecode.mp4parser.AbstractContainerBox; - -/** - * The sample table contains all the time and data indexing of the media samples in a track. Using the tables - * here, it is possible to locate samples in time, determine their type (e.g. I-frame or not), and determine their - * size, container, and offset into that container. <br> - * If the track that contains the Sample Table Box references no data, then the Sample Table Box does not need - * to contain any sub-boxes (this is not a very useful media track). <br> - * If the track that the Sample Table Box is contained in does reference data, then the following sub-boxes are - * required: Sample Description, Sample Size, Sample To Chunk, and Chunk Offset. Further, the Sample - * Description Box shall contain at least one entry. A Sample Description Box is required because it contains the - * data reference index field which indicates which Data Reference Box to use to retrieve the media samples. - * Without the Sample Description, it is not possible to determine where the media samples are stored. The Sync - * Sample Box is optional. If the Sync Sample Box is not present, all samples are sync samples.<br> - * Annex A provides a narrative description of random access using the structures defined in the Sample Table - * Box. - */ -public class SampleTableBox extends AbstractContainerBox { - public static final String TYPE = "stbl"; - - public SampleTableBox() { - super(TYPE); - } - - public SampleDescriptionBox getSampleDescriptionBox() { - for (Box box : boxes) { - if (box instanceof SampleDescriptionBox) { - return (SampleDescriptionBox) box; - } - } - return null; - } - - public SampleSizeBox getSampleSizeBox() { - for (Box box : boxes) { - if (box instanceof SampleSizeBox) { - return (SampleSizeBox) box; - } - } - return null; - } - - public SampleToChunkBox getSampleToChunkBox() { - for (Box box : boxes) { - if (box instanceof SampleToChunkBox) { - return (SampleToChunkBox) box; - } - } - return null; - } - - public ChunkOffsetBox getChunkOffsetBox() { - for (Box box : boxes) { - if (box instanceof ChunkOffsetBox) { - return (ChunkOffsetBox) box; - } - } - return null; - } - - public void setChunkOffsetBox(ChunkOffsetBox b) { - for (int i = 0; i < boxes.size(); i++) { - Box box = boxes.get(i); - if (box instanceof ChunkOffsetBox) { - boxes.set(i, b); - } - } - } - - public TimeToSampleBox getTimeToSampleBox() { - for (Box box : boxes) { - if (box instanceof TimeToSampleBox) { - return (TimeToSampleBox) box; - } - } - return null; - } - - public SyncSampleBox getSyncSampleBox() { - for (Box box : boxes) { - if (box instanceof SyncSampleBox) { - return (SyncSampleBox) box; - } - } - return null; - } - - public CompositionTimeToSample getCompositionTimeToSample() { - for (Box box : boxes) { - if (box instanceof CompositionTimeToSample) { - return (CompositionTimeToSample) box; - } - } - return null; - } - - public SampleDependencyTypeBox getSampleDependencyTypeBox() { - for (Box box : boxes) { - if (box instanceof SampleDependencyTypeBox) { - return (SampleDependencyTypeBox) box; - } - } - return null; - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleToChunkBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleToChunkBox.java.svn-base deleted file mode 100644 index 593504d..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SampleToChunkBox.java.svn-base +++ /dev/null @@ -1,156 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; - -import static com.googlecode.mp4parser.util.CastUtils.l2i; - -/** - * Samples within the media data are grouped into chunks. Chunks can be of different sizes, and the - * samples within a chunk can have different sizes. This table can be used to find the chunk that - * contains a sample, its position, and the associated sample description. Defined in ISO/IEC 14496-12. - */ -public class SampleToChunkBox extends AbstractFullBox { - List<Entry> entries = Collections.emptyList(); - - public static final String TYPE = "stsc"; - - public SampleToChunkBox() { - super(TYPE); - } - - public List<Entry> getEntries() { - return entries; - } - - public void setEntries(List<Entry> entries) { - this.entries = entries; - } - - protected long getContentSize() { - return entries.size() * 12 + 8; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - - int entryCount = l2i(IsoTypeReader.readUInt32(content)); - entries = new ArrayList<Entry>(entryCount); - for (int i = 0; i < entryCount; i++) { - entries.add(new Entry( - IsoTypeReader.readUInt32(content), - IsoTypeReader.readUInt32(content), - IsoTypeReader.readUInt32(content))); - } - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt32(byteBuffer, entries.size()); - for (Entry entry : entries) { - IsoTypeWriter.writeUInt32(byteBuffer, entry.getFirstChunk()); - IsoTypeWriter.writeUInt32(byteBuffer, entry.getSamplesPerChunk()); - IsoTypeWriter.writeUInt32(byteBuffer, entry.getSampleDescriptionIndex()); - } - } - - public String toString() { - return "SampleToChunkBox[entryCount=" + entries.size() + "]"; - } - - /** - * Decompresses the list of entries and returns the number of samples per chunk for - * every single chunk. - * - * @param chunkCount overall number of chunks - * @return number of samples per chunk - */ - public long[] blowup(int chunkCount) { - long[] numberOfSamples = new long[chunkCount]; - int j = 0; - List<SampleToChunkBox.Entry> sampleToChunkEntries = new LinkedList<Entry>(entries); - Collections.reverse(sampleToChunkEntries); - Iterator<Entry> iterator = sampleToChunkEntries.iterator(); - SampleToChunkBox.Entry currentEntry = iterator.next(); - - for (int i = numberOfSamples.length; i > 1; i--) { - numberOfSamples[i - 1] = currentEntry.getSamplesPerChunk(); - if (i == currentEntry.getFirstChunk()) { - currentEntry = iterator.next(); - } - } - numberOfSamples[0] = currentEntry.getSamplesPerChunk(); - return numberOfSamples; - } - - public static class Entry { - long firstChunk; - long samplesPerChunk; - long sampleDescriptionIndex; - - public Entry(long firstChunk, long samplesPerChunk, long sampleDescriptionIndex) { - this.firstChunk = firstChunk; - this.samplesPerChunk = samplesPerChunk; - this.sampleDescriptionIndex = sampleDescriptionIndex; - } - - public long getFirstChunk() { - return firstChunk; - } - - public void setFirstChunk(long firstChunk) { - this.firstChunk = firstChunk; - } - - public long getSamplesPerChunk() { - return samplesPerChunk; - } - - public void setSamplesPerChunk(long samplesPerChunk) { - this.samplesPerChunk = samplesPerChunk; - } - - public long getSampleDescriptionIndex() { - return sampleDescriptionIndex; - } - - public void setSampleDescriptionIndex(long sampleDescriptionIndex) { - this.sampleDescriptionIndex = sampleDescriptionIndex; - } - - @Override - public String toString() { - return "Entry{" + - "firstChunk=" + firstChunk + - ", samplesPerChunk=" + samplesPerChunk + - ", sampleDescriptionIndex=" + sampleDescriptionIndex + - '}'; - } - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SchemeInformationBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SchemeInformationBox.java.svn-base deleted file mode 100644 index 5e3565e..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SchemeInformationBox.java.svn-base +++ /dev/null @@ -1,33 +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.googlecode.mp4parser.AbstractContainerBox; - -/** - * The Scheme Information Box is a container box that is only interpreted by the scheme beeing used. - * Any information the encryption system needs is stored here. The content of this box is a series of - * boxexes whose type annd format are defined by the scheme declared in the {@link com.coremedia.iso.boxes.SchemeTypeBox}. - */ -public class SchemeInformationBox extends AbstractContainerBox { - public static final String TYPE = "schi"; - - public SchemeInformationBox() { - super(TYPE); - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SchemeTypeBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SchemeTypeBox.java.svn-base deleted file mode 100644 index ed517da..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SchemeTypeBox.java.svn-base +++ /dev/null @@ -1,101 +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; - -/** - * The Scheme Type Box identifies the protection scheme. Resides in a Protection Scheme Information Box or - * an SRTP Process Box. - * - * @see com.coremedia.iso.boxes.SchemeInformationBox - */ -public class SchemeTypeBox extends AbstractFullBox { - public static final String TYPE = "schm"; - String schemeType = " "; - long schemeVersion; - String schemeUri = null; - - public SchemeTypeBox() { - super(TYPE); - } - - public String getSchemeType() { - return schemeType; - } - - public long getSchemeVersion() { - return schemeVersion; - } - - public String getSchemeUri() { - return schemeUri; - } - - public void setSchemeType(String schemeType) { - assert schemeType != null && schemeType.length() == 4 : "SchemeType may not be null or not 4 bytes long"; - this.schemeType = schemeType; - } - - public void setSchemeVersion(int schemeVersion) { - this.schemeVersion = schemeVersion; - } - - public void setSchemeUri(String schemeUri) { - this.schemeUri = schemeUri; - } - - protected long getContentSize() { - return 12 + (((getFlags() & 1) == 1) ? Utf8.utf8StringLengthInBytes(schemeUri) + 1 : 0); - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - schemeType = IsoTypeReader.read4cc(content); - schemeVersion = IsoTypeReader.readUInt32(content); - if ((getFlags() & 1) == 1) { - schemeUri = IsoTypeReader.readString(content); - } - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - byteBuffer.put(IsoFile.fourCCtoBytes(schemeType)); - IsoTypeWriter.writeUInt32(byteBuffer, schemeVersion); - if ((getFlags() & 1) == 1) { - byteBuffer.put(Utf8.convert(schemeUri)); - } - } - - public String toString() { - StringBuilder buffer = new StringBuilder(); - buffer.append("Schema Type Box["); - buffer.append("schemeUri=").append(schemeUri).append("; "); - buffer.append("schemeType=").append(schemeType).append("; "); - buffer.append("schemeVersion=").append(schemeUri).append("; "); - buffer.append("]"); - return buffer.toString(); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SoundMediaHeaderBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SoundMediaHeaderBox.java.svn-base deleted file mode 100644 index c5fb88d..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SoundMediaHeaderBox.java.svn-base +++ /dev/null @@ -1,58 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; - -import java.nio.ByteBuffer; - -public class SoundMediaHeaderBox extends AbstractMediaHeaderBox { - - public static final String TYPE = "smhd"; - private float balance; - - public SoundMediaHeaderBox() { - super(TYPE); - } - - public float getBalance() { - return balance; - } - - protected long getContentSize() { - return 8; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - balance = IsoTypeReader.readFixedPoint88(content); - IsoTypeReader.readUInt16(content); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeFixedPont88(byteBuffer, balance); - IsoTypeWriter.writeUInt16(byteBuffer, 0); - } - - public String toString() { - return "SoundMediaHeaderBox[balance=" + getBalance() + "]"; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/StaticChunkOffsetBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/StaticChunkOffsetBox.java.svn-base deleted file mode 100644 index efcdd14..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/StaticChunkOffsetBox.java.svn-base +++ /dev/null @@ -1,71 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; - -import java.nio.ByteBuffer; - -import static com.googlecode.mp4parser.util.CastUtils.l2i; - -/** - * The chunk offset table gives the index of each chunk into the containing file. Defined in ISO/IEC 14496-12. - */ -public class StaticChunkOffsetBox extends ChunkOffsetBox { - public static final String TYPE = "stco"; - - private long[] chunkOffsets = new long[0]; - - public StaticChunkOffsetBox() { - super(TYPE); - } - - public long[] getChunkOffsets() { - return chunkOffsets; - } - - protected long getContentSize() { - return 8 + chunkOffsets.length * 4; - } - - public void setChunkOffsets(long[] chunkOffsets) { - this.chunkOffsets = chunkOffsets; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - int entryCount = l2i(IsoTypeReader.readUInt32(content)); - chunkOffsets = new long[entryCount]; - for (int i = 0; i < entryCount; i++) { - chunkOffsets[i] = IsoTypeReader.readUInt32(content); - } - - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt32(byteBuffer, chunkOffsets.length); - for (long chunkOffset : chunkOffsets) { - IsoTypeWriter.writeUInt32(byteBuffer, chunkOffset); - } - } - - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SubSampleInformationBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SubSampleInformationBox.java.svn-base deleted file mode 100644 index f5806eb..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SubSampleInformationBox.java.svn-base +++ /dev/null @@ -1,208 +0,0 @@ -package com.coremedia.iso.boxes;
-
-import com.coremedia.iso.IsoTypeReader;
-import com.coremedia.iso.IsoTypeWriter;
-import com.googlecode.mp4parser.AbstractFullBox;
-
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.List;
-
-import static com.googlecode.mp4parser.util.CastUtils.l2i;
-
-/**
- * aligned(8) class SubSampleInformationBox
- * extends FullBox('subs', version, 0) {
- * unsigned int(32) entry_count;
- * int i,j;
- * for (i=0; i < entry_count; i++) {
- * unsigned int(32) sample_delta;
- * unsigned int(16) subsample_count;
- * if (subsample_count > 0) {
- * for (j=0; j < subsample_count; j++) {
- * if(version == 1)
- * {
- * unsigned int(32) subsample_size;
- * }
- * else
- * {
- * unsigned int(16) subsample_size;
- * }
- * unsigned int(8) subsample_priority;
- * unsigned int(8) discardable;
- * unsigned int(32) reserved = 0;
- * }
- * }
- * }
- * }
- */
-public class SubSampleInformationBox extends AbstractFullBox {
- public static final String TYPE = "subs";
-
- private long entryCount;
- private List<SampleEntry> entries = new ArrayList<SampleEntry>();
-
- public SubSampleInformationBox() {
- super(TYPE);
- }
-
- public List<SampleEntry> getEntries() {
- return entries;
- }
-
- public void setEntries(List<SampleEntry> entries) {
- this.entries = entries;
- entryCount = entries.size();
- }
-
- @Override
- protected long getContentSize() {
- long entries = 8 + ((4 + 2) * entryCount);
- int subsampleEntries = 0;
- for (SampleEntry sampleEntry : this.entries) {
- subsampleEntries += sampleEntry.getSubsampleCount() * (((getVersion() == 1) ? 4 : 2) + 1 + 1 + 4);
- }
- return entries + subsampleEntries;
- }
-
- @Override
- public void _parseDetails(ByteBuffer content) {
- parseVersionAndFlags(content);
-
- entryCount = IsoTypeReader.readUInt32(content);
-
- for (int i = 0; i < entryCount; i++) {
- SampleEntry sampleEntry = new SampleEntry();
- sampleEntry.setSampleDelta(IsoTypeReader.readUInt32(content));
- int subsampleCount = IsoTypeReader.readUInt16(content);
- for (int j = 0; j < subsampleCount; j++) {
- SampleEntry.SubsampleEntry subsampleEntry = new SampleEntry.SubsampleEntry();
- subsampleEntry.setSubsampleSize(getVersion() == 1 ? IsoTypeReader.readUInt32(content) : IsoTypeReader.readUInt16(content));
- subsampleEntry.setSubsamplePriority(IsoTypeReader.readUInt8(content));
- subsampleEntry.setDiscardable(IsoTypeReader.readUInt8(content));
- subsampleEntry.setReserved(IsoTypeReader.readUInt32(content));
- sampleEntry.addSubsampleEntry(subsampleEntry);
- }
- entries.add(sampleEntry);
- }
-
- }
-
- @Override
- protected void getContent(ByteBuffer byteBuffer) {
- writeVersionAndFlags(byteBuffer);
- IsoTypeWriter.writeUInt32(byteBuffer, entries.size());
- for (SampleEntry sampleEntry : entries) {
- IsoTypeWriter.writeUInt32(byteBuffer, sampleEntry.getSampleDelta());
- IsoTypeWriter.writeUInt16(byteBuffer, sampleEntry.getSubsampleCount());
- List<SampleEntry.SubsampleEntry> subsampleEntries = sampleEntry.getSubsampleEntries();
- for (SampleEntry.SubsampleEntry subsampleEntry : subsampleEntries) {
- if (getVersion() == 1) {
- IsoTypeWriter.writeUInt32(byteBuffer, subsampleEntry.getSubsampleSize());
- } else {
- IsoTypeWriter.writeUInt16(byteBuffer, l2i(subsampleEntry.getSubsampleSize()));
- }
- IsoTypeWriter.writeUInt8(byteBuffer, subsampleEntry.getSubsamplePriority());
- IsoTypeWriter.writeUInt8(byteBuffer, subsampleEntry.getDiscardable());
- IsoTypeWriter.writeUInt32(byteBuffer, subsampleEntry.getReserved());
- }
- }
- }
-
- @Override
- public String toString() {
- return "SubSampleInformationBox{" +
- "entryCount=" + entryCount +
- ", entries=" + entries +
- '}';
- }
-
- public static class SampleEntry {
- private long sampleDelta;
- private int subsampleCount;
- private List<SubsampleEntry> subsampleEntries = new ArrayList<SubsampleEntry>();
-
- public long getSampleDelta() {
- return sampleDelta;
- }
-
- public void setSampleDelta(long sampleDelta) {
- this.sampleDelta = sampleDelta;
- }
-
- public int getSubsampleCount() {
- return subsampleCount;
- }
-
- public void setSubsampleCount(int subsampleCount) {
- this.subsampleCount = subsampleCount;
- }
-
- public List<SubsampleEntry> getSubsampleEntries() {
- return subsampleEntries;
- }
-
- public void addSubsampleEntry(SubsampleEntry subsampleEntry) {
- subsampleEntries.add(subsampleEntry);
- subsampleCount++;
- }
-
- public static class SubsampleEntry {
- private long subsampleSize;
- private int subsamplePriority;
- private int discardable;
- private long reserved;
-
- public long getSubsampleSize() {
- return subsampleSize;
- }
-
- public void setSubsampleSize(long subsampleSize) {
- this.subsampleSize = subsampleSize;
- }
-
- public int getSubsamplePriority() {
- return subsamplePriority;
- }
-
- public void setSubsamplePriority(int subsamplePriority) {
- this.subsamplePriority = subsamplePriority;
- }
-
- public int getDiscardable() {
- return discardable;
- }
-
- public void setDiscardable(int discardable) {
- this.discardable = discardable;
- }
-
- public long getReserved() {
- return reserved;
- }
-
- public void setReserved(long reserved) {
- this.reserved = reserved;
- }
-
- @Override
- public String toString() {
- return "SubsampleEntry{" +
- "subsampleSize=" + subsampleSize +
- ", subsamplePriority=" + subsamplePriority +
- ", discardable=" + discardable +
- ", reserved=" + reserved +
- '}';
- }
- }
-
- @Override
- public String toString() {
- return "SampleEntry{" +
- "sampleDelta=" + sampleDelta +
- ", subsampleCount=" + subsampleCount +
- ", subsampleEntries=" + subsampleEntries +
- '}';
- }
- }
-}
diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SubtitleMediaHeaderBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SubtitleMediaHeaderBox.java.svn-base deleted file mode 100644 index fa25a5c..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SubtitleMediaHeaderBox.java.svn-base +++ /dev/null @@ -1,30 +0,0 @@ -package com.coremedia.iso.boxes; - -import java.nio.ByteBuffer; - -public class SubtitleMediaHeaderBox extends AbstractMediaHeaderBox { - - public static final String TYPE = "sthd"; - - public SubtitleMediaHeaderBox() { - super(TYPE); - } - - protected long getContentSize() { - return 4; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - } - - public String toString() { - return "SubtitleMediaHeaderBox"; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SyncSampleBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SyncSampleBox.java.svn-base deleted file mode 100644 index 5fc758b..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/SyncSampleBox.java.svn-base +++ /dev/null @@ -1,83 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -import static com.googlecode.mp4parser.util.CastUtils.l2i; - -/** - * This box provides a compact marking of the random access points withinthe stream. The table is arranged in - * strictly decreasinf order of sample number. Defined in ISO/IEC 14496-12. - */ -public class SyncSampleBox extends AbstractFullBox { - public static final String TYPE = "stss"; - - private long[] sampleNumber; - - public SyncSampleBox() { - super(TYPE); - } - - /** - * Gives the numbers of the samples that are random access points in the stream. - * - * @return random access sample numbers. - */ - public long[] getSampleNumber() { - return sampleNumber; - } - - protected long getContentSize() { - return sampleNumber.length * 4 + 8; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - int entryCount = l2i(IsoTypeReader.readUInt32(content)); - - sampleNumber = new long[entryCount]; - for (int i = 0; i < entryCount; i++) { - sampleNumber[i] = IsoTypeReader.readUInt32(content); - } - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - - IsoTypeWriter.writeUInt32(byteBuffer, sampleNumber.length); - - for (long aSampleNumber : sampleNumber) { - IsoTypeWriter.writeUInt32(byteBuffer, aSampleNumber); - } - - } - - public String toString() { - return "SyncSampleBox[entryCount=" + sampleNumber.length + "]"; - } - - public void setSampleNumber(long[] sampleNumber) { - this.sampleNumber = sampleNumber; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/TimeToSampleBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/TimeToSampleBox.java.svn-base deleted file mode 100644 index 8f4f97e..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/TimeToSampleBox.java.svn-base +++ /dev/null @@ -1,152 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import static com.googlecode.mp4parser.util.CastUtils.l2i; - -/** - * This box contains a compact version of a table that allows indexing from decoding time to sample number. - * Other tables give sample sizes and pointers, from the sample number. Each entry in the table gives the - * number of consecutive samples with the same time delta, and the delta of those samples. By adding the - * deltas a complete time-to-sample map may be built.<br> - * The Decoding Time to Sample Box contains decode time delta's: <code>DT(n+1) = DT(n) + STTS(n)</code> where STTS(n) - * is the (uncompressed) table entry for sample n.<br> - * The sample entries are ordered by decoding time stamps; therefore the deltas are all non-negative. <br> - * The DT axis has a zero origin; <code>DT(i) = SUM(for j=0 to i-1 of delta(j))</code>, and the sum of all - * deltas gives the length of the media in the track (not mapped to the overall timescale, and not considering - * any edit list). <br> - * The Edit List Box provides the initial CT value if it is non-empty (non-zero). - */ -public class TimeToSampleBox extends AbstractFullBox { - public static final String TYPE = "stts"; - - List<Entry> entries = Collections.emptyList(); - - - public TimeToSampleBox() { - super(TYPE); - } - - protected long getContentSize() { - return 8 + entries.size() * 8; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - int entryCount = l2i(IsoTypeReader.readUInt32(content)); - entries = new ArrayList<Entry>(entryCount); - - for (int i = 0; i < entryCount; i++) { - entries.add(new Entry(IsoTypeReader.readUInt32(content), IsoTypeReader.readUInt32(content))); - } - - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt32(byteBuffer, entries.size()); - for (Entry entry : entries) { - IsoTypeWriter.writeUInt32(byteBuffer, entry.getCount()); - IsoTypeWriter.writeUInt32(byteBuffer, entry.getDelta()); - } - } - - public List<Entry> getEntries() { - return entries; - } - - public void setEntries(List<Entry> entries) { - this.entries = entries; - } - - public String toString() { - return "TimeToSampleBox[entryCount=" + entries.size() + "]"; - } - - public static class Entry { - long count; - long delta; - - public Entry(long count, long delta) { - this.count = count; - this.delta = delta; - } - - public long getCount() { - return count; - } - - public long getDelta() { - return delta; - } - - public void setCount(long count) { - this.count = count; - } - - public void setDelta(long delta) { - this.delta = delta; - } - - @Override - public String toString() { - return "Entry{" + - "count=" + count + - ", delta=" + delta + - '}'; - } - } - - /** - * Decompresses the list of entries and returns the list of decoding times. - * - * @return decoding time per sample - */ - public static long[] blowupTimeToSamples(List<TimeToSampleBox.Entry> entries) { - long numOfSamples = 0; - for (TimeToSampleBox.Entry entry : entries) { - numOfSamples += entry.getCount(); - } - assert numOfSamples <= Integer.MAX_VALUE; - long[] decodingTime = new long[(int) numOfSamples]; - - int current = 0; - - - for (TimeToSampleBox.Entry entry : entries) { - for (int i = 0; i < entry.getCount(); i++) { - decodingTime[current++] = entry.getDelta(); - } - } - - return decodingTime; - } - - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/TitleBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/TitleBox.java.svn-base deleted file mode 100644 index 46ee5ee..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/TitleBox.java.svn-base +++ /dev/null @@ -1,89 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.coremedia.iso.Utf8; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * <code> - * Box Type: 'titl'<br> - * Container: {@link UserDataBox} ('udta')<br> - * Mandatory: No<br> - * Quantity: Zero or one<br><br> - * </code> - * <p/> - * Title for the media. - */ -public class TitleBox extends AbstractFullBox { - public static final String TYPE = "titl"; - - private String language; - private String title; - - public TitleBox() { - super(TYPE); - } - - public String getLanguage() { - return language; - } - - public String getTitle() { - return title; - } - - /** - * Sets the 3-letter ISO-639 language for this title. - * - * @param language 3-letter ISO-639 code - */ - public void setLanguage(String language) { - this.language = language; - } - - public void setTitle(String title) { - this.title = title; - } - - protected long getContentSize() { - return 7 + Utf8.utf8StringLengthInBytes(title); - } - - - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeIso639(byteBuffer, language); - byteBuffer.put(Utf8.convert(title)); - byteBuffer.put((byte) 0); - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - language = IsoTypeReader.readIso639(content); - title = IsoTypeReader.readString(content); - } - - public String toString() { - return "TitleBox[language=" + getLanguage() + ";title=" + getTitle() + "]"; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/TrackBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/TrackBox.java.svn-base deleted file mode 100644 index c2806b5..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/TrackBox.java.svn-base +++ /dev/null @@ -1,71 +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.googlecode.mp4parser.AbstractContainerBox; - -/** - * Tracks are used for two purposes: (a) to contain media data (media tracks) and (b) to contain packetization - * information for streaming protocols (hint tracks). <br> - * There shall be at least one media track within an ISO file, and all the media tracks that contributed to the hint - * tracks shall remain in the file, even if the media data within them is not referenced by the hint tracks; after - * deleting all hint tracks, the entire un-hinted presentation shall remain. - */ -public class TrackBox extends AbstractContainerBox { - public static final String TYPE = "trak"; - - public TrackBox() { - super(TYPE); - } - - public TrackHeaderBox getTrackHeaderBox() { - for (Box box : boxes) { - if (box instanceof TrackHeaderBox) { - return (TrackHeaderBox) box; - } - } - return null; - } - - /** - * Gets the SampleTableBox at mdia/minf/stbl if existing. - * - * @return the SampleTableBox or <code>null</code> - */ - public SampleTableBox getSampleTableBox() { - MediaBox mdia = getMediaBox(); - if (mdia != null) { - MediaInformationBox minf = mdia.getMediaInformationBox(); - if (minf != null) { - return minf.getSampleTableBox(); - } - } - return null; - - } - - - public MediaBox getMediaBox() { - for (Box box : boxes) { - if (box instanceof MediaBox) { - return (MediaBox) box; - } - } - return null; - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/TrackHeaderBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/TrackHeaderBox.java.svn-base deleted file mode 100644 index 8816bb9..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/TrackHeaderBox.java.svn-base +++ /dev/null @@ -1,249 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * This box specifies the characteristics of a single track. Exactly one Track Header Box is contained in a track.<br> - * In the absence of an edit list, the presentation of a track starts at the beginning of the overall presentation. An - * empty edit is used to offset the start time of a track. <br> - * The default value of the track header flags for media tracks is 7 (track_enabled, track_in_movie, - * track_in_preview). If in a presentation all tracks have neither track_in_movie nor track_in_preview set, then all - * tracks shall be treated as if both flags were set on all tracks. Hint tracks should have the track header flags set - * to 0, so that they are ignored for local playback and preview. - */ -public class TrackHeaderBox extends AbstractFullBox { - - public static final String TYPE = "tkhd"; - - private long creationTime; - private long modificationTime; - private long trackId; - private long duration; - private int layer; - private int alternateGroup; - private float volume; - private long[] matrix = new long[]{0x00010000, 0, 0, 0, 0x00010000, 0, 0, 0, 0x40000000}; - private double width; - private double height; - - - public TrackHeaderBox() { - super(TYPE); - - } - - public long getCreationTime() { - return creationTime; - } - - public long getModificationTime() { - return modificationTime; - } - - public long getTrackId() { - return trackId; - } - - public long getDuration() { - return duration; - } - - public int getLayer() { - return layer; - } - - public int getAlternateGroup() { - return alternateGroup; - } - - public float getVolume() { - return volume; - } - - public long[] getMatrix() { - return matrix; - } - - public double getWidth() { - return width; - } - - public double getHeight() { - return height; - } - - protected long getContentSize() { - long contentSize = 4; - if (getVersion() == 1) { - contentSize += 32; - } else { - contentSize += 20; - } - contentSize += 60; - return contentSize; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - if (getVersion() == 1) { - creationTime = IsoTypeReader.readUInt64(content); - modificationTime = IsoTypeReader.readUInt64(content); - trackId = IsoTypeReader.readUInt32(content); - IsoTypeReader.readUInt32(content); - duration = IsoTypeReader.readUInt64(content); - } else { - creationTime = IsoTypeReader.readUInt32(content); - modificationTime = IsoTypeReader.readUInt32(content); - trackId = IsoTypeReader.readUInt32(content); - IsoTypeReader.readUInt32(content); - duration = IsoTypeReader.readUInt32(content); - } // 196 - IsoTypeReader.readUInt32(content); - IsoTypeReader.readUInt32(content); - layer = IsoTypeReader.readUInt16(content); // 204 - alternateGroup = IsoTypeReader.readUInt16(content); - volume = IsoTypeReader.readFixedPoint88(content); - IsoTypeReader.readUInt16(content); // 212 - matrix = new long[9]; - for (int i = 0; i < 9; i++) { - matrix[i] = IsoTypeReader.readUInt32(content); - } - width = IsoTypeReader.readFixedPoint1616(content); // 248 - height = IsoTypeReader.readFixedPoint1616(content); - } - - public void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - if (getVersion() == 1) { - IsoTypeWriter.writeUInt64(byteBuffer, creationTime); - IsoTypeWriter.writeUInt64(byteBuffer, modificationTime); - IsoTypeWriter.writeUInt32(byteBuffer, trackId); - IsoTypeWriter.writeUInt32(byteBuffer, 0); - IsoTypeWriter.writeUInt64(byteBuffer, duration); - } else { - IsoTypeWriter.writeUInt32(byteBuffer, creationTime); - IsoTypeWriter.writeUInt32(byteBuffer, modificationTime); - IsoTypeWriter.writeUInt32(byteBuffer, trackId); - IsoTypeWriter.writeUInt32(byteBuffer, 0); - IsoTypeWriter.writeUInt32(byteBuffer, duration); - } // 196 - IsoTypeWriter.writeUInt32(byteBuffer, 0); - IsoTypeWriter.writeUInt32(byteBuffer, 0); - IsoTypeWriter.writeUInt16(byteBuffer, layer); - IsoTypeWriter.writeUInt16(byteBuffer, alternateGroup); - IsoTypeWriter.writeFixedPont88(byteBuffer, volume); - IsoTypeWriter.writeUInt16(byteBuffer, 0); - for (int i = 0; i < 9; i++) { - IsoTypeWriter.writeUInt32(byteBuffer, matrix[i]); - } - IsoTypeWriter.writeFixedPont1616(byteBuffer, width); - IsoTypeWriter.writeFixedPont1616(byteBuffer, height); - } - - public String toString() { - StringBuilder result = new StringBuilder(); - result.append("TrackHeaderBox["); - result.append("creationTime=").append(getCreationTime()); - result.append(";"); - result.append("modificationTime=").append(getModificationTime()); - result.append(";"); - result.append("trackId=").append(getTrackId()); - result.append(";"); - result.append("duration=").append(getDuration()); - result.append(";"); - result.append("layer=").append(getLayer()); - result.append(";"); - result.append("alternateGroup=").append(getAlternateGroup()); - result.append(";"); - result.append("volume=").append(getVolume()); - for (int i = 0; i < matrix.length; i++) { - result.append(";"); - result.append("matrix").append(i).append("=").append(matrix[i]); - } - result.append(";"); - result.append("width=").append(getWidth()); - result.append(";"); - result.append("height=").append(getHeight()); - result.append("]"); - return result.toString(); - } - - public void setCreationTime(long creationTime) { - this.creationTime = creationTime; - } - - public void setModificationTime(long modificationTime) { - this.modificationTime = modificationTime; - } - - public void setTrackId(long trackId) { - this.trackId = trackId; - } - - public void setDuration(long duration) { - this.duration = duration; - } - - public void setLayer(int layer) { - this.layer = layer; - } - - public void setAlternateGroup(int alternateGroup) { - this.alternateGroup = alternateGroup; - } - - public void setVolume(float volume) { - this.volume = volume; - } - - public void setMatrix(long[] matrix) { - this.matrix = matrix; - } - - public void setWidth(double width) { - this.width = width; - } - - public void setHeight(double height) { - this.height = height; - } - - - public boolean isEnabled() { - return (getFlags() & 1) > 0; - } - - public boolean isInMovie() { - return (getFlags() & 2) > 0; - } - - public boolean isInPreview() { - return (getFlags() & 4) > 0; - } - - public boolean isInPoster() { - return (getFlags() & 8) > 0; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/TrackReferenceBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/TrackReferenceBox.java.svn-base deleted file mode 100644 index 1b4a7fb..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/TrackReferenceBox.java.svn-base +++ /dev/null @@ -1,41 +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.googlecode.mp4parser.AbstractContainerBox; - -/** - * <code> - * Box Type: 'tref'<br> - * Container: {@link TrackBox} ('trak')<br> - * Mandatory: No<br> - * Quantity: Zero or one<br><br> - * </code> - * This box provides a reference from the containing track to another track in the presentation. These references - * are typed. A 'hint' reference links from the containing hint track to the media data that it hints. A content - * description reference 'cdsc' links a descriptive or metadata track to the content which it describes. - * Exactly one Track Reference Box can be contained within the Track Box. - * If this box is not present, the track is not referencing any other track in any way. The reference array is sized - * to fill the reference type box. - */ -public class TrackReferenceBox extends AbstractContainerBox { - public static final String TYPE = "tref"; - - public TrackReferenceBox() { - super(TYPE); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/TrackReferenceTypeBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/TrackReferenceTypeBox.java.svn-base deleted file mode 100644 index 297932d..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/TrackReferenceTypeBox.java.svn-base +++ /dev/null @@ -1,76 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractBox; - -import java.nio.ByteBuffer; - -/** - * Contains a reference to a track. The type of the box gives the kind of reference. - */ -public class TrackReferenceTypeBox extends AbstractBox { - - public static final String TYPE1 = "hint"; - public static final String TYPE2 = "cdsc"; - - private long[] trackIds; - - public TrackReferenceTypeBox(String type) { - super(type); - } - - public long[] getTrackIds() { - return trackIds; - } - - @Override - public void _parseDetails(ByteBuffer content) { - int count = (int) (content.remaining() / 4); - trackIds = new long[count]; - for (int i = 0; i < count; i++) { - trackIds[i] = IsoTypeReader.readUInt32(content); - } - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - for (long trackId : trackIds) { - IsoTypeWriter.writeUInt32(byteBuffer, trackId); - } - } - - - protected long getContentSize() { - return trackIds.length * 4; - } - - public String toString() { - StringBuilder buffer = new StringBuilder(); - buffer.append("TrackReferenceTypeBox[type=").append(getType()); - for (int i = 0; i < trackIds.length; i++) { - buffer.append(";trackId"); - buffer.append(i); - buffer.append("="); - buffer.append(trackIds[i]); - } - buffer.append("]"); - return buffer.toString(); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/UnknownBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/UnknownBox.java.svn-base deleted file mode 100644 index f76481c..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/UnknownBox.java.svn-base +++ /dev/null @@ -1,59 +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.googlecode.mp4parser.AbstractBox; - -import java.nio.ByteBuffer; - -/** - * A box unknown to the ISO Parser. If there is no specific Box implementation for a Box this <code>UnknownBox</code> - * will just hold the box's data. - */ -public class UnknownBox extends AbstractBox { - ByteBuffer data; - - public UnknownBox(String type) { - super(type); - } - - @Override - protected long getContentSize() { - return data.limit(); - } - - @Override - public void _parseDetails(ByteBuffer content) { - data = content; - content.position(content.position() + content.remaining()); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - data.rewind(); - byteBuffer.put(data); - } - - public ByteBuffer getData() { - return data; - } - - public void setData(ByteBuffer data) { - this.data = data; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/UserBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/UserBox.java.svn-base deleted file mode 100644 index db0e741..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/UserBox.java.svn-base +++ /dev/null @@ -1,64 +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.googlecode.mp4parser.AbstractBox; - -import java.nio.ByteBuffer; - -/** - * A user specifc box. See ISO/IEC 14496-12 for details. - */ -public class UserBox extends AbstractBox { - byte[] data; - public static final String TYPE = "uuid"; - - public UserBox(byte[] userType) { - super(TYPE, userType); - } - - - protected long getContentSize() { - return data.length; - } - - public String toString() { - return "UserBox[type=" + (getType()) + - ";userType=" + new String(getUserType()) + - ";contentLength=" + data.length + "]"; - } - - - public byte[] getData() { - return data; - } - - public void setData(byte[] data) { - this.data = data; - } - - @Override - public void _parseDetails(ByteBuffer content) { - data = new byte[content.remaining()]; - content.get(data); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - byteBuffer.put(data); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/UserDataBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/UserDataBox.java.svn-base deleted file mode 100644 index 65c5808..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/UserDataBox.java.svn-base +++ /dev/null @@ -1,59 +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.BoxParser; -import com.googlecode.mp4parser.AbstractContainerBox; - -import java.io.IOException; -import java.nio.ByteBuffer; -import java.nio.channels.ReadableByteChannel; - -/** - * This box contains objects that declare user information about the containing box and its data (presentation or - * track).<br> - * The User Data Box is a container box for informative user-data. This user data is formatted as a set of boxes - * with more specific box types, which declare more precisely their content - */ -public class UserDataBox extends AbstractContainerBox { - public static final String TYPE = "udta"; - - @Override - protected long getContentSize() { - return super.getContentSize(); //To change body of overridden methods use File | Settings | File Templates. - } - - @Override - public void parse(ReadableByteChannel readableByteChannel, ByteBuffer header, long contentSize, BoxParser boxParser) throws IOException { - super.parse(readableByteChannel, header, contentSize, boxParser); //To change body of overridden methods use File | Settings | File Templates. - } - - @Override - public void _parseDetails(ByteBuffer content) { - super._parseDetails(content); //To change body of overridden methods use File | Settings | File Templates. - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - super.getContent(byteBuffer); //To change body of overridden methods use File | Settings | File Templates. - } - - public UserDataBox() { - super(TYPE); - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/VideoMediaHeaderBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/VideoMediaHeaderBox.java.svn-base deleted file mode 100644 index 421a67d..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/VideoMediaHeaderBox.java.svn-base +++ /dev/null @@ -1,81 +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.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; - -import java.nio.ByteBuffer; - -/** - * The video media header contains general presentation information, independent of the coding, for video - * media. Note that the flags field has the value 1. - */ -public class VideoMediaHeaderBox extends AbstractMediaHeaderBox { - private int graphicsmode = 0; - private int[] opcolor = new int[]{0, 0, 0}; - public static final String TYPE = "vmhd"; - - public VideoMediaHeaderBox() { - super(TYPE); - setFlags(1); // 1 is default. - } - - public int getGraphicsmode() { - return graphicsmode; - } - - public int[] getOpcolor() { - return opcolor; - } - - protected long getContentSize() { - return 12; - } - - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - graphicsmode = IsoTypeReader.readUInt16(content); - opcolor = new int[3]; - for (int i = 0; i < 3; i++) { - opcolor[i] = IsoTypeReader.readUInt16(content); - } - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt16(byteBuffer, graphicsmode); - for (int anOpcolor : opcolor) { - IsoTypeWriter.writeUInt16(byteBuffer, anOpcolor); - } - } - - public String toString() { - return "VideoMediaHeaderBox[graphicsmode=" + getGraphicsmode() + ";opcolor0=" + getOpcolor()[0] + ";opcolor1=" + getOpcolor()[1] + ";opcolor2=" + getOpcolor()[2] + "]"; - } - - public void setOpcolor(int[] opcolor) { - this.opcolor = opcolor; - } - - public void setGraphicsmode(int graphicsmode) { - this.graphicsmode = graphicsmode; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/WriteListener.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/WriteListener.java.svn-base deleted file mode 100644 index dc22d52..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/WriteListener.java.svn-base +++ /dev/null @@ -1,10 +0,0 @@ -package com.coremedia.iso.boxes; - -/** - * The <class>WriteListener</class> is used to get the offset of - * a box before writing the box. This can be used if a box written - * later needs an offset. - */ -public interface WriteListener { - public void beforeWrite(long offset); -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/XmlBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/XmlBox.java.svn-base deleted file mode 100644 index 43727e1..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/XmlBox.java.svn-base +++ /dev/null @@ -1,51 +0,0 @@ -package com.coremedia.iso.boxes; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.Utf8; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * - */ -public class XmlBox extends AbstractFullBox { - String xml = ""; - public static final String TYPE = "xml "; - - public XmlBox() { - super(TYPE); - } - - public String getXml() { - return xml; - } - - public void setXml(String xml) { - this.xml = xml; - } - - @Override - protected long getContentSize() { - return 4 + Utf8.utf8StringLengthInBytes(xml); - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - xml = IsoTypeReader.readString(content, content.remaining()); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - byteBuffer.put(Utf8.convert(xml)); - } - - @Override - public String toString() { - return "XmlBox{" + - "xml='" + xml + '\'' + - '}'; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/odf-boxes.zip.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/odf-boxes.zip.svn-base Binary files differdeleted file mode 100644 index 04e0e5e..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/odf-boxes.zip.svn-base +++ /dev/null diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/rtp-boxes.zip.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/rtp-boxes.zip.svn-base Binary files differdeleted file mode 100644 index be1a167..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/rtp-boxes.zip.svn-base +++ /dev/null diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/all-wcprops b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/all-wcprops deleted file mode 100644 index 581c9a0..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/all-wcprops +++ /dev/null @@ -1,263 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 77 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple -END -AppleTrackTitleBox.java -K 25 -svn:wc:ra_dav:version-url -V 101 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleTrackTitleBox.java -END -AppleCopyrightBox.java -K 25 -svn:wc:ra_dav:version-url -V 100 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleCopyrightBox.java -END -ApplePurchaseDateBox.java -K 25 -svn:wc:ra_dav:version-url -V 103 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/ApplePurchaseDateBox.java -END -AppleSortAlbumBox.java -K 25 -svn:wc:ra_dav:version-url -V 100 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleSortAlbumBox.java -END -AppleTvEpisodeNumberBox.java -K 25 -svn:wc:ra_dav:version-url -V 106 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleTvEpisodeNumberBox.java -END -AppleStoreAccountTypeBox.java -K 25 -svn:wc:ra_dav:version-url -V 107 -/svn/!svn/ver/377/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleStoreAccountTypeBox.java -END -AppleStoreCountryCodeBox.java -K 25 -svn:wc:ra_dav:version-url -V 107 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleStoreCountryCodeBox.java -END -AppleGenericBox.java -K 25 -svn:wc:ra_dav:version-url -V 98 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleGenericBox.java -END -AppleNameBox.java -K 25 -svn:wc:ra_dav:version-url -V 95 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleNameBox.java -END -AppleShowBox.java -K 25 -svn:wc:ra_dav:version-url -V 95 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleShowBox.java -END -AppleStandardGenreBox.java -K 25 -svn:wc:ra_dav:version-url -V 104 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleStandardGenreBox.java -END -AppleRatingBox.java -K 25 -svn:wc:ra_dav:version-url -V 97 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleRatingBox.java -END -AppleSynopsisBox.java -K 25 -svn:wc:ra_dav:version-url -V 99 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleSynopsisBox.java -END -AppleNetworkBox.java -K 25 -svn:wc:ra_dav:version-url -V 98 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleNetworkBox.java -END -AppleRecordingYearBox.java -K 25 -svn:wc:ra_dav:version-url -V 104 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleRecordingYearBox.java -END -AppleReferenceMovieBox.java -K 25 -svn:wc:ra_dav:version-url -V 105 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleReferenceMovieBox.java -END -AppleTvEpisodeBox.java -K 25 -svn:wc:ra_dav:version-url -V 100 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleTvEpisodeBox.java -END -AppleWaveBox.java -K 25 -svn:wc:ra_dav:version-url -V 95 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleWaveBox.java -END -AbstractAppleMetaDataBox.java -K 25 -svn:wc:ra_dav:version-url -V 107 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AbstractAppleMetaDataBox.java -END -AppleGaplessPlaybackBox.java -K 25 -svn:wc:ra_dav:version-url -V 106 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleGaplessPlaybackBox.java -END -AppleTempBox.java -K 25 -svn:wc:ra_dav:version-url -V 95 -/svn/!svn/ver/377/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleTempBox.java -END -AppleArtistBox.java -K 25 -svn:wc:ra_dav:version-url -V 97 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleArtistBox.java -END -AppleDataBox.java -K 25 -svn:wc:ra_dav:version-url -V 95 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleDataBox.java -END -AppleTrackNumberBox.java -K 25 -svn:wc:ra_dav:version-url -V 102 -/svn/!svn/ver/377/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleTrackNumberBox.java -END -AppleLosslessSpecificBox.java -K 25 -svn:wc:ra_dav:version-url -V 107 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleLosslessSpecificBox.java -END -AppleCompilationBox.java -K 25 -svn:wc:ra_dav:version-url -V 102 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleCompilationBox.java -END -AppleCoverBox.java -K 25 -svn:wc:ra_dav:version-url -V 96 -/svn/!svn/ver/377/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleCoverBox.java -END -AppleEncoderBox.java -K 25 -svn:wc:ra_dav:version-url -V 98 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleEncoderBox.java -END -AppleMeanBox.java -K 25 -svn:wc:ra_dav:version-url -V 95 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleMeanBox.java -END -AppleMediaTypeBox.java -K 25 -svn:wc:ra_dav:version-url -V 100 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleMediaTypeBox.java -END -AppleDescriptionBox.java -K 25 -svn:wc:ra_dav:version-url -V 102 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleDescriptionBox.java -END -AppleDataRateBox.java -K 25 -svn:wc:ra_dav:version-url -V 99 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleDataRateBox.java -END -AppleTrackAuthorBox.java -K 25 -svn:wc:ra_dav:version-url -V 102 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleTrackAuthorBox.java -END -AppleAlbumArtistBox.java -K 25 -svn:wc:ra_dav:version-url -V 102 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleAlbumArtistBox.java -END -AppleDataReferenceBox.java -K 25 -svn:wc:ra_dav:version-url -V 104 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleDataReferenceBox.java -END -AppleItemListBox.java -K 25 -svn:wc:ra_dav:version-url -V 99 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleItemListBox.java -END -AppleGroupingBox.java -K 25 -svn:wc:ra_dav:version-url -V 99 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleGroupingBox.java -END -AppleCustomGenreBox.java -K 25 -svn:wc:ra_dav:version-url -V 102 -/svn/!svn/ver/377/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleCustomGenreBox.java -END -AppleIdBox.java -K 25 -svn:wc:ra_dav:version-url -V 93 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleIdBox.java -END -AppleReferenceMovieDescriptorBox.java -K 25 -svn:wc:ra_dav:version-url -V 115 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleReferenceMovieDescriptorBox.java -END -AppleAlbumBox.java -K 25 -svn:wc:ra_dav:version-url -V 96 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleAlbumBox.java -END -AppleCommentBox.java -K 25 -svn:wc:ra_dav:version-url -V 98 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleCommentBox.java -END -AppleTvSeasonBox.java -K 25 -svn:wc:ra_dav:version-url -V 99 -/svn/!svn/ver/198/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple/AppleTvSeasonBox.java -END diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/entries b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/entries deleted file mode 100644 index aadbfac..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/entries +++ /dev/null @@ -1,1490 +0,0 @@ -10 - -dir -778 -http://mp4parser.googlecode.com/svn/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/apple -http://mp4parser.googlecode.com/svn - - - -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - -7decde4b-c250-0410-a0da-51896bc88be6 - -AppleTrackTitleBox.java -file - - - - -2012-09-14T17:27:52.037241Z -d00320057c7c9b507bdd9413d190eade -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -302 - -AppleCopyrightBox.java -file - - - - -2012-09-14T17:27:52.037241Z -d10479559734743978d76f30ffc59465 -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com -has-props - - - - - - - - - - - - - - - - - - - - -323 - -ApplePurchaseDateBox.java -file - - - - -2012-09-14T17:27:52.037241Z -a970bf8322f9e093a3916aec472ea947 -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -300 - -AppleSortAlbumBox.java -file - - - - -2012-09-14T17:27:52.037241Z -517e986ff5c8917167163f94bdf507dd -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -293 - -AppleTvEpisodeNumberBox.java -file - - - - -2012-09-14T17:27:52.037241Z -203d82f75cf575c09a2fc51a9de729a1 -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -326 - -AppleStoreAccountTypeBox.java -file - - - - -2012-09-14T17:27:52.037241Z -5b6e2900853c7d47daba86a93ab9df6b -2012-03-05T23:28:24.666173Z -377 -Sebastian.Annies@gmail.com -has-props - - - - - - - - - - - - - - - - - - - - -646 - -AppleStoreCountryCodeBox.java -file - - - - -2012-09-14T17:27:52.037241Z -0e1bb94c09e72b3d9973d376c42c5455 -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1772 - -AppleGenericBox.java -file - - - - -2012-09-14T17:27:52.037241Z -290bdaf97d2b67e2f04fec1b5bf251fe -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -279 - -AppleNameBox.java -file - - - - -2012-09-14T17:27:52.037241Z -8e435cf54ce66721515e4cc955be94d5 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1075 - -AppleShowBox.java -file - - - - -2012-09-14T17:27:52.037241Z -47cc10c763e97419f7e57eeaaf469abe -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -284 - -AppleStandardGenreBox.java -file - - - - -2012-09-14T17:27:52.037241Z -849a14b354905fbb51d173ceeb520730 -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -301 - -AppleRatingBox.java -file - - - - -2012-09-14T17:27:52.037241Z -fc93688c8546a210349c4b42e916abec -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -308 - -AppleSynopsisBox.java -file - - - - -2012-09-14T17:27:52.037241Z -a0c3dab5469f58afffbb7a26440b4cd3 -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -293 - -AppleNetworkBox.java -file - - - - -2012-09-14T17:27:52.037241Z -9af00d5cc53625f084891cd0985219cb -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -291 - -AppleRecordingYearBox.java -file - - - - -2012-09-14T17:27:52.037241Z -14e939016b9c0c909240a680b92d4300 -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -302 - -AppleReferenceMovieBox.java -file - - - - -2012-09-14T17:27:52.037241Z -1c577082bb05a1d59ae899bcef5bbce1 -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -907 - -AppleTvEpisodeBox.java -file - - - - -2012-09-14T17:27:52.037241Z -a433a5413c9363a190f588ff6af717b2 -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -314 - -AppleWaveBox.java -file - - - - -2012-09-14T17:27:52.037241Z -07d6df3c463714a51bd6957fec7b15f5 -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -275 - -AbstractAppleMetaDataBox.java -file - - - - -2012-09-14T17:27:52.037241Z -3beb0cfc7e1f245f23ac59adecf6c90b -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -5703 - -AppleGaplessPlaybackBox.java -file - - - - -2012-09-14T17:27:52.037241Z -610b85d8fe94c499ba679e47d7af59aa -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -339 - -AppleTempBox.java -file - - - - -2012-09-14T17:27:52.037241Z -ab1b52b242ac326460a50dafcb4d586b -2012-03-05T23:28:24.666173Z -377 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -682 - -AppleArtistBox.java -file - - - - -2012-09-14T17:27:52.037241Z -50d2d51ac35d53fa91d596d9fba893c1 -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -330 - -AppleDataBox.java -file - - - - -2012-09-14T17:27:52.037241Z -064c87d2b50c91ebaa552f3b53844de2 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2475 - -AppleTrackNumberBox.java -file - - - - -2012-09-14T17:27:52.047241Z -3cf21c036183461f0a26d7812cd54a11 -2012-03-05T23:28:24.666173Z -377 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1177 - -AppleLosslessSpecificBox.java -file - - - - -2012-09-14T17:27:52.047241Z -3659a7955b976252491eaff784518492 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -4638 - -AppleCompilationBox.java -file - - - - -2012-09-14T17:27:52.047241Z -e6bcc185918d8b2d3c449bd1218536c9 -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -324 - -AppleCoverBox.java -file - - - - -2012-09-14T17:27:52.047241Z -9d9ec44a18fdc7b3490073454ae6bf8e -2012-03-05T23:28:24.666173Z -377 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1005 - -AppleEncoderBox.java -file - - - - -2012-09-14T17:27:52.047241Z -aa3191200ee624f2fde12d6d29da22c3 -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com -has-props - - - - - - - - - - - - - - - - - - - - -324 - -AppleMeanBox.java -file - - - - -2012-09-14T17:27:52.047241Z -d64b8d0e17b59ff76c984d831a36cc85 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1151 - -AppleMediaTypeBox.java -file - - - - -2012-09-14T17:27:52.047241Z -ca121472ac950656cb0158cecb259db9 -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1038 - -AppleDescriptionBox.java -file - - - - -2012-09-14T17:27:52.047241Z -21ee5c043816a5117165b95234eadc13 -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -298 - -AppleDataRateBox.java -file - - - - -2012-09-14T17:27:52.047241Z -88e0145f42678bb7a380e50bd8ab3157 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1514 - -AppleTrackAuthorBox.java -file - - - - -2012-09-14T17:27:52.047241Z -5a6f88b1189b0d1cd56f336ee6400d80 -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -304 - -AppleAlbumArtistBox.java -file - - - - -2012-09-14T17:27:52.047241Z -2595bb2e066cee575a8cd963e6ce648a -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com -has-props - - - - - - - - - - - - - - - - - - - - -322 - -AppleDataReferenceBox.java -file - - - - -2012-09-14T17:27:52.047241Z -c47ce167549e9d5b400ed21b64450a4e -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2226 - -AppleItemListBox.java -file - - - - -2012-09-14T17:27:52.047241Z -2e430a7e3bc2d56e975340e9899a05ae -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -310 - -AppleGroupingBox.java -file - - - - -2012-09-14T17:27:52.047241Z -a12a7d1cc3c693cfd8ec5c20df44aa1c -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com -has-props - - - - - - - - - - - - - - - - - - - - -326 - -AppleCustomGenreBox.java -file - - - - -2012-09-14T17:27:52.047241Z -2e06c42c89625ea9943c5bca05040844 -2012-03-05T23:28:24.666173Z -377 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -685 - -AppleIdBox.java -file - - - - -2012-09-14T17:27:52.047241Z -18aecf8082534727517207e0f00df3ba -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -280 - -AppleReferenceMovieDescriptorBox.java -file - - - - -2012-09-14T17:27:52.047241Z -f621253270c3f55828bd412050238d07 -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -925 - -AppleAlbumBox.java -file - - - - -2012-09-14T17:27:52.047241Z -4a59cf2bbab9bc17ef1a28da752902e9 -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -291 - -AppleCommentBox.java -file - - - - -2012-09-14T17:27:52.047241Z -e0d8d51f0b5f000fcea8ee721c2bf382 -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com -has-props - - - - - - - - - - - - - - - - - - - - -326 - -AppleTvSeasonBox.java -file - - - - -2012-09-14T17:27:52.047241Z -c991f4f5c2998dc6d20404138653705b -2011-08-11T14:33:30.631951Z -198 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -317 - diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/prop-base/AppleAlbumArtistBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/prop-base/AppleAlbumArtistBox.java.svn-base deleted file mode 100644 index 869ac71..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/prop-base/AppleAlbumArtistBox.java.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 14 -svn:executable -V 1 -* -END diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/prop-base/AppleCommentBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/prop-base/AppleCommentBox.java.svn-base deleted file mode 100644 index 869ac71..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/prop-base/AppleCommentBox.java.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 14 -svn:executable -V 1 -* -END diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/prop-base/AppleCopyrightBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/prop-base/AppleCopyrightBox.java.svn-base deleted file mode 100644 index 869ac71..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/prop-base/AppleCopyrightBox.java.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 14 -svn:executable -V 1 -* -END diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/prop-base/AppleEncoderBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/prop-base/AppleEncoderBox.java.svn-base deleted file mode 100644 index 869ac71..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/prop-base/AppleEncoderBox.java.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 14 -svn:executable -V 1 -* -END diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/prop-base/AppleGroupingBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/prop-base/AppleGroupingBox.java.svn-base deleted file mode 100644 index 869ac71..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/prop-base/AppleGroupingBox.java.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 14 -svn:executable -V 1 -* -END diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/prop-base/AppleStoreAccountTypeBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/prop-base/AppleStoreAccountTypeBox.java.svn-base deleted file mode 100644 index 869ac71..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/prop-base/AppleStoreAccountTypeBox.java.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 14 -svn:executable -V 1 -* -END 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 deleted file mode 100644 index fdb7ac9..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AbstractAppleMetaDataBox.java.svn-base +++ /dev/null @@ -1,164 +0,0 @@ -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 deleted file mode 100644 index 5c258b4..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleAlbumArtistBox.java.svn-base +++ /dev/null @@ -1,16 +0,0 @@ -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 deleted file mode 100644 index 9e3d5f7..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleAlbumBox.java.svn-base +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index 627a603..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleArtistBox.java.svn-base +++ /dev/null @@ -1,16 +0,0 @@ -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 deleted file mode 100644 index b58899f..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCommentBox.java.svn-base +++ /dev/null @@ -1,16 +0,0 @@ -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 deleted file mode 100644 index c8c9bf4..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCompilationBox.java.svn-base +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index ae44285..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCopyrightBox.java.svn-base +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index 946dd49..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCoverBox.java.svn-base +++ /dev/null @@ -1,44 +0,0 @@ -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 deleted file mode 100644 index 0c67f97..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleCustomGenreBox.java.svn-base +++ /dev/null @@ -1,28 +0,0 @@ -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 deleted file mode 100644 index ba42629..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleDataBox.java.svn-base +++ /dev/null @@ -1,92 +0,0 @@ -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 deleted file mode 100644 index e58e550..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleDataRateBox.java.svn-base +++ /dev/null @@ -1,53 +0,0 @@ -/*
- * 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 deleted file mode 100644 index 7370c10..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleDataReferenceBox.java.svn-base +++ /dev/null @@ -1,71 +0,0 @@ -/*
- * 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 deleted file mode 100644 index e20e0fc..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleDescriptionBox.java.svn-base +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index 5a59e81..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleEncoderBox.java.svn-base +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index c617a54..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleGaplessPlaybackBox.java.svn-base +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index 177a25b..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleGenericBox.java.svn-base +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index 9884298..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleGroupingBox.java.svn-base +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index 08c697e..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleIdBox.java.svn-base +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index cd26e81..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleItemListBox.java.svn-base +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index 781af49..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleLosslessSpecificBox.java.svn-base +++ /dev/null @@ -1,163 +0,0 @@ -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 deleted file mode 100644 index 3a26f96..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleMeanBox.java.svn-base +++ /dev/null @@ -1,47 +0,0 @@ -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 deleted file mode 100644 index f4ca98d..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleMediaTypeBox.java.svn-base +++ /dev/null @@ -1,39 +0,0 @@ -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 deleted file mode 100644 index 5cad249..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleNameBox.java.svn-base +++ /dev/null @@ -1,45 +0,0 @@ -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 deleted file mode 100644 index 07691b3..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleNetworkBox.java.svn-base +++ /dev/null @@ -1,16 +0,0 @@ -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 deleted file mode 100644 index eb9807f..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/ApplePurchaseDateBox.java.svn-base +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index 71671fc..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleRatingBox.java.svn-base +++ /dev/null @@ -1,16 +0,0 @@ -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 deleted file mode 100644 index da13300..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleRecordingYearBox.java.svn-base +++ /dev/null @@ -1,16 +0,0 @@ -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 deleted file mode 100644 index 49c539f..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleReferenceMovieBox.java.svn-base +++ /dev/null @@ -1,28 +0,0 @@ -/*
- * 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 deleted file mode 100644 index 488f01b..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleReferenceMovieDescriptorBox.java.svn-base +++ /dev/null @@ -1,27 +0,0 @@ -/*
- * 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 deleted file mode 100644 index 66b0d59..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleShowBox.java.svn-base +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index cf74004..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleSortAlbumBox.java.svn-base +++ /dev/null @@ -1,14 +0,0 @@ -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 deleted file mode 100644 index 21932fa..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleStandardGenreBox.java.svn-base +++ /dev/null @@ -1,14 +0,0 @@ -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 deleted file mode 100644 index 36ecf4e..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleStoreAccountTypeBox.java.svn-base +++ /dev/null @@ -1,27 +0,0 @@ -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 deleted file mode 100644 index 2c4756a..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleStoreCountryCodeBox.java.svn-base +++ /dev/null @@ -1,54 +0,0 @@ -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 deleted file mode 100644 index cd5c2ab..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleSynopsisBox.java.svn-base +++ /dev/null @@ -1,16 +0,0 @@ -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 deleted file mode 100644 index ef57228..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTempBox.java.svn-base +++ /dev/null @@ -1,28 +0,0 @@ -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 deleted file mode 100644 index c5b3732..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTrackAuthorBox.java.svn-base +++ /dev/null @@ -1,16 +0,0 @@ -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 deleted file mode 100644 index c073c2f..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTrackNumberBox.java.svn-base +++ /dev/null @@ -1,48 +0,0 @@ -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 deleted file mode 100644 index 3dd613c..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTrackTitleBox.java.svn-base +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index 3b3817b..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTvEpisodeBox.java.svn-base +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index 33cd4e3..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTvEpisodeNumberBox.java.svn-base +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index 9459ea3..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleTvSeasonBox.java.svn-base +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index 65edd38..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/apple/.svn/text-base/AppleWaveBox.java.svn-base +++ /dev/null @@ -1,16 +0,0 @@ -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); - } - - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/dece/.svn/all-wcprops b/isoparser/src/main/java/com/coremedia/iso/boxes/dece/.svn/all-wcprops deleted file mode 100644 index fb492fe..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/dece/.svn/all-wcprops +++ /dev/null @@ -1,11 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 76 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/dece -END -TrickPlayBox.java -K 25 -svn:wc:ra_dav:version-url -V 94 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/dece/TrickPlayBox.java -END diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/dece/.svn/entries b/isoparser/src/main/java/com/coremedia/iso/boxes/dece/.svn/entries deleted file mode 100644 index f3d8baf..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/dece/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -778 -http://mp4parser.googlecode.com/svn/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/dece -http://mp4parser.googlecode.com/svn - - - -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - -7decde4b-c250-0410-a0da-51896bc88be6 - -TrickPlayBox.java -file - - - - -2012-09-14T17:27:52.607249Z -0afc708ec47fcdf8687d1623014b81a0 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2716 - diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/dece/.svn/text-base/TrickPlayBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/dece/.svn/text-base/TrickPlayBox.java.svn-base deleted file mode 100644 index 24d5712..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/dece/.svn/text-base/TrickPlayBox.java.svn-base +++ /dev/null @@ -1,108 +0,0 @@ -package com.coremedia.iso.boxes.dece;
-
-import com.coremedia.iso.IsoTypeReader;
-import com.coremedia.iso.IsoTypeWriter;
-import com.googlecode.mp4parser.AbstractFullBox;
-
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * aligned(8) class TrickPlayBox
- * extends FullBox(‘trik’, version=0, flags=0)
- * {
- * for (i=0; I < sample_count; i++) {
- * unsigned int(2) pic_type;
- * unsigned int(6) dependency_level;
- * }
- * }
- */
-public class TrickPlayBox extends AbstractFullBox {
- public static final String TYPE = "trik";
-
- private List<Entry> entries = new ArrayList<Entry>();
-
- public TrickPlayBox() {
- super(TYPE);
- }
-
- public void setEntries(List<Entry> entries) {
- this.entries = entries;
- }
-
- public List<Entry> getEntries() {
- return entries;
- }
-
- public static class Entry {
-
- public Entry() {
- }
-
- public Entry(int value) {
- this.value = value;
- }
-
-
- private int value;
-
- public int getPicType() {
- return (value >> 6) & 0x03;
- }
-
- public void setPicType(int picType) {
- value = value & (0xff >> 3);
- value = (picType & 0x03) << 6 | value;
- }
-
- public int getDependencyLevel() {
- return value & 0x3f;
- }
-
- public void setDependencyLevel(int dependencyLevel) {
- value = (dependencyLevel & 0x3f) | value;
- }
-
-
- @Override
- public String toString() {
- final StringBuilder sb = new StringBuilder();
- sb.append("Entry");
- sb.append("{picType=").append(getPicType());
- sb.append(",dependencyLevel=").append(getDependencyLevel());
- sb.append('}');
- return sb.toString();
- }
- }
-
- @Override
- protected long getContentSize() {
- return 4 + entries.size();
- }
-
- @Override
- public void _parseDetails(ByteBuffer content) {
- parseVersionAndFlags(content);
- while (content.remaining() > 0) {
- entries.add(new Entry(IsoTypeReader.readUInt8(content)));
- }
- }
-
- @Override
- protected void getContent(ByteBuffer byteBuffer) {
- writeVersionAndFlags(byteBuffer);
- for (Entry entry : entries) {
- IsoTypeWriter.writeUInt8(byteBuffer, entry.value);
- }
- }
-
- @Override
- public String toString() {
- final StringBuilder sb = new StringBuilder();
- sb.append("TrickPlayBox");
- sb.append("{entries=").append(entries);
- sb.append('}');
- return sb.toString();
- }
-}
diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/all-wcprops b/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/all-wcprops deleted file mode 100644 index 4b6b1e0..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/all-wcprops +++ /dev/null @@ -1,89 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 80 -/svn/!svn/ver/707/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/fragment -END -MovieFragmentRandomAccessBox.java -K 25 -svn:wc:ra_dav:version-url -V 114 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/MovieFragmentRandomAccessBox.java -END -TrackFragmentBaseMediaDecodeTimeBox.java -K 25 -svn:wc:ra_dav:version-url -V 121 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/TrackFragmentBaseMediaDecodeTimeBox.java -END -TrackFragmentBox.java -K 25 -svn:wc:ra_dav:version-url -V 102 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/TrackFragmentBox.java -END -TrackRunBox.java -K 25 -svn:wc:ra_dav:version-url -V 97 -/svn/!svn/ver/640/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/TrackRunBox.java -END -MovieExtendsBox.java -K 25 -svn:wc:ra_dav:version-url -V 101 -/svn/!svn/ver/505/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/MovieExtendsBox.java -END -TrackFragmentRandomAccessBox.java -K 25 -svn:wc:ra_dav:version-url -V 114 -/svn/!svn/ver/624/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/TrackFragmentRandomAccessBox.java -END -MovieFragmentHeaderBox.java -K 25 -svn:wc:ra_dav:version-url -V 108 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/MovieFragmentHeaderBox.java -END -MovieFragmentRandomAccessOffsetBox.java -K 25 -svn:wc:ra_dav:version-url -V 120 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/MovieFragmentRandomAccessOffsetBox.java -END -TrackExtendsBox.java -K 25 -svn:wc:ra_dav:version-url -V 101 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/TrackExtendsBox.java -END -TrackFragmentHeaderBox.java -K 25 -svn:wc:ra_dav:version-url -V 108 -/svn/!svn/ver/640/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/TrackFragmentHeaderBox.java -END -MovieFragmentBox.java -K 25 -svn:wc:ra_dav:version-url -V 102 -/svn/!svn/ver/671/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/MovieFragmentBox.java -END -MovieExtendsHeaderBox.java -K 25 -svn:wc:ra_dav:version-url -V 107 -/svn/!svn/ver/707/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/MovieExtendsHeaderBox.java -END -SegmentTypeBox.java -K 25 -svn:wc:ra_dav:version-url -V 100 -/svn/!svn/ver/613/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/SegmentTypeBox.java -END -SampleFlags.java -K 25 -svn:wc:ra_dav:version-url -V 97 -/svn/!svn/ver/534/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/SampleFlags.java -END diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/entries b/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/entries deleted file mode 100644 index 6212978..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/entries +++ /dev/null @@ -1,504 +0,0 @@ -10 - -dir -778 -http://mp4parser.googlecode.com/svn/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/fragment -http://mp4parser.googlecode.com/svn - - - -2012-07-10T16:32:53.757675Z -707 -michael.stattmann@gmail.com - - - - - - - - - - - - - - -7decde4b-c250-0410-a0da-51896bc88be6 - -MovieFragmentRandomAccessBox.java -file - - - - -2012-09-14T17:27:52.267244Z -4eabe3aabca1078ceea9af4a4834b0f1 -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -984 - -TrackFragmentBaseMediaDecodeTimeBox.java -file - - - - -2012-09-14T17:27:52.267244Z -af8610f8a9e617ce31f65b03dcc17367 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2190 - -TrackFragmentBox.java -file - - - - -2012-09-14T17:27:52.267244Z -dba2633d9c107e9eddcf3e6eab22c9dd -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1241 - -TrackRunBox.java -file - - - - -2012-09-14T17:27:52.267244Z -c28d12fedd74251d99e0d5c1830c94d3 -2012-05-25T01:59:01.697137Z -640 -michael.stattmann@gmail.com - - - - - - - - - - - - - - - - - - - - - -11046 - -MovieExtendsBox.java -file - - - - -2012-09-14T17:27:52.267244Z -dcf05781e764bcbfbb5e15fd788fb0aa -2012-04-21T21:18:31.685061Z -505 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -937 - -TrackFragmentRandomAccessBox.java -file - - - - -2012-09-14T17:27:52.267244Z -45b30b8d197f9815b53fcc90fb31ee95 -2012-05-21T11:57:37.647327Z -624 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -9307 - -MovieFragmentHeaderBox.java -file - - - - -2012-09-14T17:27:52.267244Z -25d305e9e55dfdcf69ae5f31c90b8337 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1914 - -MovieFragmentRandomAccessOffsetBox.java -file - - - - -2012-09-14T17:27:52.267244Z -6d2116a9bd56b10e667a6a51bea18b53 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1720 - -TrackExtendsBox.java -file - - - - -2012-09-14T17:27:52.267244Z -322aa8226e5343046573a005646fc1d2 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -3577 - -TrackFragmentHeaderBox.java -file - - - - -2012-09-14T17:27:52.267244Z -984fc3f2f62a36cef43dc93b804accb6 -2012-05-25T01:59:01.697137Z -640 -michael.stattmann@gmail.com - - - - - - - - - - - - - - - - - - - - - -7356 - -MovieFragmentBox.java -file - - - - -2012-09-14T17:27:52.267244Z -a3c1c53469581b52f3658b1abeba4e6a -2012-06-10T18:50:38.971172Z -671 -michael.stattmann@gmail.com - - - - - - - - - - - - - - - - - - - - - -3033 - -MovieExtendsHeaderBox.java -file - - - - -2012-09-14T17:27:52.267244Z -1b6dca9e192c4e7f9ad26a2be93a2fd8 -2012-07-10T16:32:53.757675Z -707 -michael.stattmann@gmail.com - - - - - - - - - - - - - - - - - - - - - -2083 - -SegmentTypeBox.java -file - - - - -2012-09-14T17:27:52.267244Z -0c595f0be955e83b6f9e980455f6719f -2012-05-11T07:48:18.576721Z -613 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -4363 - -SampleFlags.java -file - - - - -2012-09-14T17:27:52.267244Z -d39b07fe798f248be8d054513f809787 -2012-04-27T14:59:11.479630Z -534 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -6723 - diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/MovieExtendsBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/MovieExtendsBox.java.svn-base deleted file mode 100644 index 5ecd642..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/MovieExtendsBox.java.svn-base +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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.fragment; - -import com.googlecode.mp4parser.AbstractContainerBox; - -/** - * aligned(8) class MovieExtendsBox extends Box('mvex'){ - * } - */ -public class MovieExtendsBox extends AbstractContainerBox { - public static final String TYPE = "mvex"; - - public MovieExtendsBox() { - super(TYPE); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/MovieExtendsHeaderBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/MovieExtendsHeaderBox.java.svn-base deleted file mode 100644 index 8dd58f9..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/MovieExtendsHeaderBox.java.svn-base +++ /dev/null @@ -1,71 +0,0 @@ -/* - * 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.fragment; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * aligned(8) class MovieExtendsHeaderBox extends FullBox('mehd', version, 0) { - * if (version==1) { - * unsigned int(64) fragment_duration; - * } else { // version==0 - * unsigned int(32) fragment_duration; - * } - * } - */ -public class MovieExtendsHeaderBox extends AbstractFullBox { - public static final String TYPE = "mehd"; - private long fragmentDuration; - - public MovieExtendsHeaderBox() { - super(TYPE); - } - - @Override - protected long getContentSize() { - return getVersion() == 1 ? 12 : 8; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - fragmentDuration = getVersion() == 1 ? IsoTypeReader.readUInt64(content) : IsoTypeReader.readUInt32(content); - } - - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - if (getVersion() == 1) { - IsoTypeWriter.writeUInt64(byteBuffer, fragmentDuration); - } else { - IsoTypeWriter.writeUInt32(byteBuffer, fragmentDuration); - } - } - - public long getFragmentDuration() { - return fragmentDuration; - } - - public void setFragmentDuration(long fragmentDuration) { - this.fragmentDuration = fragmentDuration; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/MovieFragmentBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/MovieFragmentBox.java.svn-base deleted file mode 100644 index e92bd53..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/MovieFragmentBox.java.svn-base +++ /dev/null @@ -1,100 +0,0 @@ -/* - * 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.fragment; - -import com.googlecode.mp4parser.AbstractContainerBox; -import com.coremedia.iso.boxes.Box; -import com.coremedia.iso.boxes.SampleDependencyTypeBox; -import com.googlecode.mp4parser.annotations.DoNotParseDetail; - -import java.util.ArrayList; -import java.util.List; - -/** - * aligned(8) class MovieFragmentBox extends Box(moof){ - * } - */ - -public class MovieFragmentBox extends AbstractContainerBox { - public static final String TYPE = "moof"; - - public MovieFragmentBox() { - super(TYPE); - } - - - public List<Long> getSyncSamples(SampleDependencyTypeBox sdtp) { - List<Long> result = new ArrayList<Long>(); - - final List<SampleDependencyTypeBox.Entry> sampleEntries = sdtp.getEntries(); - long i = 1; - for (SampleDependencyTypeBox.Entry sampleEntry : sampleEntries) { - if (sampleEntry.getSampleDependsOn() == 2) { - result.add(i); - } - i++; - } - - return result; - } - - @DoNotParseDetail - public long getOffset() { - Box b = this; - long offset = 0; - while (b.getParent() != null) { - for (Box box : b.getParent().getBoxes()) { - if (b == box) { - break; - } - offset += box.getSize(); - } - b = b.getParent(); - } - return offset; - } - - - public int getTrackCount() { - return getBoxes(TrackFragmentBox.class, false).size(); - } - - /** - * Returns the track numbers associated with this <code>MovieBox</code>. - * - * @return the tracknumbers (IDs) of the tracks in their order of appearance in the file - */ - - public long[] getTrackNumbers() { - - List<TrackFragmentBox> trackBoxes = this.getBoxes(TrackFragmentBox.class, false); - long[] trackNumbers = new long[trackBoxes.size()]; - for (int trackCounter = 0; trackCounter < trackBoxes.size(); trackCounter++) { - TrackFragmentBox trackBoxe = trackBoxes.get(trackCounter); - trackNumbers[trackCounter] = trackBoxe.getTrackFragmentHeaderBox().getTrackId(); - } - return trackNumbers; - } - - public List<TrackFragmentHeaderBox> getTrackFragmentHeaderBoxes() { - return getBoxes(TrackFragmentHeaderBox.class, true); - } - - public List<TrackRunBox> getTrackRunBoxes() { - return getBoxes(TrackRunBox.class, true); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/MovieFragmentHeaderBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/MovieFragmentHeaderBox.java.svn-base deleted file mode 100644 index e58f7a2..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/MovieFragmentHeaderBox.java.svn-base +++ /dev/null @@ -1,72 +0,0 @@ -/* - * 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.fragment; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * aligned(8) class MovieFragmentHeaderBox - * extends FullBox('mfhd', 0, 0){ - * unsigned int(32) sequence_number; - * } - */ - -public class MovieFragmentHeaderBox extends AbstractFullBox { - public static final String TYPE = "mfhd"; - private long sequenceNumber; - - public MovieFragmentHeaderBox() { - super(TYPE); - } - - protected long getContentSize() { - return 8; - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt32(byteBuffer, sequenceNumber); - } - - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - sequenceNumber = IsoTypeReader.readUInt32(content); - - } - - public long getSequenceNumber() { - return sequenceNumber; - } - - public void setSequenceNumber(long sequenceNumber) { - this.sequenceNumber = sequenceNumber; - } - - @Override - public String toString() { - return "MovieFragmentHeaderBox{" + - "sequenceNumber=" + sequenceNumber + - '}'; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/MovieFragmentRandomAccessBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/MovieFragmentRandomAccessBox.java.svn-base deleted file mode 100644 index 86e2c9d..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/MovieFragmentRandomAccessBox.java.svn-base +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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.fragment; - -import com.googlecode.mp4parser.AbstractContainerBox; - -/** - * aligned(8) class MovieFragmentRandomAccessBox - * extends Box('mfra') - * { - * } - */ -public class MovieFragmentRandomAccessBox extends AbstractContainerBox { - public static final String TYPE = "mfra"; - - public MovieFragmentRandomAccessBox() { - super(TYPE); - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/MovieFragmentRandomAccessOffsetBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/MovieFragmentRandomAccessOffsetBox.java.svn-base deleted file mode 100644 index edbfd66..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/MovieFragmentRandomAccessOffsetBox.java.svn-base +++ /dev/null @@ -1,62 +0,0 @@ -/* - * 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.fragment; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * aligned(8) class MovieFragmentRandomAccessOffsetBox - * extends FullBox('mfro', version, 0) { - * unsigned int(32) size; - * } - */ -public class MovieFragmentRandomAccessOffsetBox extends AbstractFullBox { - public static final String TYPE = "mfro"; - private long mfraSize; - - public MovieFragmentRandomAccessOffsetBox() { - super(TYPE); - } - - protected long getContentSize() { - return 8; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - mfraSize = IsoTypeReader.readUInt32(content); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt32(byteBuffer, mfraSize); - } - - public long getMfraSize() { - return mfraSize; - } - - public void setMfraSize(long mfraSize) { - this.mfraSize = mfraSize; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/SampleFlags.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/SampleFlags.java.svn-base deleted file mode 100644 index 6caaf1e..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/SampleFlags.java.svn-base +++ /dev/null @@ -1,207 +0,0 @@ -/* - * 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.fragment; - -import com.googlecode.mp4parser.boxes.mp4.objectdescriptors.BitReaderBuffer; -import com.googlecode.mp4parser.boxes.mp4.objectdescriptors.BitWriterBuffer; - -import java.io.IOException; -import java.nio.ByteBuffer; - -/** - * bit(6) reserved=0; - * unsigned int(2) sample_depends_on; - * unsigned int(2) sample_is_depended_on; - * unsigned int(2) sample_has_redundancy; - * bit(3) sample_padding_value; - * bit(1) sample_is_difference_sample; - * // i.e. when 1 signals a non-key or non-sync sample - * unsigned int(16) sample_degradation_priority; - */ -public class SampleFlags { - private int reserved; - private int sampleDependsOn; - private int sampleIsDependedOn; - private int sampleHasRedundancy; - private int samplePaddingValue; - private boolean sampleIsDifferenceSample; - private int sampleDegradationPriority; - - public SampleFlags() { - - } - - public SampleFlags(ByteBuffer bb) { - BitReaderBuffer brb = new BitReaderBuffer(bb); - reserved = brb.readBits(6); - sampleDependsOn = brb.readBits(2); - sampleIsDependedOn = brb.readBits(2); - sampleHasRedundancy = brb.readBits(2); - samplePaddingValue = brb.readBits(3); - sampleIsDifferenceSample = brb.readBits(1) == 1; - sampleDegradationPriority = brb.readBits(16); - } - - - public void getContent(ByteBuffer os) { - BitWriterBuffer bitWriterBuffer = new BitWriterBuffer(os); - bitWriterBuffer.writeBits(reserved, 6); - bitWriterBuffer.writeBits(sampleDependsOn, 2); - bitWriterBuffer.writeBits(sampleIsDependedOn, 2); - bitWriterBuffer.writeBits(sampleHasRedundancy, 2); - bitWriterBuffer.writeBits(samplePaddingValue, 3); - bitWriterBuffer.writeBits(this.sampleIsDifferenceSample ? 1 : 0, 1); - bitWriterBuffer.writeBits(sampleDegradationPriority, 16); - } - - public int getReserved() { - return reserved; - } - - public void setReserved(int reserved) { - this.reserved = reserved; - } - - /** - * @see #setSampleDependsOn(int) - */ - public int getSampleDependsOn() { - return sampleDependsOn; - } - - /** - * sample_depends_on takes one of the following four values: - * <pre> - * 0: the dependency of this sample is unknown; - * 1: this sample does depend on others (not an I picture); - * 2: this sample does not depend on others (I picture); - * 3: reserved - * </pre> - * - */ - public void setSampleDependsOn(int sampleDependsOn) { - this.sampleDependsOn = sampleDependsOn; - } - - /** - * @see #setSampleIsDependedOn(int) - */ - public int getSampleIsDependedOn() { - return sampleIsDependedOn; - } - - /** - * sample_is_depended_on takes one of the following four values: - * <pre> - * 0: the dependency of other samples on this sample is unknown; - * 1: other samples may depend on this one (not disposable); - * 2: no other sample depends on this one (disposable); - * 3: reserved - * </pre> - * - */ - public void setSampleIsDependedOn(int sampleIsDependedOn) { - this.sampleIsDependedOn = sampleIsDependedOn; - } - - /** - * @see #setSampleHasRedundancy(int) - */ - public int getSampleHasRedundancy() { - return sampleHasRedundancy; - } - - /** - * sample_has_redundancy takes one of the following four values: - * <pre> - * 0: it is unknown whether there is redundant coding in this sample; - * 1: there is redundant coding in this sample; - * 2: there is no redundant coding in this sample; - * 3: reserved - * </pre> - */ - public void setSampleHasRedundancy(int sampleHasRedundancy) { - this.sampleHasRedundancy = sampleHasRedundancy; - } - - public int getSamplePaddingValue() { - return samplePaddingValue; - } - - public void setSamplePaddingValue(int samplePaddingValue) { - this.samplePaddingValue = samplePaddingValue; - } - - public boolean isSampleIsDifferenceSample() { - return sampleIsDifferenceSample; - } - - - public void setSampleIsDifferenceSample(boolean sampleIsDifferenceSample) { - this.sampleIsDifferenceSample = sampleIsDifferenceSample; - } - - public int getSampleDegradationPriority() { - return sampleDegradationPriority; - } - - public void setSampleDegradationPriority(int sampleDegradationPriority) { - this.sampleDegradationPriority = sampleDegradationPriority; - } - - @Override - public String toString() { - return "SampleFlags{" + - "reserved=" + reserved + - ", sampleDependsOn=" + sampleDependsOn + - ", sampleHasRedundancy=" + sampleHasRedundancy + - ", samplePaddingValue=" + samplePaddingValue + - ", sampleIsDifferenceSample=" + sampleIsDifferenceSample + - ", sampleDegradationPriority=" + sampleDegradationPriority + - '}'; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - SampleFlags that = (SampleFlags) o; - - if (reserved != that.reserved) return false; - if (sampleDegradationPriority != that.sampleDegradationPriority) return false; - if (sampleDependsOn != that.sampleDependsOn) return false; - if (sampleHasRedundancy != that.sampleHasRedundancy) return false; - if (sampleIsDependedOn != that.sampleIsDependedOn) return false; - if (sampleIsDifferenceSample != that.sampleIsDifferenceSample) return false; - if (samplePaddingValue != that.samplePaddingValue) return false; - - return true; - } - - @Override - public int hashCode() { - int result = reserved; - result = 31 * result + sampleDependsOn; - result = 31 * result + sampleIsDependedOn; - result = 31 * result + sampleHasRedundancy; - result = 31 * result + samplePaddingValue; - result = 31 * result + (sampleIsDifferenceSample ? 1 : 0); - result = 31 * result + sampleDegradationPriority; - return result; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/SegmentTypeBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/SegmentTypeBox.java.svn-base deleted file mode 100644 index 5e0d47b..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/SegmentTypeBox.java.svn-base +++ /dev/null @@ -1,143 +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.fragment; - -import com.coremedia.iso.IsoFile; -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractBox; -import com.googlecode.mp4parser.annotations.DoNotParseDetail; - -import java.nio.ByteBuffer; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; - -/** - * This box identifies the specifications to which this file complies. <br> - * Each brand is a printable four-character code, registered with ISO, that - * identifies a precise specification. - */ -public class SegmentTypeBox extends AbstractBox { - public static final String TYPE = "styp"; - - private String majorBrand; - private long minorVersion; - private List<String> compatibleBrands = Collections.emptyList(); - - public SegmentTypeBox() { - super(TYPE); - } - - public SegmentTypeBox(String majorBrand, long minorVersion, List<String> compatibleBrands) { - super(TYPE); - this.majorBrand = majorBrand; - this.minorVersion = minorVersion; - this.compatibleBrands = compatibleBrands; - } - - protected long getContentSize() { - return 8 + compatibleBrands.size() * 4; - - } - - @Override - public void _parseDetails(ByteBuffer content) { - majorBrand = IsoTypeReader.read4cc(content); - minorVersion = IsoTypeReader.readUInt32(content); - int compatibleBrandsCount = content.remaining() / 4; - compatibleBrands = new LinkedList<String>(); - for (int i = 0; i < compatibleBrandsCount; i++) { - compatibleBrands.add(IsoTypeReader.read4cc(content)); - } - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - byteBuffer.put(IsoFile.fourCCtoBytes(majorBrand)); - IsoTypeWriter.writeUInt32(byteBuffer, minorVersion); - for (String compatibleBrand : compatibleBrands) { - byteBuffer.put(IsoFile.fourCCtoBytes(compatibleBrand)); - } - - } - - /** - * Gets the brand identifier. - * - * @return the brand identifier - */ - public String getMajorBrand() { - return majorBrand; - } - - /** - * Sets the major brand of the file used to determine an appropriate reader. - * - * @param majorBrand the new major brand - */ - public void setMajorBrand(String majorBrand) { - this.majorBrand = majorBrand; - } - - /** - * Sets the "informative integer for the minor version of the major brand". - * - * @param minorVersion the version number of the major brand - */ - public void setMinorVersion(int minorVersion) { - this.minorVersion = minorVersion; - } - - /** - * Gets an informative integer for the minor version of the major brand. - * - * @return an informative integer - * @see SegmentTypeBox#getMajorBrand() - */ - public long getMinorVersion() { - return minorVersion; - } - - /** - * Gets an array of 4-cc brands. - * - * @return the compatible brands - */ - public List<String> getCompatibleBrands() { - return compatibleBrands; - } - - public void setCompatibleBrands(List<String> compatibleBrands) { - this.compatibleBrands = compatibleBrands; - } - - @DoNotParseDetail - public String toString() { - StringBuilder result = new StringBuilder(); - result.append("SegmentTypeBox["); - result.append("majorBrand=").append(getMajorBrand()); - result.append(";"); - result.append("minorVersion=").append(getMinorVersion()); - for (String compatibleBrand : compatibleBrands) { - result.append(";"); - result.append("compatibleBrand=").append(compatibleBrand); - } - result.append("]"); - return result.toString(); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/TrackExtendsBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/TrackExtendsBox.java.svn-base deleted file mode 100644 index 8bba7c1..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/TrackExtendsBox.java.svn-base +++ /dev/null @@ -1,115 +0,0 @@ -/* - * 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.fragment; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * aligned(8) class TrackExtendsBox extends FullBox('trex', 0, 0){ - * unsigned int(32) track_ID; - * unsigned int(32) default_sample_description_index; - * unsigned int(32) default_sample_duration; - * unsigned int(32) default_sample_size; - * unsigned int(32) default_sample_flags - * } - */ -public class TrackExtendsBox extends AbstractFullBox { - public static final String TYPE = "trex"; - private long trackId; - private long defaultSampleDescriptionIndex; - private long defaultSampleDuration; - private long defaultSampleSize; - private SampleFlags defaultSampleFlags; - - public TrackExtendsBox() { - super(TYPE); - } - - @Override - protected long getContentSize() { - return 5 * 4 + 4; - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt32(byteBuffer, trackId); - IsoTypeWriter.writeUInt32(byteBuffer, defaultSampleDescriptionIndex); - IsoTypeWriter.writeUInt32(byteBuffer, defaultSampleDuration); - IsoTypeWriter.writeUInt32(byteBuffer, defaultSampleSize); - defaultSampleFlags.getContent(byteBuffer); - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - trackId = IsoTypeReader.readUInt32(content); - defaultSampleDescriptionIndex = IsoTypeReader.readUInt32(content); - defaultSampleDuration = IsoTypeReader.readUInt32(content); - defaultSampleSize = IsoTypeReader.readUInt32(content); - defaultSampleFlags = new SampleFlags(content); - } - - public long getTrackId() { - return trackId; - } - - public long getDefaultSampleDescriptionIndex() { - return defaultSampleDescriptionIndex; - } - - public long getDefaultSampleDuration() { - return defaultSampleDuration; - } - - public long getDefaultSampleSize() { - return defaultSampleSize; - } - - public SampleFlags getDefaultSampleFlags() { - return defaultSampleFlags; - } - - public String getDefaultSampleFlagsStr() { - return defaultSampleFlags.toString(); - } - - public void setTrackId(long trackId) { - this.trackId = trackId; - } - - public void setDefaultSampleDescriptionIndex(long defaultSampleDescriptionIndex) { - this.defaultSampleDescriptionIndex = defaultSampleDescriptionIndex; - } - - public void setDefaultSampleDuration(long defaultSampleDuration) { - this.defaultSampleDuration = defaultSampleDuration; - } - - public void setDefaultSampleSize(long defaultSampleSize) { - this.defaultSampleSize = defaultSampleSize; - } - - public void setDefaultSampleFlags(SampleFlags defaultSampleFlags) { - this.defaultSampleFlags = defaultSampleFlags; - - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/TrackFragmentBaseMediaDecodeTimeBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/TrackFragmentBaseMediaDecodeTimeBox.java.svn-base deleted file mode 100644 index 06fcf62..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/TrackFragmentBaseMediaDecodeTimeBox.java.svn-base +++ /dev/null @@ -1,76 +0,0 @@ -/* - * 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.fragment; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -public class TrackFragmentBaseMediaDecodeTimeBox extends AbstractFullBox { - public static final String TYPE = "tfdt"; - - private long baseMediaDecodeTime; - - public TrackFragmentBaseMediaDecodeTimeBox() { - super(TYPE); - } - - @Override - protected long getContentSize() { - return getVersion() == 0 ? 8 : 12; - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - if (getVersion() == 1) { - IsoTypeWriter.writeUInt64(byteBuffer, baseMediaDecodeTime); - } else { - IsoTypeWriter.writeUInt32(byteBuffer, baseMediaDecodeTime); - } - } - - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - if (getVersion() == 1) { - baseMediaDecodeTime = IsoTypeReader.readUInt64(content); - } else { - baseMediaDecodeTime = IsoTypeReader.readUInt32(content); - } - - } - - - public long getBaseMediaDecodeTime() { - return baseMediaDecodeTime; - } - - public void setBaseMediaDecodeTime(long baseMediaDecodeTime) { - this.baseMediaDecodeTime = baseMediaDecodeTime; - } - - @Override - public String toString() { - return "TrackFragmentBaseMediaDecodeTimeBox{" + - "baseMediaDecodeTime=" + baseMediaDecodeTime + - '}'; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/TrackFragmentBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/TrackFragmentBox.java.svn-base deleted file mode 100644 index fde7da5..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/TrackFragmentBox.java.svn-base +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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.fragment; - -import com.googlecode.mp4parser.AbstractContainerBox; -import com.coremedia.iso.boxes.Box; - -/** - * aligned(8) class TrackFragmentBox extends Box('traf'){ - * } - */ -public class TrackFragmentBox extends AbstractContainerBox { - public static final String TYPE = "traf"; - - public TrackFragmentBox() { - super(TYPE); - } - - - public TrackFragmentHeaderBox getTrackFragmentHeaderBox() { - for (Box box : getBoxes()) { - if (box instanceof TrackFragmentHeaderBox) { - return (TrackFragmentHeaderBox) box; - } - } - return null; - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/TrackFragmentHeaderBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/TrackFragmentHeaderBox.java.svn-base deleted file mode 100644 index fb9509b..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/TrackFragmentHeaderBox.java.svn-base +++ /dev/null @@ -1,224 +0,0 @@ -/* - * 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.fragment; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * aligned(8) class TrackFragmentHeaderBox - * extends FullBox('tfhd', 0, tf_flags){ - * unsigned int(32) track_ID; - * // all the following are optional fields - * unsigned int(64) base_data_offset; - * unsigned int(32) sample_description_index; - * unsigned int(32) default_sample_duration; - * unsigned int(32) default_sample_size; - * unsigned int(32) default_sample_flags - * } - */ -public class TrackFragmentHeaderBox extends AbstractFullBox { - public static final String TYPE = "tfhd"; - - private long trackId; - private long baseDataOffset = -1; - private long sampleDescriptionIndex; - private long defaultSampleDuration = -1; - private long defaultSampleSize = -1; - private SampleFlags defaultSampleFlags; - private boolean durationIsEmpty; - - public TrackFragmentHeaderBox() { - super(TYPE); - } - - protected long getContentSize() { - long size = 8; - int flags = getFlags(); - if ((flags & 0x1) == 1) { //baseDataOffsetPresent - size += 8; - } - if ((flags & 0x2) == 0x2) { //sampleDescriptionIndexPresent - size += 4; - } - if ((flags & 0x8) == 0x8) { //defaultSampleDurationPresent - size += 4; - } - if ((flags & 0x10) == 0x10) { //defaultSampleSizePresent - size += 4; - } - if ((flags & 0x20) == 0x20) { //defaultSampleFlagsPresent - size += 4; - } - return size; - } - - - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt32(byteBuffer, trackId); - - if ((getFlags() & 0x1) == 1) { //baseDataOffsetPresent - IsoTypeWriter.writeUInt64(byteBuffer, getBaseDataOffset()); - } - if ((getFlags() & 0x2) == 0x2) { //sampleDescriptionIndexPresent - IsoTypeWriter.writeUInt32(byteBuffer, getSampleDescriptionIndex()); - } - if ((getFlags() & 0x8) == 0x8) { //defaultSampleDurationPresent - IsoTypeWriter.writeUInt32(byteBuffer, getDefaultSampleDuration()); - } - if ((getFlags() & 0x10) == 0x10) { //defaultSampleSizePresent - IsoTypeWriter.writeUInt32(byteBuffer, getDefaultSampleSize()); - } - if ((getFlags() & 0x20) == 0x20) { //defaultSampleFlagsPresent - defaultSampleFlags.getContent(byteBuffer); - } - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - trackId = IsoTypeReader.readUInt32(content); - if ((getFlags() & 0x1) == 1) { //baseDataOffsetPresent - baseDataOffset = IsoTypeReader.readUInt64(content); - } - if ((getFlags() & 0x2) == 0x2) { //sampleDescriptionIndexPresent - sampleDescriptionIndex = IsoTypeReader.readUInt32(content); - } - if ((getFlags() & 0x8) == 0x8) { //defaultSampleDurationPresent - defaultSampleDuration = IsoTypeReader.readUInt32(content); - } - if ((getFlags() & 0x10) == 0x10) { //defaultSampleSizePresent - defaultSampleSize = IsoTypeReader.readUInt32(content); - } - if ((getFlags() & 0x20) == 0x20) { //defaultSampleFlagsPresent - defaultSampleFlags = new SampleFlags(content); - } - if ((getFlags() & 0x10000) == 0x10000) { //durationIsEmpty - durationIsEmpty = true; - } - } - - public boolean hasBaseDataOffset() { - return (getFlags() & 0x1) != 0; - } - - public boolean hasSampleDescriptionIndex() { - return (getFlags() & 0x2) != 0; - } - - public boolean hasDefaultSampleDuration() { - return (getFlags() & 0x8) != 0; - } - - public boolean hasDefaultSampleSize() { - return (getFlags() & 0x10) != 0; - } - - public boolean hasDefaultSampleFlags() { - return (getFlags() & 0x20) != 0; - } - - public long getTrackId() { - return trackId; - } - - public long getBaseDataOffset() { - return baseDataOffset; - } - - public long getSampleDescriptionIndex() { - return sampleDescriptionIndex; - } - - public long getDefaultSampleDuration() { - return defaultSampleDuration; - } - - public long getDefaultSampleSize() { - return defaultSampleSize; - } - - public SampleFlags getDefaultSampleFlags() { - return defaultSampleFlags; - } - - public boolean isDurationIsEmpty() { - return durationIsEmpty; - } - - public void setTrackId(long trackId) { - this.trackId = trackId; - } - - public void setBaseDataOffset(long baseDataOffset) { - if (baseDataOffset == -1) { - setFlags(getFlags() & (Integer.MAX_VALUE ^ 0x1)); - } else { - setFlags(getFlags() | 0x1); // activate the field - } - this.baseDataOffset = baseDataOffset; - } - - public void setSampleDescriptionIndex(long sampleDescriptionIndex) { - if (sampleDescriptionIndex == -1) { - setFlags(getFlags() & (Integer.MAX_VALUE ^ 0x2)); - } else { - setFlags(getFlags() | 0x2); // activate the field - } - this.sampleDescriptionIndex = sampleDescriptionIndex; - } - - public void setDefaultSampleDuration(long defaultSampleDuration) { - setFlags(getFlags() | 0x8); // activate the field - this.defaultSampleDuration = defaultSampleDuration; - } - - public void setDefaultSampleSize(long defaultSampleSize) { - setFlags(getFlags() | 0x10); // activate the field - this.defaultSampleSize = defaultSampleSize; - } - - public void setDefaultSampleFlags(SampleFlags defaultSampleFlags) { - setFlags(getFlags() | 0x20); // activate the field - this.defaultSampleFlags = defaultSampleFlags; - } - - public void setDurationIsEmpty(boolean durationIsEmpty) { - setFlags(getFlags() | 0x10000); // activate the field - this.durationIsEmpty = durationIsEmpty; - } - - @Override - public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("TrackFragmentHeaderBox"); - sb.append("{trackId=").append(trackId); - sb.append(", baseDataOffset=").append(baseDataOffset); - sb.append(", sampleDescriptionIndex=").append(sampleDescriptionIndex); - sb.append(", defaultSampleDuration=").append(defaultSampleDuration); - sb.append(", defaultSampleSize=").append(defaultSampleSize); - sb.append(", defaultSampleFlags=").append(defaultSampleFlags); - sb.append(", durationIsEmpty=").append(durationIsEmpty); - sb.append('}'); - return sb.toString(); - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/TrackFragmentRandomAccessBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/TrackFragmentRandomAccessBox.java.svn-base deleted file mode 100644 index 94d24ae..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/TrackFragmentRandomAccessBox.java.svn-base +++ /dev/null @@ -1,294 +0,0 @@ -/* - * 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.fragment; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeReaderVariable; -import com.coremedia.iso.IsoTypeWriter; -import com.coremedia.iso.IsoTypeWriterVariable; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * aligned(8) class TrackFragmentRandomAccessBox - * extends FullBox('tfra', version, 0) { - * unsigned int(32) track_ID; - * const unsigned int(26) reserved = 0; - * unsigned int(2) length_size_of_traf_num; - * unsigned int(2) length_size_of_trun_num; - * unsigned int(2) length_size_of_sample_num; - * unsigned int(32) number_of_entry; - * for(i=1; i <= number_of_entry; i++){ - * if(version==1){ - * unsigned int(64) time; - * unsigned int(64) moof_offset; - * }else{ - * unsigned int(32) time; - * unsigned int(32) moof_offset; - * } - * unsigned int((length_size_of_traf_num+1) * 8) traf_number; - * unsigned int((length_size_of_trun_num+1) * 8) trun_number; - * unsigned int((length_size_of_sample_num+1) * 8) sample_number; - * } - * } - */ -public class TrackFragmentRandomAccessBox extends AbstractFullBox { - public static final String TYPE = "tfra"; - - private long trackId; - private int reserved; - private int lengthSizeOfTrafNum = 2; - private int lengthSizeOfTrunNum = 2; - private int lengthSizeOfSampleNum = 2; - private List<Entry> entries = Collections.emptyList(); - - public TrackFragmentRandomAccessBox() { - super(TYPE); - } - - - protected long getContentSize() { - long contentSize = 4; - contentSize += 4 + 4 /*26 + 2 + 2 + 2 */ + 4; - if (getVersion() == 1) { - contentSize += (8 + 8) * entries.size(); - } else { - contentSize += (4 + 4) * entries.size(); - } - contentSize += lengthSizeOfTrafNum * entries.size(); - contentSize += lengthSizeOfTrunNum * entries.size(); - contentSize += lengthSizeOfSampleNum * entries.size(); - return contentSize; - } - - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - trackId = IsoTypeReader.readUInt32(content); - long temp = IsoTypeReader.readUInt32(content); - reserved = (int) (temp >> 6); - lengthSizeOfTrafNum = ((int) (temp & 0x3F) >> 4) + 1; - lengthSizeOfTrunNum = ((int) (temp & 0xC) >> 2) + 1; - lengthSizeOfSampleNum = ((int) (temp & 0x3)) + 1; - long numberOfEntries = IsoTypeReader.readUInt32(content); - - entries = new ArrayList<Entry>(); - - for (int i = 0; i < numberOfEntries; i++) { - Entry entry = new Entry(); - if (getVersion() == 1) { - entry.time = IsoTypeReader.readUInt64(content); - entry.moofOffset = IsoTypeReader.readUInt64(content); - } else { - entry.time = IsoTypeReader.readUInt32(content); - entry.moofOffset = IsoTypeReader.readUInt32(content); - } - entry.trafNumber = IsoTypeReaderVariable.read(content, lengthSizeOfTrafNum); - entry.trunNumber = IsoTypeReaderVariable.read(content, lengthSizeOfTrunNum); - entry.sampleNumber = IsoTypeReaderVariable.read(content, lengthSizeOfSampleNum); - - entries.add(entry); - } - - } - - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt32(byteBuffer, trackId); - long temp; - temp = reserved << 6; - temp = temp | (((lengthSizeOfTrafNum - 1) & 0x3) << 4); - temp = temp | (((lengthSizeOfTrunNum - 1) & 0x3) << 2); - temp = temp | ((lengthSizeOfSampleNum - 1) & 0x3); - IsoTypeWriter.writeUInt32(byteBuffer, temp); - IsoTypeWriter.writeUInt32(byteBuffer, entries.size()); - - for (Entry entry : entries) { - if (getVersion() == 1) { - IsoTypeWriter.writeUInt64(byteBuffer, entry.time); - IsoTypeWriter.writeUInt64(byteBuffer, entry.moofOffset); - } else { - IsoTypeWriter.writeUInt32(byteBuffer, entry.time); - IsoTypeWriter.writeUInt32(byteBuffer, entry.moofOffset); - } - IsoTypeWriterVariable.write(entry.trafNumber, byteBuffer, lengthSizeOfTrafNum); - IsoTypeWriterVariable.write(entry.trunNumber, byteBuffer, lengthSizeOfTrunNum); - IsoTypeWriterVariable.write(entry.sampleNumber, byteBuffer, lengthSizeOfSampleNum); - - } - } - - - public void setTrackId(long trackId) { - this.trackId = trackId; - } - - public void setLengthSizeOfTrafNum(int lengthSizeOfTrafNum) { - this.lengthSizeOfTrafNum = lengthSizeOfTrafNum; - } - - public void setLengthSizeOfTrunNum(int lengthSizeOfTrunNum) { - this.lengthSizeOfTrunNum = lengthSizeOfTrunNum; - } - - public void setLengthSizeOfSampleNum(int lengthSizeOfSampleNum) { - this.lengthSizeOfSampleNum = lengthSizeOfSampleNum; - } - - public long getTrackId() { - return trackId; - } - - public int getReserved() { - return reserved; - } - - public int getLengthSizeOfTrafNum() { - return lengthSizeOfTrafNum; - } - - public int getLengthSizeOfTrunNum() { - return lengthSizeOfTrunNum; - } - - public int getLengthSizeOfSampleNum() { - return lengthSizeOfSampleNum; - } - - public long getNumberOfEntries() { - return entries.size(); - } - - public List<Entry> getEntries() { - return Collections.unmodifiableList(entries); - } - - public void setEntries(List<Entry> entries) { - this.entries = entries; - } - - public static class Entry { - private long time; - private long moofOffset; - private long trafNumber; - private long trunNumber; - private long sampleNumber; - - public Entry() { - } - - public Entry(long time, long moofOffset, long trafNumber, long trunNumber, long sampleNumber) { - this.moofOffset = moofOffset; - this.sampleNumber = sampleNumber; - this.time = time; - this.trafNumber = trafNumber; - this.trunNumber = trunNumber; - } - - public long getTime() { - return time; - } - - public long getMoofOffset() { - return moofOffset; - } - - public long getTrafNumber() { - return trafNumber; - } - - public long getTrunNumber() { - return trunNumber; - } - - public long getSampleNumber() { - return sampleNumber; - } - - public void setTime(long time) { - this.time = time; - } - - public void setMoofOffset(long moofOffset) { - this.moofOffset = moofOffset; - } - - public void setTrafNumber(long trafNumber) { - this.trafNumber = trafNumber; - } - - public void setTrunNumber(long trunNumber) { - this.trunNumber = trunNumber; - } - - public void setSampleNumber(long sampleNumber) { - this.sampleNumber = sampleNumber; - } - - @Override - public String toString() { - return "Entry{" + - "time=" + time + - ", moofOffset=" + moofOffset + - ", trafNumber=" + trafNumber + - ", trunNumber=" + trunNumber + - ", sampleNumber=" + sampleNumber + - '}'; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - Entry entry = (Entry) o; - - if (moofOffset != entry.moofOffset) return false; - if (sampleNumber != entry.sampleNumber) return false; - if (time != entry.time) return false; - if (trafNumber != entry.trafNumber) return false; - if (trunNumber != entry.trunNumber) return false; - - return true; - } - - @Override - public int hashCode() { - int result = (int) (time ^ (time >>> 32)); - result = 31 * result + (int) (moofOffset ^ (moofOffset >>> 32)); - result = 31 * result + (int) (trafNumber ^ (trafNumber >>> 32)); - result = 31 * result + (int) (trunNumber ^ (trunNumber >>> 32)); - result = 31 * result + (int) (sampleNumber ^ (sampleNumber >>> 32)); - return result; - } - } - - @Override - public String toString() { - return "TrackFragmentRandomAccessBox{" + - "trackId=" + trackId + - ", entries=" + entries + - '}'; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/TrackRunBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/TrackRunBox.java.svn-base deleted file mode 100644 index fc4faac..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/fragment/.svn/text-base/TrackRunBox.java.svn-base +++ /dev/null @@ -1,355 +0,0 @@ -/* - * 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.fragment; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.coremedia.iso.boxes.MovieBox; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; -import java.util.ArrayList; -import java.util.List; - -import static com.googlecode.mp4parser.util.CastUtils.l2i; - -/** - * aligned(8) class TrackRunBox - * extends FullBox('trun', 0, tr_flags) { - * unsigned int(32) sample_count; - * // the following are optional fields - * signed int(32) data_offset; - * unsigned int(32) first_sample_flags; - * // all fields in the following array are optional - * { - * unsigned int(32) sample_duration; - * unsigned int(32) sample_size; - * unsigned int(32) sample_flags - * unsigned int(32) sample_composition_time_offset; - * }[ sample_count ] - * } - */ - -public class TrackRunBox extends AbstractFullBox { - public static final String TYPE = "trun"; - private int dataOffset; - private SampleFlags firstSampleFlags; - private List<Entry> entries = new ArrayList<Entry>(); - - - public List<Entry> getEntries() { - return entries; - } - - public static class Entry { - private long sampleDuration; - private long sampleSize; - private SampleFlags sampleFlags; - private int sampleCompositionTimeOffset; - - public Entry() { - } - - public Entry(long sampleDuration, long sampleSize, SampleFlags sampleFlags, int sampleCompositionTimeOffset) { - this.sampleDuration = sampleDuration; - this.sampleSize = sampleSize; - this.sampleFlags = sampleFlags; - this.sampleCompositionTimeOffset = sampleCompositionTimeOffset; - } - - public long getSampleDuration() { - return sampleDuration; - } - - public long getSampleSize() { - return sampleSize; - } - - public SampleFlags getSampleFlags() { - return sampleFlags; - } - - public int getSampleCompositionTimeOffset() { - return sampleCompositionTimeOffset; - } - - public void setSampleDuration(long sampleDuration) { - this.sampleDuration = sampleDuration; - } - - public void setSampleSize(long sampleSize) { - this.sampleSize = sampleSize; - } - - public void setSampleFlags(SampleFlags sampleFlags) { - this.sampleFlags = sampleFlags; - } - - public void setSampleCompositionTimeOffset(int sampleCompositionTimeOffset) { - this.sampleCompositionTimeOffset = sampleCompositionTimeOffset; - } - - @Override - public String toString() { - return "Entry{" + - "sampleDuration=" + sampleDuration + - ", sampleSize=" + sampleSize + - ", sampleFlags=" + sampleFlags + - ", sampleCompositionTimeOffset=" + sampleCompositionTimeOffset + - '}'; - } - } - - public void setDataOffset(int dataOffset) { - if (dataOffset == -1) { - setFlags(getFlags() & (0xFFFFFF ^ 1)); - } else { - setFlags(getFlags() | 0x1); // turn on dataoffset - } - this.dataOffset = dataOffset; - } - - public long[] getSampleCompositionTimeOffsets() { - if (isSampleCompositionTimeOffsetPresent()) { - long[] result = new long[entries.size()]; - - for (int i = 0; i < result.length; i++) { - result[i] = entries.get(i).getSampleCompositionTimeOffset(); - } - return result; - } - return null; - } - - public TrackExtendsBox getTrackExtendsBox() { - final TrackFragmentHeaderBox tfhd = ((TrackFragmentBox) getParent()).getTrackFragmentHeaderBox(); - final List<MovieBox> movieBoxes = tfhd.getIsoFile().getBoxes(MovieBox.class); - if (movieBoxes.size() == 0) { - return null; - } - - final List<TrackExtendsBox> trexBoxes = movieBoxes.get(0).getBoxes(TrackExtendsBox.class, true); - TrackExtendsBox trex = null; - for (TrackExtendsBox aTrex : trexBoxes) { - if (aTrex.getTrackId() == tfhd.getTrackId()) { - trex = aTrex; - } - } - return trex; - } - - public TrackRunBox() { - super(TYPE); - } - - protected long getContentSize() { - long size = 8; - int flags = getFlags(); - - if ((flags & 0x1) == 0x1) { //dataOffsetPresent - size += 4; - } - if ((flags & 0x4) == 0x4) { //firstSampleFlagsPresent - size += 4; - } - - long entrySize = 0; - if ((flags & 0x100) == 0x100) { //sampleDurationPresent - entrySize += 4; - } - if ((flags & 0x200) == 0x200) { //sampleSizePresent - entrySize += 4; - } - if ((flags & 0x400) == 0x400) { //sampleFlagsPresent - entrySize += 4; - } - if ((flags & 0x800) == 0x800) { //sampleCompositionTimeOffsetPresent - entrySize += 4; - } - size += entrySize * entries.size(); - return size; - } - - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeUInt32(byteBuffer, entries.size()); - int flags = getFlags(); - - if ((flags & 0x1) == 1) { //dataOffsetPresent - IsoTypeWriter.writeUInt32(byteBuffer, dataOffset); - } - if ((flags & 0x4) == 0x4) { //firstSampleFlagsPresent - firstSampleFlags.getContent(byteBuffer); - } - - for (Entry entry : entries) { - if ((flags & 0x100) == 0x100) { //sampleDurationPresent - IsoTypeWriter.writeUInt32(byteBuffer, entry.sampleDuration); - } - if ((flags & 0x200) == 0x200) { //sampleSizePresent - IsoTypeWriter.writeUInt32(byteBuffer, entry.sampleSize); - } - if ((flags & 0x400) == 0x400) { //sampleFlagsPresent - entry.sampleFlags.getContent(byteBuffer); - } - if ((flags & 0x800) == 0x800) { //sampleCompositionTimeOffsetPresent - byteBuffer.putInt(entry.sampleCompositionTimeOffset); - } - } - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - long sampleCount = IsoTypeReader.readUInt32(content); - - if ((getFlags() & 0x1) == 1) { //dataOffsetPresent - dataOffset = l2i(IsoTypeReader.readUInt32(content)); - } else { - dataOffset = -1; - } - if ((getFlags() & 0x4) == 0x4) { //firstSampleFlagsPresent - firstSampleFlags = new SampleFlags(content); - } - - for (int i = 0; i < sampleCount; i++) { - Entry entry = new Entry(); - if ((getFlags() & 0x100) == 0x100) { //sampleDurationPresent - entry.sampleDuration = IsoTypeReader.readUInt32(content); - } - if ((getFlags() & 0x200) == 0x200) { //sampleSizePresent - entry.sampleSize = IsoTypeReader.readUInt32(content); - } - if ((getFlags() & 0x400) == 0x400) { //sampleFlagsPresent - entry.sampleFlags = new SampleFlags(content); - } - if ((getFlags() & 0x800) == 0x800) { //sampleCompositionTimeOffsetPresent - entry.sampleCompositionTimeOffset = content.getInt(); - } - entries.add(entry); - } - - } - - public long getSampleCount() { - return entries.size(); - } - - public boolean isDataOffsetPresent() { - return (getFlags() & 0x1) == 1; - } - - public boolean isFirstSampleFlagsPresent() { - return (getFlags() & 0x4) == 0x4; - } - - - public boolean isSampleSizePresent() { - return (getFlags() & 0x200) == 0x200; - } - - public boolean isSampleDurationPresent() { - return (getFlags() & 0x100) == 0x100; - } - - public boolean isSampleFlagsPresent() { - return (getFlags() & 0x400) == 0x400; - } - - public boolean isSampleCompositionTimeOffsetPresent() { - return (getFlags() & 0x800) == 0x800; - } - - public void setDataOffsetPresent(boolean v) { - if (v) { - setFlags(getFlags() | 0x01); - } else { - setFlags(getFlags() & (0xFFFFFF ^ 0x1)); - } - } - - public void setSampleSizePresent(boolean v) { - if (v) { - setFlags(getFlags() | 0x200); - } else { - setFlags(getFlags() & (0xFFFFFF ^ 0x200)); - } - } - - public void setSampleDurationPresent(boolean v) { - - if (v) { - setFlags(getFlags() | 0x100); - } else { - setFlags(getFlags() & (0xFFFFFF ^ 0x100)); - } - } - - public void setSampleFlagsPresent(boolean v) { - if (v) { - setFlags(getFlags() | 0x400); - } else { - setFlags(getFlags() & (0xFFFFFF ^ 0x400)); - } - } - - public void setSampleCompositionTimeOffsetPresent(boolean v) { - if (v) { - setFlags(getFlags() | 0x800); - } else { - setFlags(getFlags() & (0xFFFFFF ^ 0x800)); - } - - } - - public int getDataOffset() { - return dataOffset; - } - - public SampleFlags getFirstSampleFlags() { - return firstSampleFlags; - } - - public void setFirstSampleFlags(SampleFlags firstSampleFlags) { - if (firstSampleFlags == null) { - setFlags(getFlags() & (0xFFFFFF ^ 0x4)); - } else { - setFlags(getFlags() | 0x4); - } - this.firstSampleFlags = firstSampleFlags; - } - - @Override - public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("TrackRunBox"); - sb.append("{sampleCount=").append(entries.size()); - sb.append(", dataOffset=").append(dataOffset); - sb.append(", dataOffsetPresent=").append(isDataOffsetPresent()); - sb.append(", sampleSizePresent=").append(isSampleSizePresent()); - sb.append(", sampleDurationPresent=").append(isSampleDurationPresent()); - sb.append(", sampleFlagsPresentPresent=").append(isSampleFlagsPresent()); - sb.append(", sampleCompositionTimeOffsetPresent=").append(isSampleCompositionTimeOffsetPresent()); - sb.append(", firstSampleFlags=").append(firstSampleFlags); - sb.append('}'); - return sb.toString(); - } - - public void setEntries(List<Entry> entries) { - this.entries = entries; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/h264/.svn/all-wcprops b/isoparser/src/main/java/com/coremedia/iso/boxes/h264/.svn/all-wcprops deleted file mode 100644 index 15d84c0..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/h264/.svn/all-wcprops +++ /dev/null @@ -1,11 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 76 -/svn/!svn/ver/777/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/h264 -END -AvcConfigurationBox.java -K 25 -svn:wc:ra_dav:version-url -V 101 -/svn/!svn/ver/777/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/h264/AvcConfigurationBox.java -END diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/h264/.svn/entries b/isoparser/src/main/java/com/coremedia/iso/boxes/h264/.svn/entries deleted file mode 100644 index ccf8f72..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/h264/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -778 -http://mp4parser.googlecode.com/svn/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/h264 -http://mp4parser.googlecode.com/svn - - - -2012-09-10T14:56:10.036617Z -777 -sebastian.annies@gmail.com - - - - - - - - - - - - - - -7decde4b-c250-0410-a0da-51896bc88be6 - -AvcConfigurationBox.java -file - - - - -2012-09-14T17:27:52.727250Z -676ca6ae057828e6b82a8e4fa58caa3e -2012-09-10T14:56:10.036617Z -777 -sebastian.annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -15420 - diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/h264/.svn/text-base/AvcConfigurationBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/h264/.svn/text-base/AvcConfigurationBox.java.svn-base deleted file mode 100644 index 52f3695..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/h264/.svn/text-base/AvcConfigurationBox.java.svn-base +++ /dev/null @@ -1,378 +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.h264; - -import com.coremedia.iso.Hex; -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractBox; -import com.googlecode.mp4parser.boxes.mp4.objectdescriptors.BitReaderBuffer; -import com.googlecode.mp4parser.boxes.mp4.objectdescriptors.BitWriterBuffer; -import com.googlecode.mp4parser.h264.model.PictureParameterSet; -import com.googlecode.mp4parser.h264.model.SeqParameterSet; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.nio.ByteBuffer; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * Defined in ISO/IEC 14496-15:2004. - */ -public final class AvcConfigurationBox extends AbstractBox { - public static final String TYPE = "avcC"; - - public AVCDecoderConfigurationRecord avcDecoderConfigurationRecord = new AVCDecoderConfigurationRecord(); - - - public AvcConfigurationBox() { - super(TYPE); - } - - public int getConfigurationVersion() { - return avcDecoderConfigurationRecord.configurationVersion; - } - - public int getAvcProfileIndication() { - return avcDecoderConfigurationRecord.avcProfileIndication; - } - - public int getProfileCompatibility() { - return avcDecoderConfigurationRecord.profileCompatibility; - } - - public int getAvcLevelIndication() { - return avcDecoderConfigurationRecord.avcLevelIndication; - } - - public int getLengthSizeMinusOne() { - return avcDecoderConfigurationRecord.lengthSizeMinusOne; - } - - public List<byte[]> getSequenceParameterSets() { - return Collections.unmodifiableList(avcDecoderConfigurationRecord.sequenceParameterSets); - } - - public List<byte[]> getPictureParameterSets() { - return Collections.unmodifiableList(avcDecoderConfigurationRecord.pictureParameterSets); - } - - public void setConfigurationVersion(int configurationVersion) { - this.avcDecoderConfigurationRecord.configurationVersion = configurationVersion; - } - - public void setAvcProfileIndication(int avcProfileIndication) { - this.avcDecoderConfigurationRecord.avcProfileIndication = avcProfileIndication; - } - - public void setProfileCompatibility(int profileCompatibility) { - this.avcDecoderConfigurationRecord.profileCompatibility = profileCompatibility; - } - - public void setAvcLevelIndication(int avcLevelIndication) { - this.avcDecoderConfigurationRecord.avcLevelIndication = avcLevelIndication; - } - - public void setLengthSizeMinusOne(int lengthSizeMinusOne) { - this.avcDecoderConfigurationRecord.lengthSizeMinusOne = lengthSizeMinusOne; - } - - public void setSequenceParameterSets(List<byte[]> sequenceParameterSets) { - this.avcDecoderConfigurationRecord.sequenceParameterSets = sequenceParameterSets; - } - - public void setPictureParameterSets(List<byte[]> pictureParameterSets) { - this.avcDecoderConfigurationRecord.pictureParameterSets = pictureParameterSets; - } - - public int getChromaFormat() { - return avcDecoderConfigurationRecord.chromaFormat; - } - - public void setChromaFormat(int chromaFormat) { - this.avcDecoderConfigurationRecord.chromaFormat = chromaFormat; - } - - public int getBitDepthLumaMinus8() { - return avcDecoderConfigurationRecord.bitDepthLumaMinus8; - } - - public void setBitDepthLumaMinus8(int bitDepthLumaMinus8) { - this.avcDecoderConfigurationRecord.bitDepthLumaMinus8 = bitDepthLumaMinus8; - } - - public int getBitDepthChromaMinus8() { - return avcDecoderConfigurationRecord.bitDepthChromaMinus8; - } - - public void setBitDepthChromaMinus8(int bitDepthChromaMinus8) { - this.avcDecoderConfigurationRecord.bitDepthChromaMinus8 = bitDepthChromaMinus8; - } - - public List<byte[]> getSequenceParameterSetExts() { - return avcDecoderConfigurationRecord.sequenceParameterSetExts; - } - - public void setSequenceParameterSetExts(List<byte[]> sequenceParameterSetExts) { - this.avcDecoderConfigurationRecord.sequenceParameterSetExts = sequenceParameterSetExts; - } - - public boolean hasExts() { - return avcDecoderConfigurationRecord.hasExts; - } - - public void setHasExts(boolean hasExts) { - this.avcDecoderConfigurationRecord.hasExts = hasExts; - } - - @Override - public void _parseDetails(ByteBuffer content) { - avcDecoderConfigurationRecord = new AVCDecoderConfigurationRecord(content); - } - - - @Override - public long getContentSize() { - return avcDecoderConfigurationRecord.getContentSize(); - } - - - @Override - public void getContent(ByteBuffer byteBuffer) { - avcDecoderConfigurationRecord.getContent(byteBuffer); - } - - // just to display sps in isoviewer no practical use - public String[] getSPS() { - return avcDecoderConfigurationRecord.getSPS(); - } - - public String[] getPPS() { - return avcDecoderConfigurationRecord.getPPS(); - } - - public List<String> getSequenceParameterSetsAsStrings() { - return avcDecoderConfigurationRecord.getSequenceParameterSetsAsStrings(); - } - - public List<String> getSequenceParameterSetExtsAsStrings() { - return avcDecoderConfigurationRecord.getSequenceParameterSetExtsAsStrings(); - } - - public List<String> getPictureParameterSetsAsStrings() { - return avcDecoderConfigurationRecord.getPictureParameterSetsAsStrings(); - } - - public AVCDecoderConfigurationRecord getavcDecoderConfigurationRecord() { - return avcDecoderConfigurationRecord; - } - - - public static class AVCDecoderConfigurationRecord { - public int configurationVersion; - public int avcProfileIndication; - public int profileCompatibility; - public int avcLevelIndication; - public int lengthSizeMinusOne; - public List<byte[]> sequenceParameterSets = new ArrayList<byte[]>(); - public List<byte[]> pictureParameterSets = new ArrayList<byte[]>(); - - public boolean hasExts = true; - public int chromaFormat = 1; - public int bitDepthLumaMinus8 = 0; - public int bitDepthChromaMinus8 = 0; - public List<byte[]> sequenceParameterSetExts = new ArrayList<byte[]>(); - - /** - * Just for non-spec-conform encoders - */ - public int lengthSizeMinusOnePaddingBits = 60; - public int numberOfSequenceParameterSetsPaddingBits = 7; - public int chromaFormatPaddingBits = 31; - public int bitDepthLumaMinus8PaddingBits = 31; - public int bitDepthChromaMinus8PaddingBits = 31; - - public AVCDecoderConfigurationRecord() { - } - - public AVCDecoderConfigurationRecord(ByteBuffer content) { - configurationVersion = IsoTypeReader.readUInt8(content); - avcProfileIndication = IsoTypeReader.readUInt8(content); - profileCompatibility = IsoTypeReader.readUInt8(content); - avcLevelIndication = IsoTypeReader.readUInt8(content); - BitReaderBuffer brb = new BitReaderBuffer(content); - lengthSizeMinusOnePaddingBits = brb.readBits(6); - lengthSizeMinusOne = brb.readBits(2); - numberOfSequenceParameterSetsPaddingBits = brb.readBits(3); - int numberOfSeuqenceParameterSets = brb.readBits(5); - for (int i = 0; i < numberOfSeuqenceParameterSets; i++) { - int sequenceParameterSetLength = IsoTypeReader.readUInt16(content); - - byte[] sequenceParameterSetNALUnit = new byte[sequenceParameterSetLength]; - content.get(sequenceParameterSetNALUnit); - sequenceParameterSets.add(sequenceParameterSetNALUnit); - } - long numberOfPictureParameterSets = IsoTypeReader.readUInt8(content); - for (int i = 0; i < numberOfPictureParameterSets; i++) { - int pictureParameterSetLength = IsoTypeReader.readUInt16(content); - byte[] pictureParameterSetNALUnit = new byte[pictureParameterSetLength]; - content.get(pictureParameterSetNALUnit); - pictureParameterSets.add(pictureParameterSetNALUnit); - } - if (content.remaining() < 4) { - hasExts = false; - } - if (hasExts && (avcProfileIndication == 100 || avcProfileIndication == 110 || avcProfileIndication == 122 || avcProfileIndication == 144)) { - // actually only some bits are interesting so masking with & x would be good but not all Mp4 creating tools set the reserved bits to 1. - // So we need to store all bits - brb = new BitReaderBuffer(content); - chromaFormatPaddingBits = brb.readBits(6); - chromaFormat = brb.readBits(2); - bitDepthLumaMinus8PaddingBits = brb.readBits(5); - bitDepthLumaMinus8 = brb.readBits(3); - bitDepthChromaMinus8PaddingBits = brb.readBits(5); - bitDepthChromaMinus8 = brb.readBits(3); - long numOfSequenceParameterSetExt = IsoTypeReader.readUInt8(content); - for (int i = 0; i < numOfSequenceParameterSetExt; i++) { - int sequenceParameterSetExtLength = IsoTypeReader.readUInt16(content); - byte[] sequenceParameterSetExtNALUnit = new byte[sequenceParameterSetExtLength]; - content.get(sequenceParameterSetExtNALUnit); - sequenceParameterSetExts.add(sequenceParameterSetExtNALUnit); - } - } else { - chromaFormat = -1; - bitDepthLumaMinus8 = -1; - bitDepthChromaMinus8 = -1; - } - } - - public void getContent(ByteBuffer byteBuffer) { - IsoTypeWriter.writeUInt8(byteBuffer, configurationVersion); - IsoTypeWriter.writeUInt8(byteBuffer, avcProfileIndication); - IsoTypeWriter.writeUInt8(byteBuffer, profileCompatibility); - IsoTypeWriter.writeUInt8(byteBuffer, avcLevelIndication); - BitWriterBuffer bwb = new BitWriterBuffer(byteBuffer); - bwb.writeBits(lengthSizeMinusOnePaddingBits, 6); - bwb.writeBits(lengthSizeMinusOne, 2); - bwb.writeBits(numberOfSequenceParameterSetsPaddingBits, 3); - bwb.writeBits(pictureParameterSets.size(), 5); - for (byte[] sequenceParameterSetNALUnit : sequenceParameterSets) { - IsoTypeWriter.writeUInt16(byteBuffer, sequenceParameterSetNALUnit.length); - byteBuffer.put(sequenceParameterSetNALUnit); - } - IsoTypeWriter.writeUInt8(byteBuffer, pictureParameterSets.size()); - for (byte[] pictureParameterSetNALUnit : pictureParameterSets) { - IsoTypeWriter.writeUInt16(byteBuffer, pictureParameterSetNALUnit.length); - byteBuffer.put(pictureParameterSetNALUnit); - } - if (hasExts && (avcProfileIndication == 100 || avcProfileIndication == 110 || avcProfileIndication == 122 || avcProfileIndication == 144)) { - - bwb = new BitWriterBuffer(byteBuffer); - bwb.writeBits(chromaFormatPaddingBits, 6); - bwb.writeBits(chromaFormat, 2); - bwb.writeBits(bitDepthLumaMinus8PaddingBits, 5); - bwb.writeBits(bitDepthLumaMinus8, 3); - bwb.writeBits(bitDepthChromaMinus8PaddingBits, 5); - bwb.writeBits(bitDepthChromaMinus8, 3); - for (byte[] sequenceParameterSetExtNALUnit : sequenceParameterSetExts) { - IsoTypeWriter.writeUInt16(byteBuffer, sequenceParameterSetExtNALUnit.length); - byteBuffer.put(sequenceParameterSetExtNALUnit); - } - } - } - - public long getContentSize() { - long size = 5; - size += 1; // sequenceParamsetLength - for (byte[] sequenceParameterSetNALUnit : sequenceParameterSets) { - size += 2; //lengthSizeMinusOne field - size += sequenceParameterSetNALUnit.length; - } - size += 1; // pictureParamsetLength - for (byte[] pictureParameterSetNALUnit : pictureParameterSets) { - size += 2; //lengthSizeMinusOne field - size += pictureParameterSetNALUnit.length; - } - if (hasExts && (avcProfileIndication == 100 || avcProfileIndication == 110 || avcProfileIndication == 122 || avcProfileIndication == 144)) { - size += 4; - for (byte[] sequenceParameterSetExtNALUnit : sequenceParameterSetExts) { - size += 2; - size += sequenceParameterSetExtNALUnit.length; - } - } - - return size; - } - - public String[] getPPS() { - ArrayList<String> l = new ArrayList<String>(); - for (byte[] pictureParameterSet : pictureParameterSets) { - String details = "not parsable"; - try { - details = PictureParameterSet.read(pictureParameterSet).toString(); - } catch (IOException e) { - throw new RuntimeException(e); - } - - l.add(details); - } - return l.toArray(new String[l.size()]); - } - - public String[] getSPS() { - ArrayList<String> l = new ArrayList<String>(); - for (byte[] sequenceParameterSet : sequenceParameterSets) { - String detail = "not parsable"; - try { - detail = SeqParameterSet.read(new ByteArrayInputStream(sequenceParameterSet)).toString(); - } catch (IOException e) { - - } - l.add(detail); - } - return l.toArray(new String[l.size()]); - } - - public List<String> getSequenceParameterSetsAsStrings() { - List <String> result = new ArrayList<String>(sequenceParameterSets.size()); - for (byte[] parameterSet : sequenceParameterSets) { - result.add(Hex.encodeHex(parameterSet)); - } - return result; - } - - public List<String> getSequenceParameterSetExtsAsStrings() { - List <String> result = new ArrayList<String>(sequenceParameterSetExts.size()); - for (byte[] parameterSet : sequenceParameterSetExts) { - result.add(Hex.encodeHex(parameterSet)); - } - return result; - } - - public List<String> getPictureParameterSetsAsStrings() { - List <String> result = new ArrayList<String>(pictureParameterSets.size()); - for (byte[] parameterSet : pictureParameterSets) { - result.add(Hex.encodeHex(parameterSet)); - } - return result; - } - - } -} - diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/mdat/.svn/all-wcprops b/isoparser/src/main/java/com/coremedia/iso/boxes/mdat/.svn/all-wcprops deleted file mode 100644 index 238325a..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/mdat/.svn/all-wcprops +++ /dev/null @@ -1,23 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 76 -/svn/!svn/ver/772/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/mdat -END -MediaDataBox.java -K 25 -svn:wc:ra_dav:version-url -V 94 -/svn/!svn/ver/772/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/mdat/MediaDataBox.java -END -DummyMap.java -K 25 -svn:wc:ra_dav:version-url -V 90 -/svn/!svn/ver/377/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/mdat/DummyMap.java -END -SampleList.java -K 25 -svn:wc:ra_dav:version-url -V 92 -/svn/!svn/ver/671/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/mdat/SampleList.java -END diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/mdat/.svn/entries b/isoparser/src/main/java/com/coremedia/iso/boxes/mdat/.svn/entries deleted file mode 100644 index 7dc6a8e..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/mdat/.svn/entries +++ /dev/null @@ -1,130 +0,0 @@ -10 - -dir -778 -http://mp4parser.googlecode.com/svn/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/mdat -http://mp4parser.googlecode.com/svn - - - -2012-09-01T02:22:41.253285Z -772 -michael.stattmann@gmail.com - - - - - - - - - - - - - - -7decde4b-c250-0410-a0da-51896bc88be6 - -MediaDataBox.java -file - - - - -2012-09-14T17:27:52.567248Z -9805155611e85fdee88d368ada02bbdb -2012-09-01T02:22:41.253285Z -772 -michael.stattmann@gmail.com - - - - - - - - - - - - - - - - - - - - - -7442 - -DummyMap.java -file - - - - -2012-09-14T17:27:52.567248Z -911189888371eb0f2ae03f4e019d33c5 -2012-03-05T23:28:24.666173Z -377 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1722 - -SampleList.java -file - - - - -2012-09-14T17:27:52.567248Z -1986183baf9f90328a4a7131cf21897d -2012-06-10T18:50:38.971172Z -671 -michael.stattmann@gmail.com - - - - - - - - - - - - - - - - - - - - - -9770 - diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/mdat/.svn/text-base/DummyMap.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/mdat/.svn/text-base/DummyMap.java.svn-base deleted file mode 100644 index ab96023..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/mdat/.svn/text-base/DummyMap.java.svn-base +++ /dev/null @@ -1,84 +0,0 @@ -package com.coremedia.iso.boxes.mdat; - -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -/** - * A SortedSet that contains just one value. - */ -public class DummyMap<K, V> implements Map<K, V> { - HashSet<K> keys = new HashSet<K>(); - V value; - - public DummyMap(V value) { - this.value = value; - } - - public Comparator<? super K> comparator() { - return null; // I don't have any - } - - public void addKeys(K[] keys) { - Collections.addAll(this.keys, keys); - - } - - public int size() { - return keys.size(); - } - - public boolean isEmpty() { - return keys.isEmpty(); - } - - public boolean containsKey(Object key) { - return keys.contains(key); - } - - public boolean containsValue(Object value) { - return this.value == value; - } - - public V get(Object key) { - return keys.contains(key) ? value : null; - } - - public V put(K key, V value) { - assert this.value == value; - keys.add(key); - return this.value; - } - - public V remove(Object key) { - V v = get(key); - keys.remove(key); - return v; - } - - public void putAll(Map<? extends K, ? extends V> m) { - for (K k : m.keySet()) { - assert m.get(k) == value; - this.keys.add(k); - } - } - - public void clear() { - keys.clear(); - } - - public Set<K> keySet() { - return keys; - } - - public Collection<V> values() { - throw new UnsupportedOperationException(); - } - - public Set<Entry<K, V>> entrySet() { - throw new UnsupportedOperationException(); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/mdat/.svn/text-base/MediaDataBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/mdat/.svn/text-base/MediaDataBox.java.svn-base deleted file mode 100644 index 5075a15..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/mdat/.svn/text-base/MediaDataBox.java.svn-base +++ /dev/null @@ -1,189 +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.mdat; - -import com.coremedia.iso.BoxParser; -import com.coremedia.iso.ChannelHelper; -import com.coremedia.iso.boxes.Box; -import com.coremedia.iso.boxes.ContainerBox; -import com.googlecode.mp4parser.AbstractBox; - -import java.io.IOException; -import java.lang.ref.Reference; -import java.lang.ref.SoftReference; -import java.nio.ByteBuffer; -import java.nio.channels.FileChannel; -import java.nio.channels.ReadableByteChannel; -import java.nio.channels.WritableByteChannel; -import java.util.HashMap; -import java.util.Map; -import java.util.logging.Logger; - -import static com.googlecode.mp4parser.util.CastUtils.l2i; - -/** - * This box contains the media data. In video tracks, this box would contain video frames. A presentation may - * contain zero or more Media Data Boxes. The actual media data follows the type field; its structure is described - * by the metadata (see {@link com.coremedia.iso.boxes.SampleTableBox}).<br> - * In large presentations, it may be desirable to have more data in this box than a 32-bit size would permit. In this - * case, the large variant of the size field is used.<br> - * There may be any number of these boxes in the file (including zero, if all the media data is in other files). The - * metadata refers to media data by its absolute offset within the file (see {@link com.coremedia.iso.boxes.StaticChunkOffsetBox}); - * so Media Data Box headers and free space may easily be skipped, and files without any box structure may - * also be referenced and used. - */ -public final class MediaDataBox implements Box { - private static Logger LOG = Logger.getLogger(MediaDataBox.class.getName()); - - public static final String TYPE = "mdat"; - public static final int BUFFER_SIZE = 10 * 1024 * 1024; - ContainerBox parent; - - ByteBuffer header; - - // These fields are for the special case of a FileChannel as input. - private FileChannel fileChannel; - private long startPosition; - private long contentSize; - - - private Map<Long, Reference<ByteBuffer>> cache = new HashMap<Long, Reference<ByteBuffer>>(); - - - /** - * If the whole content is just in one mapped buffer keep a strong reference to it so it is - * not evicted from the cache. - */ - private ByteBuffer content; - - public ContainerBox getParent() { - return parent; - } - - public void setParent(ContainerBox parent) { - this.parent = parent; - } - - public String getType() { - return TYPE; - } - - private static void transfer(FileChannel from, long position, long count, WritableByteChannel to) throws IOException { - long maxCount = (64 * 1024 * 1024) - (32 * 1024); - // Transfer data in chunks a bit less than 64MB - // People state that this is a kind of magic number on Windows. - // I don't care. The size seems reasonable. - long offset = 0; - while (offset < count) { - offset += from.transferTo(position + offset, Math.min(maxCount, count - offset), to); - } - } - - public void getBox(WritableByteChannel writableByteChannel) throws IOException { - if (fileChannel != null) { - assert checkStillOk(); - transfer(fileChannel, startPosition - header.limit(), contentSize + header.limit(), writableByteChannel); - } else { - header.rewind(); - writableByteChannel.write(header); - writableByteChannel.write(content); - } - } - - /** - * If someone use the same file as source and sink it could the case that - * inserting a few bytes before the mdat results in overwrting data we still - * need to write this mdat here. This method just makes sure that we haven't already - * overwritten the mdat contents. - * - * @return true if ok - */ - private boolean checkStillOk() { - try { - fileChannel.position(startPosition - header.limit()); - ByteBuffer h2 = ByteBuffer.allocate(header.limit()); - fileChannel.read(h2); - header.rewind(); - h2.rewind(); - assert h2.equals(header) : "It seems that the content I want to read has already been overwritten."; - return true; - } catch (IOException e) { - e.printStackTrace(); - return false; - } - - } - - - public long getSize() { - long size = header.limit(); - size += contentSize; - return size; - } - - public void parse(ReadableByteChannel readableByteChannel, ByteBuffer header, long contentSize, BoxParser boxParser) throws IOException { - this.header = header; - this.contentSize = contentSize; - - if (readableByteChannel instanceof FileChannel && (contentSize > AbstractBox.MEM_MAP_THRESHOLD)) { - this.fileChannel = ((FileChannel) readableByteChannel); - this.startPosition = ((FileChannel) readableByteChannel).position(); - ((FileChannel) readableByteChannel).position(((FileChannel) readableByteChannel).position() + contentSize); - } else { - content = ChannelHelper.readFully(readableByteChannel, l2i(contentSize)); - cache.put(0l, new SoftReference<ByteBuffer>(content)); - } - } - - public synchronized ByteBuffer getContent(long offset, int length) { - - for (Long chacheEntryOffset : cache.keySet()) { - if (chacheEntryOffset <= offset && offset <= chacheEntryOffset + BUFFER_SIZE) { - ByteBuffer cacheEntry = cache.get(chacheEntryOffset).get(); - if ((cacheEntry != null) && ((chacheEntryOffset + cacheEntry.limit()) >= (offset + length))) { - // CACHE HIT - cacheEntry.position((int) (offset - chacheEntryOffset)); - ByteBuffer cachedSample = cacheEntry.slice(); - cachedSample.limit(length); - return cachedSample; - } - } - } - // CACHE MISS - ByteBuffer cacheEntry; - try { - // Just mapping 10MB at a time. Seems reasonable. - cacheEntry = fileChannel.map(FileChannel.MapMode.READ_ONLY, startPosition + offset, Math.min(BUFFER_SIZE, contentSize - offset)); - } catch (IOException e1) { - LOG.fine("Even mapping just 10MB of the source file into the memory failed. " + e1); - throw new RuntimeException( - "Delayed reading of mdat content failed. Make sure not to close " + - "the FileChannel that has been used to create the IsoFile!", e1); - } - cache.put(offset, new SoftReference<ByteBuffer>(cacheEntry)); - cacheEntry.position(0); - ByteBuffer cachedSample = cacheEntry.slice(); - cachedSample.limit(length); - return cachedSample; - } - - - public ByteBuffer getHeader() { - return header; - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/mdat/.svn/text-base/SampleList.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/mdat/.svn/text-base/SampleList.java.svn-base deleted file mode 100644 index a7f7b59..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/mdat/.svn/text-base/SampleList.java.svn-base +++ /dev/null @@ -1,227 +0,0 @@ -package com.coremedia.iso.boxes.mdat; - -import com.coremedia.iso.IsoFile; -import com.coremedia.iso.boxes.*; -import com.coremedia.iso.boxes.fragment.*; - -import java.nio.ByteBuffer; -import java.util.*; - -import static com.googlecode.mp4parser.util.CastUtils.l2i; - -/** - * Creates a list of <code>ByteBuffer</code>s that represent the samples of a given track. - */ -public class SampleList extends AbstractList<ByteBuffer> { - - - long[] offsets; - long[] sizes; - - IsoFile isoFile; - HashMap<MediaDataBox, Long> mdatStartCache = new HashMap<MediaDataBox, Long>(); - HashMap<MediaDataBox, Long> mdatEndCache = new HashMap<MediaDataBox, Long>(); - MediaDataBox[] mdats; - - /** - * Gets a sorted random access optimized list of all sample offsets. - * Basically it is a map from sample number to sample offset. - * - * @return the sorted list of sample offsets - */ - public long[] getOffsetKeys() { - return offsets; - } - - - public SampleList(TrackBox trackBox) { - initIsoFile(trackBox.getIsoFile()); // where are we? - - // first we get all sample from the 'normal' MP4 part. - // if there are none - no problem. - SampleSizeBox sampleSizeBox = trackBox.getSampleTableBox().getSampleSizeBox(); - ChunkOffsetBox chunkOffsetBox = trackBox.getSampleTableBox().getChunkOffsetBox(); - SampleToChunkBox sampleToChunkBox = trackBox.getSampleTableBox().getSampleToChunkBox(); - - - final long[] chunkOffsets = chunkOffsetBox != null ? chunkOffsetBox.getChunkOffsets() : new long[0]; - if (sampleToChunkBox != null && sampleToChunkBox.getEntries().size() > 0 && - chunkOffsets.length > 0 && sampleSizeBox != null && sampleSizeBox.getSampleCount() > 0) { - long[] numberOfSamplesInChunk = sampleToChunkBox.blowup(chunkOffsets.length); - - int sampleIndex = 0; - - if (sampleSizeBox.getSampleSize() > 0) { - sizes = new long[l2i(sampleSizeBox.getSampleCount())]; - Arrays.fill(sizes, sampleSizeBox.getSampleSize()); - } else { - sizes = sampleSizeBox.getSampleSizes(); - } - offsets = new long[sizes.length]; - - for (int i = 0; i < numberOfSamplesInChunk.length; i++) { - long thisChunksNumberOfSamples = numberOfSamplesInChunk[i]; - long sampleOffset = chunkOffsets[i]; - for (int j = 0; j < thisChunksNumberOfSamples; j++) { - long sampleSize = sizes[sampleIndex]; - offsets[sampleIndex] = sampleOffset; - sampleOffset += sampleSize; - sampleIndex++; - } - } - - } - - // Next we add all samples from the fragments - // in most cases - I've never seen it different it's either normal or fragmented. - List<MovieExtendsBox> movieExtendsBoxes = trackBox.getParent().getBoxes(MovieExtendsBox.class); - - if (movieExtendsBoxes.size() > 0) { - Map<Long, Long> offsets2Sizes = new HashMap<Long, Long>(); - List<TrackExtendsBox> trackExtendsBoxes = movieExtendsBoxes.get(0).getBoxes(TrackExtendsBox.class); - for (TrackExtendsBox trackExtendsBox : trackExtendsBoxes) { - if (trackExtendsBox.getTrackId() == trackBox.getTrackHeaderBox().getTrackId()) { - for (MovieFragmentBox movieFragmentBox : trackBox.getIsoFile().getBoxes(MovieFragmentBox.class)) { - offsets2Sizes.putAll(getOffsets(movieFragmentBox, trackBox.getTrackHeaderBox().getTrackId(), trackExtendsBox)); - } - } - } - - if (sizes == null || offsets == null) { - sizes = new long[0]; - offsets = new long[0]; - } - - splitToArrays(offsets2Sizes); - } - - // We have now a map from all sample offsets to their sizes - } - - private void splitToArrays(Map<Long, Long> offsets2Sizes) { - List<Long> keys = new ArrayList<Long>(offsets2Sizes.keySet()); - Collections.sort(keys); - - long[] nuSizes = new long[sizes.length + keys.size()]; - System.arraycopy(sizes, 0, nuSizes, 0, sizes.length); - long[] nuOffsets = new long[offsets.length + keys.size()]; - System.arraycopy(offsets, 0, nuOffsets, 0, offsets.length); - for (int i = 0; i < keys.size(); i++) { - nuOffsets[i + offsets.length] = keys.get(i); - nuSizes[i + sizes.length] = offsets2Sizes.get(keys.get(i)); - } - sizes = nuSizes; - offsets = nuOffsets; - } - - public SampleList(TrackFragmentBox traf) { - sizes = new long[0]; - offsets = new long[0]; - Map<Long, Long> offsets2Sizes = new HashMap<Long, Long>(); - initIsoFile(traf.getIsoFile()); - - final List<MovieFragmentBox> movieFragmentBoxList = isoFile.getBoxes(MovieFragmentBox.class); - - final long trackId = traf.getTrackFragmentHeaderBox().getTrackId(); - for (MovieFragmentBox moof : movieFragmentBoxList) { - final List<TrackFragmentHeaderBox> trackFragmentHeaderBoxes = moof.getTrackFragmentHeaderBoxes(); - for (TrackFragmentHeaderBox tfhd : trackFragmentHeaderBoxes) { - if (tfhd.getTrackId() == trackId) { - offsets2Sizes.putAll(getOffsets(moof, trackId, null)); - } - } - } - splitToArrays(offsets2Sizes); - } - - private void initIsoFile(IsoFile isoFile) { - this.isoFile = isoFile; - // find all mdats first to be able to use them later with explicitly looking them up - long currentOffset = 0; - LinkedList<MediaDataBox> mdats = new LinkedList<MediaDataBox>(); - for (Box b : this.isoFile.getBoxes()) { - long currentSize = b.getSize(); - if ("mdat".equals(b.getType())) { - if (b instanceof MediaDataBox) { - long contentOffset = currentOffset + ((MediaDataBox) b).getHeader().limit(); - mdatStartCache.put((MediaDataBox) b, contentOffset); - mdatEndCache.put((MediaDataBox) b, contentOffset + currentSize); - mdats.add((MediaDataBox) b); - } else { - throw new RuntimeException("Sample need to be in mdats and mdats need to be instanceof MediaDataBox"); - } - } - currentOffset += currentSize; - } - this.mdats = mdats.toArray(new MediaDataBox[mdats.size()]); - } - - - @Override - public int size() { - return sizes.length; - } - - - @Override - public ByteBuffer get(int index) { - // it is a two stage lookup: from index to offset to size - long offset = offsets[index]; - int sampleSize = l2i(sizes[index]); - - for (MediaDataBox mediaDataBox : mdats) { - long start = mdatStartCache.get(mediaDataBox); - long end = mdatEndCache.get(mediaDataBox); - if ((start <= offset) && (offset + sampleSize <= end)) { - return mediaDataBox.getContent(offset - start, sampleSize); - } - } - - throw new RuntimeException("The sample with offset " + offset + " and size " + sampleSize + " is NOT located within an mdat"); - } - - Map<Long, Long> getOffsets(MovieFragmentBox moof, long trackId, TrackExtendsBox trex) { - Map<Long, Long> offsets2Sizes = new HashMap<Long, Long>(); - List<TrackFragmentBox> traf = moof.getBoxes(TrackFragmentBox.class); - for (TrackFragmentBox trackFragmentBox : traf) { - if (trackFragmentBox.getTrackFragmentHeaderBox().getTrackId() == trackId) { - long baseDataOffset; - if (trackFragmentBox.getTrackFragmentHeaderBox().hasBaseDataOffset()) { - baseDataOffset = trackFragmentBox.getTrackFragmentHeaderBox().getBaseDataOffset(); - } else { - baseDataOffset = moof.getOffset(); - } - - for (TrackRunBox trun : trackFragmentBox.getBoxes(TrackRunBox.class)) { - long sampleBaseOffset = baseDataOffset + trun.getDataOffset(); - final TrackFragmentHeaderBox tfhd = ((TrackFragmentBox) trun.getParent()).getTrackFragmentHeaderBox(); - - long offset = 0; - for (TrackRunBox.Entry entry : trun.getEntries()) { - final long sampleSize; - if (trun.isSampleSizePresent()) { - sampleSize = entry.getSampleSize(); - offsets2Sizes.put(offset + sampleBaseOffset, sampleSize); - offset += sampleSize; - } else { - if (tfhd.hasDefaultSampleSize()) { - sampleSize = tfhd.getDefaultSampleSize(); - offsets2Sizes.put(offset + sampleBaseOffset, sampleSize); - offset += sampleSize; - } else { - if (trex == null) { - throw new RuntimeException("File doesn't contain trex box but track fragments aren't fully self contained. Cannot determine sample size."); - } - sampleSize = trex.getDefaultSampleSize(); - offsets2Sizes.put(offset + sampleBaseOffset, sampleSize); - offset += sampleSize; - } - } - } - } - } - } - return offsets2Sizes; - } - -}
\ No newline at end of file diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/all-wcprops b/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/all-wcprops deleted file mode 100644 index 8a5b647..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/all-wcprops +++ /dev/null @@ -1,53 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 83 -/svn/!svn/ver/757/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry -END -SubtitleSampleEntry.java -K 25 -svn:wc:ra_dav:version-url -V 108 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/SubtitleSampleEntry.java -END -Ovc1VisualSampleEntryImpl.java -K 25 -svn:wc:ra_dav:version-url -V 114 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/Ovc1VisualSampleEntryImpl.java -END -SampleEntry.java -K 25 -svn:wc:ra_dav:version-url -V 100 -/svn/!svn/ver/745/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/SampleEntry.java -END -AudioSampleEntry.java -K 25 -svn:wc:ra_dav:version-url -V 105 -/svn/!svn/ver/757/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/AudioSampleEntry.java -END -VisualSampleEntry.java -K 25 -svn:wc:ra_dav:version-url -V 106 -/svn/!svn/ver/745/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/VisualSampleEntry.java -END -TextSampleEntry.java -K 25 -svn:wc:ra_dav:version-url -V 104 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/TextSampleEntry.java -END -MpegSampleEntry.java -K 25 -svn:wc:ra_dav:version-url -V 104 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/MpegSampleEntry.java -END -AmrSpecificBox.java -K 25 -svn:wc:ra_dav:version-url -V 103 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/AmrSpecificBox.java -END diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/entries b/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/entries deleted file mode 100644 index 3891d06..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/entries +++ /dev/null @@ -1,300 +0,0 @@ -10 - -dir -778 -http://mp4parser.googlecode.com/svn/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry -http://mp4parser.googlecode.com/svn - - - -2012-08-17T05:55:12.215481Z -757 -michael.stattmann@gmail.com - - - - - - - - - - - - - - -7decde4b-c250-0410-a0da-51896bc88be6 - -SubtitleSampleEntry.java -file - - - - -2012-09-14T17:27:52.647249Z -a1d02883384ec405c3d62e1a4d157b5e -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2055 - -Ovc1VisualSampleEntryImpl.java -file - - - - -2012-09-14T17:27:52.647249Z -c92067b340193f4ffa776fd1e449dcf5 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1018 - -SampleEntry.java -file - - - - -2012-09-14T17:27:52.647249Z -8d726941a0af28eaa7b3cc9abcf4bd55 -2012-08-14T19:18:50.777750Z -745 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -5020 - -AudioSampleEntry.java -file - - - - -2012-09-14T17:27:52.647249Z -3ee1365e9bd772c4e77c3011765ae58a -2012-08-17T05:55:12.215481Z -757 -michael.stattmann@gmail.com - - - - - - - - - - - - - - - - - - - - - -8585 - -VisualSampleEntry.java -file - - - - -2012-09-14T17:27:52.647249Z -5616cce8d163f57f4e105fd3dbf34e61 -2012-08-14T19:18:50.777750Z -745 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -6899 - -TextSampleEntry.java -file - - - - -2012-09-14T17:27:52.647249Z -96794e77ef63fbcc1cb861b25ddbb784 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -9126 - -MpegSampleEntry.java -file - - - - -2012-09-14T17:27:52.647249Z -97170f2c4511a4f03915f73d5690cb4d -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1079 - -AmrSpecificBox.java -file - - - - -2012-09-14T17:27:52.647249Z -c306ac7445479a0a2642022bb8428d8f -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2974 - diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/AmrSpecificBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/AmrSpecificBox.java.svn-base deleted file mode 100644 index f69de7b..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/AmrSpecificBox.java.svn-base +++ /dev/null @@ -1,101 +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.IsoFile; -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.googlecode.mp4parser.AbstractBox; - -import java.nio.ByteBuffer; - -/** - * AMR audio format specific subbox of an audio sample entry. - * - * @see com.coremedia.iso.boxes.sampleentry.AudioSampleEntry - */ -public class AmrSpecificBox extends AbstractBox { - public static final String TYPE = "damr"; - - private String vendor; - private int decoderVersion; - private int modeSet; - private int modeChangePeriod; - private int framesPerSample; - - public AmrSpecificBox() { - super(TYPE); - } - - public String getVendor() { - return vendor; - } - - public int getDecoderVersion() { - return decoderVersion; - } - - public int getModeSet() { - return modeSet; - } - - public int getModeChangePeriod() { - return modeChangePeriod; - } - - public int getFramesPerSample() { - return framesPerSample; - } - - protected long getContentSize() { - return 9; - } - - @Override - public void _parseDetails(ByteBuffer content) { - byte[] v = new byte[4]; - content.get(v); - vendor = IsoFile.bytesToFourCC(v); - - decoderVersion = IsoTypeReader.readUInt8(content); - modeSet = IsoTypeReader.readUInt16(content); - modeChangePeriod = IsoTypeReader.readUInt8(content); - framesPerSample = IsoTypeReader.readUInt8(content); - - } - - - public void getContent(ByteBuffer byteBuffer) { - byteBuffer.put(IsoFile.fourCCtoBytes(vendor)); - IsoTypeWriter.writeUInt8(byteBuffer, decoderVersion); - IsoTypeWriter.writeUInt16(byteBuffer, modeSet); - IsoTypeWriter.writeUInt8(byteBuffer, modeChangePeriod); - IsoTypeWriter.writeUInt8(byteBuffer, framesPerSample); - } - - public String toString() { - StringBuilder buffer = new StringBuilder(); - buffer.append("AmrSpecificBox[vendor=").append(getVendor()); - buffer.append(";decoderVersion=").append(getDecoderVersion()); - buffer.append(";modeSet=").append(getModeSet()); - buffer.append(";modeChangePeriod=").append(getModeChangePeriod()); - buffer.append(";framesPerSample=").append(getFramesPerSample()); - buffer.append("]"); - return buffer.toString(); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/AudioSampleEntry.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/AudioSampleEntry.java.svn-base deleted file mode 100644 index 69aeb79..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/AudioSampleEntry.java.svn-base +++ /dev/null @@ -1,278 +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.BoxParser; -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.coremedia.iso.boxes.Box; -import com.coremedia.iso.boxes.ContainerBox; - -import java.nio.ByteBuffer; - -/** - * Contains basic information about the audio samples in this track. Format-specific information - * is appened as boxes after the data described in ISO/IEC 14496-12 chapter 8.16.2. - */ -public class AudioSampleEntry extends SampleEntry implements ContainerBox { - - public static final String TYPE1 = "samr"; - public static final String TYPE2 = "sawb"; - public static final String TYPE3 = "mp4a"; - public static final String TYPE4 = "drms"; - public static final String TYPE5 = "alac"; - public static final String TYPE7 = "owma"; - public static final String TYPE8 = "ac-3"; /* ETSI TS 102 366 1.2.1 Annex F */ - public static final String TYPE9 = "ec-3"; /* ETSI TS 102 366 1.2.1 Annex F */ - public static final String TYPE10 = "mlpa"; - public static final String TYPE11 = "dtsl"; - public static final String TYPE12 = "dtsh"; - public static final String TYPE13 = "dtse"; - - /** - * Identifier for an encrypted audio track. - * - * @see com.coremedia.iso.boxes.ProtectionSchemeInformationBox - */ - public static final String TYPE_ENCRYPTED = "enca"; - - private int channelCount; - private int sampleSize; - private long sampleRate; - private int soundVersion; - private int compressionId; - private int packetSize; - private long samplesPerPacket; - private long bytesPerPacket; - private long bytesPerFrame; - private long bytesPerSample; - - private int reserved1; - private long reserved2; - private byte[] soundVersion2Data; - private BoxParser boxParser; - - public AudioSampleEntry(String type) { - super(type); - } - - public int getChannelCount() { - return channelCount; - } - - public int getSampleSize() { - return sampleSize; - } - - public long getSampleRate() { - return sampleRate; - } - - public int getSoundVersion() { - return soundVersion; - } - - public int getCompressionId() { - return compressionId; - } - - public int getPacketSize() { - return packetSize; - } - - public long getSamplesPerPacket() { - return samplesPerPacket; - } - - public long getBytesPerPacket() { - return bytesPerPacket; - } - - public long getBytesPerFrame() { - return bytesPerFrame; - } - - public long getBytesPerSample() { - return bytesPerSample; - } - - public byte[] getSoundVersion2Data() { - return soundVersion2Data; - } - - public int getReserved1() { - return reserved1; - } - - public long getReserved2() { - return reserved2; - } - - public void setChannelCount(int channelCount) { - this.channelCount = channelCount; - } - - public void setSampleSize(int sampleSize) { - this.sampleSize = sampleSize; - } - - public void setSampleRate(long sampleRate) { - this.sampleRate = sampleRate; - } - - public void setSoundVersion(int soundVersion) { - this.soundVersion = soundVersion; - } - - public void setCompressionId(int compressionId) { - this.compressionId = compressionId; - } - - public void setPacketSize(int packetSize) { - this.packetSize = packetSize; - } - - public void setSamplesPerPacket(long samplesPerPacket) { - this.samplesPerPacket = samplesPerPacket; - } - - public void setBytesPerPacket(long bytesPerPacket) { - this.bytesPerPacket = bytesPerPacket; - } - - public void setBytesPerFrame(long bytesPerFrame) { - this.bytesPerFrame = bytesPerFrame; - } - - public void setBytesPerSample(long bytesPerSample) { - this.bytesPerSample = bytesPerSample; - } - - public void setReserved1(int reserved1) { - this.reserved1 = reserved1; - } - - public void setReserved2(long reserved2) { - this.reserved2 = reserved2; - } - - public void setSoundVersion2Data(byte[] soundVersion2Data) { - this.soundVersion2Data = soundVersion2Data; - } - - public void setBoxParser(BoxParser boxParser) { - this.boxParser = boxParser; - } - - @Override - public void _parseDetails(ByteBuffer content) { - _parseReservedAndDataReferenceIndex(content); //parses the six reserved bytes and dataReferenceIndex - // 8 bytes already parsed - //reserved bits - used by qt - soundVersion = IsoTypeReader.readUInt16(content); - - //reserved - reserved1 = IsoTypeReader.readUInt16(content); - reserved2 = IsoTypeReader.readUInt32(content); - - channelCount = IsoTypeReader.readUInt16(content); - sampleSize = IsoTypeReader.readUInt16(content); - //reserved bits - used by qt - compressionId = IsoTypeReader.readUInt16(content); - //reserved bits - used by qt - packetSize = IsoTypeReader.readUInt16(content); - //sampleRate = in.readFixedPoint1616(); - sampleRate = IsoTypeReader.readUInt32(content); - if (!type.equals("mlpa")) { - sampleRate = sampleRate >>> 16; - } - - //more qt stuff - see http://mp4v2.googlecode.com/svn-history/r388/trunk/src/atom_sound.cpp - if (soundVersion > 0) { - samplesPerPacket = IsoTypeReader.readUInt32(content); - bytesPerPacket = IsoTypeReader.readUInt32(content); - bytesPerFrame = IsoTypeReader.readUInt32(content); - bytesPerSample = IsoTypeReader.readUInt32(content); - } - if (soundVersion == 2) { - - soundVersion2Data = new byte[20]; - content.get(20); - } - _parseChildBoxes(content); - - } - - - @Override - protected long getContentSize() { - long contentSize = 28; - contentSize += soundVersion > 0 ? 16 : 0; - contentSize += soundVersion == 2 ? 20 : 0; - for (Box boxe : boxes) { - contentSize += boxe.getSize(); - } - return contentSize; - } - - @Override - public String toString() { - return "AudioSampleEntry{" + - "bytesPerSample=" + bytesPerSample + - ", bytesPerFrame=" + bytesPerFrame + - ", bytesPerPacket=" + bytesPerPacket + - ", samplesPerPacket=" + samplesPerPacket + - ", packetSize=" + packetSize + - ", compressionId=" + compressionId + - ", soundVersion=" + soundVersion + - ", sampleRate=" + sampleRate + - ", sampleSize=" + sampleSize + - ", channelCount=" + channelCount + - ", boxes=" + getBoxes() + - '}'; - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - _writeReservedAndDataReferenceIndex(byteBuffer); - IsoTypeWriter.writeUInt16(byteBuffer, soundVersion); - IsoTypeWriter.writeUInt16(byteBuffer, reserved1); - IsoTypeWriter.writeUInt32(byteBuffer, reserved2); - IsoTypeWriter.writeUInt16(byteBuffer, channelCount); - IsoTypeWriter.writeUInt16(byteBuffer, sampleSize); - IsoTypeWriter.writeUInt16(byteBuffer, compressionId); - IsoTypeWriter.writeUInt16(byteBuffer, packetSize); - //isos.writeFixedPont1616(getSampleRate()); - if (type.equals("mlpa")) { - IsoTypeWriter.writeUInt32(byteBuffer, getSampleRate()); - } else { - IsoTypeWriter.writeUInt32(byteBuffer, getSampleRate() << 16); - } - - if (soundVersion > 0) { - IsoTypeWriter.writeUInt32(byteBuffer, samplesPerPacket); - IsoTypeWriter.writeUInt32(byteBuffer, bytesPerPacket); - IsoTypeWriter.writeUInt32(byteBuffer, bytesPerFrame); - IsoTypeWriter.writeUInt32(byteBuffer, bytesPerSample); - } - - if (soundVersion == 2) { - byteBuffer.put(soundVersion2Data); - } - _writeChildBoxes(byteBuffer); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/MpegSampleEntry.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/MpegSampleEntry.java.svn-base deleted file mode 100644 index e4a33dc..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/MpegSampleEntry.java.svn-base +++ /dev/null @@ -1,43 +0,0 @@ -package com.coremedia.iso.boxes.sampleentry;
-
-import com.coremedia.iso.BoxParser;
-import com.coremedia.iso.boxes.Box;
-import com.coremedia.iso.boxes.ContainerBox;
-
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-
-public class MpegSampleEntry extends SampleEntry implements ContainerBox {
-
- private BoxParser boxParser;
-
- public MpegSampleEntry(String type) {
- super(type);
- }
-
- @Override
- public void _parseDetails(ByteBuffer content) {
- _parseReservedAndDataReferenceIndex(content);
- _parseChildBoxes(content);
-
- }
-
- @Override
- protected long getContentSize() {
- long contentSize = 8;
- for (Box boxe : boxes) {
- contentSize += boxe.getSize();
- }
- return contentSize;
- }
-
- public String toString() {
- return "MpegSampleEntry" + Arrays.asList(getBoxes());
- }
-
- @Override
- protected void getContent(ByteBuffer byteBuffer) {
- _writeReservedAndDataReferenceIndex(byteBuffer);
- _writeChildBoxes(byteBuffer);
- }
-}
diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/Ovc1VisualSampleEntryImpl.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/Ovc1VisualSampleEntryImpl.java.svn-base deleted file mode 100644 index 56b8adb..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/Ovc1VisualSampleEntryImpl.java.svn-base +++ /dev/null @@ -1,45 +0,0 @@ -package com.coremedia.iso.boxes.sampleentry; - -import com.coremedia.iso.IsoTypeWriter; -import com.coremedia.iso.boxes.Box; - -import java.nio.ByteBuffer; - - -public class Ovc1VisualSampleEntryImpl extends SampleEntry { - private byte[] vc1Content; - public static final String TYPE = "ovc1"; - - - @Override - protected long getContentSize() { - long size = 8; - - for (Box box : boxes) { - size += box.getSize(); - } - size += vc1Content.length; - return size; - } - - @Override - public void _parseDetails(ByteBuffer content) { - _parseReservedAndDataReferenceIndex(content); - vc1Content = new byte[content.remaining()]; - content.get(vc1Content); - - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - byteBuffer.put(new byte[6]); - IsoTypeWriter.writeUInt16(byteBuffer, getDataReferenceIndex()); - byteBuffer.put(vc1Content); - } - - - protected Ovc1VisualSampleEntryImpl() { - super(TYPE); - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/SampleEntry.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/SampleEntry.java.svn-base deleted file mode 100644 index a1a5486..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/SampleEntry.java.svn-base +++ /dev/null @@ -1,159 +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.BoxParser; -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -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.ByteArrayOutputStream; -import java.io.IOException; -import java.nio.ByteBuffer; -import java.nio.channels.Channels; -import java.nio.channels.ReadableByteChannel; -import java.nio.channels.WritableByteChannel; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; - -/** - * Abstract base class for all sample entries. - * - * @see com.coremedia.iso.boxes.sampleentry.AudioSampleEntry - * @see com.coremedia.iso.boxes.sampleentry.VisualSampleEntry - * @see com.coremedia.iso.boxes.sampleentry.TextSampleEntry - */ -public abstract class SampleEntry extends AbstractBox implements ContainerBox { - - - private int dataReferenceIndex = 1; - protected List<Box> boxes = new LinkedList<Box>(); - private BoxParser boxParser; - - - protected SampleEntry(String type) { - super(type); - } - - public void setType(String type) { - this.type = type; - } - - public int getDataReferenceIndex() { - return dataReferenceIndex; - } - - public void setDataReferenceIndex(int dataReferenceIndex) { - this.dataReferenceIndex = dataReferenceIndex; - } - - public void setBoxes(List<Box> boxes) { - this.boxes = new LinkedList<Box>(boxes); - } - - public void addBox(Box b) { - b.setParent(this); - boxes.add(b); - } - - public boolean removeBox(Box b) { - b.setParent(this); - return boxes.remove(b); - } - - public List<Box> getBoxes() { - return boxes; - } - - @SuppressWarnings("unchecked") - public <T extends Box> List<T> getBoxes(Class<T> clazz, boolean recursive) { - List<T> boxesToBeReturned = new ArrayList<T>(2); - for (Box boxe : boxes) { //clazz.isInstance(boxe) / clazz == boxe.getClass()? - if (clazz == boxe.getClass()) { - boxesToBeReturned.add((T) boxe); - } - - if (recursive && boxe instanceof ContainerBox) { - boxesToBeReturned.addAll(((ContainerBox) boxe).getBoxes(clazz, recursive)); - } - } - // Optimize here! Spare object creation work on arrays directly! System.arrayCopy - return boxesToBeReturned; - //return (T[]) boxesToBeReturned.toArray(); - } - - @SuppressWarnings("unchecked") - public <T extends Box> List<T> getBoxes(Class<T> clazz) { - return getBoxes(clazz, false); - } - - @Override - public void parse(ReadableByteChannel readableByteChannel, ByteBuffer header, long contentSize, BoxParser boxParser) throws IOException { - super.parse(readableByteChannel, header, contentSize, boxParser); - this.boxParser = boxParser; - } - - - public void _parseReservedAndDataReferenceIndex(ByteBuffer content) { - content.get(new byte[6]); // ignore 6 reserved bytes; - dataReferenceIndex = IsoTypeReader.readUInt16(content); - } - - public void _parseChildBoxes(ByteBuffer content) { - while (content.remaining() > 8) { - try { - boxes.add(boxParser.parseBox(new ByteBufferByteChannel(content), this)); - } catch (IOException e) { - throw new RuntimeException(e); - } - - } - setDeadBytes(content.slice()); - } - - public void _writeReservedAndDataReferenceIndex(ByteBuffer bb) { - bb.put(new byte[6]); - IsoTypeWriter.writeUInt16(bb, dataReferenceIndex); - } - - public void _writeChildBoxes(ByteBuffer bb) { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - WritableByteChannel wbc = Channels.newChannel(baos); - try { - for (Box box : boxes) { - box.getBox(wbc); - } - wbc.close(); - } catch (IOException e) { - throw new RuntimeException("Cannot happen. Everything should be in memory and therefore no exceptions."); - } - bb.put(baos.toByteArray()); - } - - public long getNumOfBytesToFirstChild() { - long sizeOfChildren = 0; - for (Box box : boxes) { - sizeOfChildren += box.getSize(); - } - return getSize() - sizeOfChildren; - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/SubtitleSampleEntry.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/SubtitleSampleEntry.java.svn-base deleted file mode 100644 index 21d0cc4..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/SubtitleSampleEntry.java.svn-base +++ /dev/null @@ -1,76 +0,0 @@ -package com.coremedia.iso.boxes.sampleentry; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; - -import java.nio.ByteBuffer; - -/** - * Created by IntelliJ IDEA. - * User: magnus - * Date: 2012-03-08 - * Time: 11:36 - * To change this template use File | Settings | File Templates. - */ -public class SubtitleSampleEntry extends SampleEntry { - - public static final String TYPE1 = "stpp"; - - public static final String TYPE_ENCRYPTED = ""; // This is not known! - - private String namespace; - private String schemaLocation; - private String imageMimeType; - - public SubtitleSampleEntry(String type) { - super(type); - } - - @Override - protected long getContentSize() { - long contentSize = 8 + namespace.length() + schemaLocation.length() + imageMimeType.length() + 3; - return contentSize; - } - - @Override - public void _parseDetails(ByteBuffer content) { - _parseReservedAndDataReferenceIndex(content); - namespace = IsoTypeReader.readString(content); - schemaLocation = IsoTypeReader.readString(content); - imageMimeType = IsoTypeReader.readString(content); - _parseChildBoxes(content); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - _writeReservedAndDataReferenceIndex(byteBuffer); - IsoTypeWriter.writeUtf8String(byteBuffer, namespace); - IsoTypeWriter.writeUtf8String(byteBuffer, schemaLocation); - IsoTypeWriter.writeUtf8String(byteBuffer, imageMimeType); - } - - public String getNamespace() { - return namespace; - } - - public void setNamespace(String namespace) { - this.namespace = namespace; - } - - public String getSchemaLocation() { - return schemaLocation; - } - - public void setSchemaLocation(String schemaLocation) { - this.schemaLocation = schemaLocation; - } - - public String getImageMimeType() { - return imageMimeType; - } - - public void setImageMimeType(String imageMimeType) { - this.imageMimeType = imageMimeType; - } -} - diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/TextSampleEntry.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/TextSampleEntry.java.svn-base deleted file mode 100644 index 3a0b83a..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/.svn/text-base/TextSampleEntry.java.svn-base +++ /dev/null @@ -1,305 +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.boxes.Box; - -import java.io.IOException; -import java.nio.ByteBuffer; - -/** - * Entry type for timed text samples defined in the timed text specification (ISO/IEC 14496-17). - */ -public class TextSampleEntry extends SampleEntry { - - public static final String TYPE1 = "tx3g"; - - public static final String TYPE_ENCRYPTED = "enct"; - -/* class TextSampleEntry() extends SampleEntry ('tx3g') { - unsigned int(32) displayFlags; - signed int(8) horizontal-justification; - signed int(8) vertical-justification; - unsigned int(8) background-color-rgba[4]; - BoxRecord default-text-box; - StyleRecord default-style; - FontTableBox font-table; - } - */ - - private long displayFlags; // 32 bits - private int horizontalJustification; // 8 bit - private int verticalJustification; // 8 bit - private int[] backgroundColorRgba = new int[4]; // 4 bytes - private BoxRecord boxRecord = new BoxRecord(); - private StyleRecord styleRecord = new StyleRecord(); - - public TextSampleEntry(String type) { - super(type); - } - - @Override - public void _parseDetails(ByteBuffer content) { - _parseReservedAndDataReferenceIndex(content); - displayFlags = IsoTypeReader.readUInt32(content); - horizontalJustification = IsoTypeReader.readUInt8(content); - verticalJustification = IsoTypeReader.readUInt8(content); - backgroundColorRgba = new int[4]; - backgroundColorRgba[0] = IsoTypeReader.readUInt8(content); - backgroundColorRgba[1] = IsoTypeReader.readUInt8(content); - backgroundColorRgba[2] = IsoTypeReader.readUInt8(content); - backgroundColorRgba[3] = IsoTypeReader.readUInt8(content); - boxRecord = new BoxRecord(); - boxRecord.parse(content); - - styleRecord = new StyleRecord(); - styleRecord.parse(content); - _parseChildBoxes(content); - } - - - protected long getContentSize() { - long contentSize = 18; - contentSize += boxRecord.getSize(); - contentSize += styleRecord.getSize(); - for (Box boxe : boxes) { - contentSize += boxe.getSize(); - } - return contentSize; - } - - public String toString() { - return "TextSampleEntry"; - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - _writeReservedAndDataReferenceIndex(byteBuffer); - IsoTypeWriter.writeUInt32(byteBuffer, displayFlags); - IsoTypeWriter.writeUInt8(byteBuffer, horizontalJustification); - IsoTypeWriter.writeUInt8(byteBuffer, verticalJustification); - IsoTypeWriter.writeUInt8(byteBuffer, backgroundColorRgba[0]); - IsoTypeWriter.writeUInt8(byteBuffer, backgroundColorRgba[1]); - IsoTypeWriter.writeUInt8(byteBuffer, backgroundColorRgba[2]); - IsoTypeWriter.writeUInt8(byteBuffer, backgroundColorRgba[3]); - boxRecord.getContent(byteBuffer); - styleRecord.getContent(byteBuffer); - - _writeChildBoxes(byteBuffer); - } - - public BoxRecord getBoxRecord() { - return boxRecord; - } - - public void setBoxRecord(BoxRecord boxRecord) { - this.boxRecord = boxRecord; - } - - public StyleRecord getStyleRecord() { - return styleRecord; - } - - public void setStyleRecord(StyleRecord styleRecord) { - this.styleRecord = styleRecord; - } - - public boolean isScrollIn() { - return (displayFlags & 0x00000020) == 0x00000020; - } - - public void setScrollIn(boolean scrollIn) { - if (scrollIn) { - displayFlags |= 0x00000020; - } else { - displayFlags &= ~0x00000020; - } - } - - public boolean isScrollOut() { - return (displayFlags & 0x00000040) == 0x00000040; - } - - public void setScrollOut(boolean scrollOutIn) { - if (scrollOutIn) { - displayFlags |= 0x00000040; - } else { - displayFlags &= ~0x00000040; - } - } - - public boolean isScrollDirection() { - return (displayFlags & 0x00000180) == 0x00000180; - } - - public void setScrollDirection(boolean scrollOutIn) { - if (scrollOutIn) { - displayFlags |= 0x00000180; - } else { - displayFlags &= ~0x00000180; - } - } - - public boolean isContinuousKaraoke() { - return (displayFlags & 0x00000800) == 0x00000800; - } - - public void setContinuousKaraoke(boolean continuousKaraoke) { - if (continuousKaraoke) { - displayFlags |= 0x00000800; - } else { - displayFlags &= ~0x00000800; - } - } - - public boolean isWriteTextVertically() { - return (displayFlags & 0x00020000) == 0x00020000; - } - - public void setWriteTextVertically(boolean writeTextVertically) { - if (writeTextVertically) { - displayFlags |= 0x00020000; - } else { - displayFlags &= ~0x00020000; - } - } - - - public boolean isFillTextRegion() { - return (displayFlags & 0x00040000) == 0x00040000; - } - - public void setFillTextRegion(boolean fillTextRegion) { - if (fillTextRegion) { - displayFlags |= 0x00040000; - } else { - displayFlags &= ~0x00040000; - } - } - - - public int getHorizontalJustification() { - return horizontalJustification; - } - - public void setHorizontalJustification(int horizontalJustification) { - this.horizontalJustification = horizontalJustification; - } - - public int getVerticalJustification() { - return verticalJustification; - } - - public void setVerticalJustification(int verticalJustification) { - this.verticalJustification = verticalJustification; - } - - public int[] getBackgroundColorRgba() { - return backgroundColorRgba; - } - - public void setBackgroundColorRgba(int[] backgroundColorRgba) { - this.backgroundColorRgba = backgroundColorRgba; - } - - public static class BoxRecord { - int top; - int left; - int bottom; - int right; - - public void parse(ByteBuffer in) { - top = IsoTypeReader.readUInt16(in); - left = IsoTypeReader.readUInt16(in); - bottom = IsoTypeReader.readUInt16(in); - right = IsoTypeReader.readUInt16(in); - } - - public void getContent(ByteBuffer bb) { - IsoTypeWriter.writeUInt16(bb, top); - IsoTypeWriter.writeUInt16(bb, left); - IsoTypeWriter.writeUInt16(bb, bottom); - IsoTypeWriter.writeUInt16(bb, right); - } - - public int getSize() { - return 8; - } - } - - /* - class FontRecord { - unsigned int(16) font-ID; - unsigned int(8) font-name-length; - unsigned int(8) font[font-name-length]; -} - */ - - - /* - aligned(8) class StyleRecord { - unsigned int(16) startChar; - unsigned int(16) endChar; - unsigned int(16) font-ID; - unsigned int(8) face-style-flags; - unsigned int(8) font-size; - unsigned int(8) text-color-rgba[4]; -} - */ - public static class StyleRecord { - int startChar; - int endChar; - int fontId; - int faceStyleFlags; - int fontSize; - int[] textColor = new int[]{0xff, 0xff, 0xff, 0xff}; - - public void parse(ByteBuffer in) { - startChar = IsoTypeReader.readUInt16(in); - endChar = IsoTypeReader.readUInt16(in); - fontId = IsoTypeReader.readUInt16(in); - faceStyleFlags = IsoTypeReader.readUInt8(in); - fontSize = IsoTypeReader.readUInt8(in); - textColor = new int[4]; - textColor[0] = IsoTypeReader.readUInt8(in); - textColor[1] = IsoTypeReader.readUInt8(in); - textColor[2] = IsoTypeReader.readUInt8(in); - textColor[3] = IsoTypeReader.readUInt8(in); - } - - - public void getContent(ByteBuffer bb) { - IsoTypeWriter.writeUInt16(bb, startChar); - IsoTypeWriter.writeUInt16(bb, endChar); - IsoTypeWriter.writeUInt16(bb, fontId); - IsoTypeWriter.writeUInt8(bb, faceStyleFlags); - IsoTypeWriter.writeUInt8(bb, fontSize); - IsoTypeWriter.writeUInt8(bb, textColor[0]); - IsoTypeWriter.writeUInt8(bb, textColor[1]); - IsoTypeWriter.writeUInt8(bb, textColor[2]); - IsoTypeWriter.writeUInt8(bb, textColor[3]); - } - - public int getSize() { - return 12; - } - } - - -} 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); - - } - -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/threegpp26244/.svn/all-wcprops b/isoparser/src/main/java/com/coremedia/iso/boxes/threegpp26244/.svn/all-wcprops deleted file mode 100644 index da12da8..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/threegpp26244/.svn/all-wcprops +++ /dev/null @@ -1,11 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 85 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/threegpp26244 -END -LocationInformationBox.java -K 25 -svn:wc:ra_dav:version-url -V 113 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/threegpp26244/LocationInformationBox.java -END diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/threegpp26244/.svn/entries b/isoparser/src/main/java/com/coremedia/iso/boxes/threegpp26244/.svn/entries deleted file mode 100644 index b3a35ea..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/threegpp26244/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -778 -http://mp4parser.googlecode.com/svn/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/threegpp26244 -http://mp4parser.googlecode.com/svn - - - -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - -7decde4b-c250-0410-a0da-51896bc88be6 - -LocationInformationBox.java -file - - - - -2012-09-14T17:27:52.867252Z -e71dfcd8b93af51a55331fb161d8cb88 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -3428 - diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/threegpp26244/.svn/text-base/LocationInformationBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/threegpp26244/.svn/text-base/LocationInformationBox.java.svn-base deleted file mode 100644 index 089d97b..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/threegpp26244/.svn/text-base/LocationInformationBox.java.svn-base +++ /dev/null @@ -1,126 +0,0 @@ -package com.coremedia.iso.boxes.threegpp26244; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.coremedia.iso.Utf8; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * Location Information Box as specified in TS 26.244. - */ -public class LocationInformationBox extends AbstractFullBox { - public static final String TYPE = "loci"; - - private String language; - private String name = ""; - private int role; - private double longitude; - private double latitude; - private double altitude; - private String astronomicalBody = ""; - private String additionalNotes = ""; - - public LocationInformationBox() { - super(TYPE); - } - - public String getLanguage() { - return language; - } - - public void setLanguage(String language) { - this.language = language; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getRole() { - return role; - } - - public void setRole(int role) { - this.role = role; - } - - public double getLongitude() { - return longitude; - } - - public void setLongitude(double longitude) { - this.longitude = longitude; - } - - public double getLatitude() { - return latitude; - } - - public void setLatitude(double latitude) { - this.latitude = latitude; - } - - public double getAltitude() { - return altitude; - } - - public void setAltitude(double altitude) { - this.altitude = altitude; - } - - public String getAstronomicalBody() { - return astronomicalBody; - } - - public void setAstronomicalBody(String astronomicalBody) { - this.astronomicalBody = astronomicalBody; - } - - public String getAdditionalNotes() { - return additionalNotes; - } - - public void setAdditionalNotes(String additionalNotes) { - this.additionalNotes = additionalNotes; - } - - protected long getContentSize() { - return 22 + Utf8.convert(name).length + Utf8.convert(astronomicalBody).length + Utf8.convert(additionalNotes).length; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - language = IsoTypeReader.readIso639(content); - name = IsoTypeReader.readString(content); - role = IsoTypeReader.readUInt8(content); - longitude = IsoTypeReader.readFixedPoint1616(content); - latitude = IsoTypeReader.readFixedPoint1616(content); - altitude = IsoTypeReader.readFixedPoint1616(content); - astronomicalBody = IsoTypeReader.readString(content); - additionalNotes = IsoTypeReader.readString(content); - } - - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeIso639(byteBuffer, language); - byteBuffer.put(Utf8.convert(name)); - byteBuffer.put((byte) 0); - IsoTypeWriter.writeUInt8(byteBuffer, role); - IsoTypeWriter.writeFixedPont1616(byteBuffer, longitude); - IsoTypeWriter.writeFixedPont1616(byteBuffer, latitude); - IsoTypeWriter.writeFixedPont1616(byteBuffer, altitude); - byteBuffer.put(Utf8.convert(astronomicalBody)); - byteBuffer.put((byte) 0); - byteBuffer.put(Utf8.convert(additionalNotes)); - byteBuffer.put((byte) 0); - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/.svn/all-wcprops b/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/.svn/all-wcprops deleted file mode 100644 index b46dee4..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/.svn/all-wcprops +++ /dev/null @@ -1,29 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 80 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone -END -AlbumArtistBox.java -K 25 -svn:wc:ra_dav:version-url -V 100 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/AlbumArtistBox.java -END -CoverUriBox.java -K 25 -svn:wc:ra_dav:version-url -V 97 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/CoverUriBox.java -END -ContentDistributorIdBox.java -K 25 -svn:wc:ra_dav:version-url -V 109 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/ContentDistributorIdBox.java -END -LyricsUriBox.java -K 25 -svn:wc:ra_dav:version-url -V 98 -/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/LyricsUriBox.java -END diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/.svn/entries b/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/.svn/entries deleted file mode 100644 index 15f0da6..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/.svn/entries +++ /dev/null @@ -1,164 +0,0 @@ -10 - -dir -778 -http://mp4parser.googlecode.com/svn/trunk/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone -http://mp4parser.googlecode.com/svn - - - -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - -7decde4b-c250-0410-a0da-51896bc88be6 - -AlbumArtistBox.java -file - - - - -2012-09-14T17:27:52.067241Z -973d28c2a51998190028321bb407ac03 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2322 - -CoverUriBox.java -file - - - - -2012-09-14T17:27:52.067241Z -142d0171f6ace065d723ff0f1ca68101 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1753 - -ContentDistributorIdBox.java -file - - - - -2012-09-14T17:27:52.067241Z -5e3e0bf310b779bd3c23bf4a100f1dc8 -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -2091 - -LyricsUriBox.java -file - - - - -2012-09-14T17:27:52.067241Z -7aebcd173c05102c97a5bb61874f260d -2012-04-21T22:05:38.425329Z -507 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - - - - - - - - -1873 - diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/.svn/text-base/AlbumArtistBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/.svn/text-base/AlbumArtistBox.java.svn-base deleted file mode 100644 index aba12a4..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/.svn/text-base/AlbumArtistBox.java.svn-base +++ /dev/null @@ -1,78 +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.vodafone; - - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.coremedia.iso.Utf8; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * Special box used by Vodafone in their DCF containing information about the artist. Mainly used for OMA DCF files - * containing music. Resides in the {@link com.coremedia.iso.boxes.UserDataBox}. - */ -public class AlbumArtistBox extends AbstractFullBox { - public static final String TYPE = "albr"; - - private String language; - private String albumArtist; - - public AlbumArtistBox() { - super(TYPE); - } - - public String getLanguage() { - return language; - } - - public String getAlbumArtist() { - return albumArtist; - } - - public void setLanguage(String language) { - this.language = language; - } - - public void setAlbumArtist(String albumArtist) { - this.albumArtist = albumArtist; - } - - protected long getContentSize() { - return 6 + Utf8.utf8StringLengthInBytes(albumArtist) + 1; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - language = IsoTypeReader.readIso639(content); - albumArtist = IsoTypeReader.readString(content); - } - - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeIso639(byteBuffer, language); - byteBuffer.put(Utf8.convert(albumArtist)); - byteBuffer.put((byte) 0); - } - - public String toString() { - return "AlbumArtistBox[language=" + getLanguage() + ";albumArtist=" + getAlbumArtist() + "]"; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/.svn/text-base/ContentDistributorIdBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/.svn/text-base/ContentDistributorIdBox.java.svn-base deleted file mode 100644 index dc36f45..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/.svn/text-base/ContentDistributorIdBox.java.svn-base +++ /dev/null @@ -1,70 +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.vodafone; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.IsoTypeWriter; -import com.coremedia.iso.Utf8; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * Vodafone specific box. Usage unclear. - */ -public class ContentDistributorIdBox extends AbstractFullBox { - public static final String TYPE = "cdis"; - - private String language; - private String contentDistributorId; - - public ContentDistributorIdBox() { - super(TYPE); - } - - public String getLanguage() { - return language; - } - - public String getContentDistributorId() { - return contentDistributorId; - } - - protected long getContentSize() { - return 2 + Utf8.utf8StringLengthInBytes(contentDistributorId) + 5; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - language = IsoTypeReader.readIso639(content); - contentDistributorId = IsoTypeReader.readString(content); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - IsoTypeWriter.writeIso639(byteBuffer, language); - byteBuffer.put(Utf8.convert(contentDistributorId)); - byteBuffer.put((byte) 0); - - } - - public String toString() { - return "ContentDistributorIdBox[language=" + getLanguage() + ";contentDistributorId=" + getContentDistributorId() + "]"; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/.svn/text-base/CoverUriBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/.svn/text-base/CoverUriBox.java.svn-base deleted file mode 100644 index 0e78b25..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/.svn/text-base/CoverUriBox.java.svn-base +++ /dev/null @@ -1,66 +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.vodafone; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.Utf8; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * A vodafone specific box. - */ -public class CoverUriBox extends AbstractFullBox { - public static final String TYPE = "cvru"; - - private String coverUri; - - public CoverUriBox() { - super(TYPE); - } - - public String getCoverUri() { - return coverUri; - } - - public void setCoverUri(String coverUri) { - this.coverUri = coverUri; - } - - protected long getContentSize() { - return Utf8.utf8StringLengthInBytes(coverUri) + 5; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - coverUri = IsoTypeReader.readString(content); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - byteBuffer.put(Utf8.convert(coverUri)); - byteBuffer.put((byte) 0); - } - - - public String toString() { - return "CoverUriBox[coverUri=" + getCoverUri() + "]"; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/.svn/text-base/LyricsUriBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/.svn/text-base/LyricsUriBox.java.svn-base deleted file mode 100644 index fbfc243..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/vodafone/.svn/text-base/LyricsUriBox.java.svn-base +++ /dev/null @@ -1,66 +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.vodafone; - -import com.coremedia.iso.IsoTypeReader; -import com.coremedia.iso.Utf8; -import com.googlecode.mp4parser.AbstractFullBox; - -import java.nio.ByteBuffer; - -/** - * A box in the {@link com.coremedia.iso.boxes.UserDataBox} containing information about the lyric location. - * Invented by Vodafone. - */ -public class LyricsUriBox extends AbstractFullBox { - public static final String TYPE = "lrcu"; - - private String lyricsUri; - - public LyricsUriBox() { - super(TYPE); - } - - public String getLyricsUri() { - return lyricsUri; - } - - public void setLyricsUri(String lyricsUri) { - this.lyricsUri = lyricsUri; - } - - protected long getContentSize() { - return Utf8.utf8StringLengthInBytes(lyricsUri) + 5; - } - - @Override - public void _parseDetails(ByteBuffer content) { - parseVersionAndFlags(content); - lyricsUri = IsoTypeReader.readString(content); - } - - @Override - protected void getContent(ByteBuffer byteBuffer) { - writeVersionAndFlags(byteBuffer); - byteBuffer.put(Utf8.convert(lyricsUri)); - byteBuffer.put((byte) 0); - } - - public String toString() { - return "LyricsUriBox[lyricsUri=" + getLyricsUri() + "]"; - } -} diff --git a/isoparser/src/main/java/com/coremedia/iso/mdta/.svn/all-wcprops b/isoparser/src/main/java/com/coremedia/iso/mdta/.svn/all-wcprops deleted file mode 100644 index 2f92d3c..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/mdta/.svn/all-wcprops +++ /dev/null @@ -1,5 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 70 -/svn/!svn/ver/178/trunk/isoparser/src/main/java/com/coremedia/iso/mdta -END diff --git a/isoparser/src/main/java/com/coremedia/iso/mdta/.svn/entries b/isoparser/src/main/java/com/coremedia/iso/mdta/.svn/entries deleted file mode 100644 index 081f87d..0000000 --- a/isoparser/src/main/java/com/coremedia/iso/mdta/.svn/entries +++ /dev/null @@ -1,28 +0,0 @@ -10 - -dir -778 -http://mp4parser.googlecode.com/svn/trunk/isoparser/src/main/java/com/coremedia/iso/mdta -http://mp4parser.googlecode.com/svn - - - -2011-07-11T20:39:14.277970Z -178 -Sebastian.Annies@gmail.com - - - - - - - - - - - - - - -7decde4b-c250-0410-a0da-51896bc88be6 - |