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/threegpp26245 | |
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/threegpp26245')
4 files changed, 263 insertions, 0 deletions
diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/threegpp26245/.svn/all-wcprops b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/threegpp26245/.svn/all-wcprops new file mode 100644 index 0000000..92aa246 --- /dev/null +++ b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/threegpp26245/.svn/all-wcprops @@ -0,0 +1,11 @@ +K 25 +svn:wc:ra_dav:version-url +V 92 +/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/googlecode/mp4parser/boxes/threegpp26245 +END +FontTableBox.java +K 25 +svn:wc:ra_dav:version-url +V 110 +/svn/!svn/ver/507/trunk/isoparser/src/main/java/com/googlecode/mp4parser/boxes/threegpp26245/FontTableBox.java +END diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/threegpp26245/.svn/entries b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/threegpp26245/.svn/entries new file mode 100644 index 0000000..a126e77 --- /dev/null +++ b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/threegpp26245/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +778 +http://mp4parser.googlecode.com/svn/trunk/isoparser/src/main/java/com/googlecode/mp4parser/boxes/threegpp26245 +http://mp4parser.googlecode.com/svn + + + +2012-04-21T22:05:38.425329Z +507 +Sebastian.Annies@gmail.com + + + + + + + + + + + + + + +7decde4b-c250-0410-a0da-51896bc88be6 + +FontTableBox.java +file + + + + +2012-09-14T17:27:50.567220Z +edbb8c6ba22fb01c3b13ce20e34513b8 +2012-04-21T22:05:38.425329Z +507 +Sebastian.Annies@gmail.com + + + + + + + + + + + + + + + + + + + + + +2444 + diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/threegpp26245/.svn/text-base/FontTableBox.java.svn-base b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/threegpp26245/.svn/text-base/FontTableBox.java.svn-base new file mode 100644 index 0000000..2e3f640 --- /dev/null +++ b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/threegpp26245/.svn/text-base/FontTableBox.java.svn-base @@ -0,0 +1,95 @@ +package com.googlecode.mp4parser.boxes.threegpp26245; + +import com.coremedia.iso.IsoTypeReader; +import com.coremedia.iso.IsoTypeWriter; +import com.coremedia.iso.Utf8; +import com.googlecode.mp4parser.AbstractBox; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.LinkedList; +import java.util.List; + +/** + * + */ +public class FontTableBox extends AbstractBox { + List<FontRecord> entries = new LinkedList<FontRecord>(); + + public FontTableBox() { + super("ftab"); + } + + @Override + protected long getContentSize() { + int size = 2; + for (FontRecord fontRecord : entries) { + size += fontRecord.getSize(); + } + return size; + } + + + @Override + public void _parseDetails(ByteBuffer content) { + int numberOfRecords = IsoTypeReader.readUInt16(content); + for (int i = 0; i < numberOfRecords; i++) { + FontRecord fr = new FontRecord(); + fr.parse(content); + entries.add(fr); + } + } + + @Override + protected void getContent(ByteBuffer byteBuffer) { + IsoTypeWriter.writeUInt16(byteBuffer, entries.size()); + for (FontRecord record : entries) { + record.getContent(byteBuffer); + } + } + + public List<FontRecord> getEntries() { + return entries; + } + + public void setEntries(List<FontRecord> entries) { + this.entries = entries; + } + + public static class FontRecord { + int fontId; + String fontname; + + public FontRecord() { + } + + public FontRecord(int fontId, String fontname) { + this.fontId = fontId; + this.fontname = fontname; + } + + public void parse(ByteBuffer bb) { + fontId = IsoTypeReader.readUInt16(bb); + int length = IsoTypeReader.readUInt8(bb); + fontname = IsoTypeReader.readString(bb, length); + } + + public void getContent(ByteBuffer bb) { + IsoTypeWriter.writeUInt16(bb, fontId); + IsoTypeWriter.writeUInt8(bb, fontname.length()); + bb.put(Utf8.convert(fontname)); + } + + public int getSize() { + return Utf8.utf8StringLengthInBytes(fontname) + 3; + } + + @Override + public String toString() { + return "FontRecord{" + + "fontId=" + fontId + + ", fontname='" + fontname + '\'' + + '}'; + } + } +} diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/threegpp26245/FontTableBox.java b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/threegpp26245/FontTableBox.java new file mode 100644 index 0000000..2e3f640 --- /dev/null +++ b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/threegpp26245/FontTableBox.java @@ -0,0 +1,95 @@ +package com.googlecode.mp4parser.boxes.threegpp26245; + +import com.coremedia.iso.IsoTypeReader; +import com.coremedia.iso.IsoTypeWriter; +import com.coremedia.iso.Utf8; +import com.googlecode.mp4parser.AbstractBox; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.LinkedList; +import java.util.List; + +/** + * + */ +public class FontTableBox extends AbstractBox { + List<FontRecord> entries = new LinkedList<FontRecord>(); + + public FontTableBox() { + super("ftab"); + } + + @Override + protected long getContentSize() { + int size = 2; + for (FontRecord fontRecord : entries) { + size += fontRecord.getSize(); + } + return size; + } + + + @Override + public void _parseDetails(ByteBuffer content) { + int numberOfRecords = IsoTypeReader.readUInt16(content); + for (int i = 0; i < numberOfRecords; i++) { + FontRecord fr = new FontRecord(); + fr.parse(content); + entries.add(fr); + } + } + + @Override + protected void getContent(ByteBuffer byteBuffer) { + IsoTypeWriter.writeUInt16(byteBuffer, entries.size()); + for (FontRecord record : entries) { + record.getContent(byteBuffer); + } + } + + public List<FontRecord> getEntries() { + return entries; + } + + public void setEntries(List<FontRecord> entries) { + this.entries = entries; + } + + public static class FontRecord { + int fontId; + String fontname; + + public FontRecord() { + } + + public FontRecord(int fontId, String fontname) { + this.fontId = fontId; + this.fontname = fontname; + } + + public void parse(ByteBuffer bb) { + fontId = IsoTypeReader.readUInt16(bb); + int length = IsoTypeReader.readUInt8(bb); + fontname = IsoTypeReader.readString(bb, length); + } + + public void getContent(ByteBuffer bb) { + IsoTypeWriter.writeUInt16(bb, fontId); + IsoTypeWriter.writeUInt8(bb, fontname.length()); + bb.put(Utf8.convert(fontname)); + } + + public int getSize() { + return Utf8.utf8StringLengthInBytes(fontname) + 3; + } + + @Override + public String toString() { + return "FontRecord{" + + "fontId=" + fontId + + ", fontname='" + fontname + '\'' + + '}'; + } + } +} |