docs: the macOS bundle was fine all along, and record the GUI verification
Two corrections and one promotion, all from evidence rather than inference.
1. The "macOS packaging gap (known, unfixed)" section was WRONG, and it
contradicted the release notes for the same build. It claimed the artifact
is "a bare streamer-tools-camera.so" with a relative libobs install name
that "will not load in OBS.app as it stands". Downloading and inspecting
the shipped streamer-tools-camera-v0.1.0-macos.zip shows otherwise:
- a proper streamer-tools-camera.plugin bundle -- Contents/MacOS/<name> is
Mach-O MH_BUNDLE (what OBS loads), with Info.plist (BNDL, correct
CFBundleExecutable), Contents/Resources/locale/en-US.ini, and both
LiveKit dylibs in Contents/Frameworks/
- install names are right: the module loads
@rpath/libobs.framework/Versions/A/libobs and carries
LC_RPATH @executable_path/../Frameworks, which inside OBS.app resolves to
OBS.app/Contents/Frameworks; @rpath/liblivekit.dylib resolves through
LC_RPATH @loader_path/../Frameworks to the bundle's own copy, and
liblivekit.dylib finds liblivekit_ffi.dylib through LC_RPATH @loader_path.
Nothing points into a build tree.
- all three binaries carry LC_CODE_SIGNATURE, which is not optional:
arm64 macOS refuses to load unsigned code.
The real macOS limitation is different and now stated: the bundle is
arm64-only (no x86_64 slice), macOS 13+. Nobody has still ever opened it in
OBS.app -- well formed and signed is a prior, not a load.
2. Linux and Windows are confirmed working in the OBS GUI: video and audio
both arrive and hold up across a session, Linux by the project owner and
Windows by two directors independently, and the plugin carried a live show
on 2026-09-07. Since listing cameras requires an API call, that also
retires "the WinHTTP backend has never run against a real streamer-tools
server".
Scoped, not inflated: MEASURED A/V sync and latency against the egress path
are still unverified (no drift reported is not a measurement), as is
mid-show publisher restart. The "Not verified anywhere" list is now
deduplicated and says exactly that.
3. The CI table's Windows row still said "Failing, fix pushed and awaiting a
completed run". It is green, after the WinHTTP deadline fix.
Release notes template updated to match, and v0.1.0's published notes have
been regenerated through it so the public page stops repeating the bare-.so
claim.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AzGnvQ6wfD7bw7PZN35ft9
This commit is contained in:
@@ -25,7 +25,7 @@ set -euo pipefail
|
||||
MACOS_BUNDLE_FOUND="${MACOS_BUNDLE_FOUND:-false}"
|
||||
|
||||
if [ "${MACOS_BUNDLE_FOUND}" = "true" ]; then
|
||||
MACOS_NOTE="This archive contains a \`.plugin\` bundle."
|
||||
MACOS_NOTE="This archive contains a \`.plugin\` bundle (verified on v0.1.0: MH_BUNDLE + Info.plist, libobs via \`@rpath\` + \`@executable_path/../Frameworks\`, LiveKit dylibs bundled, all three binaries code-signed). **arm64 only -- no Intel slice**, macOS 13+. Never yet loaded in OBS.app by a human."
|
||||
else
|
||||
MACOS_NOTE="This archive is packaged as a bare \`streamer-tools-camera.so\` (the layout \`build/package/\` currently produces on macOS), **not** an OBS.app-loadable \`.plugin\` bundle. It will not load in the OBS GUI as-is -- see the \"macOS packaging gap\" section of \`README.md\`."
|
||||
fi
|
||||
@@ -36,18 +36,22 @@ cat > "${NOTES_FILE}" <<EOF
|
||||
|
||||
Built from commit \`${SHA}\`.
|
||||
|
||||
**Read the per-platform notes below before relying on this.** The module has
|
||||
been loaded in the OBS GUI exactly once -- Windows, OBS 32.2.2 on Windows 11,
|
||||
2026-09-09 -- and only "it loads and registers its source type" is confirmed
|
||||
there. Whether video renders correctly, A/V sync, end-to-end latency and
|
||||
mid-show publisher restart are all still unverified on every platform. See
|
||||
"What is verified, and how" in \`README.md\` for exactly what is backed by
|
||||
automated tests versus a human watching OBS.
|
||||
**Confirmed working on Linux and Windows, including a live show.** The plugin
|
||||
carried a real broadcast on 2026-09-07. Video and audio both arrive and hold
|
||||
up across a session: Linux verified by the project owner, Windows by two
|
||||
directors independently.
|
||||
|
||||
Still unverified: **macOS in the OBS GUI** (nobody has opened it -- see the
|
||||
table), **measured** A/V sync and end-to-end latency against the existing
|
||||
egress path (no drift reported, but nothing measured), and whether a publisher
|
||||
restarting mid-show recovers cleanly on screen. See "What is verified, and
|
||||
how" in \`README.md\` for what is backed by automated tests versus a human
|
||||
watching OBS.
|
||||
|
||||
| Platform | Archive | Notes |
|
||||
|---|---|---|
|
||||
| Linux (x64) | \`streamer-tools-camera-${TAG}-linux-x64.zip\` | Functionally complete and verified end to end against a real LiveKit server and a real libobs (see README); OBS GUI itself still unverified |
|
||||
| Windows (x64) | \`streamer-tools-camera-${TAG}-windows-x64.zip\` | Built and tested by this workflow's Windows job. Confirmed to load in the OBS GUI (32.2.2 / Windows 11, 2026-09-09); nothing past module load is verified. The WinHTTP backend has never been exercised against a real streamer-tools server, only a loopback test server -- see README's Windows CI section |
|
||||
| Linux (x64) | \`streamer-tools-camera-${TAG}-linux-x64.zip\` | Functionally complete, verified end to end against a real LiveKit server and a real libobs (see README), and confirmed working in the OBS GUI |
|
||||
| Windows (x64) | \`streamer-tools-camera-${TAG}-windows-x64.zip\` | Built and tested by this workflow's Windows job, and confirmed working in the OBS GUI by two directors independently (first load: OBS 32.2.2 / Windows 11) -- which also exercises the WinHTTP backend against a real streamer-tools server |
|
||||
| macOS | \`streamer-tools-camera-${TAG}-macos.zip\` | Built and tested by this workflow's macOS job. ${MACOS_NOTE} |
|
||||
|
||||
## Installing
|
||||
|
||||
Reference in New Issue
Block a user