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: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4065>
This commit is contained in:
parent
cb702a7d21
commit
bf758f349b
@ -124,6 +124,8 @@ typedef struct _MetaScreenCastStreamSrcPrivate
|
|||||||
int64_t last_frame_timestamp_us;
|
int64_t last_frame_timestamp_us;
|
||||||
guint follow_up_frame_source_id;
|
guint follow_up_frame_source_id;
|
||||||
|
|
||||||
|
uint64_t buffer_sequence_counter;
|
||||||
|
|
||||||
int buffer_count;
|
int buffer_count;
|
||||||
gboolean needs_follow_up_with_buffers;
|
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->pts = frame_timestamp_us * SPA_NSEC_PER_USEC;
|
||||||
header->flags = 0;
|
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);
|
pw_stream_queue_buffer (priv->pipewire_stream, buffer);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user