|
@@ -489,6 +489,17 @@ fail:
|
|
|
return data->valid;
|
|
return data->valid;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+void obs_main_view_free(struct obs_view *view)
|
|
|
|
|
+{
|
|
|
|
|
+ if (!view) return;
|
|
|
|
|
+
|
|
|
|
|
+ for (size_t i = 0; i < MAX_CHANNELS; i++)
|
|
|
|
|
+ obs_source_release(view->channels[i]);
|
|
|
|
|
+
|
|
|
|
|
+ memset(view->channels, 0, sizeof(view->channels));
|
|
|
|
|
+ pthread_mutex_destroy(&view->channels_mutex);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
#define FREE_OBS_LINKED_LIST(type) \
|
|
#define FREE_OBS_LINKED_LIST(type) \
|
|
|
do { \
|
|
do { \
|
|
|
int unfreed = 0; \
|
|
int unfreed = 0; \
|
|
@@ -507,7 +518,7 @@ static void obs_free_data(void)
|
|
|
|
|
|
|
|
data->valid = false;
|
|
data->valid = false;
|
|
|
|
|
|
|
|
- obs_view_free(&data->main_view);
|
|
|
|
|
|
|
+ obs_main_view_free(&data->main_view);
|
|
|
|
|
|
|
|
blog(LOG_INFO, "Freeing OBS context data");
|
|
blog(LOG_INFO, "Freeing OBS context data");
|
|
|
|
|
|