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>
This commit is contained in:
Jonas Dreßler 2021-02-05 09:37:09 +01:00 committed by Marge Bot
parent a869df1dd7
commit 04c6934363

View File

@ -538,7 +538,13 @@ meta_screen_cast_stream_src_maybe_record_frame (MetaScreenCastStreamSrc *src,
buffer = pw_stream_dequeue_buffer (priv->pipewire_stream); buffer = pw_stream_dequeue_buffer (priv->pipewire_stream);
if (!buffer) if (!buffer)
{
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; return;
}
spa_buffer = buffer->buffer; spa_buffer = buffer->buffer;
data = spa_buffer->datas[0].data; data = spa_buffer->datas[0].data;