-
Notifications
You must be signed in to change notification settings - Fork 428
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
fix: keyId filtering loadedplaylist listener and improvements #1468
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #1468 +/- ##
==========================================
+ Coverage 86.02% 86.12% +0.09%
==========================================
Files 42 42
Lines 10708 10781 +73
Branches 2461 2490 +29
==========================================
+ Hits 9212 9285 +73
Misses 1496 1496 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This makes sense to me, I think falling back is valuable when we can do it.
Description
After doing some further testing with HLS and playlist exclusion by keyId, it became apparent some more fixes were needed to properly request and filter all possible variants.
I also added a fallback mechanism and additional logging. I was testing another asset with no matching keys and it seemed necessary to at least TRY and play the non-HD playlists if we have previously excluded them due to non-usable or non-matching keyIds.
Specific Changes proposed
Listening to
loadedplaylist
and callingexcludeNonUsablePlaylistsByKeyId_
andfastQualityChange
when a new playlist is loaded. This allows theplaylist-controller
to check the keyId in the loaded or refreshed playlist for an HLS variant, or a refreshed DASH manifest.Also, add a conditional after the playlist exclusion loop that checks if we excluded all of the playlists due to non-usable status or non-matching keys and re-includes all the SD playlists and logs a warning. This provides VHS with a bit more resilience against unexpected manifests or license data.
Requirements Checklist