diff options
author | Teng-Hui Zhu <ztenghui@google.com> | 2012-09-20 16:00:17 -0700 |
---|---|---|
committer | Teng-Hui Zhu <ztenghui@google.com> | 2012-09-20 16:25:28 -0700 |
commit | dd9eb897ee7c7b507cbdcf80263bb4b5de6966bf (patch) | |
tree | a0f3b67524d3e7beeca5e30878f349d58a65b705 /isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn | |
parent | 8436c0da2d787a33439f14e9273ea647f346fa9b (diff) | |
download | mp4parser-dd9eb897ee7c7b507cbdcf80263bb4b5de6966bf.tar.gz |
Initial drop the compilable version of mp4parser, with least modification
bug:7093055
Change-Id: Id9b1b4ec91e26ae6e9fd75d86696aa30f30897b3
Diffstat (limited to 'isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn')
8 files changed, 848 insertions, 0 deletions
diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/all-wcprops b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/all-wcprops new file mode 100644 index 0000000..458d104 --- /dev/null +++ b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/all-wcprops @@ -0,0 +1,41 @@ +K 25 +svn:wc:ra_dav:version-url +V 84 +/svn/!svn/ver/727/trunk/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple +END +TimeCodeBox.java +K 25 +svn:wc:ra_dav:version-url +V 101 +/svn/!svn/ver/684/trunk/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/TimeCodeBox.java +END +QuicktimeTextSampleEntry.java +K 25 +svn:wc:ra_dav:version-url +V 114 +/svn/!svn/ver/690/trunk/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/QuicktimeTextSampleEntry.java +END +GenericMediaHeaderAtom.java +K 25 +svn:wc:ra_dav:version-url +V 112 +/svn/!svn/ver/684/trunk/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/GenericMediaHeaderAtom.java +END +BaseMediaInfoAtom.java +K 25 +svn:wc:ra_dav:version-url +V 107 +/svn/!svn/ver/687/trunk/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/BaseMediaInfoAtom.java +END +TaptAtom.java +K 25 +svn:wc:ra_dav:version-url +V 98 +/svn/!svn/ver/727/trunk/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/TaptAtom.java +END +GenericMediaHeaderTextAtom.java +K 25 +svn:wc:ra_dav:version-url +V 116 +/svn/!svn/ver/685/trunk/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/GenericMediaHeaderTextAtom.java +END diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/entries b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/entries new file mode 100644 index 0000000..ad474c2 --- /dev/null +++ b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/entries @@ -0,0 +1,232 @@ +10 + +dir +778 +http://mp4parser.googlecode.com/svn/trunk/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple +http://mp4parser.googlecode.com/svn + + + +2012-08-08T07:05:08.133759Z +727 +Sebastian.Annies@gmail.com + + + + + + + + + + + + + + +7decde4b-c250-0410-a0da-51896bc88be6 + +TimeCodeBox.java +file + + + + +2012-09-14T17:27:51.197229Z +c584657a6b97bbddc67e006ea6425bb6 +2012-06-24T14:45:45.932648Z +684 +Sebastian.Annies@gmail.com + + + + + + + + + + + + + + + + + + + + + +1498 + +QuicktimeTextSampleEntry.java +file + + + + +2012-09-14T17:27:51.197229Z +9fb53b7189ae88149477c073fb987599 +2012-06-24T21:27:52.519961Z +690 +Sebastian.Annies@gmail.com + + + + + + + + + + + + + + + + + + + + + +6202 + +GenericMediaHeaderAtom.java +file + + + + +2012-09-14T17:27:51.207229Z +2eba5114788056352adb0e5e7d8cee33 +2012-06-24T14:45:45.932648Z +684 +Sebastian.Annies@gmail.com + + + + + + + + + + + + + + + + + + + + + +890 + +BaseMediaInfoAtom.java +file + + + + +2012-09-14T17:27:51.207229Z +6119ba316b09d48ed85824b96f2b68b1 +2012-06-24T19:53:06.650023Z +687 +Sebastian.Annies@gmail.com + + + + + + + + + + + + + + + + + + + + + +2695 + +TaptAtom.java +file + + + + +2012-09-14T17:27:51.207229Z +9eed1655d1a9f0c187071c0bf6ff61bc +2012-08-08T07:05:08.133759Z +727 +Sebastian.Annies@gmail.com + + + + + + + + + + + + + + + + + + + + + +327 + +GenericMediaHeaderTextAtom.java +file + + + + +2012-09-14T17:27:51.207229Z +b06b279065c7b8475ade9558fa8227c9 +2012-06-24T15:08:14.651658Z +685 +Sebastian.Annies@gmail.com + + + + + + + + + + + + + + + + + + + + + +2866 + diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/text-base/BaseMediaInfoAtom.java.svn-base b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/text-base/BaseMediaInfoAtom.java.svn-base new file mode 100644 index 0000000..706569e --- /dev/null +++ b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/text-base/BaseMediaInfoAtom.java.svn-base @@ -0,0 +1,110 @@ +package com.googlecode.mp4parser.boxes.apple; + +import com.coremedia.iso.IsoTypeReader; +import com.coremedia.iso.IsoTypeWriter; +import com.googlecode.mp4parser.AbstractFullBox; + +import java.nio.ByteBuffer; + +public class BaseMediaInfoAtom extends AbstractFullBox { + public static final String TYPE = "gmin"; + + short graphicsMode = 64; + int opColorR = 32768; + int opColorG = 32768; + int opColorB = 32768; + short balance; + short reserved; + + public BaseMediaInfoAtom() { + super(TYPE); + } + + @Override + protected long getContentSize() { + return 16; + } + + @Override + protected void getContent(ByteBuffer byteBuffer) { + writeVersionAndFlags(byteBuffer); + byteBuffer.putShort(graphicsMode); + IsoTypeWriter.writeUInt16(byteBuffer, opColorR); + IsoTypeWriter.writeUInt16(byteBuffer,opColorG ); + IsoTypeWriter.writeUInt16(byteBuffer,opColorB ); + byteBuffer.putShort(balance); + byteBuffer.putShort(reserved); + } + + @Override + protected void _parseDetails(ByteBuffer content) { + parseVersionAndFlags(content); + graphicsMode = content.getShort(); + opColorR = IsoTypeReader.readUInt16(content); + opColorG = IsoTypeReader.readUInt16(content); + opColorB = IsoTypeReader.readUInt16(content); + balance = content.getShort(); + reserved = content.getShort(); + + } + + public short getGraphicsMode() { + return graphicsMode; + } + + public void setGraphicsMode(short graphicsMode) { + this.graphicsMode = graphicsMode; + } + + public int getOpColorR() { + return opColorR; + } + + public void setOpColorR(int opColorR) { + this.opColorR = opColorR; + } + + public int getOpColorG() { + return opColorG; + } + + public void setOpColorG(int opColorG) { + this.opColorG = opColorG; + } + + public int getOpColorB() { + return opColorB; + } + + public void setOpColorB(int opColorB) { + this.opColorB = opColorB; + } + + public short getBalance() { + return balance; + } + + public void setBalance(short balance) { + this.balance = balance; + } + + public short getReserved() { + return reserved; + } + + public void setReserved(short reserved) { + this.reserved = reserved; + } + + @Override + public String toString() { + return "BaseMediaInfoAtom{" + + "graphicsMode=" + graphicsMode + + ", opColorR=" + opColorR + + ", opColorG=" + opColorG + + ", opColorB=" + opColorB + + ", balance=" + balance + + ", reserved=" + reserved + + '}'; + } +} diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/text-base/GenericMediaHeaderAtom.java.svn-base b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/text-base/GenericMediaHeaderAtom.java.svn-base new file mode 100644 index 0000000..ac2033f --- /dev/null +++ b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/text-base/GenericMediaHeaderAtom.java.svn-base @@ -0,0 +1,28 @@ +/* + * 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.googlecode.mp4parser.boxes.apple; + +import com.googlecode.mp4parser.AbstractContainerBox; + +public class GenericMediaHeaderAtom extends AbstractContainerBox { + + public static final String TYPE = "gmhd"; + + public GenericMediaHeaderAtom() { + super(TYPE); + } + +} diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/text-base/GenericMediaHeaderTextAtom.java.svn-base b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/text-base/GenericMediaHeaderTextAtom.java.svn-base new file mode 100644 index 0000000..fd52dc9 --- /dev/null +++ b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/text-base/GenericMediaHeaderTextAtom.java.svn-base @@ -0,0 +1,130 @@ +package com.googlecode.mp4parser.boxes.apple; + +import com.googlecode.mp4parser.AbstractBox; + +import java.nio.ByteBuffer; + +/** + * Undocumented atom in the gmhd atom of text tracks. + */ +public class GenericMediaHeaderTextAtom extends AbstractBox { + + public static final String TYPE = "text"; + + int unknown_1 = 65536; + int unknown_2; + int unknown_3; + int unknown_4; + int unknown_5 = 65536; + int unknown_6; + int unknown_7; + int unknown_8; + int unknown_9 = 1073741824; + + public GenericMediaHeaderTextAtom() { + super(TYPE); + } + + @Override + protected long getContentSize() { + return 36; + } + + @Override + protected void getContent(ByteBuffer byteBuffer) { + byteBuffer.putInt(unknown_1); + byteBuffer.putInt(unknown_2); + byteBuffer.putInt(unknown_3); + byteBuffer.putInt(unknown_4); + byteBuffer.putInt(unknown_5); + byteBuffer.putInt(unknown_6); + byteBuffer.putInt(unknown_7); + byteBuffer.putInt(unknown_8); + byteBuffer.putInt(unknown_9); + } + + @Override + protected void _parseDetails(ByteBuffer content) { + unknown_1 = content.getInt(); + unknown_2 = content.getInt(); + unknown_3 = content.getInt(); + unknown_4 = content.getInt(); + unknown_5 = content.getInt(); + unknown_6 = content.getInt(); + unknown_7 = content.getInt(); + unknown_8 = content.getInt(); + unknown_9 = content.getInt(); + } + + public int getUnknown_1() { + return unknown_1; + } + + public void setUnknown_1(int unknown_1) { + this.unknown_1 = unknown_1; + } + + public int getUnknown_2() { + return unknown_2; + } + + public void setUnknown_2(int unknown_2) { + this.unknown_2 = unknown_2; + } + + public int getUnknown_3() { + return unknown_3; + } + + public void setUnknown_3(int unknown_3) { + this.unknown_3 = unknown_3; + } + + public int getUnknown_4() { + return unknown_4; + } + + public void setUnknown_4(int unknown_4) { + this.unknown_4 = unknown_4; + } + + public int getUnknown_5() { + return unknown_5; + } + + public void setUnknown_5(int unknown_5) { + this.unknown_5 = unknown_5; + } + + public int getUnknown_6() { + return unknown_6; + } + + public void setUnknown_6(int unknown_6) { + this.unknown_6 = unknown_6; + } + + public int getUnknown_7() { + return unknown_7; + } + + public void setUnknown_7(int unknown_7) { + this.unknown_7 = unknown_7; + } + + public int getUnknown_8() { + return unknown_8; + } + + public void setUnknown_8(int unknown_8) { + this.unknown_8 = unknown_8; + } + + public int getUnknown_9() { + return unknown_9; + } + + public void setUnknown_9(int unknown_9) { + this.unknown_9 = unknown_9; + } +} diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/text-base/QuicktimeTextSampleEntry.java.svn-base b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/text-base/QuicktimeTextSampleEntry.java.svn-base new file mode 100644 index 0000000..8784fc6 --- /dev/null +++ b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/text-base/QuicktimeTextSampleEntry.java.svn-base @@ -0,0 +1,237 @@ +/* + * 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.googlecode.mp4parser.boxes.apple; + +import com.coremedia.iso.IsoTypeReader; +import com.coremedia.iso.IsoTypeWriter; +import com.coremedia.iso.boxes.sampleentry.SampleEntry; + +import java.nio.ByteBuffer; + +/** + * Entry type for timed text samples defined in the timed text specification (ISO/IEC 14496-17). + */ +public class QuicktimeTextSampleEntry extends SampleEntry { + + public static final String TYPE = "text"; + + int displayFlags; + int textJustification; + + int backgroundR; + int backgroundG; + int backgroundB; + + long defaultTextBox; + long reserved1; + + short fontNumber; + short fontFace; + byte reserved2; + short reserved3; + + int foregroundR = 65535; + int foregroundG = 65535; + int foregroundB = 65535; + + String fontName = ""; + + public QuicktimeTextSampleEntry() { + super(TYPE); + } + + @Override + public void _parseDetails(ByteBuffer content) { + _parseReservedAndDataReferenceIndex(content); + + displayFlags = content.getInt(); + textJustification = content.getInt(); + backgroundR = IsoTypeReader.readUInt16(content); + backgroundG = IsoTypeReader.readUInt16(content); + backgroundB = IsoTypeReader.readUInt16(content); + defaultTextBox = IsoTypeReader.readUInt64(content); + reserved1 = IsoTypeReader.readUInt64(content); + fontNumber = content.getShort(); + fontFace = content.getShort(); + reserved2 = content.get(); + reserved3 = content.getShort(); + foregroundR = IsoTypeReader.readUInt16(content); + foregroundG = IsoTypeReader.readUInt16(content); + foregroundB = IsoTypeReader.readUInt16(content); + + if (content.remaining() > 0) { + int length = IsoTypeReader.readUInt8(content); + byte[] myFontName = new byte[length]; + content.get(myFontName); + fontName = new String(myFontName); + } else { + fontName = null; + } + } + + + protected long getContentSize() { + return 52 + (fontName != null ? fontName.length() : 0); + } + + + public int getDisplayFlags() { + return displayFlags; + } + + public void setDisplayFlags(int displayFlags) { + this.displayFlags = displayFlags; + } + + public int getTextJustification() { + return textJustification; + } + + public void setTextJustification(int textJustification) { + this.textJustification = textJustification; + } + + public int getBackgroundR() { + return backgroundR; + } + + public void setBackgroundR(int backgroundR) { + this.backgroundR = backgroundR; + } + + public int getBackgroundG() { + return backgroundG; + } + + public void setBackgroundG(int backgroundG) { + this.backgroundG = backgroundG; + } + + public int getBackgroundB() { + return backgroundB; + } + + public void setBackgroundB(int backgroundB) { + this.backgroundB = backgroundB; + } + + public long getDefaultTextBox() { + return defaultTextBox; + } + + public void setDefaultTextBox(long defaultTextBox) { + this.defaultTextBox = defaultTextBox; + } + + public long getReserved1() { + return reserved1; + } + + public void setReserved1(long reserved1) { + this.reserved1 = reserved1; + } + + public short getFontNumber() { + return fontNumber; + } + + public void setFontNumber(short fontNumber) { + this.fontNumber = fontNumber; + } + + public short getFontFace() { + return fontFace; + } + + public void setFontFace(short fontFace) { + this.fontFace = fontFace; + } + + public byte getReserved2() { + return reserved2; + } + + public void setReserved2(byte reserved2) { + this.reserved2 = reserved2; + } + + public short getReserved3() { + return reserved3; + } + + public void setReserved3(short reserved3) { + this.reserved3 = reserved3; + } + + public int getForegroundR() { + return foregroundR; + } + + public void setForegroundR(int foregroundR) { + this.foregroundR = foregroundR; + } + + public int getForegroundG() { + return foregroundG; + } + + public void setForegroundG(int foregroundG) { + this.foregroundG = foregroundG; + } + + public int getForegroundB() { + return foregroundB; + } + + public void setForegroundB(int foregroundB) { + this.foregroundB = foregroundB; + } + + public String getFontName() { + return fontName; + } + + public void setFontName(String fontName) { + this.fontName = fontName; + } + + @Override + protected void getContent(ByteBuffer byteBuffer) { + _writeReservedAndDataReferenceIndex(byteBuffer); + byteBuffer.putInt(displayFlags); + byteBuffer.putInt(textJustification); + IsoTypeWriter.writeUInt16(byteBuffer, backgroundR); + IsoTypeWriter.writeUInt16(byteBuffer, backgroundG); + IsoTypeWriter.writeUInt16(byteBuffer, backgroundB); + IsoTypeWriter.writeUInt64(byteBuffer, defaultTextBox); + IsoTypeWriter.writeUInt64(byteBuffer, reserved1); + byteBuffer.putShort(fontNumber); + byteBuffer.putShort(fontFace); + byteBuffer.put(reserved2); + byteBuffer.putShort(reserved3); + + IsoTypeWriter.writeUInt16(byteBuffer, foregroundR); + IsoTypeWriter.writeUInt16(byteBuffer, foregroundG); + IsoTypeWriter.writeUInt16(byteBuffer, foregroundB); + if (fontName != null) { + IsoTypeWriter.writeUInt8(byteBuffer, fontName.length()); + byteBuffer.put(fontName.getBytes()); + } + + } + + +} diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/text-base/TaptAtom.java.svn-base b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/text-base/TaptAtom.java.svn-base new file mode 100644 index 0000000..4fcea56 --- /dev/null +++ b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/text-base/TaptAtom.java.svn-base @@ -0,0 +1,16 @@ +package com.googlecode.mp4parser.boxes.apple; + +import com.googlecode.mp4parser.AbstractContainerBox; + +/** + * Don't know what it is but it is obviously a container box. + */ +public class TaptAtom extends AbstractContainerBox { + public static final String TYPE = "tapt"; + + public TaptAtom() { + super(TYPE); + } + + +} diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/text-base/TimeCodeBox.java.svn-base b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/text-base/TimeCodeBox.java.svn-base new file mode 100644 index 0000000..e15c9f0 --- /dev/null +++ b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/apple/.svn/text-base/TimeCodeBox.java.svn-base @@ -0,0 +1,54 @@ +/* + * 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.googlecode.mp4parser.boxes.apple; + +import com.coremedia.iso.boxes.Box; +import com.coremedia.iso.boxes.sampleentry.SampleEntry; + +import java.nio.ByteBuffer; + +public class TimeCodeBox extends SampleEntry { + byte[] data; + + + public TimeCodeBox() { + super("tmcd"); + } + + @Override + protected long getContentSize() { + long size = 26; + for (Box box : boxes) { + size += box.getSize(); + } + return size; + } + + @Override + public void _parseDetails(ByteBuffer content) { + _parseReservedAndDataReferenceIndex(content); + data = new byte[18]; + content.get(data); + _parseChildBoxes(content); + } + + @Override + protected void getContent(ByteBuffer byteBuffer) { + _writeReservedAndDataReferenceIndex(byteBuffer); + byteBuffer.put(data); + _writeChildBoxes(byteBuffer); + } +} |