summaryrefslogtreecommitdiff
path: root/isoparser/src/main/java/com/googlecode/mp4parser/boxes/DTSSpecificBox.java
diff options
context:
space:
mode:
Diffstat (limited to 'isoparser/src/main/java/com/googlecode/mp4parser/boxes/DTSSpecificBox.java')
-rw-r--r--isoparser/src/main/java/com/googlecode/mp4parser/boxes/DTSSpecificBox.java217
1 files changed, 217 insertions, 0 deletions
diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/DTSSpecificBox.java b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/DTSSpecificBox.java
new file mode 100644
index 0000000..a4cb346
--- /dev/null
+++ b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/DTSSpecificBox.java
@@ -0,0 +1,217 @@
+package com.googlecode.mp4parser.boxes;
+
+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 java.nio.ByteBuffer;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: magnus
+ * Date: 2012-03-09
+ * Time: 16:11
+ * To change this template use File | Settings | File Templates.
+ */
+public class DTSSpecificBox extends AbstractBox {
+
+ long DTSSamplingFrequency;
+ long maxBitRate;
+ long avgBitRate;
+ int pcmSampleDepth;
+ int frameDuration;
+ int streamConstruction;
+ int coreLFEPresent;
+ int coreLayout;
+ int coreSize;
+ int stereoDownmix;
+ int representationType;
+ int channelLayout;
+ int multiAssetFlag;
+ int LBRDurationMod;
+ int reservedBoxPresent;
+ int reserved;
+
+ public DTSSpecificBox() {
+ super("ddts");
+ }
+
+ @Override
+ protected long getContentSize() {
+ return 20;
+ }
+
+ @Override
+ public void _parseDetails(ByteBuffer content) {
+ DTSSamplingFrequency = IsoTypeReader.readUInt32(content);
+ maxBitRate = IsoTypeReader.readUInt32(content);
+ avgBitRate = IsoTypeReader.readUInt32(content);
+ pcmSampleDepth = IsoTypeReader.readUInt8(content);
+ BitReaderBuffer brb = new BitReaderBuffer(content);
+ frameDuration = brb.readBits(2);
+ streamConstruction = brb.readBits(5);
+ coreLFEPresent = brb.readBits(1);
+ coreLayout = brb.readBits(6);
+ coreSize = brb.readBits(14);
+ stereoDownmix = brb.readBits(1);
+ representationType = brb.readBits(3);
+ channelLayout = brb.readBits(16);
+ multiAssetFlag = brb.readBits(1);
+ LBRDurationMod = brb.readBits(1);
+ reservedBoxPresent = brb.readBits(1);
+ reserved = brb.readBits(5);
+
+ }
+
+ @Override
+ protected void getContent(ByteBuffer byteBuffer) {
+ IsoTypeWriter.writeUInt32(byteBuffer, DTSSamplingFrequency);
+ IsoTypeWriter.writeUInt32(byteBuffer, maxBitRate);
+ IsoTypeWriter.writeUInt32(byteBuffer, avgBitRate);
+ IsoTypeWriter.writeUInt8(byteBuffer, pcmSampleDepth);
+ BitWriterBuffer bwb = new BitWriterBuffer(byteBuffer);
+ bwb.writeBits(frameDuration, 2);
+ bwb.writeBits(streamConstruction, 5);
+ bwb.writeBits(coreLFEPresent, 1);
+ bwb.writeBits(coreLayout, 6);
+ bwb.writeBits(coreSize, 14);
+ bwb.writeBits(stereoDownmix, 1);
+ bwb.writeBits(representationType, 3);
+ bwb.writeBits(channelLayout, 16);
+ bwb.writeBits(multiAssetFlag, 1);
+ bwb.writeBits(LBRDurationMod, 1);
+ bwb.writeBits(reservedBoxPresent, 1);
+ bwb.writeBits(reserved, 5);
+
+ }
+
+ public long getAvgBitRate() {
+ return avgBitRate;
+ }
+
+ public void setAvgBitRate(long avgBitRate) {
+ this.avgBitRate = avgBitRate;
+ }
+
+ public long getDTSSamplingFrequency() {
+ return DTSSamplingFrequency;
+ }
+
+ public void setDTSSamplingFrequency(long DTSSamplingFrequency) {
+ this.DTSSamplingFrequency = DTSSamplingFrequency;
+ }
+
+ public long getMaxBitRate() {
+ return maxBitRate;
+ }
+
+ public void setMaxBitRate(long maxBitRate) {
+ this.maxBitRate = maxBitRate;
+ }
+
+ public int getPcmSampleDepth() {
+ return pcmSampleDepth;
+ }
+
+ public void setPcmSampleDepth(int pcmSampleDepth) {
+ this.pcmSampleDepth = pcmSampleDepth;
+ }
+
+ public int getFrameDuration() {
+ return frameDuration;
+ }
+
+ public void setFrameDuration(int frameDuration) {
+ this.frameDuration = frameDuration;
+ }
+
+ public int getStreamConstruction() {
+ return streamConstruction;
+ }
+
+ public void setStreamConstruction(int streamConstruction) {
+ this.streamConstruction = streamConstruction;
+ }
+
+ public int getCoreLFEPresent() {
+ return coreLFEPresent;
+ }
+
+ public void setCoreLFEPresent(int coreLFEPresent) {
+ this.coreLFEPresent = coreLFEPresent;
+ }
+
+ public int getCoreLayout() {
+ return coreLayout;
+ }
+
+ public void setCoreLayout(int coreLayout) {
+ this.coreLayout = coreLayout;
+ }
+
+ public int getCoreSize() {
+ return coreSize;
+ }
+
+ public void setCoreSize(int coreSize) {
+ this.coreSize = coreSize;
+ }
+
+ public int getStereoDownmix() {
+ return stereoDownmix;
+ }
+
+ public void setStereoDownmix(int stereoDownmix) {
+ this.stereoDownmix = stereoDownmix;
+ }
+
+ public int getRepresentationType() {
+ return representationType;
+ }
+
+ public void setRepresentationType(int representationType) {
+ this.representationType = representationType;
+ }
+
+ public int getChannelLayout() {
+ return channelLayout;
+ }
+
+ public void setChannelLayout(int channelLayout) {
+ this.channelLayout = channelLayout;
+ }
+
+ public int getMultiAssetFlag() {
+ return multiAssetFlag;
+ }
+
+ public void setMultiAssetFlag(int multiAssetFlag) {
+ this.multiAssetFlag = multiAssetFlag;
+ }
+
+ public int getLBRDurationMod() {
+ return LBRDurationMod;
+ }
+
+ public void setLBRDurationMod(int LBRDurationMod) {
+ this.LBRDurationMod = LBRDurationMod;
+ }
+
+ public int getReserved() {
+ return reserved;
+ }
+
+ public void setReserved(int reserved) {
+ this.reserved = reserved;
+ }
+
+ public int getReservedBoxPresent() {
+ return reservedBoxPresent;
+ }
+
+ public void setReservedBoxPresent(int reservedBoxPresent) {
+ this.reservedBoxPresent = reservedBoxPresent;
+ }
+}