Files
obs-studio/libobs
tt2468 06291c7201 libobs: Fix race when to-be-destroyed encoder group finishes stopping
Fixes a crash when the following steps occur:
- Encoder group created and then started with encoders, only the group
owning encoder refs
- Encoder group destroy called: group has `destroy_on_stop` set
without actual destroy
- Outputs holding encoders from stopping are stopped
- `remove_connection()` function destroys encoder group, releasing
encoders and causing the currently processed encoder to be destroyed
early
- parent scopes try to access destroyed encoder pointer and crash

This change moves some logic around to improve the release/destruct
order of `obs_encoder_stop()` to fix the race above.

Note: Cases of encoder errors will not destruct the group if it has
`destroy_on_stop` set, as the encoder is also not destroyed if it also
is set to destroy on stop. This part of the code should be revisited
at a later date and fixed up to prevent memory leaks.
2024-06-26 16:42:05 -04:00
..
2023-05-20 01:31:18 -07:00
2022-07-19 09:28:51 -03:00
2024-04-26 18:17:34 -07:00
2024-04-26 18:17:34 -07:00
2023-05-20 01:31:18 -07:00
2024-06-07 17:55:37 -04:00
2023-05-20 01:31:18 -07:00
2023-05-20 01:31:18 -07:00
2023-05-20 01:31:18 -07:00
2023-05-20 01:31:18 -07:00
2023-08-10 16:07:25 -04:00
2023-05-20 01:31:18 -07:00
2023-05-20 01:31:18 -07:00
2023-05-20 01:31:18 -07:00
2023-05-20 01:31:18 -07:00
2024-06-17 08:20:01 -07:00
2023-08-10 16:07:25 -04:00