Skip to content

Multi-key handling#7517

Merged
robwalch merged 11 commits intomasterfrom
bugfix/eme-multi-key
Mar 4, 2026
Merged

Multi-key handling#7517
robwalch merged 11 commits intomasterfrom
bugfix/eme-multi-key

Conversation

@robwalch
Copy link
Collaborator

@robwalch robwalch commented Aug 30, 2025

This PR will...

  • Group media key sessions by key tag (EXT-X-KEY) URI, and group all parsed key tags (LevelKey instances) and their key-ids in eme-controller session-context objects.
  • Fix key-status errors being ignored after key is usable.
  • Warn when "output-restricted" key status is received on level with HDCP-LEVEL=NONE
  • Fix error handling after after encountering same key URI that errored previously
  • Fix escalation of unresolved level removal to fatal

Why is this Pull Request needed?

  • Reduces license requests / sessions when multiple-keys are delivered in a single PSSH/URI
  • Fixes edge cases where key status updates were not handled

Are there any points in the code the reviewer needs to double check?

If you've recently reported issues related to EME playback, please review and leave feedback if you are able to test. Thanks!

Resolves issues:

Checklist

  • changes have been done against master branch, and PR does not conflict
  • new unit / functional tests have been added (whenever applicable)
  • API or design changes are documented in API.md

@robwalch
Copy link
Collaborator Author

robwalch commented Sep 5, 2025

robwalch added a commit that referenced this pull request Feb 4, 2026
Get KEYID from init segment 'tenc' when not found elsewhere Fixes #7541
Remove key-loader promise caching for EME keys
Add MediaKeySessionClosedReason result to eme-controller removeSession (fixes close spy on MediaKeysSessionMock)
@robwalch robwalch force-pushed the bugfix/eme-multi-key branch from f89dffc to ac5fc47 Compare February 4, 2026 16:45
robwalch added a commit that referenced this pull request Feb 17, 2026
Get KEYID from init segment 'tenc' when not found elsewhere Fixes #7541
Remove key-loader promise caching for EME keys
Add MediaKeySessionClosedReason result to eme-controller removeSession (fixes close spy on MediaKeysSessionMock)
@robwalch robwalch force-pushed the bugfix/eme-multi-key branch from ac5fc47 to 3daa75d Compare February 17, 2026 01:59
@robwalch robwalch marked this pull request as ready for review February 17, 2026 04:30
@robwalch robwalch requested a review from krseager February 18, 2026 22:02
Update keyUriToKeyIdMap set after KEY_LOADING
Get KEYID from init segment 'tenc' when not found elsewhere Fixes #7541
Remove key-loader promise caching for EME keys
Add MediaKeySessionClosedReason result to eme-controller removeSession (fixes close spy on MediaKeysSessionMock)
@robwalch robwalch force-pushed the bugfix/eme-multi-key branch from 2f02194 to 1c58e3a Compare February 26, 2026 20:40
@robwalch robwalch force-pushed the bugfix/eme-multi-key branch from 8fa766e to e695579 Compare March 3, 2026 18:23
@robwalch robwalch merged commit b3a5d62 into master Mar 4, 2026
27 of 28 checks passed
@robwalch robwalch deleted the bugfix/eme-multi-key branch March 4, 2026 20:13
@github-project-automation github-project-automation bot moved this from Top priorities to Done in HLS.js Release Planning and Backlog Mar 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Development

Successfully merging this pull request may close these issues.

Multi-key handling

1 participant