aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/recorder
AgeCommit message (Collapse)Author
2026-08-07Revert "Clear replay data in replay save thread to not block the main ↵dec05eba
capture thread" This reverts commit 5db30f3fb99545524fc80f87ecc488972aec1711.
2026-08-06Faster shutdown time when several gb of replay data is in ramdec05eba
2026-08-06Clear replay data in replay save thread to not block the main capture threaddec05eba
2026-08-05ipc: save-replay: add restart-replay optiondec05eba
2026-08-05ipc: response with video path in save recording/replaydec05eba
2026-08-02Add -ipc option to control gpu-screen-recorder over a unix domain socketdec05eba
The socket accepts the same commands as the signal handlers, except that saving a replay takes an arbitrary number of seconds instead of only the fixed times that the signals provide. Requests and replies are newline terminated json objects and every request is replied to, parsed with the sj.h json library that was added to external. Requests are handled on a thread that only runs while the recorder exists, so the recorder control fields are now atomics, which they have to be now that another thread writes them.
2026-08-02Fix indentation and spacing of the code moved out of main.cppdec05eba
2026-08-02Add resource cleanup on all pathsdec05eba
The recorder, screenshot and cli now free everything they create, also when setup fails. Adds gsr_windowing_deinit, implements the missing gsr_window_destroy and destroys the pipewire registry proxy.
2026-08-01Rewrite main.cpp in C as a thin CLI on top of a new gsr_recorder library APIdec05eba
The recording setup, record loop and teardown moved into a gsr_recorder pseudo class that reports saved recordings through callbacks, so the CLI only parses arguments, handles signals and prints results. The project is now built as pure C.
2026-08-01Move screenshot capture and CLI commands from main.cpp into separate modulesdec05eba
The list commands return exit codes through args_parser instead of exiting.
2026-08-01Move muxing and replay saving from main.cpp into muxer and replay_save modulesdec05eba
Replay saving uses a pthread with an owning result struct instead of std::future and a global output filepath.
2026-08-01Move audio capture from main.cpp into audio_capture module and replace ↵dec05eba
std::thread with pthread Audio device and mix threads are now pthreads with explicit context structs, and the paused time tracking moved into a gsr_recording_clock.
2026-08-01Move audio input parsing and validation from main.cpp into audio_input moduledec05eba
2026-08-01Move capture source parsing and capture creation from main.cpp into C modulesdec05eba
Capture sources are C structs with fixed size names and a growable array, and the lazily initialized kms client, night light and cursor globals are now owned by gsr_capture_deps.
2026-08-01Move windowing setup from main.cpp into windowing moduledec05eba
The recording path and the list commands now share the same windowing setup code instead of duplicating it.
2026-08-01Move video/audio codec selection from main.cpp into codec_select moduledec05eba
Codec selection returns gsr_error values instead of exiting, and takes gsr_recorder_settings instead of the argument parser.
2026-08-01Move audio/video codec setup from main.cpp into C modulesdec05eba
Adds gsr_recorder_settings, a library-friendly settings struct embedded in args_parser, so the new modules don't depend on the argument parser. The codec functions return errors instead of exiting.