From e70b226e7ea2b23d1c2f123f7ef3eea258437793 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Thu, 30 Nov 2017 05:04:39 -0800 Subject: [PATCH] libobs: Duplicate private scene/source settings Ensures that private settings data is also duplicated when a scene or a source is duplicated. --- libobs/obs-scene.c | 3 +++ libobs/obs-source.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/libobs/obs-scene.c b/libobs/obs-scene.c index cd0c988f6..d35221288 100644 --- a/libobs/obs-scene.c +++ b/libobs/obs-scene.c @@ -1095,6 +1095,9 @@ obs_scene_t *obs_scene_duplicate(obs_scene_t *scene, const char *name, new_scene = make_private ? obs_scene_create_private(name) : obs_scene_create(name); + obs_data_apply(new_scene->source->private_settings, + scene->source->private_settings); + for (size_t i = 0; i < items.num; i++) { item = items.array[i]; source = make_unique ? diff --git a/libobs/obs-source.c b/libobs/obs-source.c index b052fcf0b..337be6c76 100644 --- a/libobs/obs-source.c +++ b/libobs/obs-source.c @@ -468,6 +468,8 @@ obs_source_t *obs_source_duplicate(obs_source_t *source, new_source->muted = source->muted; new_source->flags = source->flags; + obs_data_apply(new_source->private_settings, source->private_settings); + if (source->info.type != OBS_SOURCE_TYPE_FILTER) duplicate_filters(new_source, source, create_private);