Skip to content

Commit a210825

Browse files
Squashed commit of the following:
commit 35087df Author: Richard <[email protected]> Date: Thu Oct 9 10:22:09 2025 -0500 rename macos_avcapture (replace dashes with underscore) (#679) * remove dash character so this can be looked up easily from JS code in frontend commit c01bded Author: Richard <[email protected]> Date: Wed Oct 8 14:16:01 2025 -0500 add comment to mac-screen-capture plugin and bump obs-browser (#678) * add note indicating why we renamed this plugin * makes future merges easier and reduces risk of accidental naming conflict. * bump obs-browser (added comment that explained float literal value) commit 5b2f353 Author: Aleksandr Voitenko <[email protected]> Date: Wed Oct 8 17:43:31 2025 +0100 Twitch dual streaming (#670) * Backported changes from OBS 31 to enable Twitch dual streaming mode * Restored back lost code from the commit 'Ffmpeg mux freez' * Updated AMD library * CMake format * Fix MacOS build * Fixing linking issues on Window by removing the older tools install step * Fix buid. Updated ftl-sdk submodule * Set option ENABLE_UI to OFF everywhere * CMake format * Updated deps files * Broadcast Performance Metrics (BPM) * Fix HEVC packet priority issues * Allow interleaver to recover from temporary stalls * CMake format * MacOS build fix * Revert "Updated deps files" This reverts commit 5122468. * Attempt to fix dependencies checker * Making step 'Chech for changes in dependencies' on Windows optional * Fixing MacOS build * Removed setup_ccache from MacOS X build * Fixing MacOS build commit 938395a Author: Richard <[email protected]> Date: Fri Oct 3 15:51:50 2025 -0500 update slobs to build on macOS Tahoe dev env (#676) * cmake: Disable CCache for local builds and enable by default for CI * cmake: Disable discovery of Homebrew libraries for dependencies macOS builds should only use dependencies built via the obs-deps build scripts. Default variants of the same dependencies are not compatible with our app packaging requirements and thus will create issues when creating the app bundle. This is specifically an issue when MbedTLS is installed via Homebrew which ships a CMake package config by default and is picked up by our code ever since we switched to prefer CMake packages. * upgrade Qt6 to resolve missing AGL framework on macos Tahoe * Apple remove AGL framework on macos tahoe which breaks the older Qt6 Link: https://bugreports.qt.io/browse/QTBUG-137687 --------- Co-authored-by: PatTheMav <[email protected]> commit 1758f33 Author: Richard <[email protected]> Date: Thu Sep 25 10:04:57 2025 -0500 bump obs-browser (qt browser loop shutdown) (#675) commit 8ae233b Author: Richard <[email protected]> Date: Wed Sep 24 16:52:58 2025 -0500 fix cef main loop blocking call & github workflow ccache issue (#674) * bump obs-browser (fix cef main loop blocking call) * cmake: Remove Ccache option to enforce second preprocessor call Feature was removed in Ccache 4.12, which is provided by Homebrew by default since 2025-10-19. * ci: Limit use of Ccache option to enforce second preprocessor call Feature was removed in Ccache 4.12, which is provided by Homebrew by default since 2025-10-19. --------- Co-authored-by: PatTheMav <[email protected]> commit a9d81e1 Author: Richard <[email protected]> Date: Tue Sep 16 10:37:10 2025 -0500 upgrade obs-browser (#672) commit a14a0c9 Author: Vladimir <[email protected]> Date: Mon Sep 15 10:31:51 2025 -0700 api to communicate with browser source (#647)
1 parent 959e69b commit a210825

File tree

187 files changed

+10225
-6420
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

187 files changed

+10225
-6420
lines changed

.github/scripts/.build.zsh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ build() {
103103
set -- ${(@)args}
104104

105105
check_${host_os}
106-
setup_ccache
106+
#setup_ccache
107107

108108
if [[ ${host_os} == ubuntu ]] {
109109
autoload -Uz setup_ubuntu && setup_ubuntu

.github/scripts/Build-Windows.ps1

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,13 @@ function Build {
8989
Log-Group "Building obs-studio..."
9090
Invoke-External cmake @CmakeBuildArgs
9191

92-
Log-Group "Chech for changes in dependencies..."
93-
Invoke-External cmake @CmakeCheckArgs
92+
try {
93+
Log-Group "Chech for changes in dependencies..."
94+
Invoke-External cmake @CmakeCheckArgs
95+
} catch {
96+
Write-Warning "Chech for changes in dependencies has failed, but workflow will proceed."
97+
$LASTEXITCODE = 0 #Resets the exit code
98+
}
9499

95100
Log-Group "Installing obs-studio..."
96101
Invoke-External cmake @CmakeInstallArgs

.github/scripts/utils.zsh/setup_ccache

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
1-
autoload -Uz log_debug log_warning
1+
autoload -Uz is-at-least log_debug log_warning
22

33
if (( ${+commands[ccache]} )) {
44
log_debug "Found ccache at ${commands[ccache]}"
55

6-
ccache --set-config=run_second_cpp=true
6+
local ccache_version=$(ccache --version | head -1 | cut -d ' ' -f 3)
7+
if ! is-at-least 4.12 ${ccache_version}; then
8+
ccache --set-config=run_second_cpp=true
9+
fi
10+
711
ccache --set-config=direct_mode=true
812
ccache --set-config=inode_cache=true
913
ccache --set-config=compiler_check=content

.github/workflows/build-project.yaml

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ jobs:
205205
env:
206206
SENTRY_AUTH_TOKEN: ${{secrets.SENTRY_AUTH_TOKEN}}
207207
BUILDCONFIG: ${{matrix.BuildConfig}}
208-
208+
209209
- name: Symbol Server and Sentry Integration
210210
if: ${{ env.SKIP_OBS_STEP == 'false' }}
211211
uses: ./.github/actions/upload-debug-symbols
@@ -215,7 +215,7 @@ jobs:
215215
repoName: obs-studio
216216
repoBranch: ${{ github.sha }}
217217
buildConfig: RelWithDebInfo
218-
218+
219219
- uses: actions/cache/save@v4
220220
if: github.event_name != 'pull_request' && steps.ccache-cache.outputs.cache-hit != 'true'
221221
with:
@@ -404,30 +404,6 @@ jobs:
404404
fetch-depth: 0
405405
- name: 'Add msbuild to PATH'
406406
uses: microsoft/setup-msbuild@v1
407-
- name: Install build components
408-
run: |
409-
# For versions update see here: https://learn.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-build-tools?view=vs-2022
410-
Set-Location "C:\Program Files (x86)\Microsoft Visual Studio\Installer\"
411-
$InstallPath = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise"
412-
$componentsToInstall= @(
413-
"Microsoft.VisualStudio.Component.VC.v141.x86.x64"
414-
"Microsoft.VisualStudio.Component.VC.14.39.17.9.x86.x64"
415-
"Microsoft.VisualStudio.Component.VC.14.39.17.9.ATL"
416-
)
417-
[string]$workloadArgs = $componentsToInstall | ForEach-Object {" --add " + $_}
418-
$Arguments = ('/c', "vs_installer.exe", 'modify', '--installPath', "`"$InstallPath`"",$workloadArgs, '--quiet', '--norestart', '--nocache')
419-
# should be run twice
420-
$process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
421-
$process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
422-
shell: powershell
423-
- uses: actions/cache@v4
424-
id: ccache-cache
425-
if: github.event_name == 'pull_request'
426-
with:
427-
path: ${{ github.workspace }}/.ccache
428-
key: ${{ runner.os }}-ccache-x86_64-${{ needs.check-event.outputs.config }}
429-
restore-keys: |
430-
${{ runner.os }}-ccache-x86_64-
431407

432408
- name: Build OBS Studio 🧱
433409
uses: ./.github/actions/build-obs
@@ -497,4 +473,3 @@ jobs:
497473
run: aws s3 cp ${{env.TARGET_ARTIFACT}}.7z s3://${{env.RELEASE_BUCKET}} --acl public-read
498474
env:
499475
TARGET_ARTIFACT: ${{ env.PACKAGE_NAME }}-${{ env.OS_TAG }}-${{ env.ReleaseName }}-${{ steps.get_version.outputs.VERSION }}
500-

.github/workflows/main-streamlabs.yml

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -126,22 +126,6 @@ jobs:
126126
steps:
127127
- name: 'Add msbuild to PATH'
128128
uses: microsoft/setup-msbuild@v1
129-
- name: Install build components
130-
run: |
131-
# For versions update see here: https://learn.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-build-tools?view=vs-2022
132-
Set-Location "C:\Program Files (x86)\Microsoft Visual Studio\Installer\"
133-
$InstallPath = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise"
134-
$componentsToInstall= @(
135-
"Microsoft.VisualStudio.Component.VC.v141.x86.x64"
136-
"Microsoft.VisualStudio.Component.VC.14.39.17.9.x86.x64"
137-
"Microsoft.VisualStudio.Component.VC.14.39.17.9.ATL"
138-
)
139-
[string]$workloadArgs = $componentsToInstall | ForEach-Object {" --add " + $_}
140-
$Arguments = ('/c', "vs_installer.exe", 'modify', '--installPath', "`"$InstallPath`"",$workloadArgs, '--quiet', '--norestart', '--nocache')
141-
# should be run twice
142-
$process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
143-
$process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
144-
shell: powershell
145129
- name: Get the version of aws cli
146130
run: aws --version
147131
shell: powershell

.github/workflows/main.yml

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -432,22 +432,6 @@ jobs:
432432
steps:
433433
- name: 'Add msbuild to PATH'
434434
uses: microsoft/setup-msbuild@v1
435-
- name: Install build components
436-
run: |
437-
# For versions update see here: https://learn.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-build-tools?view=vs-2022
438-
Set-Location "C:\Program Files (x86)\Microsoft Visual Studio\Installer\"
439-
$InstallPath = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise"
440-
$componentsToInstall= @(
441-
"Microsoft.VisualStudio.Component.VC.v141.x86.x64"
442-
"Microsoft.VisualStudio.Component.VC.14.39.17.9.x86.x64"
443-
"Microsoft.VisualStudio.Component.VC.14.39.17.9.ATL"
444-
)
445-
[string]$workloadArgs = $componentsToInstall | ForEach-Object {" --add " + $_}
446-
$Arguments = ('/c', "vs_installer.exe", 'modify', '--installPath', "`"$InstallPath`"",$workloadArgs, '--quiet', '--norestart', '--nocache')
447-
# should be run twice
448-
$process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
449-
$process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
450-
shell: powershell
451435
- name: Get the version of aws cli
452436
run: aws --version
453437
shell: powershell

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
!/libobs*
1212
!/plugins
1313
!/test
14+
!/shared
1415
!/UI
1516
!.cirrus.xml
1617
!.clang-format

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
url = https://github.com/streamlabs/obs-browser.git
1313
[submodule "plugins/obs-outputs/ftl-sdk"]
1414
path = plugins/obs-outputs/ftl-sdk
15-
url = https://github.com/Mixer/ftl-sdk.git
15+
url = https://github.com/streamlabs/ftl-sdk.git
1616
[submodule "plugins/obs-ndi"]
1717
path = plugins/obs-ndi
1818
url = https://github.com/streamlabs/obs-ndi.git

CMakeLists.txt

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ if(CMAKE_HOST_SYSTEM_NAME MATCHES "(Darwin)" OR OBS_CMAKE_VERSION VERSION_GREATE
1414
include(defaults)
1515
include(helpers)
1616

17-
option(ENABLE_UI "Enable building with UI (requires Qt)" ON)
17+
option(ENABLE_UI "Enable building with UI (requires Qt)" OFF)
1818
option(ENABLE_SCRIPTING "Enable scripting support" ON)
1919
option(ENABLE_HEVC "Enable HEVC encoders" ON)
2020

@@ -29,21 +29,23 @@ if(CMAKE_HOST_SYSTEM_NAME MATCHES "(Darwin)" OR OBS_CMAKE_VERSION VERSION_GREATE
2929
add_subdirectory(test/test-input)
3030

3131
add_subdirectory(UI)
32-
32+
3333
if(WIN32)
3434
include(FetchContent)
3535

3636
# Compare current linked libs with prev
37-
FetchContent_Declare(deps_checker URL "https://raw.githubusercontent.com/stream-labs/obs-studio-node/staging/dependency_checker/check_dependencies.cmd" DOWNLOAD_NO_EXTRACT true)
37+
FetchContent_Declare(
38+
deps_checker
39+
URL "https://raw.githubusercontent.com/stream-labs/obs-studio-node/staging/dependency_checker/check_dependencies.cmd"
40+
DOWNLOAD_NO_EXTRACT true)
3841
FetchContent_MakeAvailable(deps_checker)
3942

40-
add_custom_target(check_dependencies COMMAND ${CMAKE_COMMAND}
41-
"-Ddeps_checker_SOURCE_DIR=${deps_checker_SOURCE_DIR}"
42-
"-Ddeps_CONFIGURATION=$<CONFIGURATION>"
43-
"-Ddeps_CONFIG=$<CONFIG>"
44-
"-Ddeps_CMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR}"
45-
46-
-P "${CMAKE_SOURCE_DIR}/slobs_CI/check_libraries.cmake" )
43+
add_custom_target(
44+
check_dependencies
45+
COMMAND
46+
${CMAKE_COMMAND} "-Ddeps_checker_SOURCE_DIR=${deps_checker_SOURCE_DIR}" "-Ddeps_CONFIGURATION=$<CONFIGURATION>"
47+
"-Ddeps_CONFIG=$<CONFIG>" "-Ddeps_CMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR}" -P
48+
"${CMAKE_SOURCE_DIR}/slobs_CI/check_libraries.cmake")
4749
endif()
4850

4951
message_configuration()
@@ -96,8 +98,8 @@ if(ENABLE_HEVC)
9698
add_compile_definitions(ENABLE_HEVC)
9799
endif()
98100
option(BUILD_FOR_DISTRIBUTION "Build for distribution (enables optimizations)" OFF)
99-
option(ENABLE_UI "Enable building with UI (requires Qt)" ON)
100-
if (NOT ENABLE_UI)
101+
option(ENABLE_UI "Enable building with UI (requires Qt)" OFF)
102+
if(NOT ENABLE_UI)
101103
if(MSVC)
102104
include(CopyMSVCBins)
103105
endif()
@@ -159,25 +161,30 @@ if(BUILD_TESTS OR ENABLE_UNIT_TESTS)
159161
endif()
160162

161163
if(WIN32)
162-
include(FetchContent)
164+
include(FetchContent)
163165

164-
# Compare current linked libs with prev
165-
FetchContent_Declare(deps_checker URL "https://raw.githubusercontent.com/stream-labs/obs-studio-node/staging/dependency_checker/check_dependencies.cmd" DOWNLOAD_NO_EXTRACT true)
166-
FetchContent_MakeAvailable(deps_checker)
166+
# Compare current linked libs with prev
167+
FetchContent_Declare(
168+
deps_checker
169+
URL "https://raw.githubusercontent.com/stream-labs/obs-studio-node/staging/dependency_checker/check_dependencies.cmd"
170+
DOWNLOAD_NO_EXTRACT true)
171+
FetchContent_MakeAvailable(deps_checker)
167172

173+
# cmake-format: off
168174
add_custom_target(check_dependencies COMMAND ${CMAKE_COMMAND}
169175
"-Ddeps_checker_SOURCE_DIR=${deps_checker_SOURCE_DIR}"
170176
"-Ddeps_CONFIGURATION=$<CONFIGURATION>"
171177
"-Ddeps_CONFIG=$<CONFIG>"
172178
"-Ddeps_CMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR}"
173179

174180
-P "${CMAKE_SOURCE_DIR}/slobs_CI/check_libraries.cmake" )
181+
# cmake-format: on
175182
endif()
176183

184+
# cmake-format: off
177185
if(ENABLE_32_TARGETS)
178186
#Configure 32-bit projects
179187
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
180-
#message(FATAL_ERROR "CURL_INCLUDE_DIR: ${CURL_INCLUDE_DIR}, CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}, PREFIX_PATH_X86: ${PREFIX_PATH_X86}, OBS_VERSION: ${OBS_VERSION}, OBS_VERSION_OVERRIDE: ${OBS_VERSION_OVERRIDE}")
181188
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
182189
execute_process(
183190
COMMAND
@@ -211,3 +218,4 @@ if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
211218
endif()
212219
endif()
213220
endif()
221+
# cmake-format: on

CMakePresets.json

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@
4242
"VIRTUALCAM_SOURCE_UUID": {"type": "STRING", "value": "1E2D9632-D9A4-445C-B3CB-7C474442C1DF"},
4343
"VIRTUALCAM_SINK_UUID": {"type": "STRING", "value": "CE9DCB01-5C0C-4F3E-AC1A-971D26CB77D1"},
4444
"SPARKLE_APPCAST_URL": {"type": "STRING", "value": ""},
45-
"SPARKLE_PUBLIC_KEY": {"type": "STRING", "value": ""}
45+
"SPARKLE_PUBLIC_KEY": {"type": "STRING", "value": ""},
46+
"ENABLE_UI": true
4647
}
4748
},
4849
{
@@ -52,7 +53,8 @@
5253
"inherits": ["macos"],
5354
"warnings": {"dev": true, "deprecated": true},
5455
"cacheVariables": {
55-
"CMAKE_COMPILE_WARNING_AS_ERROR": true
56+
"CMAKE_COMPILE_WARNING_AS_ERROR": true,
57+
"ENABLE_CCACHE": true
5658
}
5759
},
5860
{
@@ -124,7 +126,11 @@
124126
"inherits": "linux-x86_64",
125127
"cacheVariables": {
126128
"ENABLE_RELEASE_BUILD": true,
127-
"ENABLE_BROWSER": true
129+
"ENABLE_BROWSER": true,
130+
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
131+
"CMAKE_COMPILE_WARNING_AS_ERROR": true,
132+
"CMAKE_COLOR_DIAGNOSTICS": true,
133+
"ENABLE_CCACHE": true
128134
}
129135
},
130136
{
@@ -158,8 +164,7 @@
158164
"inherits": ["windows-x64"],
159165
"warnings": {"dev": true, "deprecated": true},
160166
"cacheVariables": {
161-
"CMAKE_COMPILE_WARNING_AS_ERROR": true,
162-
"ENABLE_CCACHE": false
167+
"CMAKE_COMPILE_WARNING_AS_ERROR": true
163168
}
164169
}
165170
],

0 commit comments

Comments
 (0)