diff options
Diffstat (limited to 'isoparser/src/main/java/com/googlecode/mp4parser/boxes/piff/.svn/text-base/ProtectionSpecificHeader.java.svn-base')
-rw-r--r-- | isoparser/src/main/java/com/googlecode/mp4parser/boxes/piff/.svn/text-base/ProtectionSpecificHeader.java.svn-base | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/piff/.svn/text-base/ProtectionSpecificHeader.java.svn-base b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/piff/.svn/text-base/ProtectionSpecificHeader.java.svn-base new file mode 100644 index 0000000..0d2f344 --- /dev/null +++ b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/piff/.svn/text-base/ProtectionSpecificHeader.java.svn-base @@ -0,0 +1,79 @@ +package com.googlecode.mp4parser.boxes.piff; + + +import com.coremedia.iso.Hex; + +import java.lang.Class; +import java.lang.IllegalAccessException; +import java.lang.InstantiationException; +import java.lang.Object; +import java.lang.Override; +import java.lang.RuntimeException; +import java.lang.String; +import java.lang.StringBuilder; +import java.nio.ByteBuffer; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + + +public class ProtectionSpecificHeader { + protected static Map<UUID, Class<? extends ProtectionSpecificHeader>> uuidRegistry = new HashMap<UUID, Class<? extends ProtectionSpecificHeader>>(); + ByteBuffer data; + + static { + uuidRegistry.put(UUID.fromString("9A04F079-9840-4286-AB92-E65BE0885F95"), PlayReadyHeader.class); + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof ProtectionSpecificHeader) { + if (this.getClass().equals(obj.getClass())) { + return data.equals(((ProtectionSpecificHeader) obj).data); + } + } + return false; + } + + public static ProtectionSpecificHeader createFor(UUID systemId, ByteBuffer bufferWrapper) { + final Class<? extends ProtectionSpecificHeader> aClass = uuidRegistry.get(systemId); + + ProtectionSpecificHeader protectionSpecificHeader = new ProtectionSpecificHeader(); + if (aClass != null) { + try { + protectionSpecificHeader = aClass.newInstance(); + + } catch (InstantiationException e) { + throw new RuntimeException(e); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + } + protectionSpecificHeader.parse(bufferWrapper); + return protectionSpecificHeader; + + } + + public void parse(ByteBuffer buffer) { + data = buffer; + + } + + public ByteBuffer getData() { + return data; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + sb.append("ProtectionSpecificHeader"); + sb.append("{data="); + ByteBuffer data = getData().duplicate(); + data.rewind(); + byte[] bytes = new byte[data.limit()]; + data.get(bytes); + sb.append(Hex.encodeHex(bytes)); + sb.append('}'); + return sb.toString(); + } +} |