Commit Graph

85 Commits (ab3dacbfd7532ab83a4596965f8a3560b9d260a5)

Author SHA1 Message Date
Andri Yngvason ab3dacbfd7 open-h264: Add padding to packet buffer
According to documentation this padding should be there and valgrind will
complain if it isn't.
2022-06-29 16:30:17 +00:00
Andri Yngvason b86a3f295a Free av_frames when done with them 2022-06-29 15:59:56 +00:00
Andri Yngvason 1317e847b6 renderer-egl: Clean up properly on exit 2022-06-29 15:49:57 +00:00
Andri Yngvason 40c4cd7aba main: Add a canary ticker
This should help to notice when something is badly blocking the main loop.
2022-06-29 12:31:27 +00:00
Andri Yngvason cde18272ce Handle all buffered messages in the socket handler
Otherwise, some buffered messages will be left over
2022-06-29 11:49:47 +00:00
Andri Yngvason 8bc25aa700 sockets: Simplify write function 2022-06-29 11:48:50 +00:00
Andri Yngvason bd4c3a7286 Add dtrace probes for pts rects 2022-06-29 11:47:04 +00:00
Andri Yngvason 34ad07b267 sockets: Replace select() with poll()
select() has been deprecated for a very long time and is considered harmful
2022-06-05 13:54:12 +00:00
Andri Yngvason fe239b3e54 Remove useless feature test macros 2022-06-05 13:28:24 +00:00
Andri Yngvason b7d314439f Move SetFormatAndEncodings back into rfbproto.c 2022-06-05 13:23:18 +00:00
Andri Yngvason 68ff2eb4cb Remove dead code 2022-06-05 13:23:18 +00:00
Andri Yngvason dc18278961 README: Remove libvncclient dependency 2022-06-05 12:46:41 +00:00
Andri Yngvason 33d13e4b4f Dispatch events while waiting for server data
Blocking the event loop is very bad
2022-06-05 12:42:57 +00:00
Andri Yngvason 60574ba34b Merge libvncclient into the project 2022-05-31 21:18:34 +00:00
Andri Yngvason 9a61d8b159 .gitignore: Add .clang_complete 2022-05-31 20:20:16 +00:00
Jan Beich 83886345b1 vnc: consistently use builtin byteswap after b725a08b47
src/vnc.c:27:10: fatal error: 'byteswap.h' file not found
 #include <byteswap.h>
          ^~~~~~~~~~~~
2022-04-24 16:21:24 +00:00
Andri Yngvason b725a08b47 vnc: Add presentation timestamps 2022-04-14 18:41:34 +00:00
Andri Yngvason 3a96498113 vnc: Queue up two extra frambuffer updates
This way the server knows that the client can take up to 3 updates in a
row and doesn't have to wait for an update request after every single
frame.
2022-04-11 21:20:32 +00:00
Andri Yngvason 5b4694e1fd main: Remove dmabufs with alpha channel
They cause rendering issues
2022-04-10 17:00:09 +00:00
Andri Yngvason 7e89a36f43 main: Prioritise open-h264 encoding 2022-04-10 16:56:59 +00:00
Andri Yngvason 72c497e61d vnc: Re-implement libvncclient's SetFormatAndEncodings
Otherwise, we can't prioritise open-h264
2022-04-10 16:56:04 +00:00
Andri Yngvason 09c851750e open-h264: Fix frame parsing 2022-04-10 16:13:54 +00:00
Andri Yngvason 0b757d6623 main: User triple buffering
Apparently, double buffering isn't enough
2022-04-10 14:59:23 +00:00
Andri Yngvason 93869627ed open-h264: Add copyright notice 2022-04-10 13:56:11 +00:00
Andri Yngvason a69d5adc7a main: Pass AVFrames to egl renderer 2022-04-10 13:55:14 +00:00
Andri Yngvason c4ffd8eef6 renderer-egl: Add function to render AVFrames 2022-04-10 13:55:14 +00:00
Andri Yngvason 3e652be8d6 vnc: Add Open H.264 encoding extension 2022-04-10 13:55:14 +00:00
Andri Yngvason 14299b6cff main: Add option to turn off egl 2022-04-09 16:27:50 +00:00
Andri Yngvason ed4c8b1cd0 renderer-egl: Only copy damaged regions 2022-04-09 16:21:17 +00:00
Andri Yngvason 698ac6947b Pass frame damage to renderer via image struct 2022-04-09 16:19:57 +00:00
Andri Yngvason 040a87836d buffer: Clean up damage 2022-04-09 16:19:08 +00:00
Andri Yngvason 9afe099377 buffer: Apply full damage to new dmabuf 2022-04-09 16:18:35 +00:00
Andri Yngvason e6ea9068f0 Implement GL rendering 2022-04-09 15:21:24 +00:00
Andri Yngvason 07e8e5c303 Add dmabuf 2022-04-09 12:09:11 +00:00
Andri Yngvason 6bba21283f Move buffer functions into own file 2022-04-09 11:36:09 +00:00
Andri Yngvason ec51388fec Extract rendering into own unit 2022-04-03 22:17:27 +00:00
Andri Yngvason 9c7a4d6b07 Use drm format instead of wl_shm_format
Using the drm fourcc format as the main pixel format, helps when
adding linux-dmabuf support.
2022-04-03 19:00:19 +00:00
Andri Yngvason 15b5d5a33f Scale image to fit window 2022-04-02 12:51:37 +00:00
Andri Yngvason 545be152ce Add pixman region utils 2022-04-02 12:49:41 +00:00
Andri Yngvason 80d18ac6aa main: Use pixman for rendering 2022-03-30 21:48:54 +00:00
Andri Yngvason 767f7ce816 Add pixel format conversion utils 2022-03-30 21:48:21 +00:00
Andri Yngvason 1a713b6642 Use intermediate pixel buffer for VNC client 2022-03-28 21:40:44 +00:00
Andri Yngvason 1ca82ce2e2 meson: Don't require libvncserver as a subproject 2020-12-06 22:16:58 +00:00
Andri Yngvason 2414e23dd6 Use double-buffering
Without double-buffering there's a slight chance that the vnc code could
start writing to the buffer before the compositor is done with it.
2020-12-06 21:04:56 +00:00
Andri Yngvason 977f34224c Don't crash if cut_text cb isn't implemented 2020-12-06 20:00:49 +00:00
Andri Yngvason 86283fd8d1 vnc: Add cut-text events 2020-12-06 19:52:02 +00:00
Andri Yngvason 67676b224e vnc: Send regular key event if extended fails 2020-12-06 19:40:51 +00:00
Andri Yngvason 7c8c29beb2 Print an 'oops' when the wl_buffer is still attached during drawing 2020-12-06 19:30:46 +00:00
Andri Yngvason c45613dbe7 README: Update instructions to include libvncserver as subproject 2020-12-06 15:59:00 +00:00
Andri Yngvason 339cd4b0ad meson: Don't install libvncserver subproject 2020-12-06 15:32:08 +00:00