mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-20 13:08:50 +02:00
obs-filters: Fix NvAFX mutex leak
This commit is contained in:
parent
353868e87c
commit
3d342cd1e1
@ -140,6 +140,7 @@ struct noise_suppress_data {
|
||||
|
||||
#ifdef LIBNVAFX_ENABLED
|
||||
/* global mutex for nvafx load functions since they aren't thread-safe */
|
||||
bool nvafx_initializer_mutex_initialized;
|
||||
pthread_mutex_t nvafx_initializer_mutex;
|
||||
#endif
|
||||
|
||||
@ -516,7 +517,8 @@ bool load_nvafx(void)
|
||||
return false;
|
||||
}
|
||||
|
||||
pthread_mutex_init(&nvafx_initializer_mutex, NULL);
|
||||
nvafx_initializer_mutex_initialized =
|
||||
pthread_mutex_init(&nvafx_initializer_mutex, NULL) == 0;
|
||||
|
||||
#define LOAD_SYM_FROM_LIB(sym, lib, dll) \
|
||||
if (!(sym = (sym##_t)GetProcAddress(lib, #sym))) { \
|
||||
@ -576,6 +578,18 @@ unload_everything:
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
void unload_nvafx(void)
|
||||
{
|
||||
#ifdef LIBNVAFX_ENABLED
|
||||
release_lib();
|
||||
|
||||
if (nvafx_initializer_mutex_initialized) {
|
||||
pthread_mutex_destroy(&nvafx_initializer_mutex);
|
||||
nvafx_initializer_mutex_initialized = false;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static void *noise_suppress_create(obs_data_t *settings, obs_source_t *filter)
|
||||
{
|
||||
struct noise_suppress_data *ng =
|
||||
|
@ -28,8 +28,8 @@ extern struct obs_source_info async_delay_filter;
|
||||
#if NOISEREDUCTION_ENABLED
|
||||
extern struct obs_source_info noise_suppress_filter;
|
||||
extern struct obs_source_info noise_suppress_filter_v2;
|
||||
extern bool load_nvafx();
|
||||
extern void release_lib();
|
||||
extern bool load_nvafx(void);
|
||||
extern void unload_nvafx(void);
|
||||
#endif
|
||||
extern struct obs_source_info invert_polarity_filter;
|
||||
extern struct obs_source_info noise_gate_filter;
|
||||
@ -79,6 +79,6 @@ bool obs_module_load(void)
|
||||
#ifdef LIBNVAFX_ENABLED
|
||||
void obs_module_unload(void)
|
||||
{
|
||||
release_lib();
|
||||
unload_nvafx();
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user