fix: video_channel
ownership #1511
#1513
Merged
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.
There is some bad ownership handling of the channels. When creating amcp_command_repository it holds a copy of the pointer for each channel.
This class is not being destroyed correctly, because the main loop holds a reference for the console amcp client, causing it to not be destoyed when expected.
This then crashes because once caspar thinks it has destroyed everything, it tells cef to shutdown which causes the crash as the renderers are still active (as are all the channels, producers and consumers).
This fixes that by swapping out the root channels vector to contain the type needed by amcp_command_repository, which avoids the ownership issues