fix(drm): license every PlayReady header until all KIDs are covered

Only the first WRM header was read and licensed, so a manifest carrying several headers silently lost content keys. Collect KIDs from every header and license each distinct one until coverage is complete.
This commit is contained in:
imSp4rky
2026-09-07 10:05:09 -06:00
parent 627f1fa81c
commit 7065cbf911
5 changed files with 593 additions and 41 deletions
@@ -108,6 +108,8 @@ class StubPlayReady(PlayReady):
self.pssh = SimpleNamespace(wrm_headers=["<WRMHEADER/>"])
self.pssh_b64 = pssh_b64
self.kids = [KID]
self._extra_headers: list[Any] = []
self._refused_headers: set[str] = set()
self.content_keys: dict[UUID, str] = {}
def extract_keys_from_cdm(self, cdm: Any, session_id: Any) -> dict[UUID, str]: