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/AbstractTrackEncryptionBox.java | |
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/AbstractTrackEncryptionBox.java')
-rw-r--r-- | isoparser/src/main/java/com/googlecode/mp4parser/boxes/AbstractTrackEncryptionBox.java | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/AbstractTrackEncryptionBox.java b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/AbstractTrackEncryptionBox.java new file mode 100644 index 0000000..fe35fde --- /dev/null +++ b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/AbstractTrackEncryptionBox.java @@ -0,0 +1,93 @@ +package com.googlecode.mp4parser.boxes; + +import com.coremedia.iso.IsoTypeReader; +import com.coremedia.iso.IsoTypeWriter; +import com.googlecode.mp4parser.AbstractFullBox; + +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.util.Arrays; +import java.util.UUID; + +/** + * + */ +public abstract class AbstractTrackEncryptionBox extends AbstractFullBox { + int defaultAlgorithmId; + int defaultIvSize; + byte[] default_KID; + + protected AbstractTrackEncryptionBox(String type) { + super(type); + } + + public int getDefaultAlgorithmId() { + return defaultAlgorithmId; + } + + public void setDefaultAlgorithmId(int defaultAlgorithmId) { + this.defaultAlgorithmId = defaultAlgorithmId; + } + + public int getDefaultIvSize() { + return defaultIvSize; + } + + public void setDefaultIvSize(int defaultIvSize) { + this.defaultIvSize = defaultIvSize; + } + + public String getDefault_KID() { + ByteBuffer b = ByteBuffer.wrap(default_KID); + b.order(ByteOrder.BIG_ENDIAN); + return new UUID(b.getLong(), b.getLong()).toString(); + } + + public void setDefault_KID(byte[] default_KID) { + this.default_KID = default_KID; + } + + @Override + public void _parseDetails(ByteBuffer content) { + parseVersionAndFlags(content); + defaultAlgorithmId = IsoTypeReader.readUInt24(content); + defaultIvSize = IsoTypeReader.readUInt8(content); + default_KID = new byte[16]; + content.get(default_KID); + } + + @Override + protected void getContent(ByteBuffer byteBuffer) { + writeVersionAndFlags(byteBuffer); + IsoTypeWriter.writeUInt24(byteBuffer, defaultAlgorithmId); + IsoTypeWriter.writeUInt8(byteBuffer, defaultIvSize); + byteBuffer.put(default_KID); + } + + @Override + protected long getContentSize() { + return 24; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + AbstractTrackEncryptionBox that = (AbstractTrackEncryptionBox) o; + + if (defaultAlgorithmId != that.defaultAlgorithmId) return false; + if (defaultIvSize != that.defaultIvSize) return false; + if (!Arrays.equals(default_KID, that.default_KID)) return false; + + return true; + } + + @Override + public int hashCode() { + int result = defaultAlgorithmId; + result = 31 * result + defaultIvSize; + result = 31 * result + (default_KID != null ? Arrays.hashCode(default_KID) : 0); + return result; + } +} |