FileDocCategorySizeDatePackage
ProtectionSystemSpecificHeaderBox.javaAPI Docmp4parser 1.0-RC-173203Wed Dec 19 20:10:37 GMT 2012com.googlecode.mp4parser.boxes.cenc

ProtectionSystemSpecificHeaderBox

public class ProtectionSystemSpecificHeaderBox extends com.googlecode.mp4parser.AbstractFullBox
This box contains information needed by a Content Protection System to play back the content. The data format is specified by the system identified by the ‚¨‹pssh‚¨" parameter SystemID, and is considered opaque for the purposes of this specification.

The data encapsulated in the Data field may be read by the identified Content Protection System to enable decryption key acquisition and decryption of media data. For license/rights-based systems, the header information may include data such as the URL of license server(s) or rights issuer(s) used, embedded licenses/rights, and/or other protection system specific metadata.

A single file may be constructed to be playable by multiple key and digital rights management (DRM) systems, by including one Protection System-Specific Header box for each system supported. Readers that process such presentations must match the SystemID field in this box to the SystemID(s) of the DRM System(s) they support, and select or create the matching Protection System-Specific Header box(es) for storage and retrieval of Protection-Specific information interpreted or created by that DRM system.

Fields Summary
public static final String
TYPE
public static byte[]
OMA2_SYSTEM_ID
public static byte[]
PLAYREADY_SYSTEM_ID
byte[]
content
byte[]
systemId
Constructors Summary
public ProtectionSystemSpecificHeaderBox()

        super(TYPE);
    
Methods Summary
protected void_parseDetails(java.nio.ByteBuffer content)

        parseVersionAndFlags(content);
        systemId = new byte[16];
        content.get(systemId);
        long length = IsoTypeReader.readUInt32(content);
        this.content = new byte[content.remaining()];
        content.get(this.content);
        assert length == this.content.length;
    
public byte[]getContent()

        return content;
    
protected voidgetContent(java.nio.ByteBuffer byteBuffer)

        writeVersionAndFlags(byteBuffer);
        assert systemId.length == 16;
        byteBuffer.put(systemId, 0, 16);
        IsoTypeWriter.writeUInt32(byteBuffer, content.length);
        byteBuffer.put(content);
    
protected longgetContentSize()

        return 24 + content.length;
    
public byte[]getSystemId()



       
        return systemId;
    
public voidsetContent(byte[] content)

        this.content = content;
    
public voidsetSystemId(byte[] systemId)

        assert systemId.length == 16;
        this.systemId = systemId;