Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,345 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

obs-streamelements-core

Core SE.Live OBS plugin.

Building locally

This plugin does not build on its own. It is built as part of an obs-studio tree, and it has a hard dependency on the obs-browser plugin being present as a sibling — StreamElementsBrowserWidget.cpp includes ../../obs-browser/panel/browser-panel.hpp by relative path.

Layout

obs-studio/
├── CMakeUserPresets.json          <- copy of this repo's CMakeUserPresets.json (Windows)
└── plugins/
    ├── CMakeLists.txt             <- must contain: add_obs_plugin(obs-streamelements-core)
    ├── obs-browser/               <- required
    └── obs-streamelements-core/   <- this repo

Clone obs-studio with --recursive so obs-browser comes along. CI pins obs-studio to tag 31.1.2; newer trees also work.

Windows

CMake reads CMakeUserPresets.json only from the top-level source directory, so the preset has to be copied up to the obs-studio root before configuring:

copy plugins\obs-streamelements-core\CMakeUserPresets.json CMakeUserPresets.json
cmake --preset=windows-x64-streamelements
msbuild build_x64\obs-studio.sln -p:Configuration=RelWithDebInfo

The windows-x64-streamelements preset just inherits obs-studio's own windows-x64 preset, so configuring with --preset=windows-x64 works too.

macOS

deps/BugSplat.xcframework.zip must be unpacked first or CMake stops with a fatal error:

(cd plugins/obs-streamelements-core/deps && unzip -o BugSplat.xcframework.zip)
cmake --preset=macos -DCMAKE_OSX_ARCHITECTURES=arm64 -B build_macos_arm64
cd build_macos_arm64 && xcodebuild -configuration RelWithDebInfo \
    -scheme obs-streamelements-core \
    -destination "generic/platform=macOS,name=Any Mac"

Notes

  • streamelements/Version.generated.hpp must define STREAMELEMENTS_PLUGIN_VERSION. A placeholder is committed so a fresh checkout compiles; CI overwrites it with the real build number. Don't edit it by hand.
  • Don't copy the -DENABLE_*=OFF flags out of .github/workflows/build.yml. CI turns off nearly every OBS feature — including -DENABLE_UI=OFF — because it only needs the plugin binary as an artifact. For local work you want the OBS UI built so there is something to run the plugin in.
  • There are no tests. Compiling is the only automated check, alongside CI/check-format.sh.
  • Format only what you changed: clang-format -i -style=file -fallback-style=none <file>. Do not run formatcode.sh — it has no exclusions and rewrites all of deps/ and streamelements/deps/.

Release channels status

Platform Environment Version
Windows signed
Windows qa
Windows beta
Windows latest
Windows stable
MacOS signed
MacOS qa
MacOS beta
MacOS latest
MacOS stable

Extended Status Page

Deployment

  1. Make sure RELEASE_NOTES.md reflects the release content of the plug-in since previous release to the public (latest release group).

  2. Once this repository is built, run the Release Signed Binaries action in github.

Proper deployment order

From Environment To Environment Predicate
signed qa none
qa beta passes internal and closed beta testing
beta latest 2 weeks without serious issues on beta
latest stable 2 weeks without stability issues on latest

About

OBS plugin core (SE.Live)

Resources

Stars

19 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages