Browse Source

libobs: Duplicate private scene/source settings

Ensures that private settings data is also duplicated when a scene or a
source is duplicated.
jp9000 8 năm trước cách đây
mục cha
commit
e70b226e7e
2 tập tin đã thay đổi với 5 bổ sung0 xóa
  1. 3 0
      libobs/obs-scene.c
  2. 2 0
      libobs/obs-source.c

+ 3 - 0
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 ?

+ 2 - 0
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);