diff options
Diffstat (limited to 'isoparser/src/main/java/com/googlecode/mp4parser/boxes/.svn/text-base/EC3SpecificBox.java.svn-base')
-rw-r--r-- | isoparser/src/main/java/com/googlecode/mp4parser/boxes/.svn/text-base/EC3SpecificBox.java.svn-base | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/.svn/text-base/EC3SpecificBox.java.svn-base b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/.svn/text-base/EC3SpecificBox.java.svn-base deleted file mode 100644 index 412db04..0000000 --- a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/.svn/text-base/EC3SpecificBox.java.svn-base +++ /dev/null @@ -1,140 +0,0 @@ -package com.googlecode.mp4parser.boxes; - -import com.googlecode.mp4parser.AbstractBox; -import com.googlecode.mp4parser.boxes.mp4.objectdescriptors.BitReaderBuffer; -import com.googlecode.mp4parser.boxes.mp4.objectdescriptors.BitWriterBuffer; - -import java.nio.ByteBuffer; -import java.util.LinkedList; -import java.util.List; - -/** - * - */ -public class EC3SpecificBox extends AbstractBox { - List<Entry> entries = new LinkedList<Entry>(); - int dataRate; - int numIndSub; - - public EC3SpecificBox() { - super("dec3"); - } - - @Override - public long getContentSize() { - long size = 2; - for (Entry entry : entries) { - if (entry.num_dep_sub > 0) { - size += 4; - } else { - size += 3; - } - } - return size; - } - - @Override - public void _parseDetails(ByteBuffer content) { - BitReaderBuffer brb = new BitReaderBuffer(content); - dataRate = brb.readBits(13); - numIndSub = brb.readBits(3) + 1; - // This field indicates the number of independent substreams that are present in the Enhanced AC-3 bitstream. The value - // of this field is one less than the number of independent substreams present. - - - for (int i = 0; i < numIndSub; i++) { - Entry e = new Entry(); - e.fscod = brb.readBits(2); - e.bsid = brb.readBits(5); - e.bsmod = brb.readBits(5); - e.acmod = brb.readBits(3); - e.lfeon = brb.readBits(1); - e.reserved = brb.readBits(3); - e.num_dep_sub = brb.readBits(4); - if (e.num_dep_sub > 0) { - e.chan_loc = brb.readBits(9); - } else { - e.reserved2 = brb.readBits(1); - } - entries.add(e); - } - } - - @Override - public void getContent(ByteBuffer byteBuffer) { - BitWriterBuffer bwb = new BitWriterBuffer(byteBuffer); - bwb.writeBits(dataRate, 13); - bwb.writeBits(entries.size() - 1, 3); - for (Entry e : entries) { - bwb.writeBits(e.fscod, 2); - bwb.writeBits(e.bsid, 5); - bwb.writeBits(e.bsmod, 5); - bwb.writeBits(e.acmod, 3); - bwb.writeBits(e.lfeon, 1); - bwb.writeBits(e.reserved, 3); - bwb.writeBits(e.num_dep_sub, 4); - if (e.num_dep_sub > 0) { - bwb.writeBits(e.chan_loc, 9); - } else { - bwb.writeBits(e.reserved2, 1); - } - } - } - - - public List<Entry> getEntries() { - return entries; - } - - public void setEntries(List<Entry> entries) { - this.entries = entries; - } - - public void addEntry(Entry entry) { - this.entries.add(entry); - } - - public int getDataRate() { - return dataRate; - } - - public void setDataRate(int dataRate) { - this.dataRate = dataRate; - } - - public int getNumIndSub() { - return numIndSub; - } - - public void setNumIndSub(int numIndSub) { - this.numIndSub = numIndSub; - } - - public static class Entry { - public int fscod; - public int bsid; - public int bsmod; - public int acmod; - public int lfeon; - public int reserved; - public int num_dep_sub; - public int chan_loc; - public int reserved2; - - - @Override - public String toString() { - return "Entry{" + - "fscod=" + fscod + - ", bsid=" + bsid + - ", bsmod=" + bsmod + - ", acmod=" + acmod + - ", lfeon=" + lfeon + - ", reserved=" + reserved + - ", num_dep_sub=" + num_dep_sub + - ", chan_loc=" + chan_loc + - ", reserved2=" + reserved2 + - '}'; - } - } -} |