Skip to content
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

[AdaptiveStream] Restored decrypter IV variable as class member #1133

Merged
merged 2 commits into from
Feb 16, 2023

Conversation

CastagnaIT
Copy link
Collaborator

Description

Revert to original state, the current code that manage IV/PSSH is a real panic of a mess...
every attempt i tried to clean up the code was a failure

by looking at ffmpeg hls source, there is no all this mess
ffmpeg set the missing IV directly when create the segments when parsing the manifest (in our case by using ivFromSequence when parsing) trying do a similar thing dont work
one reason is around the variable else if (!dstOffset) on HLSTree::OnDataArrived used to set the IV that its totally unclear
the variables from which the data originate are so confusing
which are poorly implemented and IMO require a rework

Motivation and context

fix #1132

How has this been tested?

Screenshots (if appropriate):

Types of change

  • Bug fix (non-breaking change which fixes an issue)
  • Clean up (non-breaking change which removes non-working, unmaintained functionality)
  • Improvement (non-breaking change which improves existing functionality)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that will cause existing functionality to change)
  • Cosmetic change (non-breaking change that doesn't touch code)
  • None of the above (please explain below)

Checklist:

  • I have read the Contributing document
  • My code follows the Code Guidelines of this project
  • My change requires a change to the Wiki documentation
  • I have updated the documentation accordingly

@CastagnaIT CastagnaIT added Type: Fix non-breaking change which fixes an issue Backport: Needed Component: HLS v21 Omega labels Feb 13, 2023
@jpalus
Copy link

jpalus commented Feb 13, 2023

Just a note that this PR seems to fix recent regression with EuroSport that I was experiencing after upgrade to 20.3.3: video and audio starts fine, but video exhibits frequent artifacts, like some areas not being updated, and after a while audio gets lost completely. Interestingly once audio is gone, video becomes perfectly fine. Applying this PR over 20.3.3 fixes the issue.

@glennguy glennguy merged commit 79a393b into xbmc:Omega Feb 16, 2023
@glennguy
Copy link
Contributor

Thanks @CastagnaIT - could you also prepare backport for Nexus?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Backport: Done Component: HLS Type: Fix non-breaking change which fixes an issue v21 Omega
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Broken HLS AES-128 decryption and live audio buzzy
3 participants