PSSH: Fix usage of WidevinePsshData's key_ids field
This commit is contained in:
parent
f09a06857a
commit
1ea57865ad
|
@ -47,7 +47,7 @@ class PSSH:
|
||||||
cenc_header.algorithm = 1 # 0=Clear, 1=AES-CTR
|
cenc_header.algorithm = 1 # 0=Clear, 1=AES-CTR
|
||||||
|
|
||||||
for key_id in key_ids:
|
for key_id in key_ids:
|
||||||
cenc_header.key_id.append(key_id.bytes)
|
cenc_header.key_ids.append(key_id.bytes)
|
||||||
if box.version == 1:
|
if box.version == 1:
|
||||||
# ensure both cenc header and box has same Key IDs
|
# ensure both cenc header and box has same Key IDs
|
||||||
# v1 uses both this and within init data for basically no reason
|
# v1 uses both this and within init data for basically no reason
|
||||||
|
@ -66,7 +66,7 @@ class PSSH:
|
||||||
"""
|
"""
|
||||||
cenc_header = WidevinePsshData()
|
cenc_header = WidevinePsshData()
|
||||||
for key_id in key_ids:
|
for key_id in key_ids:
|
||||||
cenc_header.key_id.append(key_id.bytes)
|
cenc_header.key_ids.append(key_id.bytes)
|
||||||
cenc_header.algorithm = 1 # 0=Clear, 1=AES-CTR
|
cenc_header.algorithm = 1 # 0=Clear, 1=AES-CTR
|
||||||
|
|
||||||
box = Box.parse(Box.build(dict(
|
box = Box.parse(Box.build(dict(
|
||||||
|
@ -153,7 +153,7 @@ class PSSH:
|
||||||
return [
|
return [
|
||||||
# the key_ids value may or may not be hex underlying
|
# the key_ids value may or may not be hex underlying
|
||||||
UUID(bytes=key_id) if len(key_id) == 16 else UUID(hex=key_id.decode())
|
UUID(bytes=key_id) if len(key_id) == 16 else UUID(hex=key_id.decode())
|
||||||
for key_id in init.key_id
|
for key_id in init.key_ids
|
||||||
]
|
]
|
||||||
|
|
||||||
if box.system_ID == PSSH.SystemId.PlayReady:
|
if box.system_ID == PSSH.SystemId.PlayReady:
|
||||||
|
@ -192,12 +192,12 @@ class PSSH:
|
||||||
init.ParseFromString(box.init_data)
|
init.ParseFromString(box.init_data)
|
||||||
|
|
||||||
# TODO: Is there a better way to clear the Key IDs?
|
# TODO: Is there a better way to clear the Key IDs?
|
||||||
for _ in range(len(init.key_id or [])):
|
for _ in range(len(init.key_ids or [])):
|
||||||
init.key_id.pop(0)
|
init.key_ids.pop(0)
|
||||||
|
|
||||||
# TODO: Is there a .extend or a way to add all without a loop?
|
# TODO: Is there a .extend or a way to add all without a loop?
|
||||||
for key_id in key_ids:
|
for key_id in key_ids:
|
||||||
init.key_id.append(key_id.bytes)
|
init.key_ids.append(key_id.bytes)
|
||||||
|
|
||||||
box.init_data = init.SerializeToString()
|
box.init_data = init.SerializeToString()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue