Cameron Gutman
f70c3f1c0e
Fix crash on monitor index not found in KMS
2024-01-28 14:00:46 -06:00
Cameron Gutman
cf416f55e1
Fix KMS cursor capture on Nvidia GPUs
2024-01-28 14:00:46 -06:00
Cameron Gutman
8182f592e8
Implement NVENC support for KMS and wlgrab capture methods
2024-01-28 14:00:46 -06:00
Cameron Gutman
9a3553db04
Refactor to use pixel format helpers in VAAPI
2024-01-27 21:32:29 -06:00
Cameron Gutman
3b11bc86b0
Rewrite software scaling to use new multi-threaded swscale API
2024-01-27 21:32:29 -06:00
Cameron Gutman
a15bd65391
Adjust default CPU thread count to 2
...
It's a tiny reduction of encoding quality for a major increase in performance
2024-01-27 21:32:29 -06:00
Cameron Gutman
9dfe97d405
Send the frame number in the encrypted video header
2024-01-25 23:43:30 -06:00
Cameron Gutman
65851407b1
Avoid unnecessary reallocation of the IV for every packet
2024-01-25 23:43:30 -06:00
Kelvie Wong
3f31400e7f
Revert "Remove useless texture size queries for every frame in display_ram_t"
...
This reverts commit ebe01ce20b .
Looks like this commit undos the fix for #453 , see also PRs #649 and #884 .
This also adds a comment so hopefully it doesn't get removed again in
the future (or a proper fix is found).
2024-01-25 21:09:43 -06:00
ns6089
fe886632dc
Add new nvenc options to legacy ffmpeg path
2024-01-20 18:28:09 -06:00
ns6089
ede59e17d8
Expose more nvenc options
...
1. Spatial AQ, for some reason NVENC have problems recovering details on
flat regions of static images over multiple frames, official docs
recommend to enable it for "game-streaming"
2. Percentage increase of default single-frame VBV/HRD, can act as
low latency variable bitrate substitute
2024-01-20 18:28:09 -06:00
ns6089
66150872b0
Add nvprefs user override options
2024-01-20 18:28:09 -06:00
ns6089
270716b862
Use safe string composition in tray tooltip
2024-01-20 18:28:09 -06:00
Lukas Senionis
bf1b9a20ec
Add a dedicated library for working with JSON ( #2047 )
2024-01-20 17:05:35 -05:00
Cameron Gutman
a10ec3a98a
Drop unencrypted messages on the encrypted control stream
2024-01-19 18:57:58 -06:00
Cameron Gutman
c88fa655f5
Implement video encryption
2024-01-19 18:57:58 -06:00
Cameron Gutman
23fb07d4a2
Implement control stream v2 encryption
2024-01-19 18:57:58 -06:00
Cameron Gutman
2f80145b8e
Change crypto::aes_t to variable size and cleanup some crypto code
2024-01-19 18:57:58 -06:00
Cameron Gutman
6b5a712506
Normalize IPv4-mapped IPv4 addresses before checking PC/LAN/WAN type
2024-01-19 18:57:58 -06:00
Cameron Gutman
3d6e7f447a
Refactor audio encryption to use new encryption flags
2024-01-19 18:57:58 -06:00
Cameron Gutman
77b0bab374
Pass launch_session_t directly into session::alloc()
2024-01-19 18:57:58 -06:00
Rafael
2e995355dc
fix(linux)!: use XDG spec for fetching Linux configuration directory ( #2034 )
2024-01-18 21:24:55 -05:00
Cameron Gutman
21e4450ee1
Fix stream disconnecting when reconfiguring display in X11
2024-01-18 19:14:45 -06:00
Cameron Gutman
404b434754
Fix starvation of encoder thread when not receiving new captured frames
...
This often happens when switching to the UAC secure desktop.
2024-01-18 19:14:45 -06:00
Cameron Gutman
f64712f277
Always reset the thread desktop before calling DuplicateOutput()
...
Otherwise capture will fail if the thread desktop is different than the current input desktop (ex: UAC secure desktop is active)
2024-01-18 19:14:45 -06:00
Cameron Gutman
8a86678d62
Reenumerate displays when the display is reinitialized or switched
2024-01-18 19:14:45 -06:00
Cameron Gutman
b94f8c0b50
Improve Name->DRM_MODE_CONNECTOR mapping with new types and names
2024-01-16 19:49:34 -06:00
Cameron Gutman
df2d728af7
Fix plane_it_t skipping the last entry when iterating
2024-01-16 19:49:34 -06:00
Cameron Gutman
d0049da2df
Implement pen and touch support for Linux
2024-01-14 11:45:12 -06:00
Cameron Gutman
c1a3903d20
Fix absolute mouse motion being interpreted as touchscreen input
2024-01-14 11:45:12 -06:00
ReenigneArcher
937d0d810c
fix: add additional pin validation ( #2007 )
2024-01-13 22:03:49 -05:00
Cameron Gutman
545af98459
Add a fallback to retry codec init with more lenient config options
...
This allows use of low_power=1 for VAAPI to allow more performant
encoding on capable Intel hardware (like we do for QSV).
This also provides a low_power=0 fallback for QSV to allow use
on old/low-end Intel GPUs that don't support low power encoding.
Finally, this also implements a fallback to deal with the AMD
driver regression on pre-RDNA cards that causes H.264 encoding
to fail with AMF_VIDEO_ENCODER_USAGE_ULTRA_LOW_LATENCY.
2024-01-12 19:50:34 -06:00
Cameron Gutman
056281b745
Implement HDR support for Linux KMS capture backend ( #1994 )
...
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com >
2024-01-11 22:41:58 -06:00
Cameron Gutman
593e170da8
Implement graceful termination and group-based app tracking
2024-01-08 23:55:43 -06:00
ReenigneArcher
60c95d6385
fix(web-api): allow trailing slash on endpoints ( #1985 )
2024-01-06 10:56:35 -05:00
Cameron Gutman
f88df0f596
Implement support for KMS cursor plane capture ( #1981 )
2024-01-05 23:02:39 -06:00
ReenigneArcher
791ed48a3f
fix(macos): replace depreciated AbsoluteToNanoseconds ( #1986 )
...
Co-authored-by: Cameron Gutman <2695644+cgutman@users.noreply.github.com >
2024-01-05 23:28:50 -05:00
Cameron Gutman
7d751f050e
Fix EGL import for modifiers that require aux planes
2024-01-05 21:25:06 -06:00
Cameron Gutman
c7e5df5976
Refactor EGLAttrib logic into a shared function
2024-01-05 21:25:06 -06:00
James Le Cuirot
bc6cc2078e
build(linux) make vaapi optional without dlopen ( #1979 )
...
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com >
2024-01-05 10:59:41 -05:00
Cameron Gutman
0dff8b16fd
Use the new VAAPI dummy image support for kmsgrab too
2024-01-04 22:26:39 -06:00
Cameron Gutman
ebe01ce20b
Remove useless texture size queries for every frame in display_ram_t
2024-01-04 22:26:39 -06:00
Cameron Gutman
3adf9e5967
Don't busy loop during wlgrab capture
2024-01-04 22:26:39 -06:00
Cameron Gutman
e1771de37a
Fix race condition causing hangs and EGL import errors due to concurrent snapshot() calls
2024-01-04 22:26:39 -06:00
Cameron Gutman
0403ad147a
Fix capturing scaled output with wlgrab
2024-01-04 22:26:39 -06:00
Cameron Gutman
1bd45ca803
Fix low-res scrolling on Linux
2024-01-04 00:51:10 -06:00
Cameron Gutman
a01a15a54b
Fix termination of child processes when the parent terminates
2024-01-03 16:50:08 -06:00
Cameron Gutman
43992e7e9b
Don't fail kmsgrab init entirely if a single card doesn't work
2024-01-03 16:14:18 -06:00
Cameron Gutman
0f640b8dd9
Fix clear color when rendering to VA surfaces
2024-01-03 16:14:18 -06:00
Cameron Gutman
a9b459cdb1
Use P010 instead of YUV420P10 for 10-bit VAAPI encoding
2024-01-03 16:14:18 -06:00