100 Commits
Author SHA1 Message Date
dec05eba 099a55b905 6.1.6 2026-10-27 03:57:41 +01:00
dec05eba a777d5254c Fallback to non-hdr codec on x11 when capturing window or nvfbc 2026-10-26 02:01:37 +01:00
dec05eba a47451633c Support per-frame hdr metadata 2026-10-26 01:32:36 +01:00
dec05eba a3553f7e65 Properly support per-monitor framebuffer on x11 and monitor reconnect 2026-10-26 01:01:44 +01:00
dec05eba 753c36ac06 Allow hdr codecs on x11, do hdr tonemapping and capture on x11 properly 2026-10-26 00:42:46 +01:00
dec05eba ee2c6ca1e0 Allow unknown (unsupported) gpu vendors to run 2026-10-23 12:34:09 +02:00
dec05eba fc887bd506 Update manpage with info about --info being slow 2026-10-22 21:55:26 +02:00
dec05eba 1c014172dd 6.1.5 2026-10-21 07:16:45 +02:00
dec05eba e5412d5522 Fix region recording on gnome wayland: match DRM HDMI-A-1 and gnome output HDMI-1 (and all other combinations) 2026-10-21 06:33:46 +02:00
dec05eba a0e1a29379 Make wayland host bridge work when the flatpak is installed for the user, not on the system 2026-10-18 02:42:10 +02:00
dec05eba 63550b89eb Remove TODO items that are finished 2026-10-16 09:16:04 +02:00
dec05eba ed7165e50a fix 'non monotonic pts/dts' at the end of recording with non-opus sound (flushes the same pts) 2026-10-16 09:14:06 +02:00
dec05eba 04a70a4152 Support audio only recording, support mp3 2026-10-16 08:38:16 +02:00
dec05eba a0f13ae7ee Document hybrid fragmented files 2026-10-16 07:36:51 +02:00
dec05eba d2cff49dd5 6.1.4 2026-10-12 12:12:39 +02:00
dec05eba 7f9405e8b1 Fix --info incorrectly falling back to the wrong gpu while not updating vendor 2026-10-05 02:44:57 +02:00
dec05eba 43b30daa2c TODO update 2026-10-04 23:18:41 +02:00
dec05eba dc2dd98766 faq: sway desktop portal window capture 2026-09-29 15:00:53 +02:00
dec05eba 396526a908 6.1.3 2026-09-23 04:04:09 +02:00
dec05eba aec2c6be42 Fix screenshot/region capture when x11 framebuffer is scaled 2026-09-23 03:16:21 +02:00
dec05eba ab9cf696d0 Application audio: list minecraft java (some setups) 2026-09-19 16:35:46 +02:00
dec05eba be3287dd32 Better nvenc warning 2026-09-12 05:15:14 +02:00
dec05eba af736d4c38 6.1.2 2026-09-12 03:21:11 +02:00
dec05eba 4de50caca6 Security strengthen gsr-kms-server
Validate that card path program argument is a real drm node
2026-09-12 01:29:36 +02:00
dec05eba c27160989c 6.1.1 2026-09-06 17:56:56 +02:00
dec05eba 19f94e18a6 Reapply "Subtract audio latency from current time"
This reverts commit c8f50c4d6a.
2026-09-05 07:44:52 +02:00
dec05eba 74eeaf356b Revert "Attempt to fix possible audio/video desync"
This reverts commit b998c721a3.
2026-09-05 07:43:26 +02:00
dec05eba 0261850915 Fix audio/video desync with software video encoder 2026-09-05 07:43:13 +02:00
dec05eba b998c721a3 Attempt to fix possible audio/video desync 2026-09-05 06:56:09 +02:00
dec05eba bfa5bb9288 fix: make cuda use the same gpu as opengl (the capture gpu) 2026-09-05 03:20:14 +02:00
dec05eba e56a2f0137 prime-run no longer an option 2026-09-04 02:17:42 +02:00
dec05eba 8732f17f62 Fix build on arm (no memmem) 2026-09-03 20:35:07 +02:00
dec05eba c8f50c4d6a Revert "Subtract audio latency from current time"
This reverts commit d59ed3a44d.
2026-09-03 03:03:02 +02:00
dec05eba 8706579be2 Missing options in --help 2026-09-02 21:58:10 +02:00
dec05eba ad6981c0ef Fix audio/video desync when recording in replay session (on some systems) 2026-09-02 00:23:46 +02:00
dec05eba 9ed51e71e9 6.1.0 2026-09-01 04:12:04 +02:00
dec05eba e4cf94fecb kms: make all monitors available for capture on wayland (automatically use the gpu associated with a monitor) 2026-09-01 03:47:55 +02:00
dec05eba 0dc3b21736 README: update debian link 2026-08-29 16:03:25 +02:00
dec05eba f8616fe557 6.0.2 2026-08-28 22:36:27 +02:00
dec05eba 599a01af44 Readme portal content framerate mode 2026-08-28 22:26:41 +02:00
dec05eba 3c4838f4e6 Make dbus a mandatory dependency (for kde nightlights) 2026-08-27 22:19:46 +02:00
dec05eba 6a148642e3 m 2026-08-27 05:03:14 +02:00
dec05eba 899c87a231 FAQ wayland vsync 2026-08-27 04:57:39 +02:00
dec05eba 2552e74823 Update debian package link 2026-08-26 15:57:08 +02:00
dec05eba 3c17f87015 Flush audio on save 2026-08-26 15:50:54 +02:00
dec05eba ba823e1631 Set ffmpeg_static to false by default (since distros force that), improve README 2026-08-23 23:50:30 +02:00
dec05eba 0de0ef4beb README: add back link to centos and fedora packages 2026-08-23 23:24:02 +02:00
dec05eba 7bba0f0f1f README -fm 2026-08-23 00:09:16 +02:00
dec05eba 088b87c87e Rename -whip-token to -auth and GSR_WHIP_TOKEN to GSR_AUTH 2026-08-22 21:56:27 +02:00
dec05eba 0c14a46a3c Add warning about -Dffmpeg_static=false 2026-08-22 03:28:12 +02:00
dec05eba 9f19ce2c7b Recommend flatpak/appimage for nvidia users 2026-08-21 21:11:13 +02:00
dec05eba 2e1ee31ad8 ffmpeg_static comment 2026-08-21 21:06:17 +02:00
dec05eba 7f4662f31e nvenc query: add more ffmpeg nvenc version checks 2026-08-18 20:33:49 +02:00
dec05eba 72d24f60ef Update README 2026-08-18 04:00:06 +02:00
dec05eba 8c33f61c75 6.0.1 2026-08-18 03:09:34 +02:00
dec05eba e9f9cf0207 Enable ffmpeg_static by default in release builds to support gtx 1080 and older nvidia gpus 2026-08-18 03:00:37 +02:00
dec05eba 795685ceb5 nvenc query check ffmpeg nvenc version as well 2026-08-18 02:37:02 +02:00
dec05eba 2d1e291b5e README FAQ linux drm 2026-08-18 00:08:31 +02:00
dec05eba 4147b3e6a1 DRM shit 2026-08-17 23:47:01 +02:00
dec05eba 1259c8afb8 kwin stutter FAQ 2026-08-17 23:39:20 +02:00
dec05eba 20dbed9384 Update TODO (radicle test) 2026-08-17 20:01:00 +02:00
dec05eba 50536274b6 Match application audio by application name if available rather than node name 2026-08-14 14:36:54 +02:00
dec05eba 0f479d9cf6 Update README and TODO 2026-08-14 14:36:35 +02:00
dec05eba d31b698fce Go back to ffmpeg url 2026-08-09 03:12:46 +02:00
dec05eba 2ee1a4e67c https 2026-08-09 03:11:13 +02:00
dec05eba 6b216d4c51 Change ffmpeg tar url to dec05eba.com because ffmpeg website is down too often 2026-08-09 03:02:29 +02:00
dec05eba 80517840f4 6.0.0 2026-08-08 04:18:58 +02:00
dec05eba 20740fe579 Fix nvenc crash on shutdown. part 2 2026-08-08 04:11:11 +02:00
dec05eba 65c7516927 Fix nvenc crash on shutdown 2026-08-08 04:02:34 +02:00
dec05eba f4d1d3d2b0 Update ffmpeg static to 9.0 2026-08-08 03:36:47 +02:00
dec05eba 89e87050a4 Fix crash with vulkan encoding 2026-08-08 03:14:52 +02:00
dec05eba 4eafd8f5cf Remove unmaintained distro packages 2026-08-08 01:16:52 +02:00
dec05eba fcaf4b5444 Faster replay ram clear by not free'ing the data immediately 2026-08-07 13:54:08 +02:00
dec05eba 90ac49f372 Revert "Clear replay data in replay save thread to not block the main capture thread"
This reverts commit 5db30f3fb9.
2026-08-07 13:53:40 +02:00
dec05eba e31968fc40 Faster shutdown time when several gb of replay data is in ram 2026-08-06 13:02:59 +02:00
dec05eba 5db30f3fb9 Clear replay data in replay save thread to not block the main capture thread 2026-08-06 12:56:48 +02:00
dec05eba 3a1ce0e17f ipc: save-replay: add restart-replay option 2026-08-05 15:26:36 +02:00
dec05eba f17157274d Re-add /etc/ssl/certs/ca-certificates.crt to mbedtls patch 2026-08-05 15:04:38 +02:00
dec05eba e6c1cf0ec1 workaround ffmpeg hybrid_fragmented bug when no packets have been recorded yet 2026-08-05 14:56:59 +02:00
dec05eba fbc31a9561 ipc: response with video path in save recording/replay 2026-08-05 14:56:08 +02:00
dec05eba a522748ed2 Remove .crt certificate check 2026-08-05 13:03:01 +02:00
dec05eba b2f903ba32 Use mbedtls instead of openssl 2026-08-05 03:23:07 +02:00
dec05eba b9d252214a Add option to statically compile ffmpeg from source 2026-08-05 02:06:11 +02:00
dec05eba 1869cf3051 Fix build because of c version 2026-08-02 21:21:32 +02:00
dec05eba bf9213b3a8 Fix --info command on applel 2026-08-02 20:53:47 +02:00
dec05eba ca4fabc1d6 Set c standard to c11 2026-08-02 20:26:43 +02:00
dec05eba f39ebf1a60 Move gsr-cli to tools/gsr-cli 2026-08-02 20:12:20 +02:00
dec05eba 8fc8aaa799 Document the ipc option next to the signals in the readme
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.
2026-08-02 20:05:13 +02:00
dec05eba f547fcc354 Add gsr-cli program that sends ipc commands to gpu-screen-recorder
gsr-cli sends a command to the ipc socket of a running GPU Screen
Recorder and exits with 0 when it replied with ok, printing the reason to
stderr when it didn't, which means the commands don't have to be sent
blindly like signals are. The status command checks if GPU Screen
Recorder is running by connecting to the socket without sending a
command, so it's also correct when a killed instance left the socket
behind.
The json helpers moved into src/json.c to be shared between the two
programs.
2026-08-02 01:36:33 +02:00
dec05eba 9b799f6e45 Only remove the ipc socket path when an unused socket exists there
The socket that a killed GPU Screen Recorder instance leaves behind is
removed so that the same ipc socket path can be used again, but this was
done for any type of file, so using the path of a regular file as the ipc
socket path deleted that file.
2026-08-02 01:35:27 +02:00
dec05eba d72113be39 Add -ipc option to control gpu-screen-recorder over a unix domain socket
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-02 01:11:53 +02:00
dec05eba b38d324c8f Remove unused parameter from recorder_update_fps_counters 2026-08-02 00:19:49 +02:00
dec05eba 208c907c35 Fix indentation and spacing of the code moved out of main.cpp 2026-08-02 00:17:18 +02:00
dec05eba 06be2c8a12 Add resource cleanup on all paths
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-02 00:04:45 +02:00
dec05eba 68d5c511d1 Fix video size becoming 0x0 when every capture source size is a percentage
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.
2026-08-01 23:46:43 +02:00
dec05eba 8f97b0b422 Remove unused includes
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.
2026-08-01 23:41:07 +02:00
dec05eba b9ab1878ca Split the recorder setup and record loop into named functions 2026-08-01 23:32:24 +02:00
dec05eba 4d3a8cb421 Return errors from gsr_recorder_create instead of exiting
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.
2026-08-01 23:28:16 +02:00
dec05eba 8272e61823 Rewrite main.cpp in C as a thin CLI on top of a new gsr_recorder library API
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-01 23:22:38 +02:00
dec05eba 9dda64c39d Move screenshot capture and CLI commands from main.cpp into separate modules
The list commands return exit codes through args_parser instead of exiting.
2026-08-01 23:08:48 +02:00