summaryrefslogtreecommitdiff
path: root/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ProgressiveDownloadInformationBox.java.svn-base
diff options
context:
space:
mode:
Diffstat (limited to 'isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ProgressiveDownloadInformationBox.java.svn-base')
-rw-r--r--isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ProgressiveDownloadInformationBox.java.svn-base95
1 files changed, 95 insertions, 0 deletions
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
new file mode 100644
index 0000000..7acd7ed
--- /dev/null
+++ b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/ProgressiveDownloadInformationBox.java.svn-base
@@ -0,0 +1,95 @@
+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