Fix image leak of hardware parallel encoder on display reinit #823
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
When a reinit caused by a capture size change occurs via the Windows hardware encoder, the stream will freeze with
display_wp->use_count()stuck at 2. Fix by ensuring pending images are freed before reinit event is checked.To reproduce:
The freeze will occur when this line appears in the log:
Further debugging shows that
display_wp->use_count()stays at 2, causing Sunshine to freeze as it is stuck in this loop.Pinging @cgutman, as it is related to: adbfd09. Please let me know if moving this breaks the original case it was intended to fix.
Type of Change
.github/...)Checklist
Branch Updates
LizardByte requires that branches be up-to-date before merging. This means that after any PR is merged, this branch
must be updated before it can be merged. You must also
Allow edits from maintainers.