From 67a541eac5adac1cea2b589d7b6ea4252964d6a4 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 10 Sep 2025 12:11:18 +0200 Subject: [PATCH] meta: add SPA_META_SYNC_TIMELINE_UNSCHEDULED_RELEASE This flag is set by the producer and should be cleared by the consumer when it promises to signal the release point. When a consumer dequeues a buffer with the flag set, it should assume the client is not going to signal the release point and so it should reuse the buffer right away. This can only happen when the client didn't dequeue the buffer at all (killed, timeout, error, ...) or when it dequeued and queued the buffer without clearing the flag. See #4885 --- spa/include/spa/buffer/meta.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spa/include/spa/buffer/meta.h b/spa/include/spa/buffer/meta.h index b484cfb01..d78e867cf 100644 --- a/spa/include/spa/buffer/meta.h +++ b/spa/include/spa/buffer/meta.h @@ -184,6 +184,9 @@ struct spa_meta_videotransform { * layout with 2 extra fds. */ struct spa_meta_sync_timeline { +#define SPA_META_SYNC_TIMELINE_UNSCHEDULED_RELEASE (1<<0) /**< this flag is set by the producer and cleared + * by the consumer when it promises to signal + * the release point */ uint32_t flags; uint32_t padding; uint64_t acquire_point; /**< the timeline acquire point, this is when the data