Fix three obs-websocket vendor-request issues (replay filename, disabled filter, error reporting) - #184
Open
r-bart wants to merge 4 commits into
Open
Fix three obs-websocket vendor-request issues (replay filename, disabled filter, error reporting)#184r-bart wants to merge 4 commits into
r-bart wants to merge 4 commits into
Conversation
… (N7) start_replay_buffer_source was a copy of start_record_source that never adapted the settings key: it wrote the request's filename into filename_formatting (the record key) instead of replay_filename_formatting. Replays kept using the default name while the filter's record path was clobbered, so a later record_start with no filename recorded with the replay-intended name. The stale restart-detection also force-stopped every output, flushing the live replay buffer for nothing. Write the correct key and drop the restart block — replay format applies hot. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…sts (N2) get_source_record_filter() unconditionally re-enabled the filter before returning it, even for record_stop / record_pause / stream_stop and the other create=false paths. A user who disabled a filter (eye icon or the source_record.disable hotkey) that still had a latched record/stream mode would see it resume the moment a "stop" request arrived. Gate the re-enable on create=true so only the start_* paths (which intend to run an output) can flip the filter back on. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…es (B18e) pause/unpause/split/add_chapter returned false without ever writing "error" into the response, so a client saw success:false with a stale or empty error message. Set a specific error string on the "no active record output" and failed proc-call paths. (Per-source error aggregation for the no-"source" fan-out is deferred to the enumeration-helper refactor.) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tests/smoke_websocket.py drives the source-record vendor requests and asserts the three fixes in this branch via filter-state inspection: replay_buffer_start writes replay_filename_formatting (not filename_formatting), record_stop does not re-enable a disabled filter, and record_pause on an inactive output returns success:false with an error string. Needs only obsws-python. Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three small, self-contained fixes to the
source-recordobs-websocket vendor requests, each verified via a smoke test (tests/smoke_websocket.py, 5/5).replay_buffer_startwrote the wrong setting keyIt wrote the filename into
filename_formatting(the recording filename), clobbering it, instead ofreplay_filename_formatting. Now writesreplay_filename_formatting.record_stopre-enabled a disabled filterStopping/pausing via the vendor API re-enabled a filter the user had explicitly disabled. Now it leaves a disabled filter disabled.
pause/split/chapter failures reported success
record_pause(and unpause/split/chapter) on an inactive output returned success with no error. Now returnssuccess:falsewith an error string.Testing
tests/smoke_websocket.pydrives the vendor requests and asserts all three via filter-state inspection.Developed with AI assistance (Claude); verified against the libobs / obs-websocket API.