Repository navigation
Fix a batch of open issues: source audio, output restarts, file names, video reset, websocket events - #194
Open
QuentinDanblon wants to merge 9 commits into
Open
Fix a batch of open issues: source audio, output restarts, file names, video reset, websocket events#194QuentinDanblon wants to merge 9 commits into
QuentinDanblon wants to merge 9 commits into
Conversation
- Keep spaces in the names of files created by a split (exeldro#164) - Give each recording its own file when two filters generate the same name, instead of writing over each other (exeldro#181, exeldro#105) - Manual split (hotkey, button, websocket) works without automatic splitting; the Split button is no longer greyed out with the group - Really fragment fragmented_mp4 / fragmented_mov outputs - No fixed 512 byte limit on the recording path - Restart the recording when its path, container or filename pattern changes while recording (upstream PR exeldro#183) - Allow restarting a file output while the replay buffer or stream shares the encoder - Use the right default path for Standard vs FFmpeg advanced recording and do not crash on missing profile values (exeldro#42) - Save Replay hotkey uses the plugin's own text (exeldro#193) - Stop rendering and holding the source once nothing records it, and stop outputs when the parent source is removed (exeldro#38, exeldro#135, exeldro#109) - Keep the replay buffer hotkey bindings when its output is recreated (exeldro#24) - Configurable replay buffer memory limit instead of a fixed 10 GB, so long replays work (exeldro#170) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JsN9xfAQr8oDP7GtCfzqaN
record_started, record_file_changed, record_stopped, replay_buffer_started, replay_buffer_stopped, stream_started and stream_stopped are emitted next to the existing replay_buffer_saved, with the filter, its source and the file path. Signals are disconnected from an output that could not be stopped in time so a late signal never reaches a destroyed filter. The README lists the requests and events. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JsN9xfAQr8oDP7GtCfzqaN
Audio: in Source mode (and with Different Audio and a single source) the filter read the source's Track 1 mix. libobs only renders a track mix while one of its own outputs uses that track and the source is routed to it, so recordings were silent when OBS itself was not recording, when the source was not on Track 1, or when Track 1 was unused (exeldro#32, exeldro#150, exeldro#155, exeldro#116, exeldro#67, exeldro#23, exeldro#113). The audio is now taken with an audio capture callback on the source (after its filters, with its volume and mute) into a small buffer that the filter's audio output reads. Outputs that stopped on their own (disk full, failed start, lost connection, capture gone) were never started again because the inactive output object was kept. They are now dropped and recreated, at most every 5 seconds (exeldro#84, exeldro#91, exeldro#92). Also adds a typed path field that overrides the Browse path and may be relative, e.g. for a portable install (exeldro#171). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JsN9xfAQr8oDP7GtCfzqaN
- obs_reset_video frees the video_t of every view. The filter kept using it and its encoder, which crashed the next recording after the OBS resolution or color format was changed (exeldro#143). The video_reset signal now makes each filter drop its outputs, encoder and video output and build them again. - {source}, {filter} and {recording} (the current OBS recording file name) can be used in the recording and replay filename formats (exeldro#102, exeldro#100). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JsN9xfAQr8oDP7GtCfzqaN
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JsN9xfAQr8oDP7GtCfzqaN
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JsN9xfAQr8oDP7GtCfzqaN
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JsN9xfAQr8oDP7GtCfzqaN
os_fopen returns a FILE of the C runtime libobs uses; closing it with the plugin's fclose breaks when the two runtimes differ. Windows uses CreateFileW with CREATE_NEW. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JsN9xfAQr8oDP7GtCfzqaN
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JsN9xfAQr8oDP7GtCfzqaN
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.
No description provided.