ci: keep the synthesised macOS SDK symlink out of the dependency directory
libobs now builds AND installs cleanly on macOS -- libobs.framework, its
headers, and libobsConfig/libobsTargets all land. The configure then fell over
one step later, in the template's own quarantine-clearing step:
xattr: [Errno 13] Permission denied:
'.../.deps/sdk/MacOSX.platform/Developer/SDKs/MacOSX26.5.sdk'
`xattr -r -d com.apple.quarantine "${dependencies_dir}"` recurses, so it
followed the SDK symlink into the read-only system SDK. The symlink moves to
the build directory, where that sweep never reaches it. The xattr call itself
also stops being fatal: clearing quarantine on downloaded dependencies is a
convenience, and it should not be able to take the whole configure down.
Separately, in the adapter: the last-frame-geometry marker is cleared whenever
the session leaves Connected, so the next stream logs its first frame again.
Verified in the headless libobs harness by switching the selected camera to a
dark slot and back -- previously the switch back was silent because the
resolution had not changed, so the log stopped answering "did video come
back". It now reads:
connected to ws://... watching cam-test
video frame 640x360 I420
--- switching camera to 'other-cam'
connected to ws://... watching other-cam
--- switching camera back to 'cam-test'
connected to ws://... watching cam-test
video frame 640x360 I420
status after switch-back: connected
which also confirms the whole change-settings path: each switch mints a fresh
obs:<room>:<nonce> identity and reconnects, with no crash and no stale frame.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RL8abRmgFXkVASHkkqiJbE
This commit is contained in:
@@ -377,8 +377,13 @@ void *sourceCreate(obs_data_t *settings, obs_source_t *source)
|
||||
// A camera that stopped publishing must not leave its last frame on
|
||||
// screen -- that is precisely the stale-media failure this plugin
|
||||
// exists to avoid. A null frame clears the source.
|
||||
if (state != SessionState::Connected)
|
||||
if (state != SessionState::Connected) {
|
||||
obs_source_output_video(self->source, nullptr);
|
||||
// Forget the last geometry so the next stream logs its first
|
||||
// frame again; otherwise a reconnect at the same resolution is
|
||||
// silent, and the log stops answering "did video come back".
|
||||
self->last_geometry.store(0);
|
||||
}
|
||||
});
|
||||
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user