OBS program structure (Thinking out loud)

Sunforest

New Member
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:
  • 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]
 
Particularly excited about the expanded audio options. Storing most of these audio settings per profile would be my preference. It might be a pain in the ass to configure, but it allows so much flexibility once you've gotten everything set-up.
 

ragtag7

New Member
I imagine making a Linux version will take an immense amount of time because video drivers seem to be a big issue on nix systems. Multiple output resolutions sounds fantastic! Something OBS has needed for a long time, many of my viewers sometimes don't have enough net to watch me in HD res. More plugins sound awesome, I just wish some of the plugins/3rd party programs that are available now were fully integrated into OBS as a whole (twitch dashboard lite).

Great ideas for the future of OBS overall Sunforest, keep it up!
 

Sunforest

New Member
Just because I'm not writing code anymore doesn't mean it cannot continue to be discussed. The structure is still a valid suggestion and can be implemented by anyone.
 

Tak0r

Member
i think best way would be a dicing goal from Jim with a lets say feature freze to make a transition faster. Implementing this while the OBS Code changes heavily would be too troublesome.
 
Top