Commit Graph

273 Commits (8b3dc1ae6099dcfa73aec3ae11df2fdc58540d14)

Author SHA1 Message Date
Philipp Zabel afe37b983d stream: Fix remote closing TLS connection
If a TLS stream is closed by the remote VNC client,
stream__remote_closed must be called to signal the server.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
2022-11-30 15:26:28 +00:00
Jim Ramsay 332be4d471 Add nvnc_client_close API
This allows the user or application to terminate any given nvnc_client
connection at any time.

Signed-off-by: Jim Ramsay <i.am@jimramsay.com>
2022-11-24 16:08:06 +00:00
Andri Yngvason 8f979c9928 Pass nvnc_client to cut-text callback 2022-11-20 22:42:01 +00:00
Andri Yngvason 79f26924ea Add functions for listing clients 2022-11-20 12:03:18 +00:00
Andri Yngvason 8a7509bd3a raw: Allocate conservatively sized buffers 2022-11-05 13:54:01 +00:00
Andri Yngvason f31ddf7fe9 enc-util: Add function to calculate region area 2022-11-05 13:52:55 +00:00
Andri Yngvason 3647457f6d server: Properly handle stream write errors
This fixes leaked rcbufs when clients disconnect.
2022-11-05 13:22:14 +00:00
Andri Yngvason fbe8631add raw: Fix worker data dependencies 2022-11-05 13:22:14 +00:00
Andri Yngvason 935ce4e98d Remove push/pull encoder interface
Think of it as a failed experiment.
2022-11-05 10:15:56 +00:00
Jim Ramsay 036b549fd8 Record authenticated username for each connected client
Signed-off-by: Jim Ramsay <jramsay@redhat.com>
2022-11-04 09:41:14 +00:00
Jim Ramsay 86bd2ced85 Record hostname for each connected client
Signed-off-by: Jim Ramsay <jramsay@redhat.com>
2022-11-04 09:41:14 +00:00
Andri Yngvason 73e1089f06 zrle: Unref result in destroy 2022-10-30 13:53:10 +00:00
Andri Yngvason b525608a06 raw: Unref result in destroy 2022-10-30 13:52:52 +00:00
Andri Yngvason b3c1d5d1dc stream: Use MSG_NOSIGNAL
Without MSG_NOSIGNAL, sending to closed sockets will generate SIGPIPE.
2022-10-30 13:07:13 +00:00
Andri Yngvason 95742676c9 zrle: Keep reference to encoder while encoding 2022-10-30 12:44:05 +00:00
Andri Yngvason 91dc5da243 raw: Keep reference to encoder while encoding 2022-10-30 12:44:05 +00:00
Andri Yngvason 727b2f727e tight: Keep reference to encoder while encoding 2022-10-30 12:44:05 +00:00
Andri Yngvason 8f2d137046 server: Make encoder inert when closing client 2022-10-30 12:44:05 +00:00
Andri Yngvason baaf84eab9 Reference count encoders 2022-10-30 12:44:05 +00:00
Andri Yngvason 48b070af5a server: Free cursor buffers on close 2022-10-30 12:44:05 +00:00
Andri Yngvason adef210252 fb-pool: Add setter for fb allocator 2022-10-29 18:40:02 +00:00
Andri Yngvason efb5ab956c Add debug logging for tcp address binding 2022-10-24 20:55:38 +00:00
Andri Yngvason 3588670c81 server: Replace abort() with NVNC_LOG_PANIC 2022-10-24 09:16:59 +00:00
Andri Yngvason 3c4a069ba2 tight: Disable chroma subsampling at q=9
This avoids color banding at the highest quality level.
2022-10-23 19:05:32 +00:00
Philipp Zabel df84f371fe Fix fallthrough warnings in murmurhash
Fix two -Wimplicit-fallthrough warnings in the murmurhash function:

  ../src/murmurhash.c: In function 'murmurhash':
  ../src/murmurhash.c:71:15: warning: this statement may fall through [-Wimplicit-fallthrough=]
     71 |     case 3: k ^= (tail[2] << 16);
        |             ~~^~~~~~~~~~~~~~~~~~
  ../src/murmurhash.c:72:5: note: here
     72 |     case 2: k ^= (tail[1] << 8);
        |     ^~~~
  ../src/murmurhash.c:72:15: warning: this statement may fall through [-Wimplicit-fallthrough=]
     72 |     case 2: k ^= (tail[1] << 8);
        |             ~~^~~~~~~~~~~~~~~~~
  ../src/murmurhash.c:74:5: note: here
     74 |     case 1:
        |     ^~~~
2022-10-15 10:00:43 +00:00
Jeroen Hofstee 5b2a062f0e don't resize an encoder if it is not set 2022-10-15 09:59:05 +00:00
Andri Yngvason b932f3e2e0 h264-encoder: Set async_depth=1
This fixes stalling during encoding. The FFmpeg devs seem to think that it's
normal to change the default behaviour or their code, so this needs to be
fixed here instead.

Fixes #73
2022-09-10 15:48:15 +00:00
Andri Yngvason 19538c9435 server: Fix encoding selection for sw frames
This fixes encoding selection when not using the --gpu option. Before this
change, raw encoding would always be selected.

Reported-by: Consolatis
Suggested-by: Consolatis
2022-08-23 22:34:56 +00:00
Andri Yngvason c0e1159a53 Revert "h264-encoder: Add 30 bit color depth formats"
This reverts commit 613761cf5f.

These are not available on older libav version and they don't event work.
2022-08-23 21:13:13 +00:00
Andri Yngvason 5e5d5d6e29 resampler: Use transformed width as destination stride
Fixes #72
2022-08-23 20:23:12 +00:00
Philipp Zabel affd7f3f6d Allow to query client-side cursor support
Add a function nvnc_client_supports_cursor() to enable the API user to
make an informed decision whether nvnc_set_cursor() can be expected to
make the client draw the cursor, or whether it has to be rendered into
the framebuffer.
2022-07-29 08:37:29 +00:00
Andri Yngvason 263990f5ef stream: Remove stray ampersand in tls handshake failure code path 2022-07-17 20:17:19 +00:00
Andri Yngvason b9a5b9a3f1 h264: Set quality according to client's wishes 2022-07-10 13:53:32 +00:00
Andri Yngvason 528eac51a3 Fix jpeg quality setting
The encoding identifiers are supposed to be interpreted as a range. I
interpreted the upper and lower limits as two discrete quality settings
instead, which is wrong.
2022-07-10 12:41:20 +00:00
Jan Beich 4baeaa43fd server: add missing header after f20ffb5e1e
src/server.c:1119:17: error: use of undeclared identifier 'IPPROTO_TCP'
        setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &one, sizeof(one));
                       ^
2022-07-09 20:04:53 +00:00
Andri Yngvason d85347cfe3 h264-encoder: Set quality
This is to get libav to stop complaining about quality not being set
2022-07-09 17:19:46 +00:00
Andri Yngvason 362918a8cf Integrate libav into logging framework 2022-07-09 17:15:35 +00:00
Andri Yngvason 863fb0ce80 h264-encoder: Add dtrace probes 2022-07-09 16:30:25 +00:00
Andri Yngvason f20ffb5e1e server: Turn off Nagle's algorithm 2022-07-09 16:29:18 +00:00
Andri Yngvason d86af88573 server: Log encoder choices 2022-07-09 16:28:09 +00:00
Andri Yngvason dc82b3f29d h264-encoder: Clean up current_packet in destroy 2022-06-29 11:39:46 +00:00
Andri Yngvason b8122725e2 server: Reset encoder callback on frame done 2022-06-29 11:36:05 +00:00
Andri Yngvason 4eb7a3a559 h264-encoder: Call on_packet_ready last in on_work_done
The callback can result in the encoder being destroyed, so we can't
dereference access the encoder object after calling it.
2022-06-29 11:34:12 +00:00
Andri Yngvason e8f2481aa4 open-h264: unref result when finished with it 2022-06-26 14:12:37 +00:00
Andri Yngvason 8bde568112 server: Add dtrace probes with pts 2022-06-26 13:57:32 +00:00
Andri Yngvason 1e3819b6fb open-h264: Add dtrace probes 2022-06-26 13:57:32 +00:00
Andri Yngvason e05e812d93 resampler: Add dtrace probes 2022-06-26 13:57:32 +00:00
Andri Yngvason ee64bc2722 display: Add dtrace probes 2022-06-26 13:57:32 +00:00
Andri Yngvason 4e9eb98301 open-h264: Convert to normal encoder
The push/pull code path is buggy.
2022-06-26 13:56:17 +00:00
Andri Yngvason e6a12ffda7 server: Promote some log levels 2022-06-25 16:32:05 +00:00