Commit Graph

364 Commits

Author SHA1 Message Date
Geoffrey McRae
05bd587c74 [client] implemented initial slow yuv420 support 2018-07-28 08:41:39 +10:00
Geoffrey McRae
ef336d552c [parser/nal] no need to check for null before free (fixes #87) 2018-07-26 06:09:12 +10:00
Geoffrey McRae
60070e6076 [client] implement stream paused alert 2018-07-24 01:09:53 +10:00
Geoffrey McRae
1f90010cbd [client] add switch to disable alert messages, fixes #83 2018-07-20 01:09:51 +10:00
Geoffrey McRae
d839026ade [opengl] added fade out to wait screen 2018-07-20 01:01:16 +10:00
Geoffrey McRae
34de213926 [opengl] render alerts and fps on wait screen 2018-07-20 00:10:29 +10:00
Geoffrey McRae
b5ec4dd305 [client] scale up the logo and put a gradient behind it 2018-07-19 23:48:35 +10:00
Geoffrey McRae
023d3f811b [client] render the looking glass logo (almost) 2018-07-19 23:33:51 +10:00
Geoffrey McRae
53c32cc5a4 [client] enable multisampling 2018-07-19 23:33:26 +10:00
Geoffrey McRae
eb6ee8ea46 [client] allow window resize event's before startup 2018-07-19 23:32:42 +10:00
williamvds
b19518a1f8 [client] Allow keyboard capture (#26) 2018-06-05 12:09:19 +10:00
Geoffrey McRae
14954cc426 [client] fix too early release of OpenGL context
Fixes a problem where resolution changes would require a restart of
the client
2018-05-31 18:54:29 +10:00
Geoffrey McRae
32dca9ea3f [client] only provide linker flags at link time 2018-05-31 18:54:10 +10:00
Geoffrey McRae
792200cac4 [client] use atomic locking by default 2018-05-29 18:18:22 +10:00
Geoffrey McRae
526b607e37 [client] fixed warning/error text 2018-05-29 18:10:58 +10:00
Geoffrey McRae
298885083b [client] remove xlib shim as it is no longer needed 2018-05-29 18:09:27 +10:00
Geoffrey McRae
26c4804892 [client] replace custom Makefile with cmake build 2018-05-29 18:08:26 +10:00
Geoffrey McRae
a507dd0c51 [client] remove h264 decoder for now 2018-05-29 17:44:25 +10:00
Geoffrey McRae
c6830bab16 [client] remove useless linking against libssl 2018-05-29 17:44:07 +10:00
Geoffrey McRae
a0457a2dd9 [client] added nettle/bignum.h to rsa.c, CentOS 7 seems to need it 2018-05-29 14:55:28 +10:00
Geoffrey McRae
ce60cafa19 [client] removed invalid MS Windows specific hint
See: https://wiki.libsdl.org/SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4

> A hint that specifies that SDL should not to generate
> SDL_WINDOWEVENT_CLOSE events for Alt+F4 on Microsoft Windows.
2018-05-29 14:09:44 +10:00
Geoffrey McRae
9e02131525 [client] don't scale the mouse when in capture mode 2018-05-29 11:55:28 +10:00
Geoffrey McRae
6918eeca26 [client] added missing library for floor function 2018-05-29 11:08:56 +10:00
Geoffrey McRae
fbbee1cdac [opengl] added support for alerts 2018-05-29 11:08:25 +10:00
Geoffrey McRae
89959b48a7 [client] added linked list utility 2018-05-29 11:08:01 +10:00
Geoffrey McRae
b26a535451 [client] added support for alert text 2018-05-29 11:06:42 +10:00
Geoffrey McRae
86207993b8 [client] alert the user when capture mode is on or off 2018-05-29 09:02:34 +10:00
Geoffrey McRae
ee9213da76 [client] add alert method to renderer api 2018-05-29 08:59:07 +10:00
Geoffrey McRae
a084b2b32f [client] added the ability to specify the capture key (-m) 2018-05-29 08:51:58 +10:00
Geoffrey McRae
afdae8efc0 [client] allow the system screensaver to operate, -S to disable 2018-05-29 08:34:52 +10:00
Geoffrey McRae
64ad862116 [client] remove noise about scaling/alignment as this is fixed 2018-05-29 08:28:55 +10:00
r4m0n
4d81aaa763 Code cleanup 2018-05-29 02:18:17 +10:00
r4m0n
8cb25792ba Fixing scaled mouse movement 2018-05-29 02:18:17 +10:00
Geoffrey McRae
97749b335a [client] start rendering a little earlier 2018-05-28 15:36:12 +10:00
Geoffrey McRae
a647a602bf [opengl] render a blue screen while waiting for sync 2018-05-28 15:30:31 +10:00
Geoffrey McRae
882b31aeaa [client] add support for masked colour cursors (fixes #61)
Also allows early SDL usage for cursor and keyboard control before
the host application starts
2018-05-28 11:40:56 +10:00
Geoffrey McRae
62e67c345c [client] reduce weight of FPS limiter feedback 2018-05-25 08:35:52 +10:00
Geoffrey McRae
5de9a8dce6 [client] prevent usleep underflow in FPS limiter 2018-05-24 18:10:23 +10:00
Geoffrey McRae
a4600e7278 [client] added FPS limiter for when running without vsync 2018-05-24 11:56:11 +10:00
Geoffrey McRae
c42bff99e2 [client] adjustments for better sync 2018-05-24 11:26:09 +10:00
Geoffrey McRae
df7183a572 [kvmfr] decouple cursor flags from frame flags and fix timings 2018-05-24 09:01:53 +10:00
Geoffrey McRae
7a5bbb1e59 [client] add unix socket support, fixes #67 2018-05-23 12:16:44 +10:00
Geoffrey McRae
a3cd0385d0 [doc] Fix formatting 2018-05-23 08:46:03 +10:00
Geoffrey McRae
8fdc11813d [doc] Rename DEBUGGING file for Markdown formatting 2018-05-23 08:45:07 +10:00
Geoffrey McRae
fb412e8440 [doc] Added some documentaion for how to debug the LG client 2018-05-23 08:44:11 +10:00
Geoffrey McRae
6f141fe393 [client] removed unused define in rsa.c 2018-05-22 15:40:08 +10:00
Geoffrey McRae
9b0f974648 [client] switch to nettle and gmp for RSA EME-OAEP support
Fixes #68
2018-05-22 15:36:36 +10:00
Geoffrey McRae
ceac6a60e6 [spice] initial GnuTLS implementation (incomplete) 2018-05-22 09:49:35 +10:00
Geoffrey McRae
cba6630aa0 [spice] relocate openssl code into seperate function
This is in preperation of switching to an alternative SSL library
as OpenSSL conflicts with the GNU licence.
2018-05-22 09:39:03 +10:00
Geoffrey McRae
b3aadccfc4 [client] use glFinish to prevent buffering and re-enable by default 2018-05-21 23:16:16 +10:00
Geoffrey McRae
b8a1743d8f [client] fixed crash when specifying the shmFile as a command 2018-05-21 21:46:48 +10:00
Geoffrey McRae
d097531926 [client] allow the mouse and keyboard to operate early 2018-05-16 18:19:32 +10:00
Geoffrey McRae
d339ca3599 [client] remove dependencies on libva until h264 is ready 2018-05-16 18:14:08 +10:00
Geoffrey McRae
adb1ca58b9 [opengl-basic] removed basic renderer as it is no longer needed 2018-05-16 18:13:20 +10:00
Geoffrey McRae
70ffe1de43 [h264] disable the module until I or someone finds time to finish it 2018-05-16 18:12:29 +10:00
Geoffrey McRae
cf4d16b528 [opengl] numerous improvements to buffer transfer 2018-05-16 17:58:36 +10:00
Geoffrey McRae
d0756cf00c [main] make it possible to manually specify the memory size 2018-05-15 20:07:48 +10:00
Geoffrey McRae
4fd59ce8c9 [opengl] fix free bug with new contiguous buffer 2018-05-15 19:25:22 +10:00
Geoffrey McRae
adca879fb9 [opengl] use a single contiguous buffer for the AMD pinned buffer 2018-05-15 19:23:57 +10:00
Geoffrey McRae
3a2d612b41 [decoders] change the API to allow more flexability in the future 2018-05-15 19:19:39 +10:00
Geoffrey McRae
332d53e016 [opengl] Add support for AMD_pinned_memory if it is available 2018-05-15 13:23:44 +10:00
Geoffrey McRae
ae1344d1a0 [spice] fix out by one error in call to strncpy 2018-05-15 09:56:42 +10:00
Geoffrey McRae
ae382949c8 [opengl] glxWaitVideoSyncSGI is not well supported in Mesa 18
It seems Mesa 18 has problems with the glxWaitVideoSyncSGI API so
we disable the 'preventBuffer' option by default
2018-05-15 09:54:24 +10:00
Geoffrey McRae
fd8d4d3d38 [client] enable configuration of spice via config 2018-02-05 19:08:31 +11:00
Geoffrey McRae
a2216e4b68 [client] cosmetics 2018-02-05 19:08:15 +11:00
Alam Arias
4fb9fc3b3f [client]: ignore Alt-F4 in ignoreQuit mode (#46)
* [client]: ignore Alt-F4 in ignoreQuit mode

* [client]: turn down the SNR for SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4

* [client]: turn down the SNR for SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS
2018-02-02 10:32:46 +11:00
arcnmx
d7321d5f5f [client] fix event loop sleep (#45) 2018-01-30 21:07:14 +11:00
Geoffrey McRae
35eda57cb2 [client] remoted accidential commit of experimental method from header 2018-01-29 17:30:46 +11:00
Geoffrey McRae
78a100135b [client] fix improper spice socket shutdown 2018-01-29 17:27:12 +11:00
Geoffrey McRae
dc6932a9ba [client] no need to supress bin directory creation command 2018-01-29 17:04:08 +11:00
Geoffrey McRae
d765674913 [client] fix concurrent make, fixes #43 2018-01-29 17:02:41 +11:00
Geoffrey McRae
2af522aea7 [client] prevent 100% CPU usage in event loop, fixes #41 2018-01-29 16:56:23 +11:00
arcnmx
9aba969296 [client] fix SDL mutex compile errors (#42) 2018-01-29 16:51:14 +11:00
Geoffrey McRae
2114b73c11 [client] makefile: use $(CC) instead of assuming gcc 2018-01-25 09:58:03 +11:00
Geoffrey McRae
d591e2fd36 [client] added xlib-shim to disable calls to XSync
The compiled xlib-shim.so can be used to intercept and prevent SDL
from calling XSync, which causes latency issues on some video
hardware.

To use specify the full path to the file in the LD_PRELOAD
environment variable, like so:

LD_PRELOAD=/full/path/xlib-shim.so ./looking-glass
2018-01-25 09:55:21 +11:00
Geoffrey McRae
c61d97b0ac [client] spice: add channel and mouse locking
This fixes a race condition which causes the mouse ringbuffer to
overflow. It also corrects out of order message index IDs due to
multiple threads sending messages asyncronously.
2018-01-25 07:41:11 +11:00
Geoffrey McRae
37ea662998 [client] use SDL_SetEventFilter for better mouse performance
This partially resolves lag issues on hosts running the amdgpu driver.
If mouse caputure is enable the lag issue returns, this is because SDL
calls `XSync` in `X11_WarpMouse` and `X11_WarpMouseGlobal`, if these
calls are removed all input lag issues dissapear.

This issue has been reported to SDL as the calls to `XSync` are not
required per the xlib documentation.
2018-01-24 23:46:11 +11:00
Aaron
3d9d275d61 Ignore SDL_MOUSEBUTTONDOWN events incompatible with SPICE (#38)
* Ignore SDL_MOUSEBUTTONDOWN events that aren't compatible with the SPICE PS/2 mouse
2018-01-15 10:55:17 +11:00
Geoffrey McRae
a02087e5e4 [client] h264: unroll silly loop 2018-01-06 13:47:35 +11:00
Geoffrey McRae
2ccf17b9b7 [client] h264: setup slice parameters correctly (incomplete) 2018-01-06 13:43:24 +11:00
Geoffrey McRae
8ccce5666c [client] nal: corrections to parsing logic 2018-01-06 13:40:31 +11:00
Geoffrey McRae
859e984827 [client] h264: vaapi deprecated these fields, FMO is not supported
fbed1dbb5b/va/va.h (L2840)
2018-01-06 09:47:49 +11:00
Geoffrey McRae
5e84cfb3f1 [client] h264: use parameters from nal (incomplete) 2018-01-06 00:11:38 +11:00
Geoffrey McRae
5a84d3bef7 [client] h264: don't treat parse failure as fatal 2018-01-05 23:18:52 +11:00
Geoffrey McRae
634be5b096 [client] nal: removed useless debug print 2018-01-05 23:13:22 +11:00
Geoffrey McRae
80c9e24604 [client] nal: added final SLICE parser features 2018-01-05 23:09:43 +11:00
Geoffrey McRae
5808089fce [client] nal: added SLICE parser 2018-01-05 21:36:26 +11:00
Geoffrey McRae
d6f84ddd12 [client] nal: added PPS parser 2018-01-05 16:18:28 +11:00
Geoffrey McRae
c809eeb2a8 [client] fixed nal parser memory leaks 2018-01-05 15:27:36 +11:00
Geoffrey McRae
2dfb1cf1a6 [client] Makefile: stop at the first error 2018-01-05 11:45:30 +11:00
Geoffrey McRae
50ba9b4899 [client] added initial NAL unit parser 2018-01-05 11:36:45 +11:00
Geoffrey McRae
b9723adc30 [client] h264: use high profile as it's more compatible on newer cards 2018-01-04 09:27:24 +11:00
Geoffrey McRae
7648ea712c [client] opengl: fix termination on configure failure 2018-01-04 09:25:42 +11:00
Geoffrey McRae
3f29897506 [client] fix application termination on error 2018-01-04 09:25:17 +11:00
Geoffrey McRae
bebbdc4089 [client] h264 switch to contrained decoder as baseline is deprecated 2018-01-01 12:56:26 +11:00
Geoffrey McRae
fbf08b94aa [client] initial vaapi h264 decode support (unfinished) 2017-12-31 00:27:26 +11:00
Geoffrey McRae
e854723aa3 [client] fixed incorrect cursor dataPos validation 2017-12-30 13:48:32 +11:00
Geoffrey McRae
076a45acc5 [client] added initial decoder framework 2017-12-29 22:48:21 +11:00
Geoffrey McRae
c239306d82 [client] initial support for compressed frames 2017-12-29 21:20:51 +11:00
Geoffrey McRae
40bfdcdf8c [client] added configuration file loading support
the client now will look for a configuration file in the following
locations by default.

* /etc/looking-glass.conf
* ~/.looking-glass.conf

All configuration files are loaded and may override values specified by
any prior configuration files loaded.

Sample Config:

    global:
    {
      fullScreen=false;
      showFPS=true;
      x=0;
      y=0;
      w=800;
      h=600;
    }

    OpenGL:
    {
      mipmap="false";
    }
2017-12-28 19:58:19 +11:00