Skip to content

Start main output and preview after other plugins have setup output#1399

Merged
BitRate27 merged 1 commit into
DistroAV:masterfrom
exeldro:main_output_start_queued
Feb 9, 2026
Merged

Start main output and preview after other plugins have setup output#1399
BitRate27 merged 1 commit into
DistroAV:masterfrom
exeldro:main_output_start_queued

Conversation

@exeldro

@exeldro exeldro commented Feb 8, 2026

Copy link
Copy Markdown
Contributor

Start main output and preview queued on the UI thread to allow other plugins to configure their canvases

Aitum Stream Suite fails to configure its canvases because there is an output active. The configuration of the canvases is done on OBS_FRONTEND_EVENT_FINISHED_LOADING in Aitum Stream Suite, but OBS_FRONTEND_EVENT_FINISHED_LOADING is called on DistroAV before that.

@BitRate27

BitRate27 commented Feb 9, 2026

Copy link
Copy Markdown
Contributor

Could you list the steps needed to reproduce this issue in Aitum Stream Suite. I have downloaded and added a recording output, but have no problem loading the Aitum plugin with NDI Main Output turned on. Is there a specific Aitum setting needed or a bug report to reference?

Also, what specifically in the OBS Output API is failing in Aitum Stream Suite when the NDI Main Output is created first?

@exeldro

exeldro commented Feb 9, 2026

Copy link
Copy Markdown
Contributor Author

In Aitum Stream Suite have an extra canvas add a source to that canvas so you can see that gets rendered. Enable the main output in DistroAV. Restart OBS and see the extra canvas does not get rendered anymore.

OBS does not allow updating canvases when an output is active. The call that fails is obs_canvas_reset_video

@BitRate27

Copy link
Copy Markdown
Contributor

I was able to duplicate the issue, no source shown in "extra canvas". After incorporating this PR into the DistroAV plugin, I can see the source displayed in the "extra canvas" on startup. I also, turned NDI Main and Preview off/on, started OBS with and without outputs on, and everything continued to work as before.

This PR seems to workaround a startup sequence issue with plugins in OBS, perhaps specific to the new Canvas API, by delaying the creation of OBS output until later. This workaround should be documented as other plugins which support output will also need to change. Another option is to provide a new event (eg. OBS_FRONTEND_EVENT_CANVASES_CREATED) to be a more friendly with Aitum type plugins and fit in better with the current startup sequence API.

@exeldro

exeldro commented Feb 9, 2026

Copy link
Copy Markdown
Contributor Author

This PR works around the issue that DistroAV starts outputs on startup, not around an issue in OBS itself.
The starting of outputs at startup blocks users from changing any video setting.

@BitRate27 BitRate27 self-assigned this Feb 9, 2026
@BitRate27 BitRate27 closed this Feb 9, 2026
@BitRate27 BitRate27 reopened this Feb 9, 2026
@BitRate27
BitRate27 self-requested a review February 9, 2026 15:19
@BitRate27 BitRate27 changed the title Start main output and preview queued on the UI thread Start main output and preview after other plugins have setup output Feb 9, 2026

@BitRate27 BitRate27 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is straight forward workaround for DistroAV starting Main and Preview Output by default on startup (if saved in config). It keeps DistroAV from blocking Output settings modifications by other plugins while OBS is starting.

@BitRate27
BitRate27 merged commit a45a3ff into DistroAV:master Feb 9, 2026
12 checks passed
@exeldro
exeldro deleted the main_output_start_queued branch February 10, 2026 18:56
psyirius added a commit to obzessed/obs-spout2-plugin that referenced this pull request Feb 10, 2026
psyirius added a commit to obzessed/obs-spout2-plugin that referenced this pull request Feb 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants