From bf758f349b6e7c9d6d14de90596e97281682544b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Thu, 3 Oct 2024 10:37:22 +0200 Subject: [PATCH] screen-cast-stream-src: Track buffer sequence number Use the 'seq' field in the spa_meta_header struct to track buffer sequence numbers. This can be useful for predictable buffer tracking in consumers, or for debugging purposes. Part-of: --- src/backends/meta-screen-cast-stream-src.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/backends/meta-screen-cast-stream-src.c b/src/backends/meta-screen-cast-stream-src.c index 9337ffcc9..ad0087395 100644 --- a/src/backends/meta-screen-cast-stream-src.c +++ b/src/backends/meta-screen-cast-stream-src.c @@ -124,6 +124,8 @@ typedef struct _MetaScreenCastStreamSrcPrivate int64_t last_frame_timestamp_us; guint follow_up_frame_source_id; + uint64_t buffer_sequence_counter; + int buffer_count; gboolean needs_follow_up_with_buffers; @@ -1149,6 +1151,15 @@ meta_screen_cast_stream_src_maybe_record_frame_with_timestamp (MetaScreenCastStr { header->pts = frame_timestamp_us * SPA_NSEC_PER_USEC; header->flags = 0; + header->seq = ++priv->buffer_sequence_counter; + meta_topic (META_DEBUG_SCREEN_CAST, + "Queuing PipeWire buffer #%" G_GUINT64_FORMAT " (%p)", + header->seq, + buffer->buffer); + } + else + { + meta_topic (META_DEBUG_SCREEN_CAST, "Queuing unsequenced PipeWire buffer"); } pw_stream_queue_buffer (priv->pipewire_stream, buffer);