PSSH: Allow specifying the System ID to use
This commit is contained in:
parent
61097ce6de
commit
11284eddfb
|
@ -127,12 +127,18 @@ class PSSH:
|
||||||
@classmethod
|
@classmethod
|
||||||
def new(
|
def new(
|
||||||
cls,
|
cls,
|
||||||
|
system_id: UUID,
|
||||||
key_ids: Optional[list[Union[UUID, str, bytes]]] = None,
|
key_ids: Optional[list[Union[UUID, str, bytes]]] = None,
|
||||||
init_data: Optional[Union[WidevinePsshData, str, bytes]] = None,
|
init_data: Optional[Union[WidevinePsshData, str, bytes]] = None,
|
||||||
version: int = 0,
|
version: int = 0,
|
||||||
flags: int = 0
|
flags: int = 0
|
||||||
) -> PSSH:
|
) -> PSSH:
|
||||||
"""Craft a new version 0 or 1 PSSH Box."""
|
"""Craft a new version 0 or 1 PSSH Box."""
|
||||||
|
if not system_id:
|
||||||
|
raise ValueError("A System ID must be specified.")
|
||||||
|
if not isinstance(system_id, UUID):
|
||||||
|
raise TypeError(f"Expected system_id to be a UUID, not {system_id!r}")
|
||||||
|
|
||||||
if key_ids is not None and not isinstance(key_ids, list):
|
if key_ids is not None and not isinstance(key_ids, list):
|
||||||
raise TypeError(f"Expected key_ids to be a list not {key_ids!r}")
|
raise TypeError(f"Expected key_ids to be a list not {key_ids!r}")
|
||||||
|
|
||||||
|
@ -194,7 +200,7 @@ class PSSH:
|
||||||
type=b"pssh",
|
type=b"pssh",
|
||||||
version=version,
|
version=version,
|
||||||
flags=flags,
|
flags=flags,
|
||||||
system_ID=PSSH.SystemId.Widevine,
|
system_ID=system_id,
|
||||||
init_data=[init_data, b""][init_data is None]
|
init_data=[init_data, b""][init_data is None]
|
||||||
# key_IDs should not be set yet
|
# key_IDs should not be set yet
|
||||||
))))
|
))))
|
||||||
|
|
Loading…
Reference in New Issue