While looking through the current source code and figuring out how to implement some of the most wanted features I drew up this diagram of a potential partial restructure of the source code from the perspective of what I'm calling the "broadcast chain" (How input sources are used to produce the final output video). It is in no way final and as it does involve some fundamental GUI changes it is possibly controversial. I have not yet investigated how much effort implementing this structure would take.
I would like your feedback on what is good and what is bad about this design.
The mains goals I had were:
The main changes to the GUI are:
[Image removed due to lack of interest]
I would like your feedback on what is good and what is bad about this design.
The mains goals I had were:
- Make scenes easier for users to setup and use,
- Allow more parts of OBS to be implemented in plugins,
- Allow broadcasting in multiple resolutions to multiple targets using multiple encoders,
- Provide virtual webcam support, and
- Prepare the code for porting to Linux and OS X by separating platform-dependent code.
The main changes to the GUI are:
- The "sources" list on the main window is converted a tree structure and every scene uses the same tree,
- "Scenes" control which top-level tree nodes are activated (Disabling a parent disables all of its children),
- Video resolution and downscaling are moved into encoder settings to allow multiple output resolutions,
- Some settings are moved from global to profile settings and vice-versa, and
- There can be more than two audio channels.
[Image removed due to lack of interest]