Commit Graph

10 Commits

Author SHA1 Message Date
PatTheMav
f61619ce30 frontend: Fix multitrack custom config handling
Custom configuration for multitrack-enabled services is only supposed
to be available for the "rtmp_custom" service type, as that's also
the condition for the corresponding text input to become visible in the
settings dialog.

When a user switches their desired service from the custom service back
to another service that also supports multitrack, the custom service
configuration is still present and will be applied even though it
should only be effective for the custom service.

This change makes the simple decision to ignore any available custom
multitrack configuration if the service is not "rtmp_custom" and
requires an "auto_config_url" to be available in that case. Otherwise
the "rtmp_custom" service requires an "custom_config" to be available.

That way the implementation reflects the behavior of the settings dialog
and will not lead to the present unexpected behavior, including:

* The custom configuration is "merged" with the config ID provided
  via the "auto_config_url".
* A non-custom service might fail to configure because the custom config
  is applied and might be missing required fields.
* A non-custom service might succeed to configure because the custom
  config is applied and has all required fields, but the service was
  meant for an entirely different service.

Additionally the unused "MultitrackVideoDeveloperModeEnabled" function
was removed. For simplicity's sake, all legacy code paths that allowed
interference or custom overrides with the service configuration for
established services are removed.

If such functionality is still desired, it needs to be reimplemented in
a service-agnostic way, taking the possibility of other multitrack-
capable services into account.
2026-06-05 16:43:12 -04:00
Ruwen Hahn
cd95b3bf49 frontend: Add dynamic bitrate support to multitrack video
The bitrate interpolation points are sent in JSON configuration and
need to be forwarded to `create_video_encoders()`. Also remove the
`HandleIncompatibleSettings()` handler because there are no longer any
incompatible settings.
2026-06-05 14:11:55 -04:00
Dennis Sädtler
e474a3723b frontend: Allow 5 multitrack reconnect attempts before re-running GCC 2025-05-07 15:46:50 -04:00
Dennis Sädtler
0552062390 frontend: Allow selecting additional canvases for multitrack 2025-05-05 17:17:20 -04:00
Ruwen Hahn
9bba6e52ff frontend: Allow Network Optimizations with multitrack video
"Enable network optimizations" in the Advanced Settings is referred to
as `NewSocketLoop` in the code. This feature was incompatible with
multitrack video but now works properly. Remove it from the
incompatible settings check.
2025-04-30 12:27:03 -04:00
Alex Luccisano
6bb9019aff frontend: Allow Stream Delay with multitrack video
Remove Stream Delay from the incompatible settings list for multitrack
video as it works properly now.
2025-04-29 13:50:57 -04:00
Ryan Foster
e471d3109b cmake: Specify NOMINMAX all the time on Windows
This prevents the Windows headers from defining min/max macros.

Use std::min and std::max.

Modifies deps, frontend, libobs-d3d11, libobs-winrt, decklink, obs-vst,
and win-dshow.
2025-02-07 14:52:24 -05:00
Dennis Sädtler
7e24a6093c frontend: Restart multitrack output if stream key has become invalid 2025-01-29 13:16:47 -05:00
Dennis Sädtler
d026c871e0 frontend: Remove multitrack deactivate handlers
With the encoder reference counting fixups this is no longer required.
2025-01-29 13:16:47 -05:00
PatTheMav
d846b0ba0a frontend: Add renamed UI utility classes and functions 2025-01-08 17:33:12 +01:00