| Age | Commit message (Collapse) | Author |
|
|
|
|
|
capture thread"
This reverts commit 5db30f3fb99545524fc80f87ecc488972aec1711.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The remote control section is now split into a signals part and an ipc
part with gsr-cli examples, and it points at the gsr-cli man page and the
IPC section of the gpu-screen-recorder man page.
|
|
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.
|
|
|
|
|
|
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.
|
|
The video size is the area that the capture sources cover, but a capture
source with a percentage size is relative to the video size and can't be
used to calculate it. When there is no other capture source to calculate
the video size from, use the size of the capture sources themselves.
|
|
Most were left over from moving code out of main.cpp and from replacing
fprintf with gsr_log. Also fixes building without the app_audio option.
|
|
|
|
The recorder now cleans up after a failed setup and the caller decides
what to do with the error, so only main and forked child processes exit.
|
|
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.
|
|
The list commands return exit codes through args_parser instead of exiting.
|
|
Replay saving uses a pthread with an owning result struct instead of
std::future and a global output filepath.
|
|
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.
|
|
|
|
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.
|
|
The recording path and the list commands now share the same windowing
setup code instead of duplicating it.
|
|
Codec selection returns gsr_error values instead of exiting, and takes
gsr_recorder_settings instead of the argument parser.
|
|
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.
|