import gnome-remote-desktop-0.1.8-3.el8
This commit is contained in:
parent
e1bba14acb
commit
a7421a9237
127
SOURCES/cursor-only-frame-fixes.patch
Normal file
127
SOURCES/cursor-only-frame-fixes.patch
Normal file
@ -0,0 +1,127 @@
|
||||
From f97b689c5c67cee36025a7b0a9210deb8b373b03 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Fri, 3 Jul 2020 17:03:52 +0200
|
||||
Subject: [PATCH 1/3] session-vnc: Add API to flush
|
||||
|
||||
When no damage is to be reported, but e.g. cursor moved, we need to
|
||||
flush, so add API to make this possible.
|
||||
|
||||
(cherry picked from commit 25e61a7ed3631687aed4310824e7810088e63b37)
|
||||
---
|
||||
src/grd-session-vnc.c | 6 ++++++
|
||||
src/grd-session-vnc.h | 2 ++
|
||||
2 files changed, 8 insertions(+)
|
||||
|
||||
diff --git a/src/grd-session-vnc.c b/src/grd-session-vnc.c
|
||||
index 9fcbb69..7950d1e 100644
|
||||
--- a/src/grd-session-vnc.c
|
||||
+++ b/src/grd-session-vnc.c
|
||||
@@ -179,6 +179,12 @@ grd_session_vnc_take_buffer (GrdSessionVnc *session_vnc,
|
||||
rfbProcessEvents (session_vnc->rfb_screen, 0);
|
||||
}
|
||||
|
||||
+void
|
||||
+grd_session_vnc_flush (GrdSessionVnc *session_vnc)
|
||||
+{
|
||||
+ rfbProcessEvents (session_vnc->rfb_screen, 0);
|
||||
+}
|
||||
+
|
||||
void
|
||||
grd_session_vnc_set_cursor (GrdSessionVnc *session_vnc,
|
||||
rfbCursorPtr rfb_cursor)
|
||||
diff --git a/src/grd-session-vnc.h b/src/grd-session-vnc.h
|
||||
index 294860e..a065857 100644
|
||||
--- a/src/grd-session-vnc.h
|
||||
+++ b/src/grd-session-vnc.h
|
||||
@@ -49,6 +49,8 @@ void grd_session_vnc_queue_resize_framebuffer (GrdSessionVnc *session_vnc,
|
||||
void grd_session_vnc_take_buffer (GrdSessionVnc *session_vnc,
|
||||
void *data);
|
||||
|
||||
+void grd_session_vnc_flush (GrdSessionVnc *session_vnc);
|
||||
+
|
||||
void grd_session_vnc_set_cursor (GrdSessionVnc *session_vnc,
|
||||
rfbCursorPtr rfb_cursor);
|
||||
|
||||
--
|
||||
2.26.2
|
||||
|
||||
|
||||
From 8a050b66be76d73725ac7665295160ab6c40b0f5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Fri, 3 Jul 2020 17:12:58 +0200
|
||||
Subject: [PATCH 2/3] vnc-pipewire-stream: Properly process cursor-change-only
|
||||
frames
|
||||
|
||||
Such frames will have the buffer data size set to 0, as it is empty, but
|
||||
may contain metadata carrying the cursor update.
|
||||
|
||||
(cherry picked from commit c04762a450ea9a21730db26c296c1283e121dc08)
|
||||
---
|
||||
src/grd-vnc-pipewire-stream.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/grd-vnc-pipewire-stream.c b/src/grd-vnc-pipewire-stream.c
|
||||
index a3f5fb6..7519377 100644
|
||||
--- a/src/grd-vnc-pipewire-stream.c
|
||||
+++ b/src/grd-vnc-pipewire-stream.c
|
||||
@@ -312,7 +312,6 @@ process_buffer (GrdVncPipeWireStream *stream,
|
||||
size_t size;
|
||||
uint8_t *map;
|
||||
void *src_data;
|
||||
- int y;
|
||||
struct spa_meta_cursor *spa_meta_cursor;
|
||||
g_autofree GrdVncFrame *frame = NULL;
|
||||
|
||||
@@ -320,8 +319,8 @@ process_buffer (GrdVncPipeWireStream *stream,
|
||||
|
||||
if (buffer->datas[0].chunk->size == 0)
|
||||
{
|
||||
- g_warning ("Received empty buffer");
|
||||
- return NULL;
|
||||
+ map = NULL;
|
||||
+ src_data = NULL;
|
||||
}
|
||||
else if (buffer->datas[0].type == SPA_DATA_MemFd)
|
||||
{
|
||||
@@ -367,6 +366,7 @@ process_buffer (GrdVncPipeWireStream *stream,
|
||||
int src_stride;
|
||||
int dst_stride;
|
||||
int height;
|
||||
+ int y;
|
||||
|
||||
src_stride = buffer->datas[0].chunk->stride;
|
||||
dst_stride = grd_session_vnc_get_framebuffer_stride (stream->session);
|
||||
--
|
||||
2.26.2
|
||||
|
||||
|
||||
From eac6368d8411c586007df8b1a2d85df3da1b55c5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Fri, 3 Jul 2020 17:13:58 +0200
|
||||
Subject: [PATCH 3/3] vnc-pipewire-stream: Flush connection if no new pixel
|
||||
buffer
|
||||
|
||||
Otherwise we'll wait on input until we flush out our new cursor move
|
||||
only output.
|
||||
|
||||
(cherry picked from commit 3394e34c3c502d63636bb852c062855c46736a6f)
|
||||
---
|
||||
src/grd-vnc-pipewire-stream.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/grd-vnc-pipewire-stream.c b/src/grd-vnc-pipewire-stream.c
|
||||
index 7519377..791b71d 100644
|
||||
--- a/src/grd-vnc-pipewire-stream.c
|
||||
+++ b/src/grd-vnc-pipewire-stream.c
|
||||
@@ -299,6 +299,8 @@ do_render (struct spa_loop *loop,
|
||||
|
||||
if (frame->data)
|
||||
grd_session_vnc_take_buffer (stream->session, frame->data);
|
||||
+ else
|
||||
+ grd_session_vnc_flush (stream->session);
|
||||
|
||||
g_free (frame);
|
||||
|
||||
--
|
||||
2.26.2
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
Name: gnome-remote-desktop
|
||||
Version: 0.1.8
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
Summary: GNOME Remote Desktop screen share service
|
||||
|
||||
License: GPLv2+
|
||||
@ -20,6 +20,9 @@ Patch3: 0001-stream-log-a-warning-on-error.patch
|
||||
Patch4: 0002-vnc-pipewire-stream-Only-try-to-copy-frame-pixels-if.patch
|
||||
Patch5: 0001-vnc-pipewire-stream-Remove-assert.patch
|
||||
|
||||
# Cursor only frame fixes (#1837406)
|
||||
Patch6: cursor-only-frame-fixes.patch
|
||||
|
||||
BuildRequires: git
|
||||
BuildRequires: gcc
|
||||
BuildRequires: meson >= 0.36.0
|
||||
@ -78,6 +81,10 @@ GNOME desktop environment.
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed Jul 15 2020 Jonas Ådahl <jadahl@redhat.com> - 0.1.8-3
|
||||
- Backport cursor only frame fixes
|
||||
Related: #1837406
|
||||
|
||||
* Thu Jun 18 2020 Jonas Ådahl <jadahl@redhat.com> - 0.1.8-2
|
||||
- Don't crash on metadata only buffers
|
||||
Resolves: #1847062
|
||||
|
Loading…
Reference in New Issue
Block a user