summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2022-12-03 19:15:19 -0300
committerRobert Mader <robert.mader@collabora.com>2023-04-07 12:49:53 +0200
commitded7b8dfba0bfca35e3a5f919424865ad6a235ad (patch)
treeba324b47bb0610bd1662b5fae33f45c7f33e054e
parent16aa2943e20b4164bc069007b4ebe7fafd46fdf9 (diff)
downloadmutter-ded7b8dfba0bfca35e3a5f919424865ad6a235ad.tar.gz
screen-cast/src: Clean up DMA-BUF only error paths
When a stream source subclass asks for a DMA-BUF only frame record, it is legitimate to return FALSE in do_record_frame() - meaning that a frame was not recorded - but not return an error - meaning nothing actually failed. This avoids spamming the journal with warnings on a legitimate case. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2804>
-rw-r--r--src/backends/meta-screen-cast-stream-src.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/backends/meta-screen-cast-stream-src.c b/src/backends/meta-screen-cast-stream-src.c
index 21427c3bd..6c071236a 100644
--- a/src/backends/meta-screen-cast-stream-src.c
+++ b/src/backends/meta-screen-cast-stream-src.c
@@ -516,6 +516,9 @@ do_record_frame (MetaScreenCastStreamSrc *src,
gboolean dmabuf_only;
dmabuf_only = flags & META_SCREEN_CAST_RECORD_FLAG_DMABUF_ONLY;
+ if (dmabuf_only && spa_buffer->datas[0].type != SPA_DATA_DmaBuf)
+ return FALSE;
+
if (!dmabuf_only &&
(spa_buffer->datas[0].data ||
spa_buffer->datas[0].type == SPA_DATA_MemFd))
@@ -818,7 +821,8 @@ meta_screen_cast_stream_src_maybe_record_frame_with_timestamp (MetaScreenCastStr
}
else
{
- g_warning ("Failed to record screen cast frame: %s", error->message);
+ if (error)
+ g_warning ("Failed to record screen cast frame: %s", error->message);
spa_buffer->datas[0].chunk->size = 0;
spa_buffer->datas[0].chunk->flags = SPA_CHUNK_FLAG_CORRUPTED;
}