Class ProtectionSystemSpecificHeaderBox

java.lang.Object
org.mp4parser.support.AbstractBox
org.mp4parser.support.AbstractFullBox
org.mp4parser.boxes.iso23001.part7.ProtectionSystemSpecificHeaderBox
All Implemented Interfaces:
Box, FullBox, ParsableBox

public class ProtectionSystemSpecificHeaderBox extends AbstractFullBox

4cc = ""pssh""

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.

  • Field Details

    • TYPE

      public static final String TYPE
      See Also:
    • OMA2_SYSTEM_ID

      public static byte[] OMA2_SYSTEM_ID
    • WIDEVINE

      public static byte[] WIDEVINE
    • PLAYREADY_SYSTEM_ID

      public static byte[] PLAYREADY_SYSTEM_ID
  • Constructor Details

    • ProtectionSystemSpecificHeaderBox

      public ProtectionSystemSpecificHeaderBox(byte[] systemId, byte[] content)
    • ProtectionSystemSpecificHeaderBox

      public ProtectionSystemSpecificHeaderBox()
  • Method Details

    • getKeyIds

      public List<UUID> getKeyIds()
    • setKeyIds

      public void setKeyIds(List<UUID> keyIds)
    • getSystemId

      public byte[] getSystemId()
    • setSystemId

      public void setSystemId(byte[] systemId)
    • getContent

      public byte[] getContent()
    • setContent

      public void setContent(byte[] content)
    • getContentSize

      protected long getContentSize()
      Description copied from class: AbstractBox
      Get the box's content size without its header. This must be the exact number of bytes that getContent(ByteBuffer) writes.
      Specified by:
      getContentSize in class AbstractBox
      Returns:
      Gets the box's content size in bytes
      See Also:
    • getContent

      protected void getContent(ByteBuffer byteBuffer)
      Description copied from class: AbstractBox
      Write the box's content into the given ByteBuffer. This must include flags and version in case of a full box. byteBuffer has been initialized with getSize() bytes.
      Specified by:
      getContent in class AbstractBox
      Parameters:
      byteBuffer - the sink for the box's content
    • _parseDetails

      protected void _parseDetails(ByteBuffer content)
      Description copied from class: AbstractBox
      Parse the box's fields and child boxes if any.
      Specified by:
      _parseDetails in class AbstractBox
      Parameters:
      content - the box's raw content beginning after the 4-cc field.