-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
internal-error
in keystatuseschange
is not handled well
#6423
Comments
In my testing the key-status changed to 'output-restricted' which results in HDCP level filtering (but not HDCP levels were specified). As all variants share the same key, none of them are playable. Adding an HDCP-LEVEL attribute to each variant would result in skipping attempts to load other levels with the same HDCP level or higher. The error should surface as fatal faster this way. I can't speak to why you got a "internal-error" status. I saw a mention of this being related to the device not having the resources to the handle another key-system session. According to the spec this status is not actionable.: https://www.w3.org/TR/encrypted-media/#dom-mediakeystatus-internal-error
We could treat it like output-restricted but it looks like this already should be escalated to fatal. You should be able to handle it yourself, and without handling it, hls.js is expected to stop on fatal errors: hls.js/src/controller/eme-controller.ts Lines 791 to 801 in 3e6987b
What do you think @Wenjie-Shao? What is your expectation for this state given that it is not an error hls.js can recover from? |
What version of Hls.js are you using?
1.5.7
What browser (including version) are you using?
Chrome 119.0.6045.199
What OS (including version) are you using?
Mac OS 13.6
Test stream
No response
Configuration
Additional player setup steps
Nothing
Checklist
Steps to reproduce
The error could be reproduced in the demo page. But I can not provide a test stream for security reason. If you need one please email me [email protected] .
Expected behaviour
The DRM content that can not be played, should throw out an error.
What actually happened?
The content will stop without any error playing after several seconds. I filtered the output log by
eme
. You can see the key status changed fromusable
tointernal-error
. But the hls instance didn't throw out any error. It just waiting for new session, which is useless.Console output
The text was updated successfully, but these errors were encountered: