Bug Report Duplicating Group does not do a deep copy - objects within copied group are not duplicated but referenced

PeiPei

New Member
What happens?
Copy Group >>> Paste (Duplicate) >>> change element in group >>> element in original group changes as well

I guess duplicating a group in OBS does copy the group object itself - but the elements within are still referencing their original objects and therefore the duplicate-feature for groups is more or less useless. As there is no possibility to copy several objects at once this does affect my workflow a lot.

Please please do deep copies!
 

PeiPei

New Member
Same with duplicating scenes.

This actually might be a feature that can be useful sometimes. But as a user when I duplicate something I actually expect a deep copy.
 

Suslik V

Active Member
It is from development, design flaw. The sources has unique names across the scenes. So, if source copied and has same name - it is same source (reference). OBS has number of functions across the code just to give unique names to sources, files, scene collections etc. So, it is hard to make it all unified - wait for few years and feature will be added, I think.
 

PeiPei

New Member
thank you for your quick reply!

you know...waiting a few years until ctrl + z or proper duplicates are done is not really my style :P
Maybe I can script something to help me out and copy each item or whatever... I have a ton of items to be duplicated though >.<
 

Suslik V

Active Member
@Thub programming is different from using. What looks logical for programmer not always convenient for the end user (related threads: https://obsproject.com/forum/threads/obs-duplicating-issues.94415/ and https://obsproject.com/forum/threads/source-paste-reference-clarification.96165/ and some else).

Detailed explanation

OBS has "Sources" - let's say invisible "objects" that can generate audio or video signals. OBS has "items" - each "item" is a reference of the "Source". "Item" holds visible texture from the source, it can be resized, muted etc. This "items" - is what you see in the "Sources" pane of OBS. When you adding the very first source to the Sources pane you actually doing two actions simultaneously: initializing new "Source" (that itself starts to generate audio or video somewhere in the memory of your PC) and adding visible representation of this source (now named "item") to the Sources list pane (and seeing it in the Preview).

OBS is real-time tool, so it is better to keep number of the "Sources" (objects that generates audio and video) as low as possible. Many of these sources are always running in the background (remember, you only see a representation of the sources - the "items" that reside in the Sources pane) - this continuous running makes it possible to seamlessly transition between scenes. If you making full copy of the source then ALL properties of the source can be changed. It means, that a new object has been created in the memory of your PC and this object now generates a second thread of audio or video data (double the load on your PC!).

When you making reference copy of the source then only the texture is copied, you see it as a new "item". Thus, when you do "Add existing" source or "Paste reference" source in OBS, you are actually adding a new texture (representation) of the "Source".

The "Filter" is a special source that connected in the chain to some original source (not to the "item", because item is only a texture with the size, visibility and mute properties).

The "Group" is a special source that may contain only "items"... and, of course, some "Filters" can be connected to it in the chain same as to any other regular sources.

I hope, you now understand OBS a little better. I may be wrong about some details, but the general explanation should be close to the original logic of the program. And one more thing, by clicking on the "Properties" of an "item" you open the properties of the parent source (the "Source", the "Filter", the "Group" etc).

Short explanation

Some sources cannot be fully copied in a simple way. Some sources (Video Capture Device) are useless as full copies, because one source running = device already in use.
 
Top