diff options
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.java | 217 |
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; + } +} |