Commit feb6f17
fix: keep a running output's claim when start() is called again
The previous commit stopped the failure path from releasing a claim while the
muxer was still writing, but the resolve path could still move it. A duplicate
start() runs the whole Start() handler first: the timestamp has advanced, so
FindBestFilename resolves a different name and reassigned claimedFilePath to it.
obs_output_start() then refuses because the output is active, leaving the muxer
on its original file with nothing claiming it -- and an output with overwrite set
skips the on-disk check that would otherwise have covered it.
Only take the claim when the output is not already active. obs_output_active()
is null-safe, so an output that has not been created yet claims normally.
Rejecting the duplicate start outright would be the more thorough fix, but that
changes what the Start IPC call returns for a case Desktop can reach through
validateOrCreateOutputInstance, so it wants deciding on its own terms.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent fb8cf45 commit feb6f17
1 file changed
Lines changed: 4 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
107 | 107 | | |
108 | 108 | | |
109 | 109 | | |
110 | | - | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
111 | 114 | | |
112 | 115 | | |
113 | 116 | | |
| |||
0 commit comments