Commit Graph

109 Commits

Author SHA1 Message Date
loki 7ddf8bbe94 Capturing images by callback, rather than pulling 2021-07-26 18:09:07 +02:00
loki a87782b025 Fix stuttering on Windows 2021-07-26 14:37:57 +02:00
Loki ab70a056fc Add CQP for older intel iGPU's 2021-07-24 19:33:23 +01:00
loki 63b920cd7b Merge branch 'master' into rumble 2021-07-23 20:07:03 +02:00
loki bc52fe9b82 Improve fps for software encoding on Windows 2021-07-23 17:36:32 +02:00
loki 1fda8f6219 Support Rumble on Windows 2021-07-18 11:05:34 +02:00
loki 62abd1ee19 Merge branch 'master' of github.com:loki-47-6F-64/sunshine 2021-07-10 23:49:38 +02:00
loki d55c6ee84c Fix incorrect scaling of absolute mouse coordinates (again) 2021-07-10 23:49:04 +02:00
Cameron Gutman a7171d77db Reduce CPU usage with Linux NVENC
The internal assembly routines inside libswscale perform the
RGB->YUV conversion using a fully planar output format, then
have to perform an additional YUV420->NV12 conversion step.

NVENC can directly consume YUV420 input frames, so we can
completely avoid this NV12 conversion and save quite a bit of
CPU time in the process.
2021-07-10 11:24:13 -05:00
loki-47-6F-64 61be0eb051 Merge pull request #120 from cgutman/nvenc_linux
Add basic NVENC support on Linux
2021-07-10 17:30:51 +02:00
Cameron Gutman 971c784f14 Add basic NVENC support on Linux
We're not offloading scaling and YUV conversion from the CPU yet,
so the gains aren't as high as one of the fully accelerated
backends like Windows NVENC or Linux VAAPI.

Still, offloading the H.264/HEVC encoding itself is an improvement
over doing everything on the CPU.
2021-07-09 08:13:05 -05:00
loki 747ba7f23a fix incorrect pix_fmt 2021-07-09 14:21:57 +02:00
loki 3d81b0fe7a Remove redundant code 2021-07-06 20:54:29 +02:00
Cameron Gutman 667878d2eb Fix IDR frame delays after packet loss or client request
This can lead to spurious poor connection warnings in Moonlight.
2021-07-05 17:55:32 -05:00
loki b67600962a Fix incorrect scaling for absolute mouse coordinates 2021-06-24 20:53:19 +02:00
loki 926e95f527 Fix absolute mouse coordinates with multiple monitors on Windows 2021-06-23 21:51:15 +02:00
loki 029194cb60 Fix incorrect abs mouse coordinates on Linux when scaling to different aspect ratio 2021-06-23 14:05:09 +02:00
loki 7e3abefc2c pass session event objects through safe::mail_t 2021-06-22 22:26:11 +02:00
loki 0a05c28df8 fixed incorrect colors when scaling with software 2021-06-20 16:13:34 +02:00
loki 0034438c9e fixed incorrect colors when scaling with software 2021-06-20 15:58:13 +02:00
loki 9e7ecf8db2 Allow replacement of hevc headers 2021-06-20 15:29:51 +02:00
loki 63d15333f2 Allow injecting more than one type of header data into video 2021-06-18 17:27:56 +02:00
loki 23b09e3d41 fix an issue causing free called on unallocated data 2021-06-17 23:26:25 +02:00
loki fa0ff91d23 some minor refactoring 2021-06-14 20:47:30 +02:00
loki 13caabaec8 fix h264 vui params 2021-06-14 17:43:21 +02:00
Loki 8f2e00f31b minor refactoring 2021-06-14 14:54:09 +02:00
Loki 78244a48d2 remove two redundent tests for encoder validation 2021-06-14 14:44:17 +02:00
loki 8e32c8e6f4 Inject VUI data in SPS header if missing 2021-06-13 21:29:32 +02:00
loki 30f7742f51 Test for presence of sps->vui parameters 2021-06-12 23:08:20 +02:00
loki e2874b40c1 unfinished vaapi encoder should not be default yet 2021-06-08 22:38:48 +02:00
Loki 3a3d4928f9 Fix compilation on Windows 2021-06-07 14:22:23 +02:00
loki f2863cceb7 Properly scale image on VAAPI 2021-06-05 12:25:19 +02:00
loki 6b9ed7fcb3 Add option to select render device for VAAPI 2021-06-05 10:20:36 +02:00
loki f33a587218 Fix software encoder 2021-06-04 21:35:00 +02:00
loki bdb9ed9001 Perform image format conversion for VAAPI on the gpu 2021-06-04 21:12:06 +02:00
loki ff1ea1a63e Use VAAPI for hardware encoding on Linux 2021-05-29 16:25:37 +02:00
loki 1c4435312e maintain aspect ratio when using software encoder 2021-05-24 18:08:32 +02:00
Conn O'Griofa c6a0eeef3f Force IDR frames for libx265 encoder
Parameter is needed to avoid infinite black screen with
"Waiting for IDR frame" in moonlight-qt (3.1.3) on Windows.
2021-05-20 00:22:28 +01:00
loki 3d8a99f541 clang-format 2021-05-17 21:21:57 +02:00
loki 1050978246 Add warning to ignore errors during encoder validation 2021-05-12 23:22:13 +02:00
loki 2e9a1cfbba absolute mouse coordinates regardless of the number of monitors attached on Linux 2021-05-11 23:51:45 +02:00
loki 1d84c8f9ce Correct dimensions for touchscreen when single monitor attached 2021-05-11 23:30:56 +02:00
loki ade2ef3a15 Fix profile values for amfvce 2021-05-09 16:19:05 +02:00
loki 67df04e0a2 Fix cursor position on lower resolution screens 2021-05-06 16:51:59 +02:00
loki 88c3828ad3 Fixed not testing for 10bit pixels support 2021-05-05 12:17:25 +02:00
loki c19853f03f Add color for BT701 colorspace 2021-05-05 11:28:57 +02:00
loki 1b7e103ef6 Allow resizing the image during conversion 2021-05-04 10:21:56 +02:00
loki 900d59b3ac Dynamically set colors during runtime 2021-05-03 22:06:55 +02:00
loki 37a9256587 Render NV12 color format 2021-05-02 22:35:19 +02:00
loki 438ae6a761 Don't stop streaming when UAC is running 2021-04-24 15:53:48 +02:00