feat: add opt-in Widevine L3 fallback for DRM playback failures - #120
Conversation
410921b to
98fc40b
Compare
|
Claude finished @Balamurugan-100's task in 3m 12s —— View job SummaryReviewed the latest changes to the DRM L3-fallback feature (round 3) against the two previous review rounds. All previously-flagged compile-breaking issues remain fixed, and several correctness issues from round 2 are resolved. However, a new change in this round makes the fallback mechanism functionally inert from the host app's perspective, which is a blocking regression against the PR's stated purpose. Confirmed fixed since round 2:
Findings1. The practical effect: a host app integrating this SDK will see 2. 3. Sentry can no longer distinguish "fallback attempted" from "no fallback" (non-blocking, observability gap) Regression Assessment
Final Verdict❌ CHANGES REQUESTED The compile-breaking and error-swallowing issues from earlier rounds are resolved, but the fix for the swallowed-error bug (removing the early |
113e0d7 to
4ca8446
Compare
|
Claude finished @Balamurugan-100's task in 10s —— View job I'll analyze this and get back to you. |
|
@claude review |
|
Claude finished @Balamurugan-100's task in 5m 19s —— View job Claude finished reviewingTodo list
SummaryThis round is a substantial improvement over rounds 1–4, and I believe it resolves every previously-flagged blocking issue. I was again unable to run Confirmed resolved since round 4:
Findings (all non-blocking)1. Offline downloaded DRM content bypasses the L3 resolution entirely (worth verifying on-device) 2. Dead code with a latent bug: 3. Minor duplication: native Widevine level is queried twice via separate 4. Unused import 5. Live-stream retry path re-seeks to the pre-error position Regression Assessment
Final Verdict✅ Looks good — no blocking issues found. All compile-breaking and logic-breaking issues from rounds 1–4 appear resolved, and the core mechanism (custom |
|
Claude finished @Balamurugan-100's task in 2m 6s —— View job Claude finished reviewingTodo list
SummaryThis commit ( All 5 round-5 findings are now resolved:
New-code check: I was unable to run Regression Assessment
Final Verdict✅ APPROVED All previously-flagged blocking issues (rounds 1–4) and non-blocking cleanup items (round 5) are now resolved. No new issues were introduced by this refactor commit. |
|
Claude encountered an error after 0s —— View job I'll analyze this and get back to you. |
1 similar comment
|
Claude encountered an error after 0s —— View job I'll analyze this and get back to you. |
|
@claude review |
|
Claude encountered an error after 0s —— View job I'll analyze this and get back to you. |
2 similar comments
|
Claude encountered an error after 0s —— View job I'll analyze this and get back to you. |
|
Claude encountered an error after 0s —— View job I'll analyze this and get back to you. |
d9f5d07 to
a9c46e9
Compare
|
Claude encountered an error after 0s —— View job I'll analyze this and get back to you. |
a9c46e9 to
4a33570
Compare
|
Claude encountered an error after 0s —— View job I'll analyze this and get back to you. |
4a33570 to
5c2b726
Compare
|
Claude encountered an error after 0s —— View job I'll analyze this and get back to you. |
|
@claude review |
|
Claude finished @Balamurugan-100's task in 3m 14s —— View job Claude finished reviewingTodo list
SummaryThis round adds three commits on top of the previously-approved state (round 5 + refactor): What changed and why it's correct:
Verified prior-round findings are unaffected:
Minor / non-blocking observations1. 2. 3. Three new public getters were added in Regression Assessment
Final Verdict✅ No blocking issues found. These three commits fix a real bug (DRM fallback being unreachable due to check ordering) and harden the retry/resolver logic against races and repeated attempts. Items #1–#3 above are minor and non-blocking — #2 is worth a manual on-device test, #3 is worth a quick confirmation that the new public getters are intentional API surface. |
This adds automatic fallback to L3 (software) decryption when DRM provisioning fails on L1 (hardware-secured) devices, providing graceful degradation instead of complete playback failure.
Key changes: