Files
mutter/3326.patch

79 lines
2.9 KiB
Diff

From 5809ef62f5e8b12a9cbaf8ec8efac814563bf13e Mon Sep 17 00:00:00 2001
From: Robert Mader <robert.mader@collabora.com>
Date: Fri, 13 Oct 2023 15:37:27 +0200
Subject: [PATCH 1/2] screen-cast/stream-src: Calculate stride after adding
handle to hash table
`calculate_stride()` looks up the dmabuf handle from the hash table so
we need to add it first.
Fixes 9b663f44e6044ece52c38b3ee23bbc2b55328b47
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3326>
---
src/backends/meta-screen-cast-stream-src.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backends/meta-screen-cast-stream-src.c b/src/backends/meta-screen-cast-stream-src.c
index cf198cf6472..fd49c533930 100644
--- a/src/backends/meta-screen-cast-stream-src.c
+++ b/src/backends/meta-screen-cast-stream-src.c
@@ -1134,12 +1134,12 @@ on_stream_add_buffer (void *data,
spa_data->flags = SPA_DATA_FLAG_READWRITE;
spa_data->fd = cogl_dma_buf_handle_get_fd (dmabuf_handle);
- stride = meta_screen_cast_stream_src_calculate_stride (src, spa_data);
- spa_data->maxsize = stride * priv->video_format.size.height;
-
g_hash_table_insert (priv->dmabuf_handles,
GINT_TO_POINTER (spa_data->fd),
dmabuf_handle);
+
+ stride = meta_screen_cast_stream_src_calculate_stride (src, spa_data);
+ spa_data->maxsize = stride * priv->video_format.size.height;
}
else
{
--
GitLab
From 8d3d8b86e517c97accf11eb243078faf31dd72bb Mon Sep 17 00:00:00 2001
From: Robert Mader <robert.mader@collabora.com>
Date: Fri, 13 Oct 2023 18:29:19 +0200
Subject: [PATCH 2/2] screen-cast/stream-src: Assert that dmabuf handle lookup
succeeds
To prevent issues like the one fixed in the previous commit.
Also remove a redundant variable assignment.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3326>
---
src/backends/meta-screen-cast-stream-src.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backends/meta-screen-cast-stream-src.c b/src/backends/meta-screen-cast-stream-src.c
index fd49c533930..273c085d5b8 100644
--- a/src/backends/meta-screen-cast-stream-src.c
+++ b/src/backends/meta-screen-cast-stream-src.c
@@ -564,12 +564,12 @@ meta_screen_cast_stream_src_calculate_stride (MetaScreenCastStreamSrc *src,
if (spa_data->type == SPA_DATA_DmaBuf)
{
- CoglDmaBufHandle *dmabuf_handle = NULL;
+ CoglDmaBufHandle *dmabuf_handle;
dmabuf_handle = g_hash_table_lookup (priv->dmabuf_handles,
GINT_TO_POINTER (spa_data->fd));
- if (dmabuf_handle)
- return cogl_dma_buf_handle_get_stride (dmabuf_handle);
+ g_assert (dmabuf_handle != NULL);
+ return cogl_dma_buf_handle_get_stride (dmabuf_handle);
}
if (!cogl_pixel_format_from_spa_video_format (priv->video_format.format,
--
GitLab