[mutter] screencast: Log a debug message when we can't get a buffer from pipewire



commit 04c6934363a8b1d24216769a96d6cd8c53575b80
Author: Jonas Dreßler <verdre v0yd nl>
Date:   Fri Feb 5 09:37:09 2021 +0100

    screencast: Log a debug message when we can't get a buffer from pipewire
    
    When recording the screen and real time encoding it using a gstreamer
    pipeline, that pipeline can stall when the encoder is too slow. Log a
    debug message using the new SCREEN_CAST debug topic in that case so we
    know when framedrops are happening.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1709>

 src/backends/meta-screen-cast-stream-src.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
---
diff --git a/src/backends/meta-screen-cast-stream-src.c b/src/backends/meta-screen-cast-stream-src.c
index 39c688d78e..484a879b98 100644
--- a/src/backends/meta-screen-cast-stream-src.c
+++ b/src/backends/meta-screen-cast-stream-src.c
@@ -538,7 +538,13 @@ meta_screen_cast_stream_src_maybe_record_frame (MetaScreenCastStreamSrc  *src,
 
   buffer = pw_stream_dequeue_buffer (priv->pipewire_stream);
   if (!buffer)
-    return;
+    {
+      meta_topic (META_DEBUG_SCREEN_CAST,
+                  "Couldn't dequeue a buffer from pipewire stream (node id %u), "
+                  "maybe your encoding is too slow?",
+                  pw_stream_get_node_id (priv->pipewire_stream));
+      return;
+    }
 
   spa_buffer = buffer->buffer;
   data = spa_buffer->datas[0].data;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]