New Auto Optimizer - #1767
Open
aleksandr-voitenko wants to merge 54 commits into
Open
Conversation
- osn-streaming: drop extra obs_data_addref on originalServiceSettings; obs_service_get_settings already returns an owned ref (was a leak). - osn-video: restore the connecting-outputs guard with an APIv2 helper (iterate IStreaming manager, force-stop connecting outputs) in place of the commented-out OBS_service::stopConnectingOutputs() in Set/RemoveVideoContext. - nodeobs_autoconfig: drive bandwidth connect-wait off obs_output_active() instead of drained signals so a target that hasn't signalled yet isn't treated as connected (avoids totalBytes == 0). - nodeobs_autoconfig: wait for outputs to deactivate in applyResults before obs_set_video_info (obs_output_stop is async; avoids OBS_VIDEO_CURRENTLY_ACTIVE). - test_nodeobs_autoconfig: fix stale comment (startAutoconfig takes IStreaming[]; error string is no_streaming_targets_provided). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Join wrapped ThrowAsJavaScriptException calls (client) and wrap the InitializeAutoConfig register_function call (server) to satisfy the clang-format-13 CI check. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Preserve unassigned scene-item routing when no canvas is provided, reject invalid canvas references, and expose unassigned canvases as null.
# Conflicts: # js/module.d.ts # js/module.ts # obs-studio-client/source/video.cpp # obs-studio-server/source/osn-advanced-replay-buffer.cpp # obs-studio-server/source/osn-simple-recording.cpp # obs-studio-server/source/osn-simple-replay-buffer.cpp
sandboxcoder
reviewed
Sep 2, 2026
sandboxcoder
approved these changes
Sep 2, 2026
sandboxcoder
reviewed
Sep 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Replaces the legacy Auto Config flow with a run-based Auto Optimizer API. OSN measures supported Twitch and YouTube upload paths, benchmarks local encoding workloads, and returns structured recommendations with progress and warnings.
Supports standard streaming, Dual Output, Twitch Enhanced Broadcasting, and supported mixed workloads without changing persistent user settings.
Motivation and Context
Stream settings must account for both upload capacity and the complete encoding workload. Evaluating outputs independently can overload the system when multiple canvases, Enhanced Broadcasting ladders, or companion outputs run concurrently.
OSN owns measurement and workload validation, while Desktop prepares provider resources and applies or ignores the result. This is coordinated with the auxiliary video-mix support from obs-studio #765.
How Has This Been Tested?
Types of changes